SpiecsEngine
 
Loading...
Searching...
No Matches

◆ SetViewPortAsync()

void Spices::Renderer::RenderBehaveBuilder::SetViewPortAsync ( ) const

DynamicState Set Viewport and Scissor Async.

Use Negative Viewport height filp here to handle axis difference. Remember enable device extension (VK_KHR_MAINTENANCE1)

Though we draw world to viewport but not surface, Set Correct viewport here is necessary.

Instance a VkRect2D

Set VkViewport with viewport slate.

Set VkRect2D.

Use Negative Viewport height filp here to handle axis difference. Remember enable device extension (VK_KHR_MAINTENANCE1)

Though we draw world to viewport but not surface, Set Correct viewport here is necessary.

Instance a VkRect2D

Set VkViewport with viewport slate.

Set VkRect2D.

Definition at line 715 of file Renderer.cpp.

716 {
718
723 VkViewport viewport {};
724 viewport.x = 0.0f;
725 viewport.y = static_cast<float>(m_Renderer->m_Device->GetSwapChainSupport().surfaceSize.height);
726 viewport.width = static_cast<float>(m_Renderer->m_Device->GetSwapChainSupport().surfaceSize.width);
727 viewport.height = -static_cast<float>(m_Renderer->m_Device->GetSwapChainSupport().surfaceSize.height);
728 viewport.minDepth = 0.0f;
729 viewport.maxDepth = 1.0f;
730
736 {
737 const ImVec2 viewPortSize = SlateSystem::GetRegister()->GetViewPort()->GetPanelSize();
738
739 viewport.y = viewPortSize.y;
740 viewport.width = viewPortSize.x;
741 viewport.height = -viewPortSize.y;
742 }
743
747 VkRect2D scissor{};
748 scissor.offset = { 0, 0 };
749 scissor.extent = m_Renderer->m_Device->GetSwapChainSupport().surfaceSize;
750
751 m_Renderer->SubmitCmdsParallel(m_CommandBuffer, m_SubPassIndex, [&](const VkCommandBuffer& cmdBuffer) {
752
756 vkCmdSetViewport(cmdBuffer, 0, 1, &viewport);
757
761 vkCmdSetScissor(cmdBuffer, 0, 1, &scissor);
762 });
763 }
#define SPICES_PROFILE_ZONE
uint32_t m_SubPassIndex
Current subPass Index.
Definition Renderer.h:1534
Renderer * m_Renderer
Specific Renderer pointer. Passed while this class instanced.
Definition Renderer.h:1515
VkCommandBuffer m_CommandBuffer
Current CommandBuffer.
Definition Renderer.h:1539
std::future< VkCommandBuffer > SubmitCmdsParallel(VkCommandBuffer primaryCmdBuffer, uint32_t subPass, F &&func)
Submit a group of commands to secondary command buffer, and execute all of them.
Definition Renderer.h:2273
std::shared_ptr< VulkanDevice > m_Device
VulkanDevice , Passed by instanced.
Definition Renderer.h:2002
static std::shared_ptr< SlateRegister > GetRegister()
Get slate register.
Definition SlateSystem.h:67