From 1d1b9a01e7545e99d215338c31aca5577c3047a3 Mon Sep 17 00:00:00 2001 From: Sophomore Date: Fri, 14 Nov 2025 13:43:30 +0800 Subject: [PATCH 1/8] fix: add class WindowWrapper --- sdl_wrapper/CMakeLists.txt | 2 ++ sdl_wrapper/sdl_wrapper.decl.ixx | 1 + sdl_wrapper/sdl_wrapper.gpu.ixx | 12 +++++++++++- sdl_wrapper/sdl_wrapper.ixx | 1 + sdl_wrapper/sdl_wrapper.window.cpp | 21 +++++++++++++++++++++ sdl_wrapper/sdl_wrapper.window.ixx | 20 ++++++++++++++++++++ 6 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 sdl_wrapper/sdl_wrapper.window.cpp create mode 100644 sdl_wrapper/sdl_wrapper.window.ixx diff --git a/sdl_wrapper/CMakeLists.txt b/sdl_wrapper/CMakeLists.txt index 935e679..3a40ded 100644 --- a/sdl_wrapper/CMakeLists.txt +++ b/sdl_wrapper/CMakeLists.txt @@ -13,10 +13,12 @@ target_sources(sdl_wrapper sdl_wrapper.pipeline.ixx sdl_wrapper.gpu.ixx sdl_wrapper.decl.ixx + sdl_wrapper.window.ixx PRIVATE sdl_wrapper.buffer.cpp sdl_wrapper.pipeline.cpp sdl_wrapper.gpu.cpp + sdl_wrapper.window.cpp sdl_callback_implement.cpp ) diff --git a/sdl_wrapper/sdl_wrapper.decl.ixx b/sdl_wrapper/sdl_wrapper.decl.ixx index 0ac8bce..10ec1ed 100644 --- a/sdl_wrapper/sdl_wrapper.decl.ixx +++ b/sdl_wrapper/sdl_wrapper.decl.ixx @@ -10,4 +10,5 @@ export namespace sopho class GpuWrapper; class BufferWrapper; class PipelineWrapper; + class WindowWrapper; } diff --git a/sdl_wrapper/sdl_wrapper.gpu.ixx b/sdl_wrapper/sdl_wrapper.gpu.ixx index 352ce9d..b8916a9 100644 --- a/sdl_wrapper/sdl_wrapper.gpu.ixx +++ b/sdl_wrapper/sdl_wrapper.gpu.ixx @@ -5,13 +5,16 @@ module; #include #include "SDL3/SDL_gpu.h" #include "SDL3/SDL_log.h" +#include "SDL3/SDL_video.h" #include "shaderc/shaderc.hpp" export module sdl_wrapper:gpu; import :buffer; import :pipeline; +import :window; +namespace sopho export namespace sopho { - class GpuWrapper : public std::enable_shared_from_this + export class GpuWrapper : public std::enable_shared_from_this { SDL_GPUDevice* m_device{}; @@ -69,6 +72,13 @@ export namespace sopho return SDL_GetGPUSwapchainTextureFormat(m_device, m_window); } + auto create_window() + { + auto window = SDL_CreateWindow("Hello, Triangle!", 960, 540, SDL_WINDOW_RESIZABLE); + SDL_ClaimWindowForGPUDevice(m_device, window); + return WindowWrapper{shared_from_this(),window}; + } + auto set_window(SDL_Window* p_window) { m_window = p_window; diff --git a/sdl_wrapper/sdl_wrapper.ixx b/sdl_wrapper/sdl_wrapper.ixx index 9e7a9fd..a2ecdee 100644 --- a/sdl_wrapper/sdl_wrapper.ixx +++ b/sdl_wrapper/sdl_wrapper.ixx @@ -8,3 +8,4 @@ export import :app; export import :gpu; export import :buffer; export import :pipeline; +export import :window; diff --git a/sdl_wrapper/sdl_wrapper.window.cpp b/sdl_wrapper/sdl_wrapper.window.cpp new file mode 100644 index 0000000..8e5c2f5 --- /dev/null +++ b/sdl_wrapper/sdl_wrapper.window.cpp @@ -0,0 +1,21 @@ +// +// Created by wsqsy on 11/14/2025. +// +module; +module sdl_wrapper; +import :window; +import :gpu; + +namespace sopho +{ + + WindowWrapper::WindowWrapper(std::shared_ptr p_gpu, SDL_Window* p_window) + :m_gpu(p_gpu),m_window(p_window) + { + } + WindowWrapper::~WindowWrapper() + { + + } + +} // namespace sopho diff --git a/sdl_wrapper/sdl_wrapper.window.ixx b/sdl_wrapper/sdl_wrapper.window.ixx new file mode 100644 index 0000000..ff9aa0a --- /dev/null +++ b/sdl_wrapper/sdl_wrapper.window.ixx @@ -0,0 +1,20 @@ +// +// Created by wsqsy on 11/14/2025. +// +module; +#include +#include "SDL3/SDL_video.h" +export module sdl_wrapper:window; +import :decl; +export namespace sopho +{ + class WindowWrapper + { + SDL_Window* m_window{}; + std::shared_ptr m_gpu; + public: + WindowWrapper(std::shared_ptr p_gpu, SDL_Window* p_window); + ~WindowWrapper(); + friend GpuWrapper; + }; +} // namespace sopho From 67a502e5c147f5b324960e0ff59449cdc453ebcd Mon Sep 17 00:00:00 2001 From: Sophomore Date: Fri, 14 Nov 2025 15:06:06 +0800 Subject: [PATCH 2/8] feat: apply window_wrapper --- main.cpp | 20 ++++---------------- sdl_wrapper/sdl_wrapper.gpu.ixx | 10 ++++++++++ sdl_wrapper/sdl_wrapper.window.cpp | 2 +- sdl_wrapper/sdl_wrapper.window.ixx | 4 ++++ 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/main.cpp b/main.cpp index 95b7da2..29d40b9 100644 --- a/main.cpp +++ b/main.cpp @@ -24,11 +24,10 @@ struct Vertex class UserApp : public sopho::App { std::shared_ptr gpu_wrapper{std::make_shared()}; + sopho::WindowWrapper window_wrapper{gpu_wrapper->create_window()}; sopho::BufferWrapper vertex_buffer{gpu_wrapper->create_buffer(SDL_GPU_BUFFERUSAGE_VERTEX, sizeof(vertices))}; std::optional pipeline_wrapper{std::nullopt}; - SDL_Window* window{}; - // a list of vertices std::array vertices{ Vertex{0.0F, 0.5F, 0.0F, 1.0F, 0.0F, 0.0F, 1.0F}, // top vertex @@ -72,12 +71,6 @@ void main() */ virtual SDL_AppResult init(int argc, char** argv) override { - // create a window - window = SDL_CreateWindow("Hello, Triangle!", 960, 540, SDL_WINDOW_RESIZABLE); - gpu_wrapper->set_window(window); - - SDL_ClaimWindowForGPUDevice(gpu_wrapper->data(), window); - pipeline_wrapper.emplace(gpu_wrapper); pipeline_wrapper->set_vertex_shader(vertex_source); @@ -110,10 +103,10 @@ void main() // unnecessary. We leave both here for documentation purpose) // Setup Platform/Renderer backends - ImGui_ImplSDL3_InitForSDLGPU(window); + ImGui_ImplSDL3_InitForSDLGPU(window_wrapper.data()); ImGui_ImplSDLGPU3_InitInfo init_info = {}; init_info.Device = gpu_wrapper->data(); - init_info.ColorTargetFormat = SDL_GetGPUSwapchainTextureFormat(gpu_wrapper->data(), window); + init_info.ColorTargetFormat = SDL_GetGPUSwapchainTextureFormat(gpu_wrapper->data(), window_wrapper.data()); init_info.MSAASamples = SDL_GPU_SAMPLECOUNT_1; // Only used in multi-viewports mode. init_info.SwapchainComposition = SDL_GPU_SWAPCHAINCOMPOSITION_SDR; // Only used in multi-viewports mode. init_info.PresentMode = SDL_GPU_PRESENTMODE_VSYNC; @@ -176,7 +169,7 @@ void main() // get the swapchain texture SDL_GPUTexture* swapchainTexture; Uint32 width, height; - SDL_WaitAndAcquireGPUSwapchainTexture(commandBuffer, window, &swapchainTexture, &width, &height); + SDL_WaitAndAcquireGPUSwapchainTexture(commandBuffer, window_wrapper.data(), &swapchainTexture, &width, &height); // end the frame early if a swapchain texture is not available if (swapchainTexture == NULL) @@ -252,11 +245,6 @@ void main() ImGui_ImplSDL3_Shutdown(); ImGui_ImplSDLGPU3_Shutdown(); ImGui::DestroyContext(); - - SDL_ReleaseWindowFromGPUDevice(gpu_wrapper->data(), window); - - // destroy the window - SDL_DestroyWindow(window); } }; diff --git a/sdl_wrapper/sdl_wrapper.gpu.ixx b/sdl_wrapper/sdl_wrapper.gpu.ixx index b8916a9..d6fc5d4 100644 --- a/sdl_wrapper/sdl_wrapper.gpu.ixx +++ b/sdl_wrapper/sdl_wrapper.gpu.ixx @@ -75,10 +75,20 @@ export namespace sopho auto create_window() { auto window = SDL_CreateWindow("Hello, Triangle!", 960, 540, SDL_WINDOW_RESIZABLE); + m_window = window; SDL_ClaimWindowForGPUDevice(m_device, window); return WindowWrapper{shared_from_this(),window}; } + auto release_window(SDL_Window* p_window) + { + if (p_window) + { + SDL_ReleaseWindowFromGPUDevice(m_device,p_window); + SDL_DestroyWindow(p_window); + } + } + auto set_window(SDL_Window* p_window) { m_window = p_window; diff --git a/sdl_wrapper/sdl_wrapper.window.cpp b/sdl_wrapper/sdl_wrapper.window.cpp index 8e5c2f5..0e3a838 100644 --- a/sdl_wrapper/sdl_wrapper.window.cpp +++ b/sdl_wrapper/sdl_wrapper.window.cpp @@ -15,7 +15,7 @@ namespace sopho } WindowWrapper::~WindowWrapper() { - + m_gpu->release_window(m_window); } } // namespace sopho diff --git a/sdl_wrapper/sdl_wrapper.window.ixx b/sdl_wrapper/sdl_wrapper.window.ixx index ff9aa0a..f5e5a50 100644 --- a/sdl_wrapper/sdl_wrapper.window.ixx +++ b/sdl_wrapper/sdl_wrapper.window.ixx @@ -15,6 +15,10 @@ export namespace sopho public: WindowWrapper(std::shared_ptr p_gpu, SDL_Window* p_window); ~WindowWrapper(); + auto data() + { + return m_window; + } friend GpuWrapper; }; } // namespace sopho From b03c53c7e5ac670f066ea67b45bc75fea0a22bba Mon Sep 17 00:00:00 2001 From: Sophomore Date: Fri, 14 Nov 2025 15:12:24 +0800 Subject: [PATCH 3/8] feat: change pipeline wrapper to value --- main.cpp | 15 +++++++-------- sdl_wrapper/sdl_wrapper.pipeline.ixx | 4 +--- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/main.cpp b/main.cpp index 29d40b9..cfdb18c 100644 --- a/main.cpp +++ b/main.cpp @@ -26,7 +26,7 @@ class UserApp : public sopho::App std::shared_ptr gpu_wrapper{std::make_shared()}; sopho::WindowWrapper window_wrapper{gpu_wrapper->create_window()}; sopho::BufferWrapper vertex_buffer{gpu_wrapper->create_buffer(SDL_GPU_BUFFERUSAGE_VERTEX, sizeof(vertices))}; - std::optional pipeline_wrapper{std::nullopt}; + sopho::PipelineWrapper pipeline_wrapper{gpu_wrapper->create_pipeline()}; // a list of vertices std::array vertices{ @@ -71,11 +71,10 @@ void main() */ virtual SDL_AppResult init(int argc, char** argv) override { - pipeline_wrapper.emplace(gpu_wrapper); - pipeline_wrapper->set_vertex_shader(vertex_source); - pipeline_wrapper->set_fragment_shader(fragment_source); - pipeline_wrapper->submit(); + pipeline_wrapper.set_vertex_shader(vertex_source); + pipeline_wrapper.set_fragment_shader(fragment_source); + pipeline_wrapper.submit(); vertex_buffer.upload(&vertices, sizeof(vertices), 0); @@ -152,7 +151,7 @@ void main() std::min(ImGui::GetTextLineHeight() * (line_count + 3), ImGui::GetContentRegionAvail().y)); if (ImGui::InputTextMultiline("code editor", &vertex_source, size, ImGuiInputTextFlags_AllowTabInput)) { - pipeline_wrapper->set_vertex_shader(vertex_source); + pipeline_wrapper.set_vertex_shader(vertex_source); } ImGui::End(); @@ -161,7 +160,7 @@ void main() ImGui::Render(); ImDrawData* draw_data = ImGui::GetDrawData(); - pipeline_wrapper->submit(); + pipeline_wrapper.submit(); // acquire the command buffer SDL_GPUCommandBuffer* commandBuffer = SDL_AcquireGPUCommandBuffer(gpu_wrapper->data()); @@ -192,7 +191,7 @@ void main() SDL_GPURenderPass* renderPass = SDL_BeginGPURenderPass(commandBuffer, &colorTargetInfo, 1, NULL); // draw calls go here - SDL_BindGPUGraphicsPipeline(renderPass, pipeline_wrapper->data()); + SDL_BindGPUGraphicsPipeline(renderPass, pipeline_wrapper.data()); // bind the vertex buffer SDL_GPUBufferBinding bufferBindings[1]; diff --git a/sdl_wrapper/sdl_wrapper.pipeline.ixx b/sdl_wrapper/sdl_wrapper.pipeline.ixx index 8b58e31..c410292 100644 --- a/sdl_wrapper/sdl_wrapper.pipeline.ixx +++ b/sdl_wrapper/sdl_wrapper.pipeline.ixx @@ -26,10 +26,8 @@ export namespace sopho bool m_modified = false; - public: PipelineWrapper(std::shared_ptr p_device); - PipelineWrapper(const PipelineWrapper&)=default; - PipelineWrapper(PipelineWrapper&&)=default; + public: ~PipelineWrapper(); auto data() { return m_graphics_pipeline; } From ebab94d450f508b5452c67d4aa3e8c955147784a Mon Sep 17 00:00:00 2001 From: Sophomore Date: Fri, 14 Nov 2025 15:19:44 +0800 Subject: [PATCH 4/8] fix: remove wrong name space --- sdl_wrapper/sdl_wrapper.gpu.ixx | 1 - 1 file changed, 1 deletion(-) diff --git a/sdl_wrapper/sdl_wrapper.gpu.ixx b/sdl_wrapper/sdl_wrapper.gpu.ixx index d6fc5d4..b40f63f 100644 --- a/sdl_wrapper/sdl_wrapper.gpu.ixx +++ b/sdl_wrapper/sdl_wrapper.gpu.ixx @@ -11,7 +11,6 @@ export module sdl_wrapper:gpu; import :buffer; import :pipeline; import :window; -namespace sopho export namespace sopho { export class GpuWrapper : public std::enable_shared_from_this From f3ee1dfca40bf9aa078ac0cb6c8890ed98b4bd71 Mon Sep 17 00:00:00 2001 From: Sophomore Date: Fri, 14 Nov 2025 15:20:10 +0800 Subject: [PATCH 5/8] fix: remove export --- sdl_wrapper/sdl_wrapper.gpu.ixx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdl_wrapper/sdl_wrapper.gpu.ixx b/sdl_wrapper/sdl_wrapper.gpu.ixx index b40f63f..1ded287 100644 --- a/sdl_wrapper/sdl_wrapper.gpu.ixx +++ b/sdl_wrapper/sdl_wrapper.gpu.ixx @@ -13,7 +13,7 @@ import :pipeline; import :window; export namespace sopho { - export class GpuWrapper : public std::enable_shared_from_this + class GpuWrapper : public std::enable_shared_from_this { SDL_GPUDevice* m_device{}; From 88be7ac614fdb5f314955f95538c291a94748674 Mon Sep 17 00:00:00 2001 From: Sophomore Date: Fri, 14 Nov 2025 15:31:44 +0800 Subject: [PATCH 6/8] feat: wrapper window into gpu --- main.cpp | 7 +++--- sdl_wrapper/CMakeLists.txt | 2 -- sdl_wrapper/sdl_wrapper.decl.ixx | 1 - sdl_wrapper/sdl_wrapper.gpu.ixx | 34 ++++++++++++------------------ sdl_wrapper/sdl_wrapper.ixx | 1 - sdl_wrapper/sdl_wrapper.window.cpp | 21 ------------------ sdl_wrapper/sdl_wrapper.window.ixx | 24 --------------------- 7 files changed, 17 insertions(+), 73 deletions(-) delete mode 100644 sdl_wrapper/sdl_wrapper.window.cpp delete mode 100644 sdl_wrapper/sdl_wrapper.window.ixx diff --git a/main.cpp b/main.cpp index cfdb18c..3161210 100644 --- a/main.cpp +++ b/main.cpp @@ -24,7 +24,6 @@ struct Vertex class UserApp : public sopho::App { std::shared_ptr gpu_wrapper{std::make_shared()}; - sopho::WindowWrapper window_wrapper{gpu_wrapper->create_window()}; sopho::BufferWrapper vertex_buffer{gpu_wrapper->create_buffer(SDL_GPU_BUFFERUSAGE_VERTEX, sizeof(vertices))}; sopho::PipelineWrapper pipeline_wrapper{gpu_wrapper->create_pipeline()}; @@ -102,10 +101,10 @@ void main() // unnecessary. We leave both here for documentation purpose) // Setup Platform/Renderer backends - ImGui_ImplSDL3_InitForSDLGPU(window_wrapper.data()); + ImGui_ImplSDL3_InitForSDLGPU(gpu_wrapper->acquire_window()); ImGui_ImplSDLGPU3_InitInfo init_info = {}; init_info.Device = gpu_wrapper->data(); - init_info.ColorTargetFormat = SDL_GetGPUSwapchainTextureFormat(gpu_wrapper->data(), window_wrapper.data()); + init_info.ColorTargetFormat = SDL_GetGPUSwapchainTextureFormat(gpu_wrapper->data(), gpu_wrapper->acquire_window()); init_info.MSAASamples = SDL_GPU_SAMPLECOUNT_1; // Only used in multi-viewports mode. init_info.SwapchainComposition = SDL_GPU_SWAPCHAINCOMPOSITION_SDR; // Only used in multi-viewports mode. init_info.PresentMode = SDL_GPU_PRESENTMODE_VSYNC; @@ -168,7 +167,7 @@ void main() // get the swapchain texture SDL_GPUTexture* swapchainTexture; Uint32 width, height; - SDL_WaitAndAcquireGPUSwapchainTexture(commandBuffer, window_wrapper.data(), &swapchainTexture, &width, &height); + SDL_WaitAndAcquireGPUSwapchainTexture(commandBuffer, gpu_wrapper->acquire_window(), &swapchainTexture, &width, &height); // end the frame early if a swapchain texture is not available if (swapchainTexture == NULL) diff --git a/sdl_wrapper/CMakeLists.txt b/sdl_wrapper/CMakeLists.txt index 3a40ded..935e679 100644 --- a/sdl_wrapper/CMakeLists.txt +++ b/sdl_wrapper/CMakeLists.txt @@ -13,12 +13,10 @@ target_sources(sdl_wrapper sdl_wrapper.pipeline.ixx sdl_wrapper.gpu.ixx sdl_wrapper.decl.ixx - sdl_wrapper.window.ixx PRIVATE sdl_wrapper.buffer.cpp sdl_wrapper.pipeline.cpp sdl_wrapper.gpu.cpp - sdl_wrapper.window.cpp sdl_callback_implement.cpp ) diff --git a/sdl_wrapper/sdl_wrapper.decl.ixx b/sdl_wrapper/sdl_wrapper.decl.ixx index 10ec1ed..0ac8bce 100644 --- a/sdl_wrapper/sdl_wrapper.decl.ixx +++ b/sdl_wrapper/sdl_wrapper.decl.ixx @@ -10,5 +10,4 @@ export namespace sopho class GpuWrapper; class BufferWrapper; class PipelineWrapper; - class WindowWrapper; } diff --git a/sdl_wrapper/sdl_wrapper.gpu.ixx b/sdl_wrapper/sdl_wrapper.gpu.ixx index 1ded287..6c14da0 100644 --- a/sdl_wrapper/sdl_wrapper.gpu.ixx +++ b/sdl_wrapper/sdl_wrapper.gpu.ixx @@ -10,13 +10,13 @@ module; export module sdl_wrapper:gpu; import :buffer; import :pipeline; -import :window; export namespace sopho { class GpuWrapper : public std::enable_shared_from_this { SDL_GPUDevice* m_device{}; + // TODO: Consider multi window situation SDL_Window* m_window{}; public: @@ -30,6 +30,11 @@ export namespace sopho ~GpuWrapper() { + if (m_window) + { + SDL_ReleaseWindowFromGPUDevice(m_device, m_window); + SDL_DestroyWindow(m_window); + } if (m_device) { SDL_DestroyGPUDevice(m_device); @@ -66,31 +71,20 @@ export namespace sopho } } - auto get_texture_format() - { - return SDL_GetGPUSwapchainTextureFormat(m_device, m_window); - } - - auto create_window() + auto& acquire_window() { - auto window = SDL_CreateWindow("Hello, Triangle!", 960, 540, SDL_WINDOW_RESIZABLE); - m_window = window; - SDL_ClaimWindowForGPUDevice(m_device, window); - return WindowWrapper{shared_from_this(),window}; - } - - auto release_window(SDL_Window* p_window) - { - if (p_window) + if (!m_window) { - SDL_ReleaseWindowFromGPUDevice(m_device,p_window); - SDL_DestroyWindow(p_window); + m_window = SDL_CreateWindow("Hello, Triangle!", 960, 540, SDL_WINDOW_RESIZABLE); + SDL_ClaimWindowForGPUDevice(m_device, m_window); } + return m_window; } - auto set_window(SDL_Window* p_window) + auto get_texture_format() { - m_window = p_window; + return SDL_GetGPUSwapchainTextureFormat(m_device, acquire_window()); } + }; } // namespace sopho diff --git a/sdl_wrapper/sdl_wrapper.ixx b/sdl_wrapper/sdl_wrapper.ixx index a2ecdee..9e7a9fd 100644 --- a/sdl_wrapper/sdl_wrapper.ixx +++ b/sdl_wrapper/sdl_wrapper.ixx @@ -8,4 +8,3 @@ export import :app; export import :gpu; export import :buffer; export import :pipeline; -export import :window; diff --git a/sdl_wrapper/sdl_wrapper.window.cpp b/sdl_wrapper/sdl_wrapper.window.cpp deleted file mode 100644 index 0e3a838..0000000 --- a/sdl_wrapper/sdl_wrapper.window.cpp +++ /dev/null @@ -1,21 +0,0 @@ -// -// Created by wsqsy on 11/14/2025. -// -module; -module sdl_wrapper; -import :window; -import :gpu; - -namespace sopho -{ - - WindowWrapper::WindowWrapper(std::shared_ptr p_gpu, SDL_Window* p_window) - :m_gpu(p_gpu),m_window(p_window) - { - } - WindowWrapper::~WindowWrapper() - { - m_gpu->release_window(m_window); - } - -} // namespace sopho diff --git a/sdl_wrapper/sdl_wrapper.window.ixx b/sdl_wrapper/sdl_wrapper.window.ixx deleted file mode 100644 index f5e5a50..0000000 --- a/sdl_wrapper/sdl_wrapper.window.ixx +++ /dev/null @@ -1,24 +0,0 @@ -// -// Created by wsqsy on 11/14/2025. -// -module; -#include -#include "SDL3/SDL_video.h" -export module sdl_wrapper:window; -import :decl; -export namespace sopho -{ - class WindowWrapper - { - SDL_Window* m_window{}; - std::shared_ptr m_gpu; - public: - WindowWrapper(std::shared_ptr p_gpu, SDL_Window* p_window); - ~WindowWrapper(); - auto data() - { - return m_window; - } - friend GpuWrapper; - }; -} // namespace sopho From e22d918048fcc6747c47446d354feedf990113cd Mon Sep 17 00:00:00 2001 From: "deepsource-autofix[bot]" <62050782+deepsource-autofix[bot]@users.noreply.github.com> Date: Fri, 14 Nov 2025 07:33:05 +0000 Subject: [PATCH 7/8] style: format code with ClangFormat This commit fixes the style issues introduced in 88be7ac according to the output from ClangFormat. Details: https://github.com/WSQS/sdl_test/pull/24 --- main.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/main.cpp b/main.cpp index 3161210..0678319 100644 --- a/main.cpp +++ b/main.cpp @@ -104,7 +104,8 @@ void main() ImGui_ImplSDL3_InitForSDLGPU(gpu_wrapper->acquire_window()); ImGui_ImplSDLGPU3_InitInfo init_info = {}; init_info.Device = gpu_wrapper->data(); - init_info.ColorTargetFormat = SDL_GetGPUSwapchainTextureFormat(gpu_wrapper->data(), gpu_wrapper->acquire_window()); + init_info.ColorTargetFormat = + SDL_GetGPUSwapchainTextureFormat(gpu_wrapper->data(), gpu_wrapper->acquire_window()); init_info.MSAASamples = SDL_GPU_SAMPLECOUNT_1; // Only used in multi-viewports mode. init_info.SwapchainComposition = SDL_GPU_SWAPCHAINCOMPOSITION_SDR; // Only used in multi-viewports mode. init_info.PresentMode = SDL_GPU_PRESENTMODE_VSYNC; @@ -167,7 +168,8 @@ void main() // get the swapchain texture SDL_GPUTexture* swapchainTexture; Uint32 width, height; - SDL_WaitAndAcquireGPUSwapchainTexture(commandBuffer, gpu_wrapper->acquire_window(), &swapchainTexture, &width, &height); + SDL_WaitAndAcquireGPUSwapchainTexture(commandBuffer, gpu_wrapper->acquire_window(), &swapchainTexture, &width, + &height); // end the frame early if a swapchain texture is not available if (swapchainTexture == NULL) From 62decd768c69bac38b2f7df689a08c1efda4a09d Mon Sep 17 00:00:00 2001 From: Sophomore Date: Fri, 14 Nov 2025 15:45:28 +0800 Subject: [PATCH 8/8] fix: remove unnecessary reference --- sdl_wrapper/sdl_wrapper.gpu.ixx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdl_wrapper/sdl_wrapper.gpu.ixx b/sdl_wrapper/sdl_wrapper.gpu.ixx index 6c14da0..8ab15fe 100644 --- a/sdl_wrapper/sdl_wrapper.gpu.ixx +++ b/sdl_wrapper/sdl_wrapper.gpu.ixx @@ -71,7 +71,7 @@ export namespace sopho } } - auto& acquire_window() + auto acquire_window() { if (!m_window) {