1#ifndef VULKAN_RASTERIZER
2#define VULKAN_RASTERIZER
4#include <vulkan/vulkan.h>
16 Rasterizer(
bool isBackFaceCullingEnabled =
true) : rasterizer{} {
17 rasterizer.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
18 rasterizer.depthClampEnable = VK_FALSE;
19 rasterizer.rasterizerDiscardEnable = VK_FALSE;
20 rasterizer.polygonMode = VK_POLYGON_MODE_FILL;
21 rasterizer.lineWidth = 1.0f;
22 rasterizer.cullMode = isBackFaceCullingEnabled ? VK_CULL_MODE_BACK_BIT : VK_CULL_MODE_NONE;
23 rasterizer.frontFace = VK_FRONT_FACE_CLOCKWISE;
24 rasterizer.depthBiasEnable = VK_FALSE;
25 rasterizer.depthBiasConstantFactor = 0.0f;
26 rasterizer.depthBiasClamp = 0.0f;
27 rasterizer.depthBiasSlopeFactor = 0.0f;
31 Rasterizer(VkPipelineRasterizationStateCreateInfo baseRasterizer) : rasterizer{ baseRasterizer } {}
34 const VkPipelineRasterizationStateCreateInfo&
operator+()
const {
39 VkPipelineRasterizationStateCreateInfo rasterizer;
Describes how the vertices will be transformed to fragments to be drawn on screen.
Definition: Rasterizer.h:13
const VkPipelineRasterizationStateCreateInfo & operator+() const
Definition: Rasterizer.h:34
Rasterizer(bool isBackFaceCullingEnabled=true)
Definition: Rasterizer.h:16
Rasterizer(VkPipelineRasterizationStateCreateInfo baseRasterizer)
Definition: Rasterizer.h:31
Definition: Attachment.h:11