add set scissor functions

This commit is contained in:
Matthew 2025-12-21 21:00:59 +11:00
parent b3639d9c88
commit 9824b0c25b

View File

@ -1544,16 +1544,34 @@ BindPipeline(Vulkan* vk, VkCommandBuffer cmd, PipelineHandles* pipeline)
vkCmdSetViewport(cmd, 0, 1, &viewport); vkCmdSetViewport(cmd, 0, 1, &viewport);
VkRect2D scissor = { ResetScissor(vk, cmd);
extent: {
width: vk.swapchain_extent.width,
height: vk.swapchain_extent.height,
},
};
vkCmdSetScissor(cmd, 0, 1, &scissor);
} }
void
SetScissor(Vulkan* vk, u32 x, u32 y, u32 h, u32 w)
{
VkRect2D scissor = {
offset: { x: x, y: y },
extent: { width: w, height: h },
};
vkCmdSetScissor(vk.cmds[vk.frame_index], 0, 1, &scissor);
}
void
ResetScissor(Vulkan* vk, VkCommandBuffer cmd = cast(VkCommandBuffer)VK_NULL_HANDLE)
{
cmd = cmd == VK_NULL_HANDLE ? vk.cmds[vk.frame_index] : cmd;
VkRect2D scissor = {
offset: { x: 0, y: 0 },
extent: { width: vk.swapchain_extent.width, height: vk.swapchain_extent.height },
};
vkCmdSetScissor(cmd, 0, 1, &scissor);
}
pragma(inline): void pragma(inline): void
Transition(VkCommandBuffer cmd, VkImage image, VkImageLayout current_layout, VkImageLayout new_layout) Transition(VkCommandBuffer cmd, VkImage image, VkImageLayout current_layout, VkImageLayout new_layout)
{ {