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.
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?
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.
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