diff --git a/src/shadowpass.cpp b/src/shadowpass.cpp index ede04e0..94c42b9 100644 --- a/src/shadowpass.cpp +++ b/src/shadowpass.cpp @@ -29,19 +29,6 @@ ShadowPass::~ShadowPass() { } void ShadowPass::render(VkCommandBuffer commandBuffer, World& world) { - VkViewport viewport = {}; - viewport.width = renderer_.getConfig().shadowResolution; - viewport.height = renderer_.getConfig().shadowResolution; - viewport.maxDepth = 1.0f; - - vkCmdSetViewport(commandBuffer, 0, 1, &viewport); - - VkRect2D scissor = {}; - scissor.extent.width = renderer_.getConfig().shadowResolution; - scissor.extent.height = renderer_.getConfig().shadowResolution; - - vkCmdSetScissor(commandBuffer, 0, 1, &scissor); - VkClearValue clearColor = {}; clearColor.depthStencil.depth = 1.0f; @@ -196,11 +183,22 @@ void ShadowPass::createPipeline() { VkPipelineInputAssemblyStateCreateInfo inputAssembly = {}; inputAssembly.sType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO; inputAssembly.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; + + VkViewport viewport = {}; + viewport.width = renderer_.getConfig().shadowResolution; + viewport.height = renderer_.getConfig().shadowResolution; + viewport.maxDepth = 1.0f; + + VkRect2D scissor = {}; + scissor.extent.width = renderer_.getConfig().shadowResolution; + scissor.extent.height = renderer_.getConfig().shadowResolution; VkPipelineViewportStateCreateInfo viewportState = {}; viewportState.sType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO; viewportState.viewportCount = 1; + viewportState.pViewports = &viewport; viewportState.scissorCount = 1; + viewportState.pScissors = &scissor; VkPipelineRasterizationStateCreateInfo rasterizer = {}; rasterizer.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;