Bug 47601

Summary: Alpha blending is broken on win32 surfaces
Product: cairo Reporter: Szuromi Gábor <kukkerman>
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.3   
Hardware: x86 (IA32)   
OS: Windows (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Buggy alpha blending under win32 demo

Description Szuromi Gábor 2012-03-20 11:23:40 UTC
Created attachment 58775 [details]
Buggy alpha blending under win32 demo

Alpha blending on win32 surfaces is broken since commit ae3319890eacd1c8282ca6df7b263ac74abb5f8d, only fully opaque pixels (alpha = 1.0) are actually apperaing in the window. See the attached source and play with the global alpha variable.

The first affected version is 1.11.2 (according to git describe).
Comment 1 Chris Wilson 2012-03-21 13:19:43 UTC
So I completely fluffed the fallback damage tracking for win32.

How much further do we get with?

commit 9bb5b02694e1bbd5c0cdd28606d80fb2d2d701ee
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 21 20:08:15 2012 +0000

    win32: Fix damage flushing
    
    The damage wasn't being created on the right surface, so the damage to
    the fallback image surface was not being tracked. Perform a little bit
    of juggling so that we track dirty regions on the fallback surface itself.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

commit c504dba5a76def6358a5b309ad5bc4a8dfe6199e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 21 20:07:00 2012 +0000

    damage: Fix memcpy size
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

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.