Project

General

Profile

Bug #6026

line drawing issue in WebGL renderer

Added by Greg Shah over 2 years ago. Updated over 2 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:

0%

billable:
No
vendor_id:
GCD
case_num:
version:

WebGL_rect_issue0.jpg (165 KB) Greg Shah, 01/31/2022 08:43 AM

WebGL_rect_issue1.jpg (148 KB) Greg Shah, 01/31/2022 08:43 AM

History

#2 Updated by Greg Shah over 2 years ago

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.

Also available in: Atom PDF