Bug #6026
line drawing issue in WebGL renderer
Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:
0%
billable:
No
vendor_id:
GCD
case_num:
version:
History
#2 Updated by Greg Shah over 2 years ago
- File WebGL_rect_issue1.jpg added
- File WebGL_rect_issue0.jpg added
This was originally found in #5285. The details are being moved here since it is a generic issue.
The problem can be reproduced with line object simulation with thin (one pixel width or height) rectangle widget. Consider the following pictures, the WebGL is on the left:
The testcsaes:
message "Hit a key to start". pause. define rectangle r0 size-pixels 400 by 1 no-fill. define rectangle r1 size-pixels 400 by 1 no-fill. define rectangle r2 size-pixels 400 by 1 no-fill. define rectangle r3 size-pixels 400 by 1 no-fill. define rectangle r4 size-pixels 400 by 1 no-fill. define rectangle r10 size-pixels 400 by 1 no-fill. define rectangle r11 size-pixels 400 by 1 no-fill. define rectangle r12 size-pixels 400 by 1 no-fill. define rectangle r13 size-pixels 400 by 1 no-fill. define rectangle r14 size-pixels 400 by 1 no-fill. define rectangle r5 size-pixels 1 by 400 no-fill. define rectangle r6 size-pixels 1 by 400 no-fill. define rectangle r7 size-pixels 1 by 400 no-fill. define rectangle r8 size-pixels 1 by 400 no-fill. define rectangle r9 size-pixels 1 by 400 no-fill. define var xStart as integer initial 30. define var yStart as integer initial 30. define frame f r0 r1 r2 r3 r4 r10 r11 r12 r13 r14 r5 r6 r7 r8 r9 with size 80 by 40 title "Rectangle Test #9, line simulation". /* horizontal lines */ r0:x = xStart + 10. r0:y = yStart + 10. r1:x = xStart + 10. r1:y = yStart + 20. r2:x = xStart + 10. r2:y = yStart + 30. r3:x = xStart + 10. r3:y = yStart + 40. r4:x = xStart + 10. r4:y = yStart + 50. r10:x = xStart + 20. r10:y = yStart + 500. r11:x = xStart + 30. r11:y = yStart + 510. r12:x = xStart + 40. r12:y = yStart + 520. r13:x = xStart + 50. r13:y = yStart + 530. r14:x = xStart + 60. r14:y = yStart + 540. /* vertical lines */ r5:x = xStart + 110. r5:y = yStart + 10. r6:x = xStart + 120. r6:y = yStart + 20. r7:x = xStart + 130. r7:y = yStart + 30. r8:x = xStart + 140. r8:y = yStart + 40. r9:x = xStart + 150. r9:y = yStart + 50. view frame f. pause.
pause. define rectangle r0 size-pixels 400 by 1 no-fill. define rectangle r1 size-pixels 400 by 1 no-fill. define rectangle r2 size-pixels 400 by 1 no-fill. define rectangle r3 size-pixels 400 by 1 no-fill. define rectangle r4 size-pixels 400 by 1 no-fill. define rectangle r5 size-pixels 1 by 400 no-fill. define rectangle r6 size-pixels 1 by 400 no-fill. define rectangle r7 size-pixels 1 by 400 no-fill. define rectangle r8 size-pixels 1 by 400 no-fill. define rectangle r9 size-pixels 1 by 400 no-fill. define var xStart as integer initial 30. define var yStart as integer initial 30. define frame f r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 with size 80 by 40 title "Rectangle Test #9_1, line simulation". /* horizontal lines */ r0:x = xStart + 10. r0:y = yStart + 10. r1:x = xStart + 10. r1:y = yStart + 20. r2:x = xStart + 10. r2:y = yStart + 30. r3:x = xStart + 10. r3:y = yStart + 40. r4:x = xStart + 10. r4:y = yStart + 50. /* vertical lines */ r5:x = xStart + 110. r5:y = yStart + 10. r6:x = xStart + 120. r6:y = yStart + 20. r7:x = xStart + 130. r7:y = yStart + 30. r8:x = xStart + 140. r8:y = yStart + 40. r9:x = xStart + 150. r9:y = yStart + 50. view frame f. pause.
This is not exact failure as in <large GUI app> but the symptoms are the same. Probably related to clipping area set up in WebGL or line drawing approach.
Probably we need more testcases with one pixel width/height rectangle to have a full picture of the bug.