<AWT Dev> RFR: 8266079: Lanai: AlphaComposite shows differences on Metal compared to OpenGL
Sergey Bylokhov
serb at openjdk.java.net
Mon Aug 2 21:56:32 UTC 2021
On Mon, 2 Aug 2021 20:04:43 GMT, Alexey Ushakov <avu at openjdk.org> wrote:
>> src/java.desktop/macosx/classes/sun/lwawt/LWWindowPeer.java line 199:
>>
>>> 197:
>>> 198: platformWindow.initialize(target, this, ownerDelegate);
>>> 199: platformWindow.setOpaque(!isTranslucent());
>>
>> !isTranslucent() uses the opaque flag which will be initialised in the code below(see setOpaque(getTarget().isOpaque());)
>
> Yes, and we need this call here to initialise content view with correct default value
> CPlatformWindow.java:931 contentView.setWindowLayerOpaque(isOpaque);
I need to look at it closely, I do not understand why we made the native layer opaque=NO by default while the java code uses opaque=true by default. And then we reset the native code from NO to yes by the code above. Why we cannot make both native/java use true/YES and when necessary it will be reset to false/NO by the existing code(via LWWindowPeer.setOpaque() and LWWindowPeer.updateOpaque?)
BTW Probably implementation of LWWindowPeer.setTextured() should call the updateOpaque() as well.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4946
More information about the awt-dev
mailing list