MCPcopy Create free account
hub / github.com/comaps/comaps / SetFramebuffer

Method SetFramebuffer

libs/drape/vulkan/vulkan_base_context.cpp:287–307  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

285}
286
287void VulkanBaseContext::SetFramebuffer(ref_ptr<dp::BaseFramebuffer> framebuffer)
288{
289 if (m_isActiveRenderPass)
290 {
291 vkCmdEndRenderPass(m_renderingCommandBuffers[m_inflightFrameIndex]);
292 m_isActiveRenderPass = false;
293
294 if (m_currentFramebuffer != nullptr)
295 {
296 ref_ptr<Framebuffer> fb = m_currentFramebuffer;
297 ref_ptr<VulkanTexture> tex = fb->GetTexture()->GetHardwareTexture();
298
299 // Allow to use framebuffer in the fragment shader in the next pass.
300 tex->MakeImageLayoutTransition(
301 m_renderingCommandBuffers[m_inflightFrameIndex], VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
302 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT);
303 }
304 }
305
306 m_currentFramebuffer = framebuffer;
307}
308
309void VulkanBaseContext::ForgetFramebuffer(ref_ptr<dp::BaseFramebuffer> framebuffer)
310{

Callers 6

PreRender3dLayerMethod · 0.45
RenderEmptyFrameMethod · 0.45
OnContextCreateMethod · 0.45
BeginFrameMethod · 0.45
EndFrameMethod · 0.45
OnFramebufferFallbackMethod · 0.45

Calls 3

GetHardwareTextureMethod · 0.80
GetTextureMethod · 0.45

Tested by

no test coverage detected