feat: godot-engine-source-4.3-stable
This commit is contained in:
parent
c59a7dcade
commit
7125d019b5
11149 changed files with 5070401 additions and 0 deletions
64
engine/drivers/vulkan/SCsub
Normal file
64
engine/drivers/vulkan/SCsub
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
Import("env")
|
||||
|
||||
thirdparty_obj = []
|
||||
thirdparty_dir = "#thirdparty/vulkan"
|
||||
thirdparty_volk_dir = "#thirdparty/volk"
|
||||
|
||||
# Use bundled Vulkan headers
|
||||
env.Prepend(CPPPATH=[thirdparty_dir, thirdparty_dir + "/include"])
|
||||
|
||||
if env["use_volk"]:
|
||||
env.AppendUnique(CPPDEFINES=["USE_VOLK"])
|
||||
env.Prepend(CPPPATH=[thirdparty_volk_dir])
|
||||
|
||||
if env["platform"] == "android":
|
||||
env.AppendUnique(CPPDEFINES=["VK_USE_PLATFORM_ANDROID_KHR"])
|
||||
elif env["platform"] == "ios":
|
||||
env.AppendUnique(CPPDEFINES=["VK_USE_PLATFORM_IOS_MVK", "VK_USE_PLATFORM_METAL_EXT"])
|
||||
elif env["platform"] == "linuxbsd":
|
||||
if env["x11"]:
|
||||
env.AppendUnique(CPPDEFINES=["VK_USE_PLATFORM_XLIB_KHR"])
|
||||
if env["wayland"]:
|
||||
env.AppendUnique(CPPDEFINES=["VK_USE_PLATFORM_WAYLAND_KHR"])
|
||||
elif env["platform"] == "macos":
|
||||
env.AppendUnique(CPPDEFINES=["VK_USE_PLATFORM_MACOS_MVK", "VK_USE_PLATFORM_METAL_EXT"])
|
||||
elif env["platform"] == "windows":
|
||||
env.AppendUnique(CPPDEFINES=["VK_USE_PLATFORM_WIN32_KHR"])
|
||||
|
||||
# Build Vulkan memory allocator and volk
|
||||
env_thirdparty_vma = env.Clone()
|
||||
env_thirdparty_vma.disable_warnings()
|
||||
thirdparty_sources_vma = [thirdparty_dir + "/vk_mem_alloc.cpp"]
|
||||
|
||||
if env["use_volk"]:
|
||||
env_thirdparty_vma.AppendUnique(CPPDEFINES=["VMA_STATIC_VULKAN_FUNCTIONS=1"])
|
||||
env_thirdparty_volk = env.Clone()
|
||||
env_thirdparty_volk.disable_warnings()
|
||||
|
||||
thirdparty_sources_volk = [thirdparty_volk_dir + "/volk.c"]
|
||||
env_thirdparty_volk.add_source_files(thirdparty_obj, thirdparty_sources_volk)
|
||||
elif env["platform"] == "android":
|
||||
# Our current NDK version only provides old Vulkan headers,
|
||||
# so we have to limit VMA.
|
||||
env_thirdparty_vma.AppendUnique(CPPDEFINES=["VMA_VULKAN_VERSION=1000000"])
|
||||
elif env["platform"] == "macos" or env["platform"] == "ios":
|
||||
# MoltenVK supports only Vulkan 1.1 API, limit VMA to the same version.
|
||||
env_thirdparty_vma.AppendUnique(CPPDEFINES=["VMA_VULKAN_VERSION=1001000"])
|
||||
|
||||
env_thirdparty_vma.add_source_files(thirdparty_obj, thirdparty_sources_vma)
|
||||
|
||||
|
||||
env.drivers_sources += thirdparty_obj
|
||||
|
||||
|
||||
# Godot source files
|
||||
|
||||
driver_obj = []
|
||||
|
||||
env.add_source_files(driver_obj, "*.cpp")
|
||||
env.drivers_sources += driver_obj
|
||||
|
||||
# Needed to force rebuilding the driver files when the thirdparty code is updated.
|
||||
env.Depends(driver_obj, thirdparty_obj)
|
||||
Loading…
Add table
Add a link
Reference in a new issue