44 lines
1007 B
Markdown
44 lines
1007 B
Markdown
|
|
# StencilOp
|
||
|
|
|
||
|
|
**命名空间**: `XCEngine::RHI`
|
||
|
|
|
||
|
|
**类型**: `enum class`
|
||
|
|
|
||
|
|
**描述**: 模板操作枚举,定义模板测试失败时的操作
|
||
|
|
|
||
|
|
## 概述
|
||
|
|
|
||
|
|
StencilOp 枚举定义了当模板测试失败时对模板缓冲区执行的操作,用于实现各种遮罩和剪裁效果。
|
||
|
|
|
||
|
|
## 枚举值
|
||
|
|
|
||
|
|
| 枚举值 | 描述 |
|
||
|
|
|--------|------|
|
||
|
|
| `Keep` | 保持现有模板值 |
|
||
|
|
| `Zero` | 将模板值设为 0 |
|
||
|
|
| `Replace` | 用参考值替换模板值 |
|
||
|
|
| `IncrSat` | 递增模板值,饱和到最大值 |
|
||
|
|
| `DecrSat` | 递减模板值,饱和到最小值 |
|
||
|
|
| `Invert` | 按位翻转模板值 |
|
||
|
|
| `Incr` | 递增模板值(可回绕) |
|
||
|
|
| `Decr` | 递减模板值(可回绕) |
|
||
|
|
|
||
|
|
## 使用示例
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
#include "RHI/RHIEnums.h"
|
||
|
|
|
||
|
|
void Example() {
|
||
|
|
StencilOp failOp = StencilOp::Keep;
|
||
|
|
|
||
|
|
if (failOp == StencilOp::Replace) {
|
||
|
|
// 替换模板值
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## 相关文档
|
||
|
|
|
||
|
|
- [ComparisonFunc](comparison-func.md) - 比较函数枚举
|
||
|
|
- [LoadAction](load-action.md) - 加载操作枚举
|