You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Allow OpenXR extensions to add properties to the OpenXRCompositionLayer node
This commit is contained in:
@@ -60,6 +60,10 @@ void OpenXRExtensionWrapperExtension::_bind_methods() {
|
||||
GDVIRTUAL_BIND(_on_state_loss_pending);
|
||||
GDVIRTUAL_BIND(_on_state_exiting);
|
||||
GDVIRTUAL_BIND(_on_event_polled, "event");
|
||||
GDVIRTUAL_BIND(_set_viewport_composition_layer_and_get_next_pointer, "layer", "property_values", "next_pointer");
|
||||
GDVIRTUAL_BIND(_get_viewport_composition_layer_extension_properties, "layer");
|
||||
GDVIRTUAL_BIND(_get_viewport_composition_layer_extension_property_defaults, "layer");
|
||||
GDVIRTUAL_BIND(_on_viewport_composition_layer_destroyed, "layer");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_openxr_api"), &OpenXRExtensionWrapperExtension::get_openxr_api);
|
||||
ClassDB::bind_method(D_METHOD("register_extension_wrapper"), &OpenXRExtensionWrapperExtension::register_extension_wrapper);
|
||||
@@ -240,6 +244,36 @@ bool OpenXRExtensionWrapperExtension::on_event_polled(const XrEventDataBuffer &p
|
||||
return false;
|
||||
}
|
||||
|
||||
void *OpenXRExtensionWrapperExtension::set_viewport_composition_layer_and_get_next_pointer(const XrCompositionLayerBaseHeader *p_layer, Dictionary p_property_values, void *p_next_pointer) {
|
||||
uint64_t pointer = 0;
|
||||
|
||||
if (GDVIRTUAL_CALL(_set_viewport_composition_layer_and_get_next_pointer, GDExtensionConstPtr<void>(p_layer), p_property_values, GDExtensionPtr<void>(p_next_pointer), pointer)) {
|
||||
return reinterpret_cast<void *>(pointer);
|
||||
}
|
||||
|
||||
return p_next_pointer;
|
||||
}
|
||||
|
||||
void OpenXRExtensionWrapperExtension::on_viewport_composition_layer_destroyed(const XrCompositionLayerBaseHeader *p_layer) {
|
||||
GDVIRTUAL_CALL(_on_viewport_composition_layer_destroyed, GDExtensionConstPtr<void>(p_layer));
|
||||
}
|
||||
|
||||
void OpenXRExtensionWrapperExtension::get_viewport_composition_layer_extension_properties(List<PropertyInfo> *p_property_list) {
|
||||
TypedArray<Dictionary> properties;
|
||||
|
||||
if (GDVIRTUAL_CALL(_get_viewport_composition_layer_extension_properties, properties)) {
|
||||
for (int i = 0; i < properties.size(); i++) {
|
||||
p_property_list->push_back(PropertyInfo::from_dict(properties[i]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary OpenXRExtensionWrapperExtension::get_viewport_composition_layer_extension_property_defaults() {
|
||||
Dictionary property_defaults;
|
||||
GDVIRTUAL_CALL(_get_viewport_composition_layer_extension_property_defaults, property_defaults);
|
||||
return property_defaults;
|
||||
}
|
||||
|
||||
Ref<OpenXRAPIExtension> OpenXRExtensionWrapperExtension::get_openxr_api() {
|
||||
return openxr_api;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user