Review request for 7124236: [macosx] Some components lost shadows after the latest fix of translucent windows.

Dmitry Cherepanov dmitry.cherepanov at oracle.com
Fri Feb 3 04:24:02 PST 2012


Mike Swingler wrote:
> On Jan 31, 2012, at 11:04 AM, Dmitry Cherepanov wrote:
>
>   
>> The cause of the problem with broken shadows is that currently NSWindow's background color is [NSWindow clearColor] and it makes shadows invisible. The fix implements Mike's suggestion and now we draw pure transparent pixels into a CALayer so that the native background color will be visible through transparent areas of the CALayer.
>>
>> http://cr.openjdk.java.net/~dcherepanov/7124236/webrev.0/
>>     

I'm trying to resolve a regression reproducible with the patch applied.

The problem comes up when application creates a top-level with a 
transparent background (alpha != 0) and then starts rendering something 
fully transparent with SRC composite in paint's callback (the example 
[1] draws a fully transparent circle). My understanding is that the 
content of the CALayer is going to be composited with the top-level's 
background using SRC-OVER composite and the application's drawing will 
be missed. Seems like it closely relates to your suggestion about the 
coordination between the NSWindow's back-buffer drawing and drawing into 
the CALayer. Could you please share your ideas about what's the right 
way to fix it?

Thanks,
Dmitry

[1] http://cr.openjdk.java.net/~dcherepanov/7124236/NonOpaqueCircle.java



More information about the macosx-port-dev mailing list