Commit graph

71 commits

Author SHA1 Message Date
Gergely Kis
d5445c25a6 Dynamic loading of OpenXR Loader on Android
This change implements dynamic loading of the OpenXR Loader library
on Android. If an OpenXR Loader library is not found,
Godot will still function with OpenXR disabled.

Also, on every platform, the OpenXR symbols are resolved at runtime
using xrGetInstanceProcAddr.

On Windows and Linux the OpenXR loader is included in the main
engine binary.

On Android, the OpenXR Loader is not built with the engine. Separately
distributed Android plugins will be provided with the correct loader
library for each device.

Co-authored-by: Gábor Pál Korom <gabor.p.korom@migeran.com>
Co-authored-by: Gábor Koncz <gabor.koncz@migeran.com>
2022-09-24 13:57:03 +02:00
Bastiaan Olij
6da6e1690e Add OpenXR palm pose extension support 2022-09-23 13:20:12 +10:00
Gabor Koncz
8972600146 Fix OpenXR layer composition blending 2022-09-16 12:52:01 +02:00
Bastiaan Olij
1dd671014b Add startup flag to override XR mode settings 2022-07-28 11:50:34 +10:00
reduz
455c06ecd4 Implement Vector4, Vector4i, Projection
Implement built-in classes Vector4, Vector4i and Projection.

* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.

These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.

**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-23 14:00:01 +02:00
Bastiaan Olij
95f75b232f Adding HTC tracker support 2022-06-16 16:52:13 +10:00
K. S. Ernest (iFire) Lee
10131eb6f2 Expose XRPose's get angular velocity. 2022-06-14 07:33:22 -07:00
Saenoe
95ef3bafcd fix OpenXRAPI::is_extension_supported returning opposite result 2022-05-18 00:33:22 +02:00
reduz
746dddc067 Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
  (order matters) but use is discouraged.

There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
derammo
0571148a4b corrected conditional compile of OpenXR with/without opengl3 driver 2022-05-11 11:25:55 -04:00
Markus Sauermann
a793960a10 Fix cppcheck const parameters
Convert method signature parameters to const where it is possible

# Conflicts:
#	drivers/gles3/rasterizer_canvas_gles3.cpp
#	drivers/gles3/rasterizer_canvas_gles3.h
#	editor/plugins/animation_state_machine_editor.cpp
#	editor/plugins/animation_state_machine_editor.h
2022-04-28 11:35:39 +02:00
Rémi Verschelde
831dc74b1f
Merge pull request #59940 from BastiaanOlij/xr_new_controllers_20220405 2022-04-11 11:38:39 +02:00
Bastiaan Olij
f8dab282cb Added missing interaction profiles and making sure related extensions are enabled if available 2022-04-06 23:00:26 +10:00
Rémi Verschelde
b78aa4fe19 Style: Apply clang-tidy to current code, add readability-redundant-member-init 2022-04-04 21:49:51 +02:00
Bastiaan Olij
9b7b9de0e5 Add action map editor for OpenXR 2022-04-04 18:43:29 +10:00
Rémi Verschelde
a647fb3e62 Fix typos with codespell
Using codespell 2.2-dev from current git.

Fix a couple incorrect uses of gendered pronouns.
2022-03-31 14:07:29 +02:00
bruvzg
d2add64f91
Move OpenXR project settings to the main, to make them visible on unsupported platforms. 2022-03-29 23:25:33 +03:00
Bastiaan Olij
c78876f977 Cleanup OpenXR on initialisation failure 2022-03-25 18:30:47 +11:00
Bastiaan Olij
d11cb5fe98 Adding signals and events to OpenXR interface
Improving interaction profile logic
2022-03-10 17:14:56 +11:00
Bastiaan Olij
8f035b2ab4 Fix color issues with OpenXR 2022-02-28 13:02:03 +11:00
Bastiaan Olij
a78a9fee71 Implementing OpenXR driver 2022-02-23 12:02:24 +01:00