From f27fd17b59b2241421d469f7365b7d74a6f0dc7f Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Wed, 10 Sep 2025 21:38:56 -0700 Subject: [PATCH] Apply lens distance ratio --- kwin/src/qml/CameraController.qml | 18 ++++++++++-------- kwin/src/qml/main.qml | 1 + 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/kwin/src/qml/CameraController.qml b/kwin/src/qml/CameraController.qml index ce69a9c..0b7eba6 100644 --- a/kwin/src/qml/CameraController.qml +++ b/kwin/src/qml/CameraController.qml @@ -5,6 +5,7 @@ Item { id: root required property Camera camera + required property var fovDetails property var displayResolution: effect.displayResolution property real diagonalFOV: effect.diagonalFOV @@ -19,8 +20,14 @@ Item { id: displays } - function updateCamera(rotation) { - camera.eulerRotation = rotation; + function updateCamera() { + camera.eulerRotation = applyLookAhead( + effect.imuRotations[0], + effect.imuRotations[1], + effect.imuTimeElapsedMs, + lookAheadMS(effect.imuTimestamp, effect.lookAheadConfig, -1) + ); + camera.position = effect.imuRotations[0].times(Qt.vector3d(0, 0, -fovDetails.lensDistancePixels)); } // how far to look ahead is how old the IMU data is plus a constant that is either the default for this device or an override @@ -68,12 +75,7 @@ Item { running: true onTriggered: { if (effect.imuRotations && effect.imuRotations.length > 0) { - updateCamera(applyLookAhead( - effect.imuRotations[0], - effect.imuRotations[1], - effect.imuTimeElapsedMs, - lookAheadMS(effect.imuTimestamp, effect.lookAheadConfig, -1) - )); + updateCamera(); } } } diff --git a/kwin/src/qml/main.qml b/kwin/src/qml/main.qml index d99b850..5be9f5c 100644 --- a/kwin/src/qml/main.qml +++ b/kwin/src/qml/main.qml @@ -122,6 +122,7 @@ Item { id: cameraController anchors.fill: parent camera: camera + fovDetails: fovDetails } } }