Commit Graph

361 Commits (fe84b84b51df1ff6db658f521d1040aa563cedd0)

Author SHA1 Message Date
David Snopek 7d56b09f23 Expose a function to create textures from a native handle in the compatibility renderer 2024-09-19 09:05:32 +07:00
Bastiaan Olij 660ba0578d Cleanup of action map dialogs 2024-09-18 10:55:36 +07:00
A Thousand Ships dd6443193c
[Editor] Expose more editor settings to documentation
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
2024-09-12 15:34:49 +07:00
Rémi Verschelde 55f1ae0d41
Merge pull request #96868 from dsnopek/android-editor-launching-xr-app-fix
Fix launching XR apps from the Android editor
2024-09-12 09:25:46 +07:00
David Snopek 3afa26834a OpenXR: Support composition layers based on Android surfaces 2024-09-11 21:15:22 +07:00
David Snopek 30a63396e5 Fix launching XR apps from the Android editor 2024-09-11 14:31:54 +07:00
Fredia Huya-Kouadio 9dc0543da7 Improve support for XR projects 2024-09-06 00:35:50 +07:00
Bastiaan Olij 08ffa5d89e Add support for the debug utils extension in OpenXR 2024-08-27 12:07:01 +07:00
Rémi Verschelde fe15f47e22
Merge pull request #95929 from BastiaanOlij/openxr_fix_tracking_bit
OpenXR: Check correct status bit for hand tracking
2024-08-25 22:24:21 +07:00
David Snopek 11dd1f52ae Fix crash when calling OpenXRAPI::get_hand_tracker() and hand-tracking is disabled 2024-08-22 13:03:05 +07:00
Bastiaan Olij 1925d1e6f9 OpenXR: Check correct status bit for hand tracking 2024-08-22 11:57:56 +07:00
Rémi Verschelde d9e458515b
Merge pull request #91750 from BastiaanOlij/openxr_visibility_mask
OpenXR: Add support for visibility mask
2024-08-20 11:03:54 +07:00
Bastiaan Olij a8c5117777 Change hand tracking project settings and finetune show_when_tracked 2024-08-20 11:12:52 +07:00
Bastiaan Olij d9ab2c3195 OpenXR: Add support for visibility mask 2024-08-20 10:47:17 +07:00
Rémi Verschelde 6c76be2389
Merge pull request #95658 from akien-mga/openxr-fix-system-package
OpenXR: Fix support for building against distro package
2024-08-19 12:09:06 +07:00
Rémi Verschelde 63f4186f97
Merge pull request #95253 from Kimau/claire/logitech
OpenXR - Add Logitech Mx Ink Stylus Support
2024-08-19 12:09:01 +07:00
Rémi Verschelde 5cb01a0e09
Merge pull request #95227 from BastiaanOlij/openxr_1_1_38
Update OpenXR thirdparty library to 1.1.38
2024-08-17 00:46:27 +07:00
Rémi Verschelde 2206f5c6a4
OpenXR: Fix support for building against distro package 2024-08-16 22:51:09 +07:00
Rémi Verschelde 0f9925c0f9
Merge pull request #95542 from KoBeWi/go_bind_yourself
Remove empty `bind_methods()`
2024-08-16 14:35:51 +07:00
kobewi 065dd099dd Remove empty bind_methods() 2024-08-15 08:24:32 +07:00
David Snopek dfcff4ef46 OpenGL: Unconditionally do `glDisable(GL_FRAMEBUFFER_SRGB)` because we do our own sRGB conversion 2024-08-12 12:40:38 +07:00
Claire Blackshaw 19c7afee07 OpenXR - Support for the Logitech MxInk Stylus
In future work we may want to expose an isStylus or similar for
XR Trackers, though that is likely outside the scope of this commit
which is the core extension work.

Vendor Ref: https://logitech.github.io/mxink/OpenXR.html
2024-08-08 11:09:29 +07:00
Bastiaan Olij 1371b35b6e Update OpenXR thirdparty library to 1.1.38, changed OpenXR init to stay on 1.0.x 2024-08-07 13:58:05 +07:00
Haoyu Qiu 7cf9ed5f65 Fix several typos in the documentation 2024-08-02 08:42:20 +07:00
David Snopek 22a6303fa0 OpenXR: Fix enabling passthrough via environment blend mode in project settings 2024-07-19 19:04:51 +07:00
Rémi Verschelde 1e81a946cc
Merge pull request #94412 from dsnopek/xr-always-render
Always render when XR is enabled, even if no OS windows can draw
2024-07-18 15:38:14 +07:00
David Snopek 7a5a8597eb Always render when XR is enabled, even if no OS windows can draw 2024-07-17 08:19:21 +07:00
Bastiaan Olij 9e658e29d2 Fixed creating default action map 2024-07-17 12:04:06 +07:00
Rémi Verschelde b6434f2ac7
Merge pull request #94158 from BastiaanOlij/fix_action_map
OpenXR: Couple of small fixes on the action map
2024-07-11 23:16:51 +07:00
Bastiaan Olij 95b72631aa Couple of small fixes on the action map: now saves when CTRL-S is pressed/project is run, no longer looses content if OpenXR is not enabled, and a small documentation fix. 2024-07-11 20:06:46 +07:00
Bastiaan Olij bf8c85e13b Remove our ERR_ON_RENDER_THREAD guard, it is not reliable 2024-07-09 18:48:00 +07:00
David Snopek 06e81d9fe4 [OpenXR] Fix LOCAL_FLOOR emulation on HTC Vive XR Elite 2024-06-27 14:12:11 +07:00
A Thousand Ships fbb879debd
[Scene] Add `SceneStringNames::text/value_changed` 2024-06-19 09:44:38 +07:00
A Thousand Ships d9e2fc74c7
[Scene] Add `SceneStringNames::item_selected` 2024-06-19 09:39:05 +07:00
Bastiaan Olij 8eb130fdf0 OpenXR: Add HTC/MSFT hand interaction profiles 2024-06-12 19:16:43 +07:00
Logan Lang a64b0d3830 Set XRHandTracker property has_tracking_data to true only when palm joint is tracked 2024-06-05 17:22:45 +07:00
A Thousand Ships 926afccbd8
[Scene] Add `SceneStringNames::panel` 2024-05-30 22:54:50 +07:00
devloglogan 6a8f2f00ac Apply reference frame transform to OpenXRCompositionLayer nodes 2024-05-29 07:52:54 +07:00
Rémi Verschelde 4c0d5e59bf
Merge pull request #92200 from devloglogan/composition-layer-viewport-fix
Allow `OpenXRCompositionLayer` property `layer_viewport` to always be assigned `nullptr`
2024-05-21 23:19:03 +07:00
devloglogan 3d7b712c86 Allow OpenXRCompositionLayer property layer_viewport to be assigned to nullptr 2024-05-21 07:52:40 +07:00
Bastiaan Olij 6582be0c50 OpenXR: Fix updating swapchain for foveation 2024-05-20 12:23:56 +07:00
Rémi Verschelde 4971b71899
Merge pull request #91952 from dsnopek/openxr-composition-layer-sample-count
Fix sample count on OpenXR composition layers
2024-05-14 18:10:14 +07:00
David Snopek 45a02c28cd Fix sample count on OpenXR composition layers 2024-05-14 10:43:44 +07:00
A Thousand Ships ee79386f7b
[Scene] Add SceneStringNames::pressed 2024-05-14 15:51:28 +07:00
David Snopek a8a7110b90 Fix `layer_viewport` getting cleared on `OpenXRCompositionLayer` in editor 2024-05-09 14:05:20 +07:00
A Thousand Ships a0dbdcc3ab
Replace `find` with `contains/has` where applicable
* Replaces `find(...) != -1` with `contains` for `String`
* Replaces `find(...) == -1` with `!contains` for `String`
* Replaces `find(...) != -1` with `has` for containers
* Replaces `find(...) == -1` with `!has` for containers
2024-05-08 12:37:42 +07:00
David Snopek de654d9846 OpenXR: Fix composition layers not having correct play space 2024-05-07 20:49:46 +07:00
Rémi Verschelde 316b87dc5f
Merge pull request #91485 from dsnopek/openxr-composition-layers-hole-punch
OpenXR: Allow composition layers to enable hole punching
2024-05-07 21:52:49 +07:00
David Snopek 666bf60e36 OpenXR: Allow composition layers to enable hole punching 2024-05-07 10:02:32 +07:00
Rémi Verschelde 4b070e8031
Fix various typos with codespell
Using 2.2.7.dev217+g10c2abcf.

Had to add `colour` to the ignore list as we used it as an alias/keyword for the
documentation of color-related APIs.
Also ignore recommendations to change `thirdparty` to either `third-party` or
`third party`, which are correct but we use the former fairly consistently.
2024-05-07 10:08:42 +07:00
A Thousand Ships 955d5affa8
Reduce and prevent unnecessary random-access to `List`
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +07:00
Bastiaan Olij 9042ddf19f Improvements to VRS/Foveated rendering 2024-05-03 17:20:30 +07:00
Bastiaan Olij 527c30c594 Add support for OpenXR hand interaction extension 2024-05-02 19:15:02 +07:00
Bastiaan Olij cbab7dc049 OpenXR: Change timing of xrWaitFrame and add thread safety features to OpenXR 2024-05-01 14:24:41 +07:00
Aaron Franke 1bcbbe96c4
Organize existing code for editor plugins 2024-04-27 11:59:58 +07:00
Malcolm Nixon e00e5c0386 Remove the Hand enum from XRHandTracker to fix name-collision with the hand property of the base class.
Co-Authored-By: David Snopek <191561+dsnopek@users.noreply.github.com>
2024-04-25 19:38:57 +07:00
Rémi Verschelde 8c474ddd49
Merge pull request #90710 from m4gr3d/fix_jstring_leaks
Fix leakage of JNI object references
2024-04-22 12:52:16 +07:00
Rémi Verschelde bffaa98b13
Merge pull request #90645 from Malcolmnixon/unified-xr-trackers
Rework XR Trackers to have a common ancestor
2024-04-22 12:52:07 +07:00
Malcolm Nixon 823ae7b3fa Rework XR Trackers to have a common ancestor. Allow creation of XRNode3D to drive node positions and visibility. 2024-04-18 20:04:01 +07:00
Rémi Verschelde d06cb2e57d
Merge pull request #90761 from dsnopek/openxr-composition-layers-experimental
Mark `OpenXRCompositionLayer` and its children as experimental
2024-04-18 12:24:40 +07:00
David Snopek a094ff377d Mark `OpenXRCompositionLayer` and its children as experimental 2024-04-16 11:02:44 +07:00
David Snopek dfca388d75 Revert `OpenXRHand` to its pre-`SkeletonModifier3D` state 2024-04-16 10:36:43 +07:00
Fredia Huya-Kouadio f291a4ed3a Fix leakage of JNI object references
Fixes https://github.com/godotengine/godot/issues/87548
2024-04-15 10:30:18 +07:00
Bastiaan Olij b67eba8399 OpenXR: apply fix for reverse Z 2024-04-10 10:35:19 +07:00
Bastiaan Olij c388fe2ba7 OpenXR: Improve swapchain logic and fix swapchain update when render target multiplier is changed. 2024-04-09 16:56:39 +07:00
Rémi Verschelde 0c6b5efab3
Merge pull request #90391 from AThousandShips/xr_bind_fix
[XR] Fix binds for composition layer virtuals
2024-04-08 18:42:44 +07:00
Rémi Verschelde 0fd440e95f
Merge pull request #90374 from BastiaanOlij/openxr_refresh_rate_signal
OpenXR: Add refresh rate signal support
2024-04-08 18:42:38 +07:00
A Thousand Ships 730cfdde66
[XR] Fix binds for composition layer virtuals 2024-04-08 17:28:26 +07:00
Rémi Verschelde ad1993455a
Merge pull request #90286 from dsnopek/openxr-composition-layers-intersects-ray
Add `intersects_ray()` method to `OpenXRCompositionLayer`
2024-04-08 11:21:18 +07:00
Rémi Verschelde 59cfa0ef75
Merge pull request #90237 from dsnopek/openxr-composition-layers-extension-properties
Allow OpenXR extensions to add properties to the OpenXRCompositionLayer node
2024-04-08 11:21:05 +07:00
Bastiaan Olij 148ff6a47f OpenXR: Add refresh rate signal support 2024-04-08 12:36:17 +07:00
David Snopek 025f2b8e7c Add `intersects_ray()` method to `OpenXRCompositionLayer` 2024-04-06 08:37:30 +07:00
David Snopek fddf6dc651 Allow OpenXR extensions to add properties to the OpenXRCompositionLayer node 2024-04-05 07:18:32 +07:00
Rémi Verschelde 0ff056ea2e
Merge pull request #90218 from Repiteo/do-while-false-cleanup
Update lingering `do/while(0)` defines
2024-04-05 12:16:34 +07:00
Thaddeus Crews bbb3eb3a1a
Update lingering `do/while(0)` defines 2024-04-04 14:17:22 +07:00
Silc Lizard (Tokage) Renew 04dd299cba Skeleton3D: Add SkeletonModifier / Deprecate Override / Separate PB 2024-04-05 01:28:26 +07:00
Rémi Verschelde 0c71ba7801
Merge pull request #89880 from dsnopek/openxr-composition-layers-node3d-drs
Add support for OpenXR composition layers
2024-04-04 17:09:07 +07:00
David Snopek 0f2b804059 Add support for OpenXR composition layers
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
2024-04-04 09:20:23 +07:00
Rémi Verschelde 1469db5e58
Merge pull request #89968 from Calinou/xr-startup-alert-windows
Tweak OpenXR alert to mention WMR only on Windows
2024-04-04 14:35:37 +07:00
Haoyu Qiu 91204f6f3f Fix missing i18n for some editor strings 2024-04-03 16:42:28 +07:00
Hugo Locurcio e334bf6df4
Tweak OpenXR alert to mention WMR only on Windows
WMR isn't supported on non-Windows platforms, so there's no point
in mentioning it in the error message as it's not a possible
cause for OpenXR not initializing.
2024-03-28 06:17:54 +07:00
David Snopek 308a6a4734 OpenXR: Allow GDExtensions to provide multiple, ordered composition layers
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
2024-03-13 17:53:15 +07:00
A Thousand Ships 24c9d442e9
[Doc] Fix some incorrect uses of `a/an` 2024-03-13 21:20:28 +07:00
Thaddeus Crews 3b3e2374c9
clang-tidy: Enforce `modernize-use-nullptr` 2024-03-12 10:59:53 +07:00
Hugo Locurcio 8221e7546b
Add editor shortcuts to toggle bottom panel visibility
Default shortcuts use the first or second letter of each word.

This also adds a new shortcut to toggle the last opened bottom panel.
On editor startup, this defaults to the first panel in the list
(which is the Output panel).
2024-03-05 15:53:15 +07:00
Micky c54e09a5a3 Overhaul some "uncommon" wording in class reference 2024-03-01 15:32:38 +07:00
Bastiaan Olij 6fd897973f OpenXR: Register eye gaze even when disabled 2024-02-24 17:32:58 +07:00
Rémi Verschelde 41f39cfa04
Merge pull request #88724 from AThousandShips/xr_build_fix
[XR] Fix building on MinGW
2024-02-23 22:19:28 +07:00
Rémi Verschelde 0d83267923
Merge pull request #88639 from dsnopek/xrserver-hand-tracker
Provide generic interface for XR hand tracking
2024-02-23 22:19:05 +07:00
Rémi Verschelde 4582ee1a0f
Merge pull request #87760 from kitbdev/extract-bottom-dock
Extract BottomPanel from EditorNode
2024-02-23 22:18:50 +07:00
David Snopek 2184fa9698 Provide generic interface for XR hand tracking 2024-02-23 12:20:22 +07:00
A Thousand Ships efeb6be084
[XR] Fix building on MinGW
Destructor was defined in multiple places due to multiple inheritance
2024-02-23 19:10:33 +07:00
David Snopek 713ea0629a Fix crash when using OpenXR extension wrappers from GDExtension 2024-02-22 16:50:39 +07:00
kit eb6ca91ba6 Extract BottomPanel from EditorNode 2024-02-20 15:09:07 +07:00
Logan Lang 74413f5609 expose OpenXR hand tracker handles 2024-02-19 16:31:10 +07:00
Rémi Verschelde 482473aee6
Merge pull request #88311 from devloglogan/xr-suggested-tracker-names
Enable getting suggested tracker names from OpenXR extensions
2024-02-14 10:59:52 +07:00
Logan Lang 3ee258effe enable getting suggested tracker names from OpenXR extensions 2024-02-13 18:33:41 +07:00
David Snopek c82d0ea6a2 Fix type-o in `OpenXRAPIExtension` docs for `is_environment_blend_mode_alpha_supported()` 2024-02-13 14:51:22 +07:00
Dario 73eff10c76 Finish splitting functionality of the Vulkan and D3D12 backends into RenderingDeviceDriver. 2024-02-12 10:02:18 +07:00
A Thousand Ships 684752e75b
Replace error checks against `size` with `is_empty` 2024-02-09 12:50:15 +07:00