diff --git a/CMakeLists.txt b/CMakeLists.txt index d6e3bb81..5dbc8c92 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,6 +59,7 @@ if(PSEMEK_GRAPHICS_API STREQUAL WEBGPU) endif() message(STATUS "Using graphics API ${PSEMEK_GRAPHICS_API}") +list(APPEND PSEMEK_DEFINITIONS "-DPSEMEK_GRAPHICS_API_${PSEMEK_GRAPHICS_API}=1") add_subdirectory(3rdparty) diff --git a/libs/app/CMakeLists.txt b/libs/app/CMakeLists.txt index cccce02f..4ee07dd1 100644 --- a/libs/app/CMakeLists.txt +++ b/libs/app/CMakeLists.txt @@ -9,7 +9,6 @@ endif() psemek_add_library(psemek-app ${PSEMEK_APP_HEADERS} ${PSEMEK_APP_SOURCES}) target_include_directories(psemek-app PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") target_link_libraries(psemek-app PUBLIC psemek-log psemek-util psemek-gfx psemek-ui) -target_compile_definitions(psemek-app PUBLIC -DPSEMEK_APP_${PSEMEK_GRAPHICS_API}=1) if(PSEMEK_GRAPHICS_API STREQUAL WEBGPU) target_link_libraries(psemek-app PUBLIC psemek-wgpu) endif() diff --git a/libs/app/include/psemek/app/application.hpp b/libs/app/include/psemek/app/application.hpp index abe327a4..93fc9913 100644 --- a/libs/app/include/psemek/app/application.hpp +++ b/libs/app/include/psemek/app/application.hpp @@ -2,7 +2,7 @@ #include -#if defined(PSEMEK_APP_WEBGPU) +#if defined(PSEMEK_GRAPHICS_API_WEBGPU) #include #include #include @@ -23,7 +23,7 @@ namespace psemek::app std::string name; int multisampling = 4; bool highdpi = false; -#if defined(PSEMEK_APP_WEBGPU) +#if defined(PSEMEK_GRAPHICS_API_WEBGPU) std::vector required_features; std::optional required_limits; #endif @@ -36,10 +36,10 @@ namespace psemek::app std::function show_cursor; std::function relative_mouse_mode; std::function windowed; -#if defined(PSEMEK_APP_OPENGL) +#if defined(PSEMEK_GRAPHICS_API_OPENGL) std::function vsync; #endif -#if defined(PSEMEK_APP_WEBGPU) +#if defined(PSEMEK_GRAPHICS_API_WEBGPU) wgpu::adapter adapter; wgpu::surface surface; wgpu::device device; diff --git a/libs/sdl2/CMakeLists.txt b/libs/sdl2/CMakeLists.txt index 30ec4ac0..730860ff 100644 --- a/libs/sdl2/CMakeLists.txt +++ b/libs/sdl2/CMakeLists.txt @@ -11,4 +11,3 @@ if(PSEMEK_GRAPHICS_API STREQUAL OPENGL) elseif(PSEMEK_GRAPHICS_API STREQUAL WEBGPU) target_link_libraries(psemek-sdl2 PUBLIC psemek-wgpu) endif() -target_compile_definitions(psemek-sdl2 PUBLIC "-DPSEMEK_SDL2_${PSEMEK_GRAPHICS_API}=1") diff --git a/libs/sdl2/include/psemek/sdl2/window.hpp b/libs/sdl2/include/psemek/sdl2/window.hpp index 9109fe51..4afaed52 100644 --- a/libs/sdl2/include/psemek/sdl2/window.hpp +++ b/libs/sdl2/include/psemek/sdl2/window.hpp @@ -2,7 +2,7 @@ #include -#if defined(PSEMEK_SDL2_WEBGPU) +#if defined(PSEMEK_GRAPHICS_API_WEBGPU) #include #include #include @@ -27,7 +27,7 @@ namespace psemek::sdl2 void vsync(bool on); void windowed(bool on); -#if defined(PSEMEK_SDL2_WEBGPU) +#if defined(PSEMEK_GRAPHICS_API_WEBGPU) wgpu::adapter wgpu_adapter() const { return wgpu_adapter_; } wgpu::surface wgpu_surface() const { return wgpu_surface_; } wgpu::device wgpu_device() const { return wgpu_device_; } @@ -37,9 +37,9 @@ namespace psemek::sdl2 std::shared_ptr sdl_init_; SDL_Window * window_ = nullptr; -#if defined(PSEMEK_SDL2_OPENGL) +#if defined(PSEMEK_GRAPHICS_API_OPENGL) SDL_GLContext gl_context_ = nullptr; -#elif defined(PSEMEK_SDL2_WEBGPU) +#elif defined(PSEMEK_GRAPHICS_API_WEBGPU) wgpu::adapter wgpu_adapter_; wgpu::surface wgpu_surface_; wgpu::device wgpu_device_; diff --git a/libs/sdl2/source/main.cpp b/libs/sdl2/source/main.cpp index 3fc3bd5c..714399a8 100644 --- a/libs/sdl2/source/main.cpp +++ b/libs/sdl2/source/main.cpp @@ -49,11 +49,11 @@ int main(int argc, char ** argv) try context.relative_mouse_mode = [&](bool mode){ window.relative_mouse_mode(mode); }; context.windowed = [&](bool on){ window.windowed(on); }; -#if defined(PSEMEK_SDL2_OPENGL) +#if defined(PSEMEK_GRAPHICS_API_OPENGL) context.vsync = [&](bool on){ window.vsync(on); }; #endif -#if defined(PSEMEK_SDL2_WEBGPU) +#if defined(PSEMEK_GRAPHICS_API_WEBGPU) context.adapter = window.wgpu_adapter(); context.surface = window.wgpu_surface(); context.device = window.wgpu_device(); diff --git a/libs/sdl2/source/window.cpp b/libs/sdl2/source/window.cpp index 582a8c67..c541938c 100644 --- a/libs/sdl2/source/window.cpp +++ b/libs/sdl2/source/window.cpp @@ -3,10 +3,10 @@ #include #include -#if defined(PSEMEK_SDL2_OPENGL) +#if defined(PSEMEK_GRAPHICS_API_OPENGL) #include #include -#elif defined(PSEMEK_SDL2_WEBGPU) +#elif defined(PSEMEK_GRAPHICS_API_WEBGPU) #include #include #include @@ -23,7 +23,7 @@ namespace psemek::sdl2 std::uint32_t flags = SDL_WINDOW_HIDDEN | SDL_WINDOW_RESIZABLE; if (options.highdpi) flags |= SDL_WINDOW_ALLOW_HIGHDPI; -#if defined(PSEMEK_SDL2_OPENGL) +#if defined(PSEMEK_GRAPHICS_API_OPENGL) SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, gl::sys::major_version()); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, gl::sys::minor_version()); @@ -66,7 +66,7 @@ namespace psemek::sdl2 if (!window_) sdl2::fail("Failed to create window: "); -#if defined(PSEMEK_SDL2_OPENGL) +#if defined(PSEMEK_GRAPHICS_API_OPENGL) gl_context_ = SDL_GL_CreateContext(window_); if (!gl_context_) sdl2::fail("Failed to create OpenGL context: "); @@ -74,7 +74,7 @@ namespace psemek::sdl2 SDL_GL_MakeCurrent(window_, gl_context_); gfx::init(); -#elif defined(PSEMEK_SDL2_WEBGPU) +#elif defined(PSEMEK_GRAPHICS_API_WEBGPU) wgpu::setup_logging(log::level::error); auto instance = wgpu::instance::create({});