Opened 19 years ago
Closed 19 years ago
Last modified 19 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)
Change History (7)
by , 19 years ago
| Attachment: | opengl_offset_repaint.patch added |
|---|
by , 19 years ago
| Attachment: | opengl_offset_repaint2.patch added |
|---|
second version of patch which only allocates the rectangle once
comment:2 by , 19 years ago
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 by , 19 years ago
| Milestone: | unknown → 0.21 |
|---|---|
| Owner: | changed from to |
| Version: | unknown → head |
comment:4 by , 19 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |

use zero oriented screen rect when not clipping