feat: modules moved and engine moved to submodule

This commit is contained in:
Jan van der Weide 2025-04-12 18:40:44 +02:00
parent dfb5e645cd
commit c33d2130cc
5136 changed files with 225275 additions and 64485 deletions

View file

@ -28,8 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef XR_BODY_TRACKER_H
#define XR_BODY_TRACKER_H
#pragma once
#include "servers/xr/xr_positional_tracker.h"
@ -162,7 +161,7 @@ protected:
private:
bool has_tracking_data = false;
BitField<BodyFlags> body_flags;
BitField<BodyFlags> body_flags = {};
BitField<JointFlags> joint_flags[JOINT_MAX];
Transform3D joint_transforms[JOINT_MAX];
@ -171,5 +170,3 @@ private:
VARIANT_BITFIELD_CAST(XRBodyTracker::BodyFlags)
VARIANT_ENUM_CAST(XRBodyTracker::Joint)
VARIANT_BITFIELD_CAST(XRBodyTracker::JointFlags)
#endif // XR_BODY_TRACKER_H

View file

@ -28,8 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef XR_CONTROLLER_TRACKER_H
#define XR_CONTROLLER_TRACKER_H
#pragma once
#include "core/os/thread_safe.h"
#include "servers/xr/xr_positional_tracker.h"
@ -48,5 +47,3 @@ protected:
public:
XRControllerTracker();
};
#endif // XR_CONTROLLER_TRACKER_H

View file

@ -28,8 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef XR_FACE_TRACKER_H
#define XR_FACE_TRACKER_H
#pragma once
#include "servers/xr/xr_tracker.h"
@ -213,5 +212,3 @@ private:
};
VARIANT_ENUM_CAST(XRFaceTracker::BlendShapeEntry);
#endif // XR_FACE_TRACKER_H

View file

@ -28,8 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef XR_HAND_TRACKER_H
#define XR_HAND_TRACKER_H
#pragma once
#include "servers/xr/xr_positional_tracker.h"
@ -128,5 +127,3 @@ private:
VARIANT_ENUM_CAST(XRHandTracker::HandTrackingSource)
VARIANT_ENUM_CAST(XRHandTracker::HandJoint)
VARIANT_BITFIELD_CAST(XRHandTracker::HandJointFlags)
#endif // XR_HAND_TRACKER_H

View file

@ -103,6 +103,7 @@ void XRInterface::_bind_methods() {
BIND_ENUM_CONSTANT(XR_PLAY_AREA_SITTING);
BIND_ENUM_CONSTANT(XR_PLAY_AREA_ROOMSCALE);
BIND_ENUM_CONSTANT(XR_PLAY_AREA_STAGE);
BIND_ENUM_CONSTANT(XR_PLAY_AREA_CUSTOM);
BIND_ENUM_CONSTANT(XR_ENV_BLEND_MODE_OPAQUE);
BIND_ENUM_CONSTANT(XR_ENV_BLEND_MODE_ADDITIVE);
@ -218,7 +219,6 @@ void XRInterface::trigger_haptic_pulse(const String &p_action_name, const String
}
Array XRInterface::get_supported_environment_blend_modes() {
Array default_blend_modes;
default_blend_modes.push_back(XR_ENV_BLEND_MODE_OPAQUE);
Array default_blend_modes = { XR_ENV_BLEND_MODE_OPAQUE };
return default_blend_modes;
}

View file

@ -28,8 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef XR_INTERFACE_H
#define XR_INTERFACE_H
#pragma once
#include "core/math/projection.h"
#include "core/os/thread_safe.h"
@ -77,6 +76,7 @@ public:
XR_PLAY_AREA_SITTING, /* Player is in seated position, limited positional tracking, fixed guardian around player */
XR_PLAY_AREA_ROOMSCALE, /* Player is free to move around, full positional tracking */
XR_PLAY_AREA_STAGE, /* Same as roomscale but origin point is fixed to the center of the physical space */
XR_PLAY_AREA_CUSTOM = 0x7FFFFFFF, /* Used to denote that a custom, possibly non-standard, play area is being used */
};
enum EnvironmentBlendMode {
@ -168,5 +168,3 @@ VARIANT_ENUM_CAST(XRInterface::Capabilities);
VARIANT_ENUM_CAST(XRInterface::TrackingStatus);
VARIANT_ENUM_CAST(XRInterface::PlayAreaMode);
VARIANT_ENUM_CAST(XRInterface::EnvironmentBlendMode);
#endif // XR_INTERFACE_H

View file

@ -28,8 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef XR_INTERFACE_EXTENSION_H
#define XR_INTERFACE_EXTENSION_H
#pragma once
#include "servers/xr/xr_interface.h"
@ -136,5 +135,3 @@ public:
RID get_render_target_texture(RID p_render_target);
// RID get_render_target_depth(RID p_render_target);
};
#endif // XR_INTERFACE_EXTENSION_H

View file

@ -28,8 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef XR_POSE_H
#define XR_POSE_H
#pragma once
#include "core/object/ref_counted.h"
@ -77,5 +76,3 @@ public:
};
VARIANT_ENUM_CAST(XRPose::TrackingConfidence);
#endif // XR_POSE_H

View file

@ -28,8 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef XR_POSITIONAL_TRACKER_H
#define XR_POSITIONAL_TRACKER_H
#pragma once
#include "core/os/thread_safe.h"
#include "servers/xr/xr_pose.h"
@ -80,5 +79,3 @@ public:
};
VARIANT_ENUM_CAST(XRPositionalTracker::TrackerHand);
#endif // XR_POSITIONAL_TRACKER_H

View file

@ -28,8 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef XR_TRACKER_H
#define XR_TRACKER_H
#pragma once
#include "core/os/thread_safe.h"
#include "servers/xr_server.h"
@ -57,5 +56,3 @@ public:
void set_tracker_desc(const String &p_desc);
String get_tracker_desc() const;
};
#endif // XR_TRACKER_H

View file

@ -104,13 +104,12 @@ void XRVRS::set_vrs_render_region(const Rect2i &p_vrs_render_region) {
RID XRVRS::make_vrs_texture(const Size2 &p_target_size, const PackedVector2Array &p_eye_foci) {
ERR_FAIL_COND_V(p_eye_foci.is_empty(), RID());
int32_t texel_width = RD::get_singleton()->limit_get(RD::LIMIT_VRS_TEXEL_WIDTH);
int32_t texel_height = RD::get_singleton()->limit_get(RD::LIMIT_VRS_TEXEL_HEIGHT);
Size2i texel_size = RD::get_singleton()->vrs_get_texel_size();
// Should return sensible data or graphics API does not support VRS.
ERR_FAIL_COND_V(texel_width < 1 || texel_height < 1, RID());
ERR_FAIL_COND_V(texel_size.x < 1 || texel_size.y < 1, RID());
Size2 vrs_size = Size2(0.5 + p_target_size.x / texel_width, 0.5 + p_target_size.y / texel_height).round();
Size2 vrs_size = Size2(0.5 + p_target_size.x / texel_size.x, 0.5 + p_target_size.y / texel_size.y).floor();
// Make sure we have at least one pixel.
vrs_size = vrs_size.maxf(1.0);
@ -150,16 +149,18 @@ RID XRVRS::make_vrs_texture(const Size2 &p_target_size, const PackedVector2Array
Vector2i view_center;
view_center.x = int(vrs_size.x * (eye_foci[i].x + 1.0) * region_ratio.x * 0.5) + region_offset.x;
view_center.y = int(vrs_size.y * (eye_foci[i].y + 1.0) * region_ratio.y * 0.5) + region_offset.y;
view_center.y = int(vrs_size.y * (-eye_foci[i].y + 1.0) * region_ratio.y * 0.5) + region_offset.y;
int d = 0;
for (int y = 0; y < vrs_sizei.y; y++) {
for (int x = 0; x < vrs_sizei.x; x++) {
// Generate a density map that represents the distance to the view focus point. While this leaves the opportunities
// offered by the density map being different in each direction currently unused, it was found to give better tile
// distribution on hardware that supports the feature natively. This area is open to improvements in the future.
Vector2 offset = Vector2(x - view_center.x, y - view_center.y) / region_ratio;
real_t density = 255.0 * MAX(0.0, (Math::abs(offset.x) - min_radius) / outer_radius);
data_ptr[d++] = MIN(255, density);
density = 255.0 * MAX(0.0, (Math::abs(offset.y) - min_radius) / outer_radius);
data_ptr[d++] = MIN(255, density);
real_t density = MAX(offset.length() - min_radius, 0.0) / outer_radius;
data_ptr[d++] = CLAMP(255.0 * density, 0, 255);
data_ptr[d++] = CLAMP(255.0 * density, 0, 255);
}
}
images.push_back(Image::create_from_data(vrs_sizei.x, vrs_sizei.y, false, Image::FORMAT_RG8, data));

View file

@ -28,8 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
#ifndef XR_VRS_H
#define XR_VRS_H
#pragma once
#include "core/object/class_db.h"
#include "core/object/object.h"
@ -66,5 +65,3 @@ public:
RID make_vrs_texture(const Size2 &p_target_size, const PackedVector2Array &p_eye_foci);
};
#endif // XR_VRS_H