基本渲染流程

This commit is contained in:
Nana 2025-02-09 23:35:06 +08:00
parent 939bbadec2
commit af808c114e
2 changed files with 13 additions and 6 deletions

View File

@ -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();
}
}

View File

@ -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<LLGL::Surface> surface;
LLGL::SwapChain* swap_chain = nullptr;
LLGL::Buffer* vertex_buffer = nullptr;
LLGL::CommandBuffer* command_buffer = nullptr;
};
} // namespace mirage