vOOlkan
An object oriented approach to Vulkan
Rasterizer.h
Go to the documentation of this file.
1#ifndef VULKAN_RASTERIZER
2#define VULKAN_RASTERIZER
3
4#include <vulkan/vulkan.h>
5
6
7namespace Vulkan::PipelineOptions { class Rasterizer; }
8
14public:
15 //TODO add creation options
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;
28 }
29
30
31 Rasterizer(VkPipelineRasterizationStateCreateInfo baseRasterizer) : rasterizer{ baseRasterizer } {}
32
33
34 const VkPipelineRasterizationStateCreateInfo& operator+() const {
35 return rasterizer;
36 }
37
38private:
39 VkPipelineRasterizationStateCreateInfo rasterizer;
40};
41
42#endif
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