Commit Graph

50 Commits

Author SHA1 Message Date
ac2e01684c Use const ref parameters in the Web modules 2025-09-28 08:13:13 -07:00
9fc8dd686b WebXR: Better errors when WebXR Layers or multiview are unavailable 2025-06-08 13:22:00 -05:00
01fc9aee6c Core: Modernize C headers with C++ equivalents 2025-05-02 08:23:01 -05:00
ad40939b6f Core: Replace C math headers with C++ equivalents
- Minor restructuring to ensure `math_funcs.h` is the central point for math functions
2025-04-16 15:49:02 -05:00
4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
0d350e7108 Set clang-format RemoveSemicolon rule to true
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
7d56b09f23 Expose a function to create textures from a native handle in the compatibility renderer 2024-09-19 09:05:32 -05:00
2f001e6789 Fix support for environment blend modes on WebXRInterface 2024-06-26 22:02:20 -05:00
8c5b307faf This PR modifies how the WebXR palm joint transform is calculated so it also has the correct rotation. 2024-06-25 23:23:18 -04:00
413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
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
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
7fa8ccd1ed WebXR: Add support for hand tracking 2024-02-23 15:30:10 -06:00
2235a1cbd0 Add screen-related attributes to mouse input events 2024-02-05 23:30:15 +01:00
275c496bc8 Add MSAA support for WebXR 2023-12-11 09:01:24 -06:00
25b2f1780a Style: Harmonize header includes in modules
This applies our existing style guide, and adds a new rule to that style
guide for modular components such as platform ports and modules:

Includes from the platform port or module ("local" includes) should be listed
first in their own block using relative paths, before Godot's "core" includes
which use "absolute" (project folder relative) paths, and finally thirdparty
includes.

Includes in `#ifdef`s come after their relevant section, i.e. the overall
structure is:

- Local includes
  * Conditional local includes
- Core includes
  * Conditional core includes
- Thirdparty includes
  * Conditional thirdparty includes
2023-06-15 14:35:45 +02:00
ab7cb2a95d Merge pull request #72938 from dsnopek/webxr-frame-rate
[WebXR] Add support for getting and setting display refresh rate
2023-04-11 22:56:06 +02:00
e31c2e4277 Add a get_system_info method to XRInterface 2023-03-15 13:11:48 +11:00
886f2270ed [WebXR] Add support for getting and setting display refresh rate 2023-02-10 19:21:38 -06:00
9196c47032 Correctly apply world_scale in WebXR 2023-01-23 21:26:38 -06:00
d95794ec8a One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
310bf39cd3 Get WebXR fully working in Godot 4! 2022-12-01 21:46:30 -06:00
398ee08375 Add multiview to the opengl3 driver 2022-10-21 21:00:32 -05:00
2cea42cc7f Rename Projection matrix to columns 2022-10-04 12:34:19 -05:00
b5c14e5f15 Get WebXR minimally working again in Godot 4 2022-09-19 21:10:27 -05:00
d20b32186f [Web] Rename JavaScript platform to Web.
Also rename export name from "HTML5" to "Web".
2022-08-29 11:52:00 +02:00
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
1bf94dff3a Rename Basis "elements" to "rows" 2022-04-29 08:02:56 -05:00
de4c97758a Fix more issues found by cppcheck. 2022-04-20 10:34:00 +03:00
b8b4580448 Style: Cleanup single-line blocks, semicolons, dead code
Remove currently unused implementation of TextureBasisU, could be re-added
later on if needed and ported.
2022-02-16 14:06:29 +01:00
98e5cd24db Improve XRInterface hooks into rendering 2022-01-26 13:55:44 +11:00
fe52458154 Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
5d1ea92daf Rework XR positional trackers 2021-10-17 12:12:20 +11:00
c527078634 Change to using doubles in XR classes 2021-09-21 22:46:31 +10:00
86ff7f8550 Adding GDExtension support to XRInterface 2021-08-26 23:24:44 +10:00
2642f0e4fc WebXR: Fix build after SNAME addition
Was missed as WebXR build was disabled prior to #50563.
2021-07-21 09:28:42 +02:00
a255b186bc Merge pull request #50563 from dsnopek/webxr-enable-ci
Re-enable building WebXR in GitHub Actions
2021-07-21 09:05:37 +02:00
6631f66c2a Optimize StringName usage
* Added a new macro SNAME() that constructs and caches a local stringname.
* Subsequent usages use the cached version.
* Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time.
* Replaced all theme usages by this new macro.
* Replace all signal emission usages by this new macro.
* Replace all call_deferred usages by this new macro.

This is part of ongoing work to optimize GUI and the editor.
2021-07-18 21:20:02 -03:00
3963a11b2f Re-enable building WebXR in GitHub Actions 2021-07-17 15:37:35 -05:00
3d8acc7a54 [HTML5] Fix build (with module_webxr_enabled=no).
The XR API changed a bit, and it's not just a rename, though probably an
easy update for someone who is qualified :).
2021-07-15 14:37:21 +02:00
e28fd07b2b Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
15c1a76361 Add stereoscopic rendering through multiview 2021-06-13 22:52:20 +10:00
de3f6699a5 Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
5b16020846 Replace remaining uses of NULL with nullptr
Follow-up to #38736 (these uses were likely added after this PR was merged).
2021-04-29 11:53:27 +02:00
454c889e61 Change XRPositionalTracker to a reference and better expose it to GDNative 2021-03-29 23:01:47 +11:00
a5324787c8 Rename some more global enums (Key, Joy, MIDI) 2021-03-23 07:13:23 -04:00
a23fc126eb Prevent fatal error in WebXR when 'immersize-ar' loses and regains tracking 2021-01-27 20:48:11 -06:00
39e022e01c Support mono devices in WebXR 2021-01-25 08:39:50 -06:00
eb5304842a Fix WebXR module.
Some functions and enums were renamed in 4.0 but not updated in the
WebXR code.
2021-01-10 12:04:09 +01:00
a54a2d65e1 Add support for WebXR 2021-01-04 17:02:37 -06:00