56 lines
1.2 KiB
Markdown
56 lines
1.2 KiB
Markdown
# RHISampler::Bind
|
||
|
||
```cpp
|
||
virtual void Bind(unsigned int unit) = 0;
|
||
```
|
||
|
||
将采样器绑定到指定的纹理单元。该方法将采样器状态设置到渲染管线的对应纹理采样槽位,使其后续的纹理采样操作可以使用此采样器。
|
||
|
||
**参数:**
|
||
|
||
| 参数 | 类型 | 描述 |
|
||
|------|------|------|
|
||
| `unit` | `unsigned int` | 纹理单元索引,指定绑定到哪个纹理采样槽位(通常 0-15) |
|
||
|
||
**返回:** 无
|
||
|
||
**线程安全:** ❌
|
||
|
||
**复杂度:** O(1)
|
||
|
||
**示例:**
|
||
|
||
```cpp
|
||
#include "XCEngine/RHI/RHISampler.h"
|
||
|
||
class MySampler : public XCEngine::RHI::RHISampler {
|
||
public:
|
||
void Shutdown() override { }
|
||
void Bind(unsigned int unit) override {
|
||
m_boundUnit = unit;
|
||
}
|
||
void Unbind(unsigned int unit) override {
|
||
if (m_boundUnit == unit) {
|
||
m_boundUnit = -1;
|
||
}
|
||
}
|
||
void* GetNativeHandle() override { return nullptr; }
|
||
unsigned int GetID() override { return 0; }
|
||
|
||
private:
|
||
int m_boundUnit = -1;
|
||
};
|
||
|
||
void Example() {
|
||
MySampler sampler;
|
||
sampler.Bind(0);
|
||
sampler.Bind(1);
|
||
sampler.Bind(2);
|
||
}
|
||
```
|
||
|
||
## 相关文档
|
||
|
||
- [RHISampler 总览](sampler.md) - 返回类总览
|
||
- [RHISampler::Unbind](unbind.md) - 解绑采样器
|