diff --git a/build.gradle.kts b/build.gradle.kts index 0b369b00..d54249de 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -75,9 +75,7 @@ application { "--add-opens", "javafx.graphics/javafx.scene.image=ALL-UNNAMED", "--add-exports", "javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED", "-Xms2g", - "-Xmx4g", - "-Dglass.win.uiScale=1.0", - "-Dsun.java2d.uiScale=1.0" + "-Xmx4g" ) } diff --git a/src/main/kotlin/solve/rendering/canvas/SceneCanvas.kt b/src/main/kotlin/solve/rendering/canvas/SceneCanvas.kt index f012f8db..8b868598 100644 --- a/src/main/kotlin/solve/rendering/canvas/SceneCanvas.kt +++ b/src/main/kotlin/solve/rendering/canvas/SceneCanvas.kt @@ -4,7 +4,6 @@ import io.github.palexdev.materialfx.controls.MFXContextMenu import javafx.scene.Node import javafx.scene.input.Clipboard import javafx.scene.input.ClipboardContent -import javafx.stage.Screen import org.joml.Vector2f import org.joml.Vector2i import solve.parsers.planes.ImagePlanesParser @@ -47,6 +46,11 @@ import solve.rendering.engine.scene.Scene as EngineScene * Provides interface for managing frames and changing visualization settings. */ class SceneCanvas : OpenGLCanvas() { + val scaledIdentityFramesSizeScale: Float + get() { + return IdentityFramesSizeScale * (canvas.scene?.window?.renderScaleX?.toFloat() ?: 1f) + } + private var sceneController: SceneController? = null private var engineScene: EngineScene? = null @@ -83,6 +87,7 @@ class SceneCanvas : OpenGLCanvas() { init { initializeCanvasEvents() + ServiceLocator.registerService(this) } fun setNewScene(scene: Scene) { @@ -485,9 +490,6 @@ class SceneCanvas : OpenGLCanvas() { companion object { const val IdentityFramesSizeScale = 1.605f - val scaledIdentityFramesSizeScale: Float - get() = IdentityFramesSizeScale * Screen.getPrimary().outputScaleX.toFloat() - private val landmarkInteractionMouseButton = MouseButton.Left private val contextMenuMouseButton = MouseButton.Right diff --git a/src/main/kotlin/solve/scene/controller/SceneController.kt b/src/main/kotlin/solve/scene/controller/SceneController.kt index fa3009b1..b01f58cf 100644 --- a/src/main/kotlin/solve/scene/controller/SceneController.kt +++ b/src/main/kotlin/solve/scene/controller/SceneController.kt @@ -198,7 +198,7 @@ class SceneController : Controller() { max( installedMinScale, sceneWidthProperty.value / ((scene.frameSize.width + SceneView.framesMargin) * columnsNumber) * - SceneCanvas.scaledIdentityFramesSizeScale + (ServiceLocator.getService()?.scaledIdentityFramesSizeScale ?: 1f) ), DefaultMaxScale )