|
@@ -560,6 +560,12 @@ void OpenXRAPI::destroy_instance() {
|
|
|
instance = XR_NULL_HANDLE;
|
|
|
}
|
|
|
enabled_extensions.clear();
|
|
|
+
|
|
|
+ if (graphics_extension != nullptr) {
|
|
|
+ unregister_extension_wrapper(graphics_extension);
|
|
|
+ memdelete(graphics_extension);
|
|
|
+ graphics_extension = nullptr;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
bool OpenXRAPI::create_session() {
|
|
@@ -1347,6 +1353,10 @@ void OpenXRAPI::register_extension_wrapper(OpenXRExtensionWrapper *p_extension_w
|
|
|
registered_extension_wrappers.push_back(p_extension_wrapper);
|
|
|
}
|
|
|
|
|
|
+void OpenXRAPI::unregister_extension_wrapper(OpenXRExtensionWrapper *p_extension_wrapper) {
|
|
|
+ registered_extension_wrappers.erase(p_extension_wrapper);
|
|
|
+}
|
|
|
+
|
|
|
void OpenXRAPI::register_extension_metadata() {
|
|
|
for (OpenXRExtensionWrapper *extension_wrapper : registered_extension_wrappers) {
|
|
|
extension_wrapper->on_register_metadata();
|