On Tue, 24 Mar 2026 23:45:35 GMT, Michael Strauß <[email protected]> wrote:
>> When a non-opaque scene fill color is used with a stage style other than >> `StageStyle.TRANSPARENT`, the actual fill color is always white. This >> doesn't work well when the scene uses a dark color scheme. A practical >> solution is to allow non-opaque scene fill colors, and blend them on top of >> a white or black background (depending on color scheme) to derive an opaque >> color that adapts intuitively to the color scheme. >> >> To test this, simply create a scene that uses a non-opaque fill color and >> observe the scene background when the color scheme is changed. >> >> This PR includes a system test, run it with: >> >> ./gradlew -PFULL_TEST=true -PUSE_ROBOT=true :systemTests:test --tests >> test.robot.javafx.scene.SceneFillTest.testSceneFill > > Michael Strauß has updated the pull request with a new target base due to a > merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains 10 additional > commits since the last revision: > > - comment > - Merge branch 'master' into feature/scene-fill > - use ChangeListener instead of InvalidationListener > - import > - check FX thread > - Update window background when scene fill changes > - Update window background when ColorScheme changes > - review comments > - Clear background to dominant fill color > - Adjust scene background to color scheme modules/javafx.graphics/src/main/java/com/sun/javafx/image/ImageUtils.java line 113: > 111: } > 112: > 113: /** I'm onboard with the rest of this PR but this big chunk of code is above my pay grade. Is the conversion from sRGB to CIELAB correct? Is it a correct implementation of k-means clustering? Is it even valid to perform clustering for CIELAB values? Rather than try to answer these questions I generally go get a snack and put off the review for another week. ------------- PR Review Comment: https://git.openjdk.org/jfx/pull/2068#discussion_r3125394223
