From 17f41edfcc8068f4533ca830d72d9ef7543661ce Mon Sep 17 00:00:00 2001 From: Fro Zen <38363715+Frozenreflex@users.noreply.github.com> Date: Sun, 14 Sep 2025 19:46:10 -0500 Subject: [PATCH 01/13] Allow manual build --- .github/workflows/build-on-push.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-on-push.yml b/.github/workflows/build-on-push.yml index 2dc3a28..3b6a050 100644 --- a/.github/workflows/build-on-push.yml +++ b/.github/workflows/build-on-push.yml @@ -4,7 +4,10 @@ name: Build on push # Controls when the action will run. Triggers the workflow on push or pull request # events, but only for the master branch we'll create .zip files -on: [push, pull_request] +on: + push: + pull_request: + workflow_dispatch: jobs: build: From 90bde3cfa92b676d79d59ed711c337ea59bfa823 Mon Sep 17 00:00:00 2001 From: Fro Zen <38363715+Frozenreflex@users.noreply.github.com> Date: Sun, 14 Sep 2025 20:06:59 -0500 Subject: [PATCH 02/13] Update build-on-push.yml --- .github/workflows/build-on-push.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-on-push.yml b/.github/workflows/build-on-push.yml index 3b6a050..e3a8b55 100644 --- a/.github/workflows/build-on-push.yml +++ b/.github/workflows/build-on-push.yml @@ -8,6 +8,11 @@ on: push: pull_request: workflow_dispatch: + inputs: + publish-release: + description: 'Publish Release' + type: boolean + default: false jobs: build: @@ -73,7 +78,7 @@ jobs: name: Assemble release bundle runs-on: ubuntu-22.04 needs: build - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + if: (github.event_name == 'push' && startsWith(github.ref, 'refs/tags')) || inputs.publish-release == 'true' # Steps represent a sequence of tasks that will be executed as part of the job steps: From f999abf633963e5d150cebb31cefe2b2d4388d9e Mon Sep 17 00:00:00 2001 From: Fro Zen <38363715+Frozenreflex@users.noreply.github.com> Date: Sun, 14 Sep 2025 20:11:42 -0500 Subject: [PATCH 03/13] Update build-on-push.yml --- .github/workflows/build-on-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-on-push.yml b/.github/workflows/build-on-push.yml index e3a8b55..3831eac 100644 --- a/.github/workflows/build-on-push.yml +++ b/.github/workflows/build-on-push.yml @@ -113,4 +113,4 @@ jobs: omitNameDuringUpdate: true omitBodyDuringUpdate: true token: ${{ secrets.GITHUB_TOKEN }} - if: startsWith(github.ref, 'refs/tags') + if: startsWith(github.ref, 'refs/tags') || inputs.publish-release == 'true' From d5abf779d5f4799a894fa8605591c197f0ba2cc3 Mon Sep 17 00:00:00 2001 From: Fro Zen <38363715+Frozenreflex@users.noreply.github.com> Date: Mon, 15 Sep 2025 20:59:38 -0500 Subject: [PATCH 04/13] Update build-on-push.yml --- .github/workflows/build-on-push.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/build-on-push.yml b/.github/workflows/build-on-push.yml index 3831eac..3e650c0 100644 --- a/.github/workflows/build-on-push.yml +++ b/.github/workflows/build-on-push.yml @@ -5,14 +5,7 @@ name: Build on push # Controls when the action will run. Triggers the workflow on push or pull request # events, but only for the master branch we'll create .zip files on: - push: - pull_request: workflow_dispatch: - inputs: - publish-release: - description: 'Publish Release' - type: boolean - default: false jobs: build: @@ -78,7 +71,6 @@ jobs: name: Assemble release bundle runs-on: ubuntu-22.04 needs: build - if: (github.event_name == 'push' && startsWith(github.ref, 'refs/tags')) || inputs.publish-release == 'true' # Steps represent a sequence of tasks that will be executed as part of the job steps: @@ -113,4 +105,3 @@ jobs: omitNameDuringUpdate: true omitBodyDuringUpdate: true token: ${{ secrets.GITHUB_TOKEN }} - if: startsWith(github.ref, 'refs/tags') || inputs.publish-release == 'true' From e928c2fb449fd5a2a0bf58b45512166df61b10f1 Mon Sep 17 00:00:00 2001 From: Fro Zen <38363715+Frozenreflex@users.noreply.github.com> Date: Mon, 15 Sep 2025 21:19:20 -0500 Subject: [PATCH 05/13] why --- .github/workflows/build-on-push.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-on-push.yml b/.github/workflows/build-on-push.yml index 3e650c0..a781733 100644 --- a/.github/workflows/build-on-push.yml +++ b/.github/workflows/build-on-push.yml @@ -97,11 +97,8 @@ jobs: - name: Zip asset run: | zip -qq -r godot-openvr.zip . - - name: Create and upload asset - uses: ncipollo/release-action@v1 + - name: Upload artifact + uses: actions/upload-artifact@v4 with: - allowUpdates: true - artifacts: "godot-openvr.zip" - omitNameDuringUpdate: true - omitBodyDuringUpdate: true - token: ${{ secrets.GITHUB_TOKEN }} + name: "godot-openvr.zip" + path: "godot-openvr.zip" From 53bd5a1b87b616fdb940d78f0151ea4d924f5998 Mon Sep 17 00:00:00 2001 From: Fro Zen <38363715+Frozenreflex@users.noreply.github.com> Date: Tue, 16 Sep 2025 14:52:55 -0500 Subject: [PATCH 06/13] Update build-on-push.yml --- .github/workflows/build-on-push.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-on-push.yml b/.github/workflows/build-on-push.yml index a781733..ce5714e 100644 --- a/.github/workflows/build-on-push.yml +++ b/.github/workflows/build-on-push.yml @@ -43,10 +43,12 @@ jobs: - name: Run the build for godot-cpp run: | scons -C godot-cpp platform=${{ matrix.platform }} -j2 target=template_release generate_bindings=yes bits=64 + scons -C godot-cpp platform=${{ matrix.platform }} -j2 target=template_debug generate_bindings=yes bits=64 - name: Run the build for godot_openvr run: | scons platform=${{ matrix.platform }} -j2 target=release bits=64 + scons platform=${{ matrix.platform }} -j2 target=debug bits=64 # There's no option to preserve the path structure on the upload action, so we just # treat each asset as its respective bin/ subfolder and put it in the right place in From e8f617db5a34df15f1cfd9ec20ee4d7109a23ca6 Mon Sep 17 00:00:00 2001 From: Fro Zen <38363715+Frozenreflex@users.noreply.github.com> Date: Fri, 19 Sep 2025 15:34:04 -0500 Subject: [PATCH 07/13] Update build-on-push.yml --- .github/workflows/build-on-push.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-on-push.yml b/.github/workflows/build-on-push.yml index ce5714e..ad3bab8 100644 --- a/.github/workflows/build-on-push.yml +++ b/.github/workflows/build-on-push.yml @@ -43,12 +43,12 @@ jobs: - name: Run the build for godot-cpp run: | scons -C godot-cpp platform=${{ matrix.platform }} -j2 target=template_release generate_bindings=yes bits=64 - scons -C godot-cpp platform=${{ matrix.platform }} -j2 target=template_debug generate_bindings=yes bits=64 + scons -C godot-cpp platform=${{ matrix.platform }} -j2 target=template_debug generate_bindings=yes bits=64 debug_symbols=yes - name: Run the build for godot_openvr run: | scons platform=${{ matrix.platform }} -j2 target=release bits=64 - scons platform=${{ matrix.platform }} -j2 target=debug bits=64 + scons platform=${{ matrix.platform }} -j2 target=debug bits=64 debug_symbols=yes # There's no option to preserve the path structure on the upload action, so we just # treat each asset as its respective bin/ subfolder and put it in the right place in From c3523c58f1e54d553606c647835a787ffe8aadc8 Mon Sep 17 00:00:00 2001 From: Fro Zen <38363715+Frozenreflex@users.noreply.github.com> Date: Wed, 1 Oct 2025 17:36:22 -0500 Subject: [PATCH 08/13] Fix godot_openvr.gdextension --- demo/addons/godot-openvr/godot_openvr.gdextension | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/demo/addons/godot-openvr/godot_openvr.gdextension b/demo/addons/godot-openvr/godot_openvr.gdextension index 3889871..3d84e7f 100644 --- a/demo/addons/godot-openvr/godot_openvr.gdextension +++ b/demo/addons/godot-openvr/godot_openvr.gdextension @@ -5,10 +5,10 @@ compatibility_minimum = 4.1 [libraries] -linux.64.debug="res://addons/godot-openvr/bin/x11/libgodot_openvr_debug.so" -linux.64.release="res://addons/godot-openvr/bin/x11/libgodot_openvr_release.so" -windows.64.debug="res://addons/godot-openvr/bin/win64/libgodot_openvr_debug.dll" -windows.64.release="res://addons/godot-openvr/bin/win64/libgodot_openvr_release.dll" +linux.x86_64.debug="res://addons/godot-openvr/bin/x11/libgodot_openvr_debug.so" +linux.x86_64.release="res://addons/godot-openvr/bin/x11/libgodot_openvr_release.so" +windows.x86_64.debug="res://addons/godot-openvr/bin/win64/libgodot_openvr_debug.dll" +windows.x86_64.release="res://addons/godot-openvr/bin/win64/libgodot_openvr_release.dll" [dependencies] From f1793354bb3c10c57dbf9658756677f9f837f885 Mon Sep 17 00:00:00 2001 From: Fro Zen <38363715+Frozenreflex@users.noreply.github.com> Date: Sat, 4 Oct 2025 16:26:05 -0500 Subject: [PATCH 09/13] Update godot_openvr.gdextension --- demo/addons/godot-openvr/godot_openvr.gdextension | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/demo/addons/godot-openvr/godot_openvr.gdextension b/demo/addons/godot-openvr/godot_openvr.gdextension index 3d84e7f..bbd63d0 100644 --- a/demo/addons/godot-openvr/godot_openvr.gdextension +++ b/demo/addons/godot-openvr/godot_openvr.gdextension @@ -12,5 +12,5 @@ windows.x86_64.release="res://addons/godot-openvr/bin/win64/libgodot_openvr_rele [dependencies] -linux.64=[ "res://addons/godot-openvr/bin/x11/libopenvr_api.so" ] -windows.64=[ "res://addons/godot-openvr/bin/win64/openvr_api.dll" ] +linux.x86_64={ "res://addons/godot-openvr/bin/x11/libopenvr_api.so" : "" } +windows.x86_64={ "res://addons/godot-openvr/bin/win64/openvr_api.dll" : "" } From a525d0392dbecbf073cc89e19fbed6c07910ae3d Mon Sep 17 00:00:00 2001 From: Fro Zen <38363715+Frozenreflex@users.noreply.github.com> Date: Mon, 13 Oct 2025 15:47:24 -0500 Subject: [PATCH 10/13] Update openvr_data.cpp --- src/open_vr/openvr_data.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/open_vr/openvr_data.cpp b/src/open_vr/openvr_data.cpp index 1f22d94..486ec2d 100644 --- a/src/open_vr/openvr_data.cpp +++ b/src/open_vr/openvr_data.cpp @@ -245,14 +245,7 @@ bool openvr_data::initialise() { // If we found an action manifest, use it. If not, move on and assume one will be set later. if (manifest_path.length() != 0) { - String absolute_path; - if (os->has_feature("editor")) { - absolute_path = project_settings->globalize_path(manifest_path); - } else { - absolute_path = exec_path.path_join(manifest_path); - } - - if (!set_action_manifest_path(absolute_path)) { + if (!set_action_manifest_path(manifest_path)) { success = false; } } From 21cd170a301ffea363b0ff5fd9c4b04d310c3bc6 Mon Sep 17 00:00:00 2001 From: Fro Zen <38363715+Frozenreflex@users.noreply.github.com> Date: Mon, 13 Oct 2025 16:26:45 -0500 Subject: [PATCH 11/13] Update openvr_data.cpp --- src/open_vr/openvr_data.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/open_vr/openvr_data.cpp b/src/open_vr/openvr_data.cpp index 486ec2d..f59c5e0 100644 --- a/src/open_vr/openvr_data.cpp +++ b/src/open_vr/openvr_data.cpp @@ -245,6 +245,7 @@ bool openvr_data::initialise() { // If we found an action manifest, use it. If not, move on and assume one will be set later. if (manifest_path.length() != 0) { + UtilityFunctions::print(manifest_path); if (!set_action_manifest_path(manifest_path)) { success = false; } From 03754ddadfb9d0173da8a3aca73e9ec827d11c53 Mon Sep 17 00:00:00 2001 From: Fro Zen <38363715+Frozenreflex@users.noreply.github.com> Date: Mon, 13 Oct 2025 16:57:28 -0500 Subject: [PATCH 12/13] Update openvr_data.cpp --- src/open_vr/openvr_data.cpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/open_vr/openvr_data.cpp b/src/open_vr/openvr_data.cpp index f59c5e0..ec196a5 100644 --- a/src/open_vr/openvr_data.cpp +++ b/src/open_vr/openvr_data.cpp @@ -227,9 +227,10 @@ bool openvr_data::initialise() { // check 3 locations in order // 1) check if we have an action folder alongside our executable (runtime deployed actions) String path = exec_path.path_join("actions/actions.json"); + UtilityFunctions::print(path); if (directory->file_exists(path)) { manifest_path = path; - } else { + } else if (os->has_feature("editor")) { // 2) else check if we have an action folder in our project folder (custom user actions in development) path = "res://actions/actions.json"; if (directory->file_exists(path)) { @@ -243,12 +244,20 @@ bool openvr_data::initialise() { } } - // If we found an action manifest, use it. If not, move on and assume one will be set later. - if (manifest_path.length() != 0) { - UtilityFunctions::print(manifest_path); - if (!set_action_manifest_path(manifest_path)) { - success = false; - } + // If we found an action manifest, use it. If not, move on and assume one will be set later. + if (manifest_path.length() != 0) { + String absolute_path; + if (os->has_feature("editor")) { + absolute_path = project_settings->globalize_path(manifest_path); + } else { + absolute_path = manifest_path; + } + + if (!set_action_manifest_path(absolute_path)) { + success = false; + } + } else { + UtilityFunctions::print("Action manifest not found, load it later"); } } From 2727d1c45c4d90c3075ece9607d08399bb6e3f96 Mon Sep 17 00:00:00 2001 From: Fro Zen <38363715+Frozenreflex@users.noreply.github.com> Date: Mon, 27 Oct 2025 17:10:53 -0500 Subject: [PATCH 13/13] Update openvr_data.cpp --- src/open_vr/openvr_data.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/open_vr/openvr_data.cpp b/src/open_vr/openvr_data.cpp index 499d19b..9a4e35a 100644 --- a/src/open_vr/openvr_data.cpp +++ b/src/open_vr/openvr_data.cpp @@ -325,6 +325,8 @@ XRPose::TrackingConfidence openvr_data::confidence_from_tracking_result(vr::ETra // Convert event data to Variants and emit a signal on the given source. void openvr_data::_handle_event(Node *source, vr::VREvent_t event) { + //This method crashes on line 340 (if source has signal) and 389 (emit signal), disabling this has seemingly no averse effects + /* if (!openvr_data::event_signals.has(event.eventType)) { return; } @@ -485,6 +487,7 @@ void openvr_data::_handle_event(Node *source, vr::VREvent_t event) { tracker = tracked_devices[event.trackedDeviceIndex].tracker; } source->emit_signal(info.signal_name, event.eventAgeSeconds, tracker, data); + */ } void openvr_data::process() {