X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Frenderer_backend.cpp;h=3b9281b5c609b8874539eac1f0b5467accd41464;hb=ab9b22356f16aea822527c06186641d3121e1355;hp=d1788461185066ac67e04e315031bef4dad9e3ac;hpb=99ca354f18119f82f1adeca100cd665a8f640317;p=libs%2Fgl.git diff --git a/source/backends/vulkan/renderer_backend.cpp b/source/backends/vulkan/renderer_backend.cpp index d1788461..3b9281b5 100644 --- a/source/backends/vulkan/renderer_backend.cpp +++ b/source/backends/vulkan/renderer_backend.cpp @@ -4,6 +4,16 @@ namespace Msp { namespace GL { +VulkanRenderer::VulkanRenderer(): + current_pipeline(&pipeline_states[0]) +{ } + +void VulkanRenderer::begin() +{ + begin_semaphore = 0; + end_semaphore = 0; +} + void VulkanRenderer::begin(Semaphore &sem) { static_cast(this)->begin(); @@ -13,14 +23,20 @@ void VulkanRenderer::begin(Semaphore &sem) void VulkanRenderer::end() { - static_cast(this)->commands.use_pipeline(0); + Renderer &self = *static_cast(this); + self.commands.use_pipeline(0); + self.commands.submit_frame(begin_semaphore, end_semaphore); } void VulkanRenderer::end(Semaphore &sem) { - Renderer &self = *static_cast(this); - self.end(); - self.commands.submit_frame(begin_semaphore, &sem); + end_semaphore = &sem; + static_cast(this)->end(); +} + +void VulkanRenderer::set_pipeline_key(uintptr_t key) +{ + current_pipeline = &pipeline_states[key]; } } // namespace GL