Commit Graph

24 Commits

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