You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-16 14:00:40 +00:00
Remove static lifetime object to avoid late destruction
This commit is contained in:
@@ -360,13 +360,16 @@ void *OpenXRExtensionWrapper::set_android_surface_swapchain_create_info_and_get_
|
|||||||
}
|
}
|
||||||
|
|
||||||
Ref<OpenXRAPIExtension> OpenXRExtensionWrapper::_gdextension_get_openxr_api() {
|
Ref<OpenXRAPIExtension> OpenXRExtensionWrapper::_gdextension_get_openxr_api() {
|
||||||
static Ref<OpenXRAPIExtension> openxr_api_extension;
|
|
||||||
if (unlikely(openxr_api_extension.is_null())) {
|
|
||||||
openxr_api_extension.instantiate();
|
|
||||||
}
|
|
||||||
return openxr_api_extension;
|
return openxr_api_extension;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenXRExtensionWrapper::_gdextension_register_extension_wrapper() {
|
void OpenXRExtensionWrapper::_gdextension_register_extension_wrapper() {
|
||||||
OpenXRAPI::register_extension_wrapper(this);
|
OpenXRAPI::register_extension_wrapper(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OpenXRExtensionWrapper::OpenXRExtensionWrapper() {
|
||||||
|
openxr_api_extension.instantiate();
|
||||||
|
}
|
||||||
|
|
||||||
|
OpenXRExtensionWrapper::~OpenXRExtensionWrapper() {
|
||||||
|
}
|
||||||
|
|||||||
@@ -56,6 +56,8 @@ class OpenXRExtensionWrapper : public Object {
|
|||||||
protected:
|
protected:
|
||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
|
||||||
|
Ref<OpenXRAPIExtension> openxr_api_extension;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// `get_requested_extensions` should return a list of OpenXR extensions related to this extension.
|
// `get_requested_extensions` should return a list of OpenXR extensions related to this extension.
|
||||||
// If the bool * is a nullptr this extension is mandatory
|
// If the bool * is a nullptr this extension is mandatory
|
||||||
@@ -180,8 +182,8 @@ public:
|
|||||||
|
|
||||||
GDVIRTUAL1R(bool, _on_event_polled, GDExtensionConstPtr<void>);
|
GDVIRTUAL1R(bool, _on_event_polled, GDExtensionConstPtr<void>);
|
||||||
|
|
||||||
OpenXRExtensionWrapper() = default;
|
OpenXRExtensionWrapper();
|
||||||
virtual ~OpenXRExtensionWrapper() = default;
|
virtual ~OpenXRExtensionWrapper() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
// `OpenXRGraphicsExtensionWrapper` implements specific logic for each supported graphics API.
|
// `OpenXRGraphicsExtensionWrapper` implements specific logic for each supported graphics API.
|
||||||
|
|||||||
Reference in New Issue
Block a user