> 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 one 
additional commit since the last revision:

  Addressed comments from review

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

Changes:
  - all: https://git.openjdk.java.net/jfx/pull/308/files
  - new: https://git.openjdk.java.net/jfx/pull/308/files/969f23f0..12db9288

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jfx&pr=308&range=05
 - incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=308&range=04-05

  Stats: 12 lines in 2 files changed: 7 ins; 0 del; 5 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

Reply via email to