From 9cfb19284ab53b94258dde3b3ae273968324c999 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Sun, 21 Dec 2025 13:47:44 -0800 Subject: [PATCH] Remove lens vector usage from Breezy GNOME when 6DoF position is provided --- gnome/src/extension.js | 10 +++++++++- gnome/src/virtualdisplaysactor.js | 16 ++++++++-------- modules/XRLinuxDriver | 2 +- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/gnome/src/extension.js b/gnome/src/extension.js index 1cd35f1..d13a743 100644 --- a/gnome/src/extension.js +++ b/gnome/src/extension.js @@ -229,6 +229,13 @@ export default class BreezyDesktopExtension extends Extension { this._virtual_displays_overlay.set_position(targetMonitor.x, targetMonitor.y); this._virtual_displays_overlay.set_size(targetMonitor.width, targetMonitor.height); + const state = this._read_state(); + const pose_has_position = state['connected_device_pose_has_position'] === 'true'; + + Globals.logger.log_debug( + `connected_device_pose_has_position=${pose_has_position}` + ); + Globals.data_stream.refresh_data(); this._virtual_displays_actor = new VirtualDisplaysActor({ width: targetMonitor.width, @@ -248,7 +255,8 @@ export default class BreezyDesktopExtension extends Extension { framerate_cap: this.settings.get_double('framerate-cap'), imu_snapshots: Globals.data_stream.imu_snapshots, show_banner: Globals.data_stream.show_banner, - custom_banner_enabled: Globals.data_stream.custom_banner_enabled + custom_banner_enabled: Globals.data_stream.custom_banner_enabled, + pose_has_position }); this._virtual_displays_overlay.set_child(this._virtual_displays_actor); diff --git a/gnome/src/virtualdisplaysactor.js b/gnome/src/virtualdisplaysactor.js index 385d8b1..1f6504c 100644 --- a/gnome/src/virtualdisplaysactor.js +++ b/gnome/src/virtualdisplaysactor.js @@ -443,6 +443,13 @@ export const VirtualDisplaysActor = GObject.registerClass({ 'Latest IMU quaternion snapshots and epoch timestamp for when it was collected', GObject.ParamFlags.READWRITE ), + 'pose-has-position': GObject.ParamSpec.boolean( + 'pose-has-position', + 'Pose Has Position', + 'Whether the IMU snapshots contain pose data', + GObject.ParamFlags.READWRITE, + false + ), 'curved-display': GObject.ParamSpec.boolean( 'curved-display', 'Curved Display', @@ -457,13 +464,6 @@ export const VirtualDisplaysActor = GObject.registerClass({ GObject.ParamFlags.READWRITE, false ), - 'smooth-follow-toggle-epoch-ms': GObject.ParamSpec.uint64( - 'smooth-follow-toggle-epoch-ms', - 'Smooth follow toggle epoch time', - 'ms since epoch when smooth follow was toggled', - GObject.ParamFlags.READWRITE, - 0, Number.MAX_SAFE_INTEGER, 0 - ), 'show-banner': GObject.ParamSpec.boolean( 'show-banner', 'Show banner', @@ -903,7 +903,7 @@ export const VirtualDisplaysActor = GObject.registerClass({ const viewportYBegin = this.headset_display_as_viewport_center ? targetMonitor.y : allDisplaysCenterYBegin; this.fov_details = this._fov_details(); - this.lens_vector = [0.0, 0.0, -this.fov_details.lensDistancePixels]; + this.lens_vector = [0.0, 0.0, this.pose_has_position ? -this.fov_details.lensDistancePixels : 0.0]; this.monitor_placements = monitorsToPlacements( this.fov_details, diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver index 975e588..907032a 160000 --- a/modules/XRLinuxDriver +++ b/modules/XRLinuxDriver @@ -1 +1 @@ -Subproject commit 975e5886e35147c5c2a77920e73576de8ba66a5d +Subproject commit 907032a68f8f872f02082dbaa4f0f82b440291c3