Commit Graph

227 Commits

Author SHA1 Message Date
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
c54e09a5a3 Overhaul some "uncommon" wording in class reference 2024-03-01 15:32:38 +01:00
6fd897973f OpenXR: Register eye gaze even when disabled 2024-02-24 17:32:58 +11:00
41f39cfa04 Merge pull request #88724 from AThousandShips/xr_build_fix
[XR] Fix building on MinGW
2024-02-23 22:19:28 +01:00
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
4582ee1a0f Merge pull request #87760 from kitbdev/extract-bottom-dock
Extract BottomPanel from EditorNode
2024-02-23 22:18:50 +01:00
2184fa9698 Provide generic interface for XR hand tracking 2024-02-23 12:20:22 -06:00
efeb6be084 [XR] Fix building on MinGW
Destructor was defined in multiple places due to multiple inheritance
2024-02-23 19:10:33 +01:00
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
74413f5609 expose OpenXR hand tracker handles 2024-02-19 16:31:10 -06:00
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
3ee258effe enable getting suggested tracker names from OpenXR extensions 2024-02-13 18:33:41 -06:00
c82d0ea6a2 Fix type-o in OpenXRAPIExtension docs for is_environment_blend_mode_alpha_supported() 2024-02-13 14:51:22 -06:00
73eff10c76 Finish splitting functionality of the Vulkan and D3D12 backends into RenderingDeviceDriver. 2024-02-12 10:02:18 -03:00
684752e75b Replace error checks against size with is_empty 2024-02-09 12:50:15 +01:00
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
e74a0f4b09 OpenXR: Allow moving vendor passthrough extensions to GDExtension 2024-02-03 12:40:41 -06:00
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
5935bfa860 OpenXR: Allow changing play area mode during active session 2024-01-31 12:58:22 -06:00
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
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
3d2cbb216e OpenXR: Make it possible to implement vendor extensions to hand tracking from GDExtension 2024-01-25 10:24:39 -06:00
82a36cf31b Cleanup of OpenXR module scons config 2024-01-25 23:28:13 +11:00
a8690cbeed Add support for OpenXR local floor extension 2024-01-23 09:19:09 -06:00
afd1dcf1b1 OpenXR: Add runtime selection dropdown 2024-01-18 15:59:22 +01:00
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
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
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
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
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
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
087a397477 Merge pull request #86301 from KoBeWi/deferred_cleanup
Update deferred calls to use Callables
2024-01-11 17:36:29 +01:00
f2ef41b853 Add Meta controller extension 2024-01-11 15:29:38 +11:00
4c806c03df OpenXR: Add support for hand tracking source extension 2024-01-10 16:58:40 +11:00
0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01:00
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
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
a3cb1b096f Add const references detected by clang-tidy 2023-12-16 13:36:44 -05:00
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
69a41b3d39 OpenXR: Add support for retrieving play area 2023-12-11 10:29:03 +11:00
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
caddce14dd Add 3D MSAA and scaling support to GLES3 2023-12-05 10:01:00 +11:00
3af0176e8c Remove unused grip touch action from default OpenXR action map 2023-11-18 20:17:28 +11:00
ba713c80df Fix various typos with codespell
Using 2.2.7.dev51+geb4a58fe.
2023-11-11 23:01:24 +01:00
c512e85082 Fix OpenXR sample count 2023-10-28 17:17:13 +11:00
f0b6677906 openxr: Sync with upstream 1.0.31, don't build obsolete dispatch table 2023-10-26 10:01:48 +02:00
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
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
94810115fe openxr: Sync with upstream 1.0.30 2023-10-17 15:46:01 +02:00