<AWT Dev> [8] Review request for 7124244: [macosx] Shaped windows support

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Thu Jun 28 08:39:40 PDT 2012


Hi Artem, Anthony.
Updated webrev.
http://cr.openjdk.java.net/~serb/7124244/webrev.04/
- CPlatformEmbeddedFrame now use correct backbuffer.
- For simplification, creation of the backbuffer was reverted back.

25.06.2012 19:16, Artem Ananiev wrote:
> Hi, Sergey,
>
> a few minor comments:
>
> 1. CPlatformWindow.java: invalidateShadow() in native is ready to be 
> called on any thread, so what's the reason behind invokeLater() here?
>
> 2. RepaintManager.java: the new field should better be named 
> "volatileBufferType".
>
> 3. LWComponentPeer.applyShape() is a peer method, which accepts 
> user-supplied object (right now it's constructed from Shape in AWT 
> internal code, but nothing prevents users from calling this method 
> directly), so it should be stored as a copy, not as a reference.
>
> Thanks,
>
> Artem
>
> On 6/25/2012 2:42 PM, Sergey Bylokhov wrote:
>> Hi, Artem, Anthony.
>> New version of the fix:
>> http://cr.openjdk.java.net/~serb/7124244/webrev.01
>>
>> 13.06.2012 06:30, Artem Ananiev wrote:
>>> Hi, Sergey,
>>>
>>> a few minor comments:
>>>
>>> 1. There is no need in AWT_ASSERT_[NOT]_APPKIT_THREAD macros in
>>> CPlatformWindow.nativeRevalidateNSWindowShadow(), since there are
>>> corresponding checks just above.
>> done.
>>>
>>> 2. invalidateShadow() is not used in sun.lwawt, so it can be just a
>>> method in CPlatformWindow. BTW, do you have any ideas, why CGLayer
>>> holds a reference to LWWindowPeer, not to CPlatformWindow?
>> done.
>>>
>>> 3. As we don't expect isSwingBackbufferTranslucencySupported() to
>>> return different values, it would be fine to call it only once to
>>> avoid possible perf regressions.
>> done.
>>>
>>> Thanks,
>>>
>>> Artem
>>>
>>> On 6/4/2012 7:49 PM, Sergey Bylokhov wrote:
>>>> Hi Everyone,
>>>> Please review the fix.
>>>>
>>>> Shaped window was implemented as a translucent window with constrained
>>>> graphics. Now translucent window doesn't use separate BufferedImage 
>>>> as a
>>>> back buffer. Also alpha value for the swing back buffer was
>>>> enabled(Shared code changed).
>>>> Note that shaped windows are affected by this bugs:
>>>> http://monaco.us.oracle.com/detail.jsf?cr=7124236
>>>> - Shadows disappear.
>>>> - Transparent areas aren't transparent to mouse clicks.
>>>> http://monaco.sfbay.sun.com/detail.jsf?cr=7172431
>>>> - Opacity does not work for non opaque windows.
>>>>
>>>> Any suggestions are welcome.
>>>>
>>>> Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7124244
>>>> Webrev can be found at:
>>>> http://cr.openjdk.java.net/~serb/7124244/webrev.00
>>>>
>>
>>


-- 
Best regards, Sergey.




More information about the awt-dev mailing list