Bug 37140

Summary: Incomplete rendering with OffsetViewportOrgEx
Product: cairo Reporter: Elmar Braun <elmar.braun>
Component: win32 backendAssignee: cairo-bugs mailing list <cairo-bugs>
Status: RESOLVED FIXED QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: normal    
Priority: medium    
Version: 1.10.2   
Hardware: x86 (IA32)   
OS: Windows (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: example of broken rendering with 1.10.2
example of working rendering with 1.8.10
code that created the example images

Description Elmar Braun 2011-05-12 07:13:57 UTC
I am trying to render to a HDC that has been given an offset with OffsetViewportOrgEx. Except for text, Cairo does not draw anything to the part of the window that has been moved into view by the offset.

This problem occurs with Cairo 1.10.2 (pixman 0.22.0). It works as expected with Cairo 1.8.10.

I have attached some code that reproduces the problem, as well as screen captures from 1.10.2 (and 1.8.10) that show the broken (and working) rendering.
Comment 1 Elmar Braun 2011-05-12 07:14:55 UTC
Created attachment 46633 [details]
example of broken rendering with 1.10.2
Comment 2 Elmar Braun 2011-05-12 07:15:36 UTC
Created attachment 46634 [details]
example of working rendering with 1.8.10
Comment 3 Elmar Braun 2011-05-12 07:16:39 UTC
Created attachment 46635 [details]
code that created the example images
Comment 4 Andrea Canciani 2011-07-26 06:07:44 UTC
This problem seems related to https://bugs.freedesktop.org/show_bug.cgi?id=28541 (but I'm not yet sure it's actually a duplicate).

I managed to reproduce it with cairo master and the patch provided in the above bugreport seems to work around part of this bug (in particular, it fixes the test.cpp output), but the extents computation is still incorrect.
Comment 5 Andrea Canciani 2011-07-27 01:08:51 UTC
The issue seems to be fixed 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>

Please reopen if you manage to reproduce it on master.

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.