FCT
载入中...
搜索中...
未找到
RasterizationState.h
浏览该文件的文档.
1//
2// Created by Administrator on 2025/3/23.
3//
5#ifndef RASTERIZATIONSTATE_H
6#define RASTERIZATIONSTATE_H
7
8namespace FCT
9{
10 enum class PolygonMode {
14 };
15
22
27
29 public:
30 virtual ~RasterizationState() = default;
31
32 virtual void create() = 0;
33
35 void polygonMode(PolygonMode mode) { m_polygonMode = mode; }
36
37 CullMode cullMode() const { return m_cullMode; }
38 void cullMode(CullMode mode) { m_cullMode = mode; }
39
40 FrontFace frontFace() const { return m_frontFace; }
41 void frontFace(FrontFace face) { m_frontFace = face; }
42
43 float lineWidth() const { return m_lineWidth; }
44 void lineWidth(float width) { m_lineWidth = width; }
45
46 bool depthClampEnable() const { return m_depthClampEnable; }
47 void depthClampEnable(bool enable) { m_depthClampEnable = enable; }
48
50 void rasterizerDiscardEnable(bool enable) { m_rasterizerDiscardEnable = enable; }
51
52 bool depthBiasEnable() const { return m_depthBiasEnable; }
53 void depthBiasEnable(bool enable) { m_depthBiasEnable = enable; }
54
56 void depthBiasConstantFactor(float factor) { m_depthBiasConstantFactor = factor; }
57
58 float depthBiasClamp() const { return m_depthBiasClamp; }
59 void depthBiasClamp(float clamp) { m_depthBiasClamp = clamp; }
60
62 void depthBiasSlopeFactor(float factor) { m_depthBiasSlopeFactor = factor; }
63
64 bool multisampleEnable() const { return m_multisampleEnable; }
65 void multisampleEnable(bool enable) { m_multisampleEnable = enable; }
66
67 uint32_t sampleCount() const { return m_sampleCount; }
68 void sampleCount(uint32_t count) { m_sampleCount = count; }
69
70 float minSampleShading() const { return m_minSampleShading; }
71 void minSampleShading(float value) { m_minSampleShading = value; }
72
73 uint32_t sampleMask() const { return m_sampleMask; }
74 void sampleMask(uint32_t mask) { m_sampleMask = mask; }
75
77 void alphaToCoverageEnable(bool enable) { m_alphaToCoverageEnable = enable; }
78
79 bool alphaToOneEnable() const { return m_alphaToOneEnable; }
80 void alphaToOneEnable(bool enable) { m_alphaToOneEnable = enable; }
81
83
84 protected:
88 float m_lineWidth = 1.0f;
89 bool m_depthClampEnable = false;
91 bool m_depthBiasEnable = false;
93 float m_depthBiasClamp = 0.0f;
95 bool m_multisampleEnable = false;
96 uint32_t m_sampleCount = 1;
97 float m_minSampleShading = 1.0f;
98 uint32_t m_sampleMask = 0xFFFFFFFF;
100 bool m_alphaToOneEnable = false;
101 };
102}
103
104#endif //RASTERIZATIONSTATE_H
virtual ~RasterizationState()=default
void depthBiasSlopeFactor(float factor)
void depthBiasConstantFactor(float factor)
void polygonMode(PolygonMode mode)
PipelineResourceType getType() const override
void rasterizerDiscardEnable(bool enable)
void alphaToCoverageEnable(bool enable)
virtual void create()=0