Kaynağa Gözat

Examples: SDL3+SDL_GPU: use SDL_GPU_PRESENTMODE_MAILBOX swapchain parameters.

ocornut 6 ay önce
ebeveyn
işleme
3e6bdc2242
1 değiştirilmiş dosya ile 5 ekleme ve 3 silme
  1. 5 3
      examples/example_sdl3_sdlgpu3/main.cpp

+ 5 - 3
examples/example_sdl3_sdlgpu3/main.cpp

@@ -7,7 +7,7 @@
 // - Introduction, links and more at the top of imgui.cpp
 
 // Important note to the reader who wish to integrate imgui_impl_sdlgpu3.cpp/.h in their own engine/app.
-// - Unline other backends, the user must call the function Imgui_ImplSDLGPU_PrepareDrawData BEFORE issuing a SDL_GPURenderPass containing ImGui_ImplSDLGPU_RenderDrawData.
+// - Unlike other backends, the user must call the function Imgui_ImplSDLGPU_PrepareDrawData() BEFORE issuing a SDL_GPURenderPass containing ImGui_ImplSDLGPU_RenderDrawData.
 //   Calling the function is MANDATORY, otherwise the ImGui will not upload neither the vertex nor the index buffer for the GPU. See imgui_impl_sdlgpu3.cpp for more info.
 
 #include "imgui.h"
@@ -54,6 +54,7 @@ int main(int, char**)
         printf("Error: SDL_ClaimWindowForGPUDevice(): %s\n", SDL_GetError());
         return -1;
     }
+    SDL_SetGPUSwapchainParameters(gpu_device, window, SDL_GPU_SWAPCHAINCOMPOSITION_SDR, SDL_GPU_PRESENTMODE_MAILBOX);
 
     // Setup Dear ImGui context
     IMGUI_CHECKVERSION();
@@ -140,7 +141,7 @@ int main(int, char**)
             ImGui::Checkbox("Another Window", &show_another_window);
 
             ImGui::SliderFloat("float", &f, 0.0f, 1.0f);            // Edit 1 float using a slider from 0.0f to 1.0f
-            ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
+            ImGui::ColorEdit4("clear color", (float*)&clear_color); // Edit 3 floats representing a color
 
             if (ImGui::Button("Button"))                            // Buttons return true when clicked (most widgets return true when edited/activated)
                 counter++;
@@ -179,7 +180,7 @@ int main(int, char**)
             // Setup and start a render pass
             SDL_GPUColorTargetInfo target_info = {};
             target_info.texture = swapchain_texture;
-            target_info.clear_color = SDL_FColor{ clear_color.x,clear_color.y,clear_color.z,clear_color.w };
+            target_info.clear_color = SDL_FColor { clear_color.x, clear_color.y, clear_color.z, clear_color.w };
             target_info.load_op = SDL_GPU_LOADOP_CLEAR;
             target_info.store_op = SDL_GPU_STOREOP_STORE;
             target_info.mip_level = 0;
@@ -196,6 +197,7 @@ int main(int, char**)
         // Submit the command buffer
         SDL_SubmitGPUCommandBuffer(command_buffer);
     }
+
     // Cleanup
     SDL_WaitForGPUIdle(gpu_device);
     ImGui_ImplSDL3_Shutdown();