1
0
Fork 0
Commit Graph

502 Commits

Author SHA1 Message Date
A Thousand Ships a1846b27ea
Improve use of `Ref.is_null/valid`
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 -05:00
Yufeng Ying 33817b186f Remove unused header in drivers and modules.
Co-authored-by: Thaddeus Crews <repiteo@outlook.com>
2024-12-24 00:40:47 +08:00
David Snopek d9ad5d1cd4 OpenXR: Fix hiding/showing composition layers using hole punching 2024-12-23 08:01:19 -06:00
Bastiaan Olij 65bb72261b OpenXR: Make sure wedge on DPad modifier is expressed in degrees. 2024-12-21 20:59:24 +11:00
Haoyu Qiu bf4e5cca3f Make editor's shortcut names translated on-site 2024-12-18 13:00:30 +08:00
Thaddeus Crews 4364ed6ccd
Merge pull request #100471 from dsnopek/openxr-xrsim-composition-layer-crash
OpenXR: Fix crash with composition layers in non-dev builds
2024-12-16 12:10:08 -06:00
Thaddeus Crews 02e196eb41
Merge pull request #98132 from aaronfranke/editor-plugin-get-plugin-icon-name
Rename internal EditorPlugin icon/name to match exposed methods
2024-12-16 12:09:57 -06:00
Thaddeus Crews d51fae25a7
Merge pull request #98872 from BastiaanOlij/openxr_khr_metal_enable
OpenXR: Add Metal support
2024-12-16 12:09:47 -06:00
David Snopek 20d8bddd38 OpenXR: Fix crash with composition layers in non-dev builds 2024-12-16 08:44:49 -06:00
Aaron Franke 0ab3dc273e
Rename internal EditorPlugin icon/name to match exposed methods 2024-12-15 17:31:01 -08:00
Thaddeus Crews bfc66f0608
Merge pull request #100282 from devloglogan/motion-vectors-openxr
Add renderer motion vectors API for use with OpenXR
2024-12-12 16:13:36 -06:00
Bastiaan Olij 0a61ebdcea OpenXR: Add support for binding modifiers 2024-12-12 09:46:19 +11:00
devloglogan 3deb5884d7 Renderer agnostic motion vector rendering/OpenXR changes 2024-12-10 15:59:17 -06:00
Bastiaan Olij 08ced813a9 OpenXR: Add Metal support 2024-12-10 11:41:59 +11:00
Lukas Tenbrink b5c31ebb41 Add contains_char() for single-character 'contains' calls. 2024-12-06 20:23:35 +01:00
MBCX 6bc80effbb Make Godot compile on FreeBSD 2024-12-05 12:33:55 -04:00
Bastiaan Olij 3de62b8b1b OpenXR: Fix pose recenter signal to be omitted properly 2024-11-13 14:20:06 +11:00
Micky eaebb3f864 Fix more miscellaneous oddities around the class reference 2024-11-12 17:44:45 +01:00
Thaddeus Crews 925b690c98
Core: Integrate `Ref::instantiate` where possible 2024-11-10 12:41:26 -06:00
Micky 5c5460b026 Fix many untagged true/false/null in the documentation 2024-11-10 11:26:39 +01:00
Thaddeus Crews 1559645112
Merge pull request #98831 from dsnopek/openxr-gdextension-pre-post-draw-viewport
OpenXR: Allow GDExtensions to implement `_on_pre_draw_viewport()` and `_on_post_draw_viewport()`
2024-11-05 18:36:12 -06:00
David Snopek c72eb04adb OpenXR: Allow GDExtensions to implement `_on_pre_draw_viewport()` and `_on_post_draw_viewport()` 2024-11-05 08:16:29 -06:00
Thaddeus Crews bb5f390fb9
Style: Apply `clang-tidy` fixes (superficial)
• `modernize-use-bool-literals`, `modernize-use-nullptr`, and `readability-braces-around-statements`
2024-11-04 12:11:14 -06:00
Thaddeus Crews 89a311205f
Style: Apply `clang-tidy` fixes
• `modernize-use-default-member-init` and `readability-redundant-member-init`
• Minor adjustments to `.clang-tidy` to improve syntax & remove redundancies
2024-11-04 12:11:06 -06:00
Thaddeus Crews 696ca9db3c
Merge pull request #98039 from aaronfranke/button-icon
Rename internal Button `*_icon` functions to `*_button_icon` to match exposed methods
2024-10-29 19:25:59 -05:00
Thaddeus Crews 23f03a7cce
Merge pull request #98589 from juanjp600/openxr-no-wayland-build-fix
Fix OpenXR module failing to build on Linux when Wayland is disabled
2024-10-29 19:25:41 -05:00
Thaddeus Crews b7a0971ad2
Merge pull request #97934 from adamscott/give-AThousandShips-a-break
[Codestyle] Set clang-format `RemoveSemicolon` rule to `true`
2024-10-29 19:25:36 -05:00
Aaron Franke 562c666e3d
Rename internal Button icon to button_icon to match exposed methods 2024-10-29 16:23:03 -07:00
Juan Pablo Arce 1803fe0cd5 Fix OpenXR module failing to build on Linux when Wayland is disabled 2024-10-27 14:03:03 -03:00
Thaddeus Crews 07e759b74a
Merge pull request #97771 from dsnopek/openxr-linux-egl
OpenXR: Add support for Wayland on Linux
2024-10-25 13:04:08 -05:00
Adam Scott 0d350e7108
Set clang-format `RemoveSemicolon` rule to `true`
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
Clay John 7ebb3a4d68
Merge pull request #98471 from dsnopek/openxr-composition-layers-visibility-bug
Fix bug with OpenXR composition layers added after OpenXR is running
2024-10-24 18:45:23 -07:00
David Snopek e2386de505 Fix bug with OpenXR composition layers added after OpenXR is running 2024-10-23 15:34:05 -05:00
Bastiaan Olij 3e36f52524 OpenXR: change bindings to 'flatten' source paths 2024-10-22 10:31:11 +11:00
David Snopek 256699ee31 OpenXR: Add support for Wayland on Linux 2024-10-04 11:44:05 -05:00
Thaddeus Crews 9f9ee0c813
SCons: Add unobtrusive type hints in SCons files 2024-09-25 09:34:35 -05:00
Rémi Verschelde 5d5cdc02c5
Merge pull request #97392 from BastiaanOlij/xr_cleanup_action_map_dialogs
Cleanup of action map dialogs
2024-09-25 12:39:25 +02:00
Rémi Verschelde b030638863
Merge pull request #97252 from dsnopek/gdext-android-surface-swapchain
OpenXR: Allow extending Android surface swapchain creation from GDExtension
2024-09-23 12:28:07 +02:00
Alistair Leslie-Hughes daa4704c44 openxr: Correct set the Depth swapchain name
Introduced in 08ffa5d89e.
2024-09-21 10:00:08 +10:00
David Snopek f7e5e7a400 OpenXR: Allow extending Android surface swapchain creation from GDExtension 2024-09-20 15:42:27 -05:00
Rémi Verschelde b1b4c5da4b
Merge pull request #96928 from dsnopek/rename-and-expose-texture-create-external
Expose a function to create textures from a native handle in the compatibility renderer
2024-09-19 17:13:27 +02:00
David Snopek 7d56b09f23 Expose a function to create textures from a native handle in the compatibility renderer 2024-09-19 09:05:32 -05:00
Bastiaan Olij 660ba0578d Cleanup of action map dialogs 2024-09-18 10:55:36 +10: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 +02: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 +02:00
David Snopek 3afa26834a OpenXR: Support composition layers based on Android surfaces 2024-09-11 21:15:22 -05:00
David Snopek 30a63396e5 Fix launching XR apps from the Android editor 2024-09-11 14:31:54 -05: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 +10: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 +02:00
David Snopek 11dd1f52ae Fix crash when calling OpenXRAPI::get_hand_tracker() and hand-tracking is disabled 2024-08-22 13:03:05 -05:00
Bastiaan Olij 1925d1e6f9 OpenXR: Check correct status bit for hand tracking 2024-08-22 11:57:56 +10: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 +02:00
Bastiaan Olij a8c5117777 Change hand tracking project settings and finetune show_when_tracked 2024-08-20 11:12:52 +10:00
Bastiaan Olij d9ab2c3195 OpenXR: Add support for visibility mask 2024-08-20 10:47:17 +10: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 +02: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 +02: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 +02:00
Rémi Verschelde 2206f5c6a4
OpenXR: Fix support for building against distro package 2024-08-16 22:51:09 +02:00
Rémi Verschelde 0f9925c0f9
Merge pull request #95542 from KoBeWi/go_bind_yourself
Remove empty `bind_methods()`
2024-08-16 14:35:51 +02:00
kobewi 065dd099dd Remove empty bind_methods() 2024-08-15 08:24:32 +02:00
David Snopek dfcff4ef46 OpenGL: Unconditionally do `glDisable(GL_FRAMEBUFFER_SRGB)` because we do our own sRGB conversion 2024-08-12 12:40:38 -05: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 +01: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 +10:00
Haoyu Qiu 7cf9ed5f65 Fix several typos in the documentation 2024-08-02 08:42:20 +08:00
David Snopek 22a6303fa0 OpenXR: Fix enabling passthrough via environment blend mode in project settings 2024-07-19 19:04:51 -05: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 +02:00
David Snopek 7a5a8597eb Always render when XR is enabled, even if no OS windows can draw 2024-07-17 08:19:21 -05:00
Bastiaan Olij 9e658e29d2 Fixed creating default action map 2024-07-17 12:04:06 +10: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 +02: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 +10:00
Bastiaan Olij bf8c85e13b Remove our ERR_ON_RENDER_THREAD guard, it is not reliable 2024-07-09 18:48:00 +10:00
David Snopek 06e81d9fe4 [OpenXR] Fix LOCAL_FLOOR emulation on HTC Vive XR Elite 2024-06-27 14:12:11 -05:00
A Thousand Ships fbb879debd
[Scene] Add `SceneStringNames::text/value_changed` 2024-06-19 09:44:38 +02:00
A Thousand Ships d9e2fc74c7
[Scene] Add `SceneStringNames::item_selected` 2024-06-19 09:39:05 +02:00
Bastiaan Olij 8eb130fdf0 OpenXR: Add HTC/MSFT hand interaction profiles 2024-06-12 19:16:43 +10:00
Logan Lang a64b0d3830 Set XRHandTracker property has_tracking_data to true only when palm joint is tracked 2024-06-05 17:22:45 +02:00
A Thousand Ships 926afccbd8
[Scene] Add `SceneStringNames::panel` 2024-05-30 22:54:50 +02:00
devloglogan 6a8f2f00ac Apply reference frame transform to OpenXRCompositionLayer nodes 2024-05-29 07:52:54 -05: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 +02:00
devloglogan 3d7b712c86 Allow OpenXRCompositionLayer property layer_viewport to be assigned to nullptr 2024-05-21 07:52:40 -05:00
Bastiaan Olij 6582be0c50 OpenXR: Fix updating swapchain for foveation 2024-05-20 12:23:56 +10: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 +02:00
David Snopek 45a02c28cd Fix sample count on OpenXR composition layers 2024-05-14 10:43:44 -05:00
A Thousand Ships ee79386f7b
[Scene] Add SceneStringNames::pressed 2024-05-14 15:51:28 +02:00
David Snopek a8a7110b90 Fix `layer_viewport` getting cleared on `OpenXRCompositionLayer` in editor 2024-05-09 14:05:20 -05: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 +02:00
David Snopek de654d9846 OpenXR: Fix composition layers not having correct play space 2024-05-07 20:49:46 -05: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 +02:00
David Snopek 666bf60e36 OpenXR: Allow composition layers to enable hole punching 2024-05-07 10:02:32 -05: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 +02: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 +02:00
Bastiaan Olij 9042ddf19f Improvements to VRS/Foveated rendering 2024-05-03 17:20:30 +10:00
Bastiaan Olij 527c30c594 Add support for OpenXR hand interaction extension 2024-05-02 19:15:02 +10:00
Bastiaan Olij cbab7dc049 OpenXR: Change timing of xrWaitFrame and add thread safety features to OpenXR 2024-05-01 14:24:41 +10: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 -04: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 +02: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 +02: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 -04: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 +02:00
David Snopek a094ff377d Mark `OpenXRCompositionLayer` and its children as experimental 2024-04-16 11:02:44 -05:00
David Snopek dfca388d75 Revert `OpenXRHand` to its pre-`SkeletonModifier3D` state 2024-04-16 10:36:43 -05: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 +10:00
Bastiaan Olij c388fe2ba7 OpenXR: Improve swapchain logic and fix swapchain update when render target multiplier is changed. 2024-04-09 16:56:39 +10: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 +02: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 +02:00
A Thousand Ships 730cfdde66
[XR] Fix binds for composition layer virtuals 2024-04-08 17:28:26 +02: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 +02: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 +02:00
Bastiaan Olij 148ff6a47f OpenXR: Add refresh rate signal support 2024-04-08 12:36:17 +10:00
David Snopek 025f2b8e7c Add `intersects_ray()` method to `OpenXRCompositionLayer` 2024-04-06 08:37:30 -05:00
David Snopek fddf6dc651 Allow OpenXR extensions to add properties to the OpenXRCompositionLayer node 2024-04-05 07:18:32 -05: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 +02:00
Thaddeus Crews bbb3eb3a1a
Update lingering `do/while(0)` defines 2024-04-04 14:17:22 -05:00
Silc Lizard (Tokage) Renew 04dd299cba Skeleton3D: Add SkeletonModifier / Deprecate Override / Separate PB 2024-04-05 01:28:26 +09: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 +02:00
David Snopek 0f2b804059 Add support for OpenXR composition layers
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
2024-04-04 09:20:23 -05: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 +02:00
Haoyu Qiu 91204f6f3f Fix missing i18n for some editor strings 2024-04-03 16:42:28 +08: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 +01: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 -05:00
A Thousand Ships 24c9d442e9
[Doc] Fix some incorrect uses of `a/an` 2024-03-13 21:20:28 +01:00
Thaddeus Crews 3b3e2374c9
clang-tidy: Enforce `modernize-use-nullptr` 2024-03-12 10:59:53 -05: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 +01:00
Micky c54e09a5a3 Overhaul some "uncommon" wording in class reference 2024-03-01 15:32:38 +01:00
Bastiaan Olij 6fd897973f OpenXR: Register eye gaze even when disabled 2024-02-24 17:32:58 +11: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 +01: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 +01:00
Rémi Verschelde 4582ee1a0f
Merge pull request #87760 from kitbdev/extract-bottom-dock
Extract BottomPanel from EditorNode
2024-02-23 22:18:50 +01:00
David Snopek 2184fa9698 Provide generic interface for XR hand tracking 2024-02-23 12:20:22 -06: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 +01:00
David Snopek 713ea0629a Fix crash when using OpenXR extension wrappers from GDExtension 2024-02-22 16:50:39 -06:00
kit eb6ca91ba6 Extract BottomPanel from EditorNode 2024-02-20 15:09:07 -05:00
Logan Lang 74413f5609 expose OpenXR hand tracker handles 2024-02-19 16:31:10 -06: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 +01:00
Logan Lang 3ee258effe enable getting suggested tracker names from OpenXR extensions 2024-02-13 18:33:41 -06:00
David Snopek c82d0ea6a2 Fix type-o in `OpenXRAPIExtension` docs for `is_environment_blend_mode_alpha_supported()` 2024-02-13 14:51:22 -06:00
Dario 73eff10c76 Finish splitting functionality of the Vulkan and D3D12 backends into RenderingDeviceDriver. 2024-02-12 10:02:18 -03:00
A Thousand Ships 684752e75b
Replace error checks against `size` with `is_empty` 2024-02-09 12:50:15 +01:00
Rémi Verschelde 673f1614c4
Merge pull request #87630 from dsnopek/openxr-passthrough-from-gdextension
OpenXR: Allow moving vendor passthrough extensions to GDExtension
2024-02-03 23:19:24 +01:00
David Snopek e74a0f4b09 OpenXR: Allow moving vendor passthrough extensions to GDExtension 2024-02-03 12:40:41 -06:00
Rémi Verschelde fb5f34a75a
Merge pull request #87745 from dsnopek/openxr-change-reference-space
OpenXR: Allow changing play area mode during active session
2024-02-02 12:03:09 +01:00
David Snopek 5935bfa860 OpenXR: Allow changing play area mode during active session 2024-01-31 12:58:22 -06:00
Rémi Verschelde 1c916c3d5b
Merge pull request #87546 from dsnopek/openxr-hand-tracking-vendor-extensions
OpenXR: Make it possible to implement vendor extensions to hand tracking from GDExtension
2024-01-31 10:54:55 +01:00
Riteo 7e0f7d3abd Add Wayland support
Not everything is yet implemented, either for Godot or personal
limitations (I don't have all hardware in the world). A brief list of
the most important issues follows:

- Single-window only: the `DisplayServer` API doesn't expose enough
information for properly creating XDG shell windows.

- Very dumb rendering loop: this is very complicated, just know that
the low consumption mode is forced to 2000 Hz and some clever hacks are
in place to overcome a specific Wayland limitation. This will be
improved to the extent possible both downstream and upstream.

- Features to implement yet: IME, touch input, native file dialog,
drawing tablet (commented out due to a refactor), screen recording.

- Mouse passthrough can't be implement through a poly API, we need a
rect-based one.

- The cursor doesn't yet support fractional scaling.

- Auto scale is rounded up when using fractional scaling as we don't
have a per-window scale query API (basically we need
`DisplayServer::window_get_scale`).

- Building with `x11=no wayland=yes opengl=yes openxr=yes` fails.

This also adds a new project property and editor setting for selecting the
default DisplayServer to start, to allow this backend to start first in
exported projects (X11 is still the default for now). The editor setting
always overrides the project setting.

Special thanks to Drew Devault, toger5, Sebastian Krzyszkowiak, Leandro
Benedet Garcia, Subhransu, Yury Zhuravlev and Mara Huldra.
2024-01-30 16:44:47 +01:00
David Snopek 3d2cbb216e OpenXR: Make it possible to implement vendor extensions to hand tracking from GDExtension 2024-01-25 10:24:39 -06:00
Bastiaan Olij 82a36cf31b Cleanup of OpenXR module scons config 2024-01-25 23:28:13 +11:00
David Snopek a8690cbeed Add support for OpenXR local floor extension 2024-01-23 09:19:09 -06:00
Bastiaan Olij afd1dcf1b1 OpenXR: Add runtime selection dropdown 2024-01-18 15:59:22 +01:00
Yuri Sizov b6a2c78033 Merge pull request #87286 from akien-mga/fix-preprocessor-if-ENABLED-checks
Fix `#if *_ENABLED` inconsistencies, should check if defined
2024-01-17 18:53:33 +01:00
Yuri Sizov cf76f3df03 Merge pull request #87240 from Malcolmnixon/bone-update-mode
Add bone update option to OpenXRHand to allow preserving original hand scale
2024-01-17 18:53:15 +01:00
Rémi Verschelde 0a7579b161
Fix `#if *_ENABLED` inconsistencies, should check if defined
Co-authored-by: Caroline Joy Bell <halotroop2288@proton.me>
2024-01-17 10:30:15 +01:00
Yuri Sizov 95b27fe8c7 Reorganize code related to editor theming
This change introduces a new EditorThemeManager class
to abstract theme generatio and its subroutines.

Logic related to EditorTheme, EditorColorMap, and editor
icons has been extracted into their respective files with
includes cleaned up.

All related files have been moved to a separate folder to
better scope them in the project. This includes relevant
generated files as well.
2024-01-16 11:57:45 +01:00
Malcolm Nixon c316eee929 Add bone update option to OpenXRHand to allow preserving original hand scale.
This is useful if the hand model is not weighted to support re-scaling to the users hands; or the hand is scaled to non-human sizes.
2024-01-15 23:55:13 -05:00
Rémi Verschelde 4b305cd903
Merge pull request #86982 from BastiaanOlij/openxr_touch_plus
OpenXR: Add Meta touch plus interaction profile
2024-01-11 17:41:26 +01:00
Rémi Verschelde 087a397477
Merge pull request #86301 from KoBeWi/deferred_cleanup
Update deferred calls to use Callables
2024-01-11 17:36:29 +01:00
Bastiaan Olij f2ef41b853 Add Meta controller extension 2024-01-11 15:29:38 +11:00
Bastiaan Olij 4c806c03df OpenXR: Add support for hand tracking source extension 2024-01-10 16:58:40 +11:00
kobewi 0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01:00
Rémi Verschelde c6671d9961
Merge pull request #86906 from Malcolmnixon/avatar-capable-openxrhand
Add ability to drive full-body avatars using OpenXRHand
2024-01-08 14:53:20 +01:00
Malcolm Nixon 5b8b2a4e70 Add ability to drive full-body avatars using OpenXRHand
This PR allows the OpenXRHand to drive:
- OpenXR rigged hand skeletons located under the OpenXRHand node
- Godot Humanoid rigged hand skeletons located under the OpenXRHand node
- OpenXR rigged avatar skeletons located separately in the scene-tree
- Godot Humanoid avatar skeletons located separately in the scene-tree
2024-01-07 12:08:54 -05:00
Wilson E. Alvarez a3cb1b096f
Add const references detected by clang-tidy 2023-12-16 13:36:44 -05:00
Yuri Sizov abe19496ac Merge pull request #85163 from BastiaanOlij/openxr_play_area
OpenXR: Add support for retrieving play area
2023-12-16 17:49:34 +01:00
Bastiaan Olij 69a41b3d39 OpenXR: Add support for retrieving play area 2023-12-11 10:29:03 +11:00
Rémi Verschelde a311a4b162
Merge pull request #83976 from BastiaanOlij/gles3_msaa_scaler
Add 3D MSAA and scaling support to GLES3
2023-12-07 14:36:42 +01:00
Bastiaan Olij caddce14dd Add 3D MSAA and scaling support to GLES3 2023-12-05 10:01:00 +11:00
Bastiaan Olij 3af0176e8c Remove unused grip touch action from default OpenXR action map 2023-11-18 20:17:28 +11:00
Rémi Verschelde ba713c80df
Fix various typos with codespell
Using 2.2.7.dev51+geb4a58fe.
2023-11-11 23:01:24 +01:00
Bastiaan Olij c512e85082 Fix OpenXR sample count 2023-10-28 17:17:13 +11:00
Rémi Verschelde f0b6677906
openxr: Sync with upstream 1.0.31, don't build obsolete dispatch table 2023-10-26 10:01:48 +02:00
Rémi Verschelde 2079bbabfd
openxr: Revert to 1.0.28, newer versions crash on Windows/Mingw-GCC
Reverts #82582.
Works around #83674.

Users tested 1.0.29, 1.0.30, and 1.0.31, which all triggered the same issue,
with both mingw-gcc from Fedora 36 and Fedora 39.
2023-10-23 11:10:31 +02:00
Yuri Sizov cd31407cb3 Clean up some Editor, OpenXR, VideoStream code
- EditorNode has excessive and pointless checks for Input singleton.
- EditorNode initialization order is a bit awkward.
- OpenXR binds a method that doesn't need that (for call deferred).
- VideoStream has a formatting error.
2023-10-20 17:54:39 +02:00
Rémi Verschelde 94810115fe
openxr: Sync with upstream 1.0.30 2023-10-17 15:46:01 +02:00
A Thousand Ships f18aa00e85 Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-10-08 17:23:33 +02:00
Rémi Verschelde 7f8c3124a8
Merge pull request #82752 from decacis/openxr_swapchain_error
OpenXR - Properly skip frame render when the XR runtime is not yet ready to let us acquire the next image from the swapchain
2023-10-06 12:52:52 +02:00
Rémi Verschelde 373c4b22d3
Fix various typos with codespell
Using 2.2.7.dev5+g2af65969.
2023-10-06 12:52:22 +02:00
Daniel Castellanos 771ec958af Fixing incorrect swapchain release timing
Applied a couple of checks suggested by @dhoverml for when the
XrResult is not XR_SUCCESS but is also not a failure. Also simplified
checks from @BastiaanOlij feedback.
2023-10-05 01:34:51 -06:00
Bastiaan Olij 50693a5420 OpenXR - add access to hand joint validity flags 2023-10-05 13:37:26 +11:00
Bastiaan Olij c60ef33175 OpenXR Fix small hand tracking issues 2023-10-04 13:18:31 +11:00
Bastiaan Olij 9e56e7a3ce Add support for the OpenXR Eye gaze interaction extension
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
2023-10-02 14:02:23 -07:00
Bastiaan Olij d7d334158a Implement OpenXR Foveated rendering support 2023-09-25 17:12:20 +10:00
bruvzg 1887a9df19
[macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching.
Co-authored-by: Riteo <riteo@posteo.net>
2023-09-21 14:21:00 +03:00
Rémi Verschelde 3e233e1f24
Fix various typos with codespell
Using 2.2.6.dev193+g907e5380.
2023-09-18 09:53:39 +02:00
Yuri Sizov 495b89ece9 Merge pull request #81561 from BastiaanOlij/fix_openxr_blend_modes
Fix issue with OpenXR environment blend mode not being applied properly
2023-09-14 15:21:49 +02:00
Yuri Sizov ded139384e Merge pull request #81536 from BastiaanOlij/fix_openxr_not_running_error_spam
OpenXR: Fix error spam if session hasn't started yet
2023-09-14 15:21:41 +02:00
Bastiaan Olij 3806d964e3 Fix issue with OpenXR environment blend mode not being applied properly 2023-09-13 14:07:23 +10:00
Rémi Verschelde 5c43e4c1ef
Fix various typos with codespell
Using 2.2.6.dev180+ge3a2cfbd.
2023-09-12 08:54:18 +02:00
Bastiaan Olij b1548e8b19 OpenXR fix error spam if session hasn't started yet 2023-09-11 14:12:34 +10:00
Bastiaan Olij c5e4f3eb74 OpenXR fix missing add profile for hauwei 2023-09-11 13:44:03 +10:00
Rémi Verschelde 0b9ffdfc02
Merge pull request #81414 from akien-mga/codestyle-get-back-in-das-Auto
Codestyle: Don't use auto where not warranted
2023-09-07 16:33:17 +02:00
Rémi Verschelde 11518665b7
Codestyle: Don't use auto where not warranted
We allow using auto for lambdas or complex macros where a return type
may change based on the parameters. But where the type is clear, we
should be explicit.

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-09-07 16:15:18 +02:00
Bastiaan Olij 58df9bd8a4 Expose OpenXR raw hand tracking data 2023-09-07 22:55:21 +10:00
kobewi 6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
Bastiaan Olij 3a89bb388d Change to new PICO interaction profiles 2023-08-30 10:25:35 +10:00
A Thousand Ships c23bd8b143 Ensure OpenXR classes are declared properly
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
2023-08-28 09:37:04 +02:00
Rémi Verschelde 8a02cd0883
Merge pull request #80419 from Faolan-Rad/fix-multi_actionsets
Properly load multiple action sets in XR
2023-08-18 09:30:52 +02:00
Rémi Verschelde 3907e53ff6
SCons: Disable C++ exception handling
Upon investigating the extremely slow MSVC build times in #80513, I noticed
that while Godot policy is to never use exceptions, we weren't enforcing it
with compiler flags, and thus still included exception handling code and
stack unwinding.

This is wasteful on multiple aspects:

- Binary size: Around 20% binary size reduction with exceptions disabled
  for both MSVC and GCC binaries.
- Compile time:
  * More than 50% build time reduction with MSVC.
  * 10% to 25% build time reduction with GCC + LTO.
- Performance: Possibly, needs to be benchmarked.

Since users may want to re-enable exceptions in their own thirdparty code
or the libraries they compile with Godot, this behavior can be toggled with
the `disable_exceptions` SCons option, which defaults to true.
2023-08-16 10:23:34 +02:00
Gabor Koncz 61455ff87e Fix casts of XR handles in OpenXRExtensionWrapperExtension
On 32-bit systems, XR handles are defined as uint64_t, so conversion from XR handles to uint64_t requires C-style casts.
2023-08-15 14:55:19 +02:00