The platformWidth / platformHeight can also be different from the width
/ height on Linux with Hi-DPI scaling, at least in theory, since the
Screen constructor is called using different parameters for the platform
values. Mac is different because of how the retina scaling is handled on
macOS -- even on a retina display, platformWidth/platformHeight ==
width/height and platformScale{X,Y} == 1.
-- Kevin
On 6/3/2021 2:38 PM, John Hendrikx wrote:
Perhaps an example will help from my machine.
I'm running on a 4k screen at 150% scaling. These are the values:
outputScaleX = 1.5
outputScaleY = 1.5
platformScaleX = 1.5
platformScaleY = 1.5
width = 2560
height = 1440
visibleWidth = 2560
visibleHeight = 1400
platformWidth = 3840
platformHeight = 2160
So it seems that platform values report the actual resolution of the
Screen / Monitor. Probably they're what is being reported by Windows
and stored there by JavaFX to derive the actual width/height it should
use while taking scaling into account.
You didn't ask about the difference between visibleHeight and height.
But just incase, the visibleHeight is 40 pixels smaller than height,
as this space is taken up by the task bar.
--John
On 01/06/2021 13:27, Johan Vos wrote:
Hi,
com.sun.glass.ui.Screen has 3 width (and height) parameters, each with a
getter:
* width
* visibleWidth
* platformWidth
The latter seems to be used only in the windows build,
via screen.containsPlatformRect and screen.portionIntersectsPlatformRect
I don't really understand what the goal of this platformWidth/Height
is. It
seems a bit artificial if this is not used on the other platforms, but I
might be missing the bigger purpose of this?
- Johan