replace SDL_GPU renderer with wgpu
This commit is contained in:
+9
-44
@@ -1,7 +1,7 @@
|
||||
cmake_minimum_required(VERSION 3.25)
|
||||
|
||||
project(mikemon VERSION 0.1 LANGUAGES CXX C)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD 23)
|
||||
set(CMAKE_C_EXTENSIONS OFF)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
@@ -13,6 +13,9 @@ set(SDL_SHARED OFF)
|
||||
set(SDL_STATIC ON)
|
||||
add_subdirectory(libs/SDL3)
|
||||
|
||||
# wgpu
|
||||
add_subdirectory(libs/wgpu)
|
||||
|
||||
# SDL_mixer
|
||||
set(BUILD_SHARED_LIBS ${SDL_SHARED})
|
||||
set(SDLMIXER_DEPS_SHARED OFF)
|
||||
@@ -36,19 +39,14 @@ add_library(imgui STATIC
|
||||
libs/imgui/imgui_tables.cpp
|
||||
libs/imgui/imgui_widgets.cpp
|
||||
libs/imgui/backends/imgui_impl_sdl3.cpp
|
||||
libs/imgui/backends/imgui_impl_sdlgpu3.cpp
|
||||
libs/imgui/backends/imgui_impl_wgpu.cpp
|
||||
)
|
||||
target_include_directories(imgui PUBLIC
|
||||
libs/imgui
|
||||
libs/imgui/backends
|
||||
)
|
||||
target_link_libraries(imgui PRIVATE SDL3::SDL3)
|
||||
|
||||
# Shaders
|
||||
find_program(SLANGC
|
||||
NAMES slangc
|
||||
PATHS /opt/shader-slang-bin/bin
|
||||
)
|
||||
target_link_libraries(imgui PRIVATE SDL3::SDL3 wgpu)
|
||||
target_compile_definitions(imgui PRIVATE IMGUI_IMPL_WEBGPU_BACKEND_WGPU=1)
|
||||
|
||||
# stb_image
|
||||
add_library(stb_image STATIC libs/stb/stb_image.c)
|
||||
@@ -58,39 +56,11 @@ target_include_directories(stb_image INTERFACE libs/stb)
|
||||
option(TRACY_ONLY_LOCALHOST "" ON)
|
||||
add_subdirectory(libs/tracy)
|
||||
|
||||
function(add_shader name)
|
||||
set(INPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/${name}.slang)
|
||||
set(OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/src/shaders/${name}.h)
|
||||
set(DEP_FILE ${CMAKE_CURRENT_BINARY_DIR}/SHADER_${name}.dep)
|
||||
|
||||
if (SLANGC)
|
||||
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(SLANG_FLAGS -g3 -O0)
|
||||
else()
|
||||
set(SLANG_FLAGS -O3)
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${OUTPUT_FILE}
|
||||
COMMAND ${SLANGC} -target spirv -validate-uniformity -o ${OUTPUT_FILE} -depfile ${DEP_FILE} -source-embed-style u8 -source-embed-name SPIRV_${name} ${SLANG_FLAGS} -- ${INPUT_FILE}
|
||||
DEPFILE ${DEP_FILE}
|
||||
)
|
||||
endif()
|
||||
|
||||
add_custom_target(SHADER_${name}
|
||||
DEPENDS ${OUTPUT_FILE}
|
||||
)
|
||||
endfunction()
|
||||
|
||||
add_shader(basic)
|
||||
add_shader(world)
|
||||
add_shader(gui_tile)
|
||||
add_shader(grid)
|
||||
|
||||
add_executable(mikemon
|
||||
src/log.cpp
|
||||
src/smol-atlas.cpp
|
||||
src/math_graphics.cpp
|
||||
src/shaders/shaders.c
|
||||
src/main.cpp
|
||||
)
|
||||
target_link_libraries(mikemon
|
||||
@@ -100,10 +70,5 @@ target_link_libraries(mikemon
|
||||
stb_image
|
||||
imgui
|
||||
TracyClient
|
||||
)
|
||||
add_dependencies(mikemon
|
||||
SHADER_basic
|
||||
SHADER_world
|
||||
SHADER_gui_tile
|
||||
SHADER_grid
|
||||
wgpu
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user