From 4e90c33ccc201ecdc5873a13e4abe06b579671f5 Mon Sep 17 00:00:00 2001 From: Samuel Pantze <83579186+smlpt@users.noreply.github.com> Date: Tue, 7 May 2024 17:04:24 +0200 Subject: [PATCH 1/2] SciView: fix VR toggling changes to stereo rendering --- src/main/kotlin/sc/iview/SciView.kt | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/sc/iview/SciView.kt b/src/main/kotlin/sc/iview/SciView.kt index 534e3b4f..9c7a1d46 100644 --- a/src/main/kotlin/sc/iview/SciView.kt +++ b/src/main/kotlin/sc/iview/SciView.kt @@ -1668,6 +1668,8 @@ class SciView : SceneryBase, CalibratedRealInterval { * Enable VR rendering */ fun toggleVRRendering() { + var renderer = renderer ?: return + vrActive = !vrActive val cam = scene.activeObserver as? DetachedHeadCamera ?: return var ti: TrackerInput? = null @@ -1690,25 +1692,29 @@ class SciView : SceneryBase, CalibratedRealInterval { } if (vrActive && ti != null) { cam.tracker = ti + logger.info("tracker set") } else { cam.tracker = null } - renderer!!.pushMode = false + renderer.pushMode = false + // we need to force reloading the renderer as the HMD might require device or instance extensions if (renderer is VulkanRenderer && hmdAdded) { - replaceRenderer((renderer as VulkanRenderer).javaClass.simpleName, true, true) - (renderer as VulkanRenderer).toggleVR() - while (!(renderer as VulkanRenderer).initialized /* || !getRenderer().getFirstImageReady()*/) { - logger.debug("Waiting for renderer reinitialisation") + replaceRenderer(renderer.javaClass.simpleName, true, true) + + logger.info("renderer replaced") + while (renderer.initialized == false || renderer.firstImageReady == false) { + renderer = this.renderer!! + logger.info("Waiting for renderer reinitialisation (init: ${renderer.initialized} ready: ${renderer.firstImageReady}") try { Thread.sleep(200) } catch (e: InterruptedException) { e.printStackTrace() } } - } else { - renderer!!.toggleVR() } + + renderer.toggleVR() } /** From c1b3831a9606934a158a6631dcad316120647014 Mon Sep 17 00:00:00 2001 From: Samuel Pantze <83579186+smlpt@users.noreply.github.com> Date: Tue, 21 May 2024 10:06:09 +0200 Subject: [PATCH 2/2] SciView: PR cleanup, removed logging --- src/main/kotlin/sc/iview/SciView.kt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/sc/iview/SciView.kt b/src/main/kotlin/sc/iview/SciView.kt index 9c7a1d46..980a7a4b 100644 --- a/src/main/kotlin/sc/iview/SciView.kt +++ b/src/main/kotlin/sc/iview/SciView.kt @@ -1692,7 +1692,6 @@ class SciView : SceneryBase, CalibratedRealInterval { } if (vrActive && ti != null) { cam.tracker = ti - logger.info("tracker set") } else { cam.tracker = null } @@ -1701,8 +1700,6 @@ class SciView : SceneryBase, CalibratedRealInterval { // we need to force reloading the renderer as the HMD might require device or instance extensions if (renderer is VulkanRenderer && hmdAdded) { replaceRenderer(renderer.javaClass.simpleName, true, true) - - logger.info("renderer replaced") while (renderer.initialized == false || renderer.firstImageReady == false) { renderer = this.renderer!! logger.info("Waiting for renderer reinitialisation (init: ${renderer.initialized} ready: ${renderer.firstImageReady}") @@ -1712,9 +1709,9 @@ class SciView : SceneryBase, CalibratedRealInterval { e.printStackTrace() } } - } - renderer.toggleVR() + renderer.toggleVR() + } } /**