RFR: 8303904: Transparent Windows Paint Wrong (Opaque) w/o Volatile Buffering

Jeremy duke at openjdk.org
Mon Mar 27 21:52:16 UTC 2023


The original write-up contains two complaints:
1. The window is opaque, so pixels that should be transparent are black.
2. The window is the wrong resolution. On a 200% resolution monitor it renders as if it were 100% (so it looks pixelated).

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:
https://github.com/openjdk/jdk/commit/90735b7c01c66268776998c1b6aedc3250427002

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

-------------

Commit messages:
 - 8303904: fixing compiler `cannot find symbol` errors
 - 8303904: cleaning up comment
 - 8303904: apply same solution to other GraphicsConfigurations
 - 8303904: resolve failing bug8308904_OGL test on Mac
 - 8303904: adding failing unit test for OpenGL on Mac
 - 8303904: updating instruction text to reflect narrowed focus of this branch
 - 8303904: rolling back prev createAcceleratedImage commit
 - 8303904: change createAcceleratedImage to return a potentially high-res image
 - 8303904: use Transparency.TRANSLUCENT for non-opaque windows
 - 8303904: Add failing unit test
 - ... and 4 more: https://git.openjdk.org/jdk/compare/98a7a60f...4284d4cd

Changes: https://git.openjdk.org/jdk/pull/13196/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13196&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8303904
  Stats: 225 lines in 7 files changed: 220 ins; 0 del; 5 mod
  Patch: https://git.openjdk.org/jdk/pull/13196.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/13196/head:pull/13196

PR: https://git.openjdk.org/jdk/pull/13196



More information about the client-libs-dev mailing list