Commit graph

255 commits

Author SHA1 Message Date
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