Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#3385 closed defect (fixed)

opengl painter doesn't handle GUI offset correctly in drawTimeout

Reported by: anonymous Owned by: stuartm
Priority: minor Milestone: 0.21
Component: mythtv Version: head
Severity: low Keywords:
Cc: Ticket locked: no

Description

MythMainWindow? moves its origin to xoffset,yoffset. In drawTimeout if the painter doesn't support clipping (which the opengl painter says it doesn't), the repaint region is forced to include the whole screen via screenRect. Unfortunately, screenRect contains the xoffset/yoffset, causing the redraw to redraw an strange set of rectangles. Normally this doesn't show up as a visible problem because it tends to be a superset of the visible screen. In the presence of alphapulse, however, it causes the background image to get redrawn 1 extra time at the end, after the pulsing image, erasing the whole menu. The occurs in both G.A.N.T. and MePo? themes for me with the GUI set to 1170x670 offset 60,16. This patch fixes this by using the rectangle returned by GetUIScreenRect() instead of the member screenRect.

Attachments (2)

opengl_offset_repaint.patch (460 bytes) - added by david.asher@… 13 years ago.
use zero oriented screen rect when not clipping
opengl_offset_repaint2.patch (1.4 KB) - added by David Asher <david.asher@…> 13 years ago.
second version of patch which only allocates the rectangle once

Download all attachments as: .zip

Change History (7)

Changed 13 years ago by david.asher@…

Attachment: opengl_offset_repaint.patch added

use zero oriented screen rect when not clipping

comment:1 Changed 13 years ago by david.asher@…

It didn't use my email address. I know I put it there.

Changed 13 years ago by David Asher <david.asher@…>

second version of patch which only allocates the rectangle once

comment:2 Changed 13 years ago by David Asher <david.asher@…>

It bugged me that my first patch was passing QRect's around by value so frequently, so I attached a second version of the patch which allocates a uiScreenRect to store the rectangle and uses it directly instead of calling GetUIScreenRect().

comment:3 Changed 13 years ago by stuartm

Milestone: unknown0.21
Owner: changed from Isaac Richards to stuartm
Version: unknownhead

comment:4 Changed 13 years ago by stuartm

Resolution: fixed
Status: newclosed

(In [13603]) Applies patch from David Asher to handle repainting of the entire screen correctly when offsets are involved with the opengl driver.

For more information see #3385

Fixes #3385

comment:5 Changed 13 years ago by stuartm

(In [13611]) Backports [13603] to -fixes.

Applies patch from David Asher to handle repainting of the entire screen correctly when offsets are involved with the opengl driver.

For more information see #3385

Refs #3385

Note: See TracTickets for help on using tickets.