> This PR aims to fix the blurriness to sometimes affects some controls (such > as TextArea) in a scene when rendered with a scaling factor that is not an > integer (typically when viewed on a HiDPI screen with a 125%, 150% or 175% > output scaling). > > Please note that regardless of what the JBS issue (and therefore the title of > this PR) states, this does not appear to be a Windows only issue as I have > observed the same issue on Linux (Ubuntu 20.04). > > The following conditions are necessary for the blurriness to appear, but do > not guarantee that it will: > > - The node, or one of its parents, must have set `Node::cacheProperty` to > `true` > > - The scaling factor (as detected automatically or explicitly set via > glass.win/gtk.uiScale) must be a non integer number (e.g. 1.25, 1.5, 175) > > - The effective layout X or Y coordinates for the cached node must be != 0; > > Under these conditions, the translate coordinates for the transform used when > the cached image for a node is rendered to the screen may be non integer > numbers, which is the cause for the blurriness. > > Based on these observations, this PR fixes the issue by simply rounding the > translate coordinates (using `Math.round`) before the transform is applied in > `renderCacheToScreen()` and as far as I can tell, it fixes the blurriness in > all the previously affected applications (both trivial test cases or with > complex scenegraphs) and does not appear to introduce other noticeable visual > artifacts. > > Still, there might be a better place somewhere else higher up in the call > chain where this should be addressed as it could maybe be the root cause for > other rendering glitches, though I'm not yet familiar enough with the code to > see if it is really the case.
Frederic Thevenet has updated the pull request incrementally with two additional commits since the last revision: - Fixed region doesn't account for screen scalling when enforcing snap-to-pixel. - Revert "Round up the translation coordinates when rendering a cached node to screen to prevent it from appearing blurry" This reverts commit cce931d3 ------------- Changes: - all: https://git.openjdk.java.net/jfx/pull/308/files - new: https://git.openjdk.java.net/jfx/pull/308/files/cce931d3..4087c062 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jfx&pr=308&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=308&range=00-01 Stats: 13 lines in 2 files changed: 0 ins; 6 del; 7 mod Patch: https://git.openjdk.java.net/jfx/pull/308.diff Fetch: git fetch https://git.openjdk.java.net/jfx pull/308/head:pull/308 PR: https://git.openjdk.java.net/jfx/pull/308