mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 21:51:22 +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
	
	 Bryce Hutchings
						Bryce Hutchings