mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 13:41:03 +00:00 
			
		
		
		
	Fix build with Vulkan disabled and no Vulkan headers installed.
This commit is contained in:
		
							parent
							
								
									2b505b74b9
								
							
						
					
					
						commit
						4dd8f68120
					
				
					 14 changed files with 56 additions and 10 deletions
				
			
		|  | @ -1590,11 +1590,17 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph | |||
| 		// Now validate whether the selected driver matches with the renderer.
 | ||||
| 		bool valid_combination = false; | ||||
| 		Vector<String> available_drivers; | ||||
| #ifdef VULKAN_ENABLED | ||||
| 		if (rendering_method == "forward_plus" || rendering_method == "mobile") { | ||||
| 			available_drivers.push_back("vulkan"); | ||||
| 		} else if (rendering_method == "gl_compatibility") { | ||||
| 		} | ||||
| #endif | ||||
| #ifdef GLES3_ENABLED | ||||
| 		if (rendering_method == "gl_compatibility") { | ||||
| 			available_drivers.push_back("opengl3"); | ||||
| 		} else { | ||||
| 		} | ||||
| #endif | ||||
| 		if (available_drivers.is_empty()) { | ||||
| 			OS::get_singleton()->print("Unknown renderer name '%s', aborting.\n", rendering_method.utf8().get_data()); | ||||
| 			goto error; | ||||
| 		} | ||||
|  |  | |||
|  | @ -28,6 +28,8 @@ | |||
| /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */ | ||||
| /*************************************************************************/ | ||||
| 
 | ||||
| #ifdef VULKAN_ENABLED | ||||
| 
 | ||||
| #include "vulkan_context_android.h" | ||||
| 
 | ||||
| #ifdef USE_VOLK | ||||
|  | @ -63,3 +65,5 @@ bool VulkanContextAndroid::_use_validation_layers() { | |||
| 	// On Android, we use validation layers automatically if they were explicitly linked with the app.
 | ||||
| 	return count > 0; | ||||
| } | ||||
| 
 | ||||
| #endif // VULKAN_ENABLED
 | ||||
|  |  | |||
|  | @ -31,6 +31,8 @@ | |||
| #ifndef VULKAN_CONTEXT_ANDROID_H | ||||
| #define VULKAN_CONTEXT_ANDROID_H | ||||
| 
 | ||||
| #ifdef VULKAN_ENABLED | ||||
| 
 | ||||
| #include "drivers/vulkan/vulkan_context.h" | ||||
| 
 | ||||
| struct ANativeWindow; | ||||
|  | @ -48,4 +50,6 @@ protected: | |||
| 	bool _use_validation_layers() override; | ||||
| }; | ||||
| 
 | ||||
| #endif // VULKAN_ENABLED
 | ||||
| 
 | ||||
| #endif // VULKAN_CONTEXT_ANDROID_H
 | ||||
|  |  | |||
|  | @ -40,7 +40,6 @@ | |||
| 
 | ||||
| #include "vulkan_context_ios.h" | ||||
| 
 | ||||
| #import <QuartzCore/CAMetalLayer.h> | ||||
| #ifdef USE_VOLK | ||||
| #include <volk.h> | ||||
| #else | ||||
|  | @ -48,6 +47,9 @@ | |||
| #endif | ||||
| #endif | ||||
| 
 | ||||
| #import <Foundation/Foundation.h> | ||||
| #import <QuartzCore/CAMetalLayer.h> | ||||
| 
 | ||||
| class DisplayServerIOS : public DisplayServer { | ||||
| 	GDCLASS(DisplayServerIOS, DisplayServer) | ||||
| 
 | ||||
|  |  | |||
|  | @ -41,7 +41,6 @@ | |||
| #include "tts_ios.h" | ||||
| #import "view_controller.h" | ||||
| 
 | ||||
| #import <Foundation/Foundation.h> | ||||
| #import <sys/utsname.h> | ||||
| 
 | ||||
| static const float kDisplayServerIOSAcceleration = 1.f; | ||||
|  |  | |||
|  | @ -31,6 +31,8 @@ | |||
| #ifndef VULKAN_CONTEXT_IOS_H | ||||
| #define VULKAN_CONTEXT_IOS_H | ||||
| 
 | ||||
| #ifdef VULKAN_ENABLED | ||||
| 
 | ||||
| #include "drivers/vulkan/vulkan_context.h" | ||||
| 
 | ||||
| #import <UIKit/UIKit.h> | ||||
|  | @ -45,4 +47,6 @@ public: | |||
| 	~VulkanContextIOS(); | ||||
| }; | ||||
| 
 | ||||
| #endif // VULKAN_ENABLED
 | ||||
| 
 | ||||
| #endif // VULKAN_CONTEXT_IOS_H
 | ||||
|  |  | |||
|  | @ -28,6 +28,8 @@ | |||
| /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */ | ||||
| /*************************************************************************/ | ||||
| 
 | ||||
| #ifdef VULKAN_ENABLED | ||||
| 
 | ||||
| #include "vulkan_context_ios.h" | ||||
| #ifdef USE_VOLK | ||||
| #include <volk.h> | ||||
|  | @ -57,3 +59,5 @@ Error VulkanContextIOS::window_create(DisplayServer::WindowID p_window_id, Displ | |||
| VulkanContextIOS::VulkanContextIOS() {} | ||||
| 
 | ||||
| VulkanContextIOS::~VulkanContextIOS() {} | ||||
| 
 | ||||
| #endif // VULKAN_ENABLED | ||||
|  |  | |||
|  | @ -28,6 +28,8 @@ | |||
| /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */ | ||||
| /*************************************************************************/ | ||||
| 
 | ||||
| #ifdef VULKAN_ENABLED | ||||
| 
 | ||||
| #include "vulkan_context_x11.h" | ||||
| 
 | ||||
| #ifdef USE_VOLK | ||||
|  | @ -59,3 +61,5 @@ VulkanContextX11::VulkanContextX11() { | |||
| 
 | ||||
| VulkanContextX11::~VulkanContextX11() { | ||||
| } | ||||
| 
 | ||||
| #endif // VULKAN_ENABLED
 | ||||
|  |  | |||
|  | @ -31,6 +31,8 @@ | |||
| #ifndef VULKAN_CONTEXT_X11_H | ||||
| #define VULKAN_CONTEXT_X11_H | ||||
| 
 | ||||
| #ifdef VULKAN_ENABLED | ||||
| 
 | ||||
| #include "drivers/vulkan/vulkan_context.h" | ||||
| #include <X11/Xlib.h> | ||||
| 
 | ||||
|  | @ -44,4 +46,6 @@ public: | |||
| 	~VulkanContextX11(); | ||||
| }; | ||||
| 
 | ||||
| #endif // VULKAN_ENABLED
 | ||||
| 
 | ||||
| #endif // VULKAN_CONTEXT_X11_H
 | ||||
|  |  | |||
|  | @ -223,6 +223,8 @@ def configure(env: "Environment"): | |||
|             "AVFoundation", | ||||
|             "-framework", | ||||
|             "CoreMedia", | ||||
|             "-framework", | ||||
|             "QuartzCore", | ||||
|         ] | ||||
|     ) | ||||
|     env.Append(LIBS=["pthread", "z"]) | ||||
|  | @ -236,7 +238,7 @@ def configure(env: "Environment"): | |||
| 
 | ||||
|     if env["vulkan"]: | ||||
|         env.Append(CPPDEFINES=["VULKAN_ENABLED"]) | ||||
|         env.Append(LINKFLAGS=["-framework", "Metal", "-framework", "QuartzCore", "-framework", "IOSurface"]) | ||||
|         env.Append(LINKFLAGS=["-framework", "Metal", "-framework", "IOSurface"]) | ||||
|         if not env["use_volk"]: | ||||
|             env.Append(LINKFLAGS=["-lMoltenVK"]) | ||||
|             mvk_found = False | ||||
|  |  | |||
|  | @ -31,6 +31,8 @@ | |||
| #ifndef VULKAN_CONTEXT_MACOS_H | ||||
| #define VULKAN_CONTEXT_MACOS_H | ||||
| 
 | ||||
| #ifdef VULKAN_ENABLED | ||||
| 
 | ||||
| #include "drivers/vulkan/vulkan_context.h" | ||||
| #import <AppKit/AppKit.h> | ||||
| 
 | ||||
|  | @ -44,4 +46,6 @@ public: | |||
| 	~VulkanContextMacOS(); | ||||
| }; | ||||
| 
 | ||||
| #endif // VULKAN_ENABLED
 | ||||
| 
 | ||||
| #endif // VULKAN_CONTEXT_MACOS_H
 | ||||
|  |  | |||
|  | @ -28,6 +28,7 @@ | |||
| /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */ | ||||
| /*************************************************************************/ | ||||
| 
 | ||||
| #ifdef VULKAN_ENABLED | ||||
| #include "vulkan_context_macos.h" | ||||
| #ifdef USE_VOLK | ||||
| #include <volk.h> | ||||
|  | @ -57,3 +58,5 @@ VulkanContextMacOS::VulkanContextMacOS() { | |||
| 
 | ||||
| VulkanContextMacOS::~VulkanContextMacOS() { | ||||
| } | ||||
| 
 | ||||
| #endif // VULKAN_ENABLED | ||||
|  |  | |||
|  | @ -582,10 +582,12 @@ def configure_mingw(env): | |||
|         ] | ||||
|     ) | ||||
| 
 | ||||
|     if env["vulkan"]: | ||||
|         env.Append(CPPDEFINES=["VULKAN_ENABLED"]) | ||||
|         if not env["use_volk"]: | ||||
|             env.Append(LIBS=["vulkan"]) | ||||
| 
 | ||||
|     if env["opengl3"]: | ||||
|         env.Append(CPPDEFINES=["GLES3_ENABLED"]) | ||||
|         env.Append(LIBS=["opengl32"]) | ||||
| 
 | ||||
|  |  | |||
|  | @ -31,6 +31,8 @@ | |||
| #ifndef VULKAN_CONTEXT_WIN_H | ||||
| #define VULKAN_CONTEXT_WIN_H | ||||
| 
 | ||||
| #ifdef VULKAN_ENABLED | ||||
| 
 | ||||
| #include "drivers/vulkan/vulkan_context.h" | ||||
| 
 | ||||
| #define WIN32_LEAN_AND_MEAN | ||||
|  | @ -46,4 +48,6 @@ public: | |||
| 	~VulkanContextWindows(); | ||||
| }; | ||||
| 
 | ||||
| #endif // VULKAN_ENABLED
 | ||||
| 
 | ||||
| #endif // VULKAN_CONTEXT_WIN_H
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 bruvzg
						bruvzg