mirror of
https://github.com/godotengine/godot.git
synced 2025-10-20 00:13:30 +00:00
Remove static lifetime object to avoid late destruction
(cherry picked from commit cd198f7517
)
This commit is contained in:
parent
6c180272b4
commit
757dbe621f
2 changed files with 11 additions and 6 deletions
|
@ -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.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue