modules/graphics/src/main/java/com/sun/prism/PresentableState.java
Print this page
@@ -48,13 +48,13 @@
protected int windowX, windowY;
protected float windowAlpha;
protected long nativeWindowHandle;
protected long nativeView;
protected int viewWidth, viewHeight;
- protected float renderScale;
+ protected float renderScaleX, renderScaleY;
protected int renderWidth, renderHeight;
- protected float outputScale;
+ protected float outputScaleX, outputScaleY;
protected int outputWidth, outputHeight;
protected int screenHeight;
protected int screenWidth;
protected boolean isWindowVisible;
protected boolean isWindowMinimized;
@@ -130,16 +130,29 @@
/**
* @return Screen.getScale
*
* May be called on any thread
*/
- public float getRenderScale() {
- return renderScale;
+ public float getRenderScaleX() {
+ return renderScaleX;
}
- public float getOutputScale() {
- return outputScale;
+ /**
+ * @return Screen.getScale
+ *
+ * May be called on any thread
+ */
+ public float getRenderScaleY() {
+ return renderScaleY;
+ }
+
+ public float getOutputScaleX() {
+ return outputScaleX;
+ }
+
+ public float getOutputScaleY() {
+ return outputScaleY;
}
/**
* @return the window's alpha level
*
@@ -303,29 +316,34 @@
return (fromScale == toScale)
? dim
: (int) Math.ceil(dim * toScale / fromScale);
}
- protected void update(float viewScale, float renderScale, float outputScale) {
- this.renderScale = renderScale;
- this.outputScale = outputScale;
- if (renderScale == viewScale) {
+ protected void update(float viewScaleX, float viewScaleY,
+ float renderScaleX, float renderScaleY,
+ float outputScaleX, float outputScaleY)
+ {
+ this.renderScaleX = renderScaleX;
+ this.renderScaleY = renderScaleY;
+ this.outputScaleX = outputScaleX;
+ this.outputScaleY = outputScaleY;
+ if (renderScaleX == viewScaleX && renderScaleY == viewScaleY) {
renderWidth = viewWidth;
renderHeight = viewHeight;
} else {
- renderWidth = scale(viewWidth, viewScale, renderScale);
- renderHeight = scale(viewHeight, viewScale, renderScale);
+ renderWidth = scale(viewWidth, viewScaleX, renderScaleX);
+ renderHeight = scale(viewHeight, viewScaleY, renderScaleY);
}
- if (outputScale == viewScale) {
+ if (outputScaleX == viewScaleX && outputScaleY == viewScaleY) {
outputWidth = viewWidth;
outputHeight = viewHeight;
- } else if (outputScale == renderScale) {
+ } else if (outputScaleX == renderScaleX && outputScaleY == renderScaleY) {
outputWidth = renderWidth;
outputHeight = renderHeight;
} else {
- outputWidth = scale(viewWidth, viewScale, outputScale);
- outputHeight = scale(viewHeight, viewScale, outputScale);
+ outputWidth = scale(viewWidth, viewScaleX, outputScaleX);
+ outputHeight = scale(viewHeight, viewScaleY, outputScaleY);
}
}
/** Updates the state of this object based on the current state of its
* nativeWindow.
@@ -349,13 +367,13 @@
nativeView = view.getNativeView();
nativeWindowHandle = window.getNativeWindow();
isClosed = view.isClosed();
isWindowVisible = window.isVisible();
isWindowMinimized = window.isMinimized();
- update(window.getPlatformScale(),
- window.getRenderScale(),
- window.getOutputScale());
+ update(window.getPlatformScaleX(), window.getPlatformScaleY(),
+ window.getRenderScaleX(), window.getRenderScaleY(),
+ window.getOutputScaleX(), window.getOutputScaleY());
Screen screen = window.getScreen();
if (screen != null) {
// note only used by Embedded Z order painting
// !hasWindowManager so should be safe to ignore
// when null, most likely because of "In Browswer"