FCT
载入中...
搜索中...
未找到
Sampler.h
浏览该文件的文档.
1#ifndef FCT_RHI_SAMPLER_H
2#define FCT_RHI_SAMPLER_H
3namespace FCT
4{
5 enum class FilterMode {
8 };
9
17
28
34
35 class Sampler {
36 public:
37 virtual ~Sampler() = default;
38
39 virtual void setFilter(FilterMode magFilter, FilterMode minFilter, FilterMode mipmapFilter) {
40 m_magFilter = magFilter;
41 m_minFilter = minFilter;
42 m_mipmapFilter = mipmapFilter;
43 }
44
50
51 virtual void setAnisotropy(bool enable, float maxAnisotropy) {
52 m_anisotropyEnable = enable;
53 m_maxAnisotropy = maxAnisotropy;
54 }
55
56 virtual void setCompare(bool enable, CompareOp op) {
57 m_compareEnable = enable;
58 m_compareOp = op;
59 }
60
61 virtual void setLodRange(float minLod, float maxLod, float bias) {
62 m_minLod = minLod;
63 m_maxLod = maxLod;
64 m_mipLodBias = bias;
65 }
66
70
71 virtual void setUnnormalizedCoordinates(bool unnormalized) {
72 m_unnormalizedCoordinates = unnormalized;
73 }
74
75 virtual void create() = 0;
76
86
96
106
116
126
127 protected:
131
135
136 float m_mipLodBias = 0.0f;
137 bool m_anisotropyEnable = false;
138 float m_maxAnisotropy = 1.0f;
139
140 bool m_compareEnable = false;
142
143 float m_minLod = 0.0f;
144 float m_maxLod = 1000.0f;
145
148 };
149}
150#endif //FCT_RHI_SAMPLER_H
virtual void setAnisotropy(bool enable, float maxAnisotropy)
AddressMode m_addressModeU
AddressMode m_addressModeW
virtual void setBorderColor(BorderColor color)
BorderColor m_borderColor
bool m_anisotropyEnable
virtual void setAddressMode(AddressMode u, AddressMode v, AddressMode w)
virtual void setLinear()
virtual void setLinearClamp()
FilterMode m_magFilter
float m_maxAnisotropy
virtual void setFilter(FilterMode magFilter, FilterMode minFilter, FilterMode mipmapFilter)
FilterMode m_minFilter
CompareOp m_compareOp
virtual void setPoint()
virtual void create()=0
virtual void setLodRange(float minLod, float maxLod, float bias)
virtual void setUnnormalizedCoordinates(bool unnormalized)
virtual void setAnisotropic(float maxAnisotropy=16.0f)
virtual void setShadowMap()
AddressMode m_addressModeV
bool m_unnormalizedCoordinates
virtual void setCompare(bool enable, CompareOp op)
virtual ~Sampler()=default
FilterMode m_mipmapFilter