From af808c114eec4052c3ddf304e753195dfc25ce46 Mon Sep 17 00:00:00 2001 From: Nana <469449812@qq.com> Date: Sun, 9 Feb 2025 23:35:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E6=B8=B2=E6=9F=93=E6=B5=81?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/window/window.cpp | 16 +++++++++++----- src/core/window/window.h | 3 ++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/core/window/window.cpp b/src/core/window/window.cpp index c0882b7..0727e7a 100644 --- a/src/core/window/window.cpp +++ b/src/core/window/window.cpp @@ -37,7 +37,8 @@ namespace mirage { spdlog::error("无法创建交换链"); return false; } - command_buffer = get_renderer()->CreateCommandBuffer(); + swap_chain->SetVsyncInterval(1); + command_buffer = get_renderer()->CreateCommandBuffer(LLGL::CommandBufferFlags::ImmediateSubmit); return true; } @@ -52,11 +53,16 @@ namespace mirage { #endif void window::update(const duration_type& delta_time) { - if (command_buffer) { - command_buffer; + if (!command_buffer || !swap_chain) { + return; } - if (swap_chain) { - swap_chain->Present(); + command_buffer->Begin(); + { + command_buffer->BeginRenderPass(*swap_chain); + command_buffer->Clear(LLGL::ClearFlags::Color, {0.1f, 0.1f, 0.2f, 1.0f}); + command_buffer->EndRenderPass(); } + command_buffer->End(); + swap_chain->Present(); } } diff --git a/src/core/window/window.h b/src/core/window/window.h index 829c8b8..2c87a94 100644 --- a/src/core/window/window.h +++ b/src/core/window/window.h @@ -112,8 +112,9 @@ namespace mirage { virtual void on_pan_gesture(const LLGL::Offset2D& in_position, std::uint32_t in_num_touches, float in_dx, float in_dy, LLGL::EventAction in_action) {} private: void init_event_listener(); - LLGL::SwapChain* swap_chain = nullptr; std::shared_ptr surface; + LLGL::SwapChain* swap_chain = nullptr; + LLGL::Buffer* vertex_buffer = nullptr; LLGL::CommandBuffer* command_buffer = nullptr; }; } // namespace mirage