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.
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.
Set VkViewport with viewport slate.
Set VkRect2D.
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 {
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 };
750
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.
Renderer * m_Renderer
Specific Renderer pointer. Passed while this class instanced.
VkCommandBuffer m_CommandBuffer
Current CommandBuffer.
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.
std::shared_ptr< VulkanDevice > m_Device
VulkanDevice , Passed by instanced.
static std::shared_ptr< SlateRegister > GetRegister()
Get slate register.