New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8303904: Transparent Windows Paint Wrong (Opaque) w/o Volatile Buffering #13196
Conversation
Merge openjdk/jdk into mickleness/jdk
Merge openjdk/jdk
Merge from openjdk/jdk
Updating mickleness/jdk from openjdk/jdk
…es image This is part of the original write-up, but it might deserve to be split up into its own ticket.
I predict once I start a code review about 8308904 that if we want to address the resolution of createAcceleratedImage: that can be a separate ticket. This change feels much more invasive to me; I wouldn't be surprised if some existing code out there is already casting the return value of createAcceleratedImage(..) as a BufferedImage.
I started to notice some intermittent failures in the Robot test, so now I'm having it wait a few beats on the event dispatch thread before grabbing the pixel color. Also I'm adding a more abstract check-the-translucency-of-the-BufferedImage output. If this `testImageTransparency` passes and `testPixelColor` fails: that's a red flag that maybe the screen isn't ready when the Robot grabs the pixel.
This is the same solution previously applied to the MTLGraphicsConfig
I don't have my setup configured to test these, but I confirmed they all appear to support translucency in their getColorModel(int) method.
👋 Welcome back mickleness! A progress list of the required criteria for merging this PR into |
@mickleness The following label will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command. |
Webrevs
|
Mailing list message from Alan Snyder on client-libs-dev: When I added support for translucent windows to VAqua, I used a different solution: I ?tricked? the AWT Window into |
Alan, I may be confused. Does VAqua rely on turning off volatile buffering? Or your comment might (?) make more sense if it's for my other PR (for 8303950) that relates to this method: jdk/src/java.desktop/share/classes/java/awt/Window.java Lines 3946 to 3960 in a8871f5
(Also: thanks for mentioning VAqua! I'll check it out. I was a big fan of Werner's Quaqua work a decade ago at another job.) |
Mailing list message from Alan Snyder on client-libs-dev: I may be confused, too! I haven?t kept close track of the various issues and PRs. My comment relates to a perhaps old idea of using a graphics rendering hint to suppress painting the window background. VAqua knows nothing about volatile buffering, nor do I. :-) -------------- next part -------------- |
mrserb recommended against this in a separate PR openjdk#13408 (comment)
@mickleness This pull request has been inactive for more than 4 weeks and will be automatically closed if another 4 weeks passes without any activity. To avoid this, simply add a new comment to the pull request. Feel free to ask for assistance if you need help with progressing this pull request towards integration! |
@mickleness This pull request has been inactive for more than 8 weeks and will now be automatically closed. If you would like to continue working on this pull request in the future, feel free to reopen it! This can be done using the |
What is the fate of auto-closed PRs? That is: as long as I don't delete this branch in my repo will this be available for future reference if anyone dusts off this ticket in the future? |
The original write-up contains two complaints:
I recommend splitting this up into separate tickets.
This PR addresses the first (probably most offensive) issue: the window is now transparent.
I experimented with a change that resolves the second issue (image resolution) here:
90735b7
... that works, but IMO that looks riskier and should be part of a separate discussion.
I only have a Mac configured right now to test against, so I've confirmed the MTLGraphicsConfig and CGLGraphicsConfig changes. The other GraphicsConfig changes are identical, but I haven't confirmed that this new test passes in those environments. (I did confirm that those GraphicsConfig files appear to support getColorModel(Transparency.TRANSLUCENT), so I'm optimistic they'll be OK.
Progress
Integration blocker
Issue
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/13196/head:pull/13196
$ git checkout pull/13196
Update a local copy of the PR:
$ git checkout pull/13196
$ git pull https://git.openjdk.org/jdk.git pull/13196/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 13196
View PR using the GUI difftool:
$ git pr show -t 13196
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/13196.diff
Webrev
Link to Webrev Comment