Add the SDL_GPU API
Project Lead: Evan Hemsley <evan@moonside.games> Co-designer, Metal Port, Console Ports: Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com> Production, QA, Debug: Co-authored-by: Ethan Lee <flibitijibibo@gmail.com> SDL_Render Driver, Bugfixes: Co-authored-by: Andrei Alexeyev <akari@taisei-project.org> Additional D3D12 Programming, Bugfixes: Co-authored-by: Bart van der Werf <bluelive@gmail.com> Bugfixes and Feedback: Co-authored-by: Zakary Strange <zakarystrange@gmail.com> Co-authored-by: meyraud705 <meyraud705@gmail.com> Co-authored-by: Joshua T. Fisher <playmer@gmail.com> Co-authored-by: Topi Ritala <ritalat@fastmail.com> Co-authored-by: David Gow <david@ingeniumdigital.com> Original API Proposal: Co-authored-by: Ryan C. Gordon <icculus@icculus.org>
This commit is contained in:
@@ -233,6 +233,7 @@ endmacro()
|
||||
|
||||
define_sdl_subsystem(Audio)
|
||||
define_sdl_subsystem(Video)
|
||||
define_sdl_subsystem(Gpu DEPS SDL_VIDEO)
|
||||
define_sdl_subsystem(Render DEPS SDL_VIDEO)
|
||||
define_sdl_subsystem(Camera DEPS SDL_VIDEO)
|
||||
define_sdl_subsystem(Joystick)
|
||||
@@ -331,6 +332,7 @@ dep_option(SDL_RENDER_D3D "Enable the Direct3D 9 render driver" ON "SDL
|
||||
dep_option(SDL_RENDER_D3D11 "Enable the Direct3D 11 render driver" ON "SDL_RENDER;SDL_DIRECTX" OFF)
|
||||
dep_option(SDL_RENDER_D3D12 "Enable the Direct3D 12 render driver" ON "SDL_RENDER;SDL_DIRECTX" OFF)
|
||||
dep_option(SDL_RENDER_METAL "Enable the Metal render driver" ON "SDL_RENDER;${APPLE}" OFF)
|
||||
set_option(SDL_RENDER_GPU "Enable the SDL_Gpu render driver" ON)
|
||||
dep_option(SDL_VIVANTE "Use Vivante EGL video driver" ON "${UNIX_SYS};SDL_CPU_ARM32" OFF)
|
||||
dep_option(SDL_VULKAN "Enable Vulkan support" ON "SDL_VIDEO;ANDROID OR APPLE OR LINUX OR FREEBSD OR WINDOWS" OFF)
|
||||
dep_option(SDL_RENDER_VULKAN "Enable the Vulkan render driver" ON "SDL_RENDER;SDL_VULKAN" OFF)
|
||||
@@ -350,6 +352,7 @@ set_option(SDL_LIBUDEV "Enable libudev support" ON)
|
||||
set_option(SDL_ASAN "Use AddressSanitizer to detect memory errors" OFF)
|
||||
set_option(SDL_CCACHE "Use Ccache to speed up build" OFF)
|
||||
set_option(SDL_CLANG_TIDY "Run clang-tidy static analysis" OFF)
|
||||
set_option(SDL_GPU_DXVK "Build SDL_Gpu with DXVK support" OFF)
|
||||
|
||||
set(SDL_VENDOR_INFO "" CACHE STRING "Vendor name and/or version to add to SDL_REVISION")
|
||||
|
||||
@@ -1123,6 +1126,7 @@ sdl_glob_sources(
|
||||
"${SDL3_SOURCE_DIR}/src/events/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/file/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/filesystem/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/gpu/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/joystick/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/haptic/*.c"
|
||||
"${SDL3_SOURCE_DIR}/src/hidapi/*.c"
|
||||
@@ -1704,6 +1708,16 @@ elseif(UNIX AND NOT APPLE AND NOT RISCOS AND NOT HAIKU)
|
||||
)
|
||||
endif()
|
||||
|
||||
if(SDL_GPU AND SDL_GPU_DXVK)
|
||||
if(PKG_CONFIG_FOUND)
|
||||
pkg_search_module(DXVK_NATIVE dxvk-dxgi)
|
||||
if(DXVK_NATIVE_FOUND)
|
||||
set(HAVE_D3D11_H TRUE)
|
||||
sdl_include_directories(PRIVATE SYSTEM ${DXVK_NATIVE_INCLUDE_DIRS})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Always compiled for Linux, unconditionally:
|
||||
sdl_sources(
|
||||
"${SDL3_SOURCE_DIR}/src/core/linux/SDL_evdev_capabilities.c"
|
||||
@@ -2363,6 +2377,10 @@ elseif(APPLE)
|
||||
set(SDL_VIDEO_RENDER_METAL 1)
|
||||
set(HAVE_RENDER_METAL TRUE)
|
||||
endif()
|
||||
if (SDL_GPU)
|
||||
set(SDL_GPU_METAL 1)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/gpu/metal/*.m")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -2925,6 +2943,27 @@ if(SDL_VIDEO)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(SDL_GPU)
|
||||
if(HAVE_D3D11_H)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/gpu/d3d11/*.c")
|
||||
set(SDL_GPU_D3D11 1)
|
||||
set(HAVE_SDL_GPU TRUE)
|
||||
endif()
|
||||
if(SDL_RENDER_D3D12)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/gpu/d3d12/*.c")
|
||||
set(SDL_GPU_D3D12 1)
|
||||
set(HAVE_SDL_GPU TRUE)
|
||||
endif()
|
||||
if(SDL_VIDEO_VULKAN)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/gpu/vulkan/*.c")
|
||||
set(SDL_GPU_VULKAN 1)
|
||||
set(HAVE_SDL_GPU TRUE)
|
||||
endif()
|
||||
if(SDL_RENDER_GPU)
|
||||
set(SDL_VIDEO_RENDER_GPU 1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Dummies
|
||||
# configure.ac does it differently:
|
||||
# if not have X
|
||||
|
||||
Reference in New Issue
Block a user