mirror of
https://github.com/Redot-Engine/redot-engine.git
synced 2025-12-06 07:17:42 -05:00
Merge commit godotengine/godot@5abed52fd9
This commit is contained in:
@@ -46,6 +46,7 @@ void OpenXRInterface::_bind_methods() {
|
||||
// lifecycle signals
|
||||
ADD_SIGNAL(MethodInfo("session_begun"));
|
||||
ADD_SIGNAL(MethodInfo("session_stopping"));
|
||||
ADD_SIGNAL(MethodInfo("session_synchronized"));
|
||||
ADD_SIGNAL(MethodInfo("session_focussed"));
|
||||
ADD_SIGNAL(MethodInfo("session_visible"));
|
||||
ADD_SIGNAL(MethodInfo("session_loss_pending"));
|
||||
@@ -56,6 +57,9 @@ void OpenXRInterface::_bind_methods() {
|
||||
ADD_SIGNAL(MethodInfo("cpu_level_changed", PropertyInfo(Variant::INT, "sub_domain"), PropertyInfo(Variant::INT, "from_level"), PropertyInfo(Variant::INT, "to_level")));
|
||||
ADD_SIGNAL(MethodInfo("gpu_level_changed", PropertyInfo(Variant::INT, "sub_domain"), PropertyInfo(Variant::INT, "from_level"), PropertyInfo(Variant::INT, "to_level")));
|
||||
|
||||
// State
|
||||
ClassDB::bind_method(D_METHOD("get_session_state"), &OpenXRInterface::get_session_state);
|
||||
|
||||
// Display refresh rate
|
||||
ClassDB::bind_method(D_METHOD("get_display_refresh_rate"), &OpenXRInterface::get_display_refresh_rate);
|
||||
ClassDB::bind_method(D_METHOD("set_display_refresh_rate", "refresh_rate"), &OpenXRInterface::set_display_refresh_rate);
|
||||
@@ -118,6 +122,16 @@ void OpenXRInterface::_bind_methods() {
|
||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "vrs_min_radius", PROPERTY_HINT_RANGE, "1.0,100.0,1.0"), "set_vrs_min_radius", "get_vrs_min_radius");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "vrs_strength", PROPERTY_HINT_RANGE, "0.1,10.0,0.1"), "set_vrs_strength", "get_vrs_strength");
|
||||
|
||||
BIND_ENUM_CONSTANT(OPENXR_SESSION_STATE_UNKNOWN);
|
||||
BIND_ENUM_CONSTANT(OPENXR_SESSION_STATE_IDLE);
|
||||
BIND_ENUM_CONSTANT(OPENXR_SESSION_STATE_READY);
|
||||
BIND_ENUM_CONSTANT(OPENXR_SESSION_STATE_SYNCHRONIZED);
|
||||
BIND_ENUM_CONSTANT(OPENXR_SESSION_STATE_VISIBLE);
|
||||
BIND_ENUM_CONSTANT(OPENXR_SESSION_STATE_FOCUSED);
|
||||
BIND_ENUM_CONSTANT(OPENXR_SESSION_STATE_STOPPING);
|
||||
BIND_ENUM_CONSTANT(OPENXR_SESSION_STATE_LOSS_PENDING);
|
||||
BIND_ENUM_CONSTANT(OPENXR_SESSION_STATE_EXITING);
|
||||
|
||||
BIND_ENUM_CONSTANT(HAND_LEFT);
|
||||
BIND_ENUM_CONSTANT(HAND_RIGHT);
|
||||
BIND_ENUM_CONSTANT(HAND_MAX);
|
||||
@@ -1377,6 +1391,10 @@ void OpenXRInterface::on_state_visible() {
|
||||
emit_signal(SNAME("session_visible"));
|
||||
}
|
||||
|
||||
void OpenXRInterface::on_state_synchronized() {
|
||||
emit_signal(SNAME("session_synchronized"));
|
||||
}
|
||||
|
||||
void OpenXRInterface::on_state_focused() {
|
||||
emit_signal(SNAME("session_focussed"));
|
||||
}
|
||||
@@ -1401,6 +1419,14 @@ void OpenXRInterface::on_refresh_rate_changes(float p_new_rate) {
|
||||
emit_signal(SNAME("refresh_rate_changed"), p_new_rate);
|
||||
}
|
||||
|
||||
OpenXRInterface::OpenXrSessionState OpenXRInterface::get_session_state() {
|
||||
if (openxr_api) {
|
||||
return (OpenXrSessionState)openxr_api->get_session_state();
|
||||
}
|
||||
|
||||
return OPENXR_SESSION_STATE_UNKNOWN;
|
||||
}
|
||||
|
||||
/** Hand tracking. */
|
||||
void OpenXRInterface::set_motion_range(const Hand p_hand, const HandMotionRange p_motion_range) {
|
||||
ERR_FAIL_INDEX(p_hand, HAND_MAX);
|
||||
|
||||
Reference in New Issue
Block a user