- Rect fb_rect = self.framebuffer->get_rect();
-
- Rect viewport_rect = fb_rect.intersect(self.viewport);
- VkViewport viewport = { };
- viewport.x = viewport_rect.left;
- viewport.y = viewport_rect.bottom;
- viewport.width = viewport_rect.width;
- viewport.height = viewport_rect.height;
- if(negative_viewport)
- {
- viewport.y += viewport.height;
- viewport.height = -viewport.height;
- }
- viewport.minDepth = 0.0f;
- viewport.maxDepth = 1.0f;
- vk.CmdSetViewport(command_buffer, 0, 1, &viewport);
-
- Rect scissor_rect = fb_rect.intersect(self.scissor);
- VkRect2D scissor = { };
- scissor.offset.x = scissor_rect.left;
- scissor.offset.y = scissor_rect.bottom;
- scissor.extent.width = scissor_rect.width;
- scissor.extent.height = scissor_rect.height;
- vk.CmdSetScissor(command_buffer, 0, 1, &scissor);