FCT
载入中...
搜索中...
未找到
Sampler.h
浏览该文件的文档.
1#ifndef FCT_RHI_SAMPLER_H
2#define FCT_RHI_SAMPLER_H
4namespace FCT
5{
6 enum class FilterMode {
9 };
10
18
29
35
36 class Sampler : public RefCount {
37 public:
38 virtual ~Sampler() = default;
39
40 virtual void setFilter(FilterMode magFilter, FilterMode minFilter, FilterMode mipmapFilter) {
41 m_magFilter = magFilter;
42 m_minFilter = minFilter;
43 m_mipmapFilter = mipmapFilter;
44 }
45
51
52 virtual void setAnisotropy(bool enable, float maxAnisotropy) {
53 m_anisotropyEnable = enable;
54 m_maxAnisotropy = maxAnisotropy;
55 }
56
57 virtual void setCompare(bool enable, CompareOp op) {
58 m_compareEnable = enable;
59 m_compareOp = op;
60 }
61
62 virtual void setLodRange(float minLod, float maxLod, float bias) {
63 m_minLod = minLod;
64 m_maxLod = maxLod;
65 m_mipLodBias = bias;
66 }
67
71
72 virtual void setUnnormalizedCoordinates(bool unnormalized) {
73 m_unnormalizedCoordinates = unnormalized;
74 }
75
76 virtual void create() = 0;
77
87
97
107
117
127
128 protected:
132
136
137 float m_mipLodBias = 0.0f;
138 bool m_anisotropyEnable = false;
139 float m_maxAnisotropy = 1.0f;
140
141 bool m_compareEnable = false;
143
144 float m_minLod = 0.0f;
145 float m_maxLod = 1000.0f;
146
149 };
150}
151#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