Summary: | No drawing after InvalidRect for partial window content | ||
---|---|---|---|
Product: | cairo | Reporter: | Tim Teulings <tim> |
Component: | win32 backend | Assignee: | cairo-bugs mailing list <cairo-bugs> |
Status: | RESOLVED FIXED | QA Contact: | cairo-bugs mailing list <cairo-bugs> |
Severity: | critical | ||
Priority: | medium | CC: | ibaldo, kalevlember, mkbosmans |
Version: | 1.9.8 | ||
Hardware: | x86 (IA32) | ||
OS: | Windows (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
Ingmar's patch
Test case |
Description
Tim Teulings
2010-06-14 14:36:02 UTC
Patch here http://sprunge.us/KOZU by Ingmar Runge ingmar@irsoft.de . There was a discussion on the mailing list but amazingly nobody cared to update this bug report with the information from the mailing list, I guessed the authors from that discussion would do that but they didn't. Someone with good knowledge about Cairo should review that patch and apply if it is correct or contact Ingmar to further discuss. Thanks a lot!!! I tested on windows, it is fiexed. Reopening since nothing was committed anywhere yet, there's just a patch attached here. Created attachment 49554 [details] [review] Ingmar's patch This (i.e. Ingmar's) patch has been reviewed and deemed incomplete. Two possible solutions were suggested: - the simple way to fix the bug would be to make sure that the top-left corner of the surface are (0,0) - the best way to fix it would be to handle arbitrary extents for surfaces, which is presumably needed for handling unlimited surfaces (cairo has some support for them, but a lot of places still assume that surfaces are bounded and have (0,0) as top-left corner). FTR, I believe that https://bugs.freedesktop.org/show_bug.cgi?id=37140 might be related, or even the same bug. Created attachment 49576 [details]
Test case
This is a self-contained cairo-style test case, which is fixed by Ingmar's patch.
The preferred solution seems to be implemented by: commit 91faf9c1cf79f44b48c0f14d2d551a68bf38b5a5 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Tue Jul 26 15:50:32 2011 +0100 composite: Pass unbounded extents to initialisation For an unbounded surface we cannot assume (0, 0, surface_width, surface_height) as that is wrong and causes the operation to appear clipped. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> The cairo-gdi-demo.cpp now works as expected on cairo-master for me. Please reopen if you manage to reproduce the bug. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.