Files
XCEngine/docs/api/rhi/enums/enums.md
ssdfasd d83ed56177 fix(rhi): Fix RHI abstraction layer API docs per api-skill.md template
- Rename texture/dtor.md to destructor.md per template spec
- Remove duplicate non-hyphenated fence docs (getnativehandle.md, issignaled.md, getcompletedvalue.md)
- Fix template field issues:
  - swap-chain, command-queue: 类型 now uses 'class (abstract)'
  - sampler: 头文件 now uses full path 'XCEngine/RHI/RHISampler.h'
  - types: 类型 fixed from 'structs' to 'struct'
  - enums: 类型 fixed from 'enums' to 'enum class'
- Fix include paths in command-queue and pipeline-layout code examples
- Create missing constructor/destructor docs for 11 classes:
  buffer, texture, shader, device, command-list, command-queue,
  fence, sampler, swap-chain, pipeline-state, pipeline-layout
- Update class overview pages to include constructor/destructor entries
2026-03-22 03:07:41 +08:00

455 lines
10 KiB
Markdown

# RHIEnums
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**头文件**: `XCEngine/RHI/RHIEnums.h`
**描述**: RHI 模块中使用的所有枚举类型汇总。
## 概述
本模块汇总了 RHI 模块中定义的所有枚举类型,用于配置渲染管线的各种状态和参数。
## 着色器类型
### ShaderType
着色器类型枚举。
| 枚举值 | 描述 |
|--------|------|
| `Vertex` | 顶点着色器 |
| `Fragment` | 片元着色器 (像素着色器) |
| `Geometry` | 几何着色器 |
| `Compute` | 计算着色器 |
| `TessControl` | 曲面细分控制着色器 |
| `TessEvaluation` | 曲面细分评估着色器 |
| `Hull` | 外壳着色器 (Hull shader) |
| `Domain` | 域着色器 (Domain shader) |
| `Amplification` | 放大着色器 (Mesh Shader) |
| `Mesh` | 网格着色器 |
| `Library` | 着色器库 |
### ShaderVisibility
着色器可见性,控制根签名参数对哪些着色器可见。
| 枚举值 | 描述 |
|--------|------|
| `All` | 对所有着色器可见 |
| `Vertex` | 仅对顶点着色器可见 |
| `Hull` | 仅对外壳着色器可见 |
| `Domain` | 仅对域着色器可见 |
| `Geometry` | 仅对几何着色器可见 |
| `Pixel` | 仅对像素着色器可见 |
| `Amplification` | 仅对放大着色器可见 |
| `Mesh` | 仅对网格着色器可见 |
## 图元设置
### CullMode
背面剔除模式。
| 枚举值 | 描述 |
|--------|------|
| `None` | 不剔除 |
| `Front` | 剔除正面 |
| `Back` | 剔除背面 |
### FillMode
填充模式。
| 枚举值 | 描述 |
|--------|------|
| `Wireframe` | 线框模式 |
| `Solid` | 实体模式 |
### PrimitiveTopology
图元拓扑类型。
| 枚举值 | 描述 |
|--------|------|
| `Undefined` | 未定义 |
| `PointList` | 点列表 |
| `LineList` | 线段列表 |
| `LineStrip` | 线段条带 |
| `TriangleList` | 三角形列表 |
| `TriangleStrip` | 三角形条带 |
| `LineListAdj` | 带邻接的线段列表 |
| `LineStripAdj` | 带邻接的线段条带 |
| `TriangleListAdj` | 带邻接的三角形列表 |
| `TriangleStripAdj` | 带邻接的三角形条带 |
| `PatchList` | 补丁列表 (用于曲面细分) |
## 混合操作
### BlendOp
混合操作。
| 枚举值 | 描述 |
|--------|------|
| `Add` | 加法 |
| `Subtract` | 减法 (Src - Dst) |
| `ReverseSubtract` | 反向减法 (Dst - Src) |
| `Min` | 最小值 |
| `Max` | 最大值 |
### BlendFactor
混合因子。
| 枚举值 | 描述 |
|--------|------|
| `Zero` | 0 |
| `One` | 1 |
| `SrcColor` | 源颜色 |
| `InvSrcColor` | 源颜色的逆 |
| `SrcAlpha` | 源透明度 |
| `InvSrcAlpha` | 源透明度的逆 |
| `DstAlpha` | 目标透明度 |
| `InvDstAlpha` | 目标透明度的逆 |
| `DstColor` | 目标颜色 |
| `InvDstColor` | 目标颜色的逆 |
| `SrcAlphaSat` | 源透明度饱和值 |
| `BlendFactor` | 混合因子 |
| `InvBlendFactor` | 混合因子的逆 |
| `Src1Color` | 源颜色 1 |
| `InvSrc1Color` | 源颜色 1 的逆 |
| `Src1Alpha` | 源透明度 1 |
| `InvSrc1Alpha` | 源透明度 1 的逆 |
### LogicOp
逻辑操作。
| 枚举值 | 描述 |
|--------|------|
| `Clear` | 清除 |
| `Set` | 设置 |
| `Copy` | 复制 |
| `CopyInverted` | 反转复制 |
| `Noop` | 无操作 |
| `Invert` | 反转 |
| `And` | 与 |
| `Nand` | 与非 |
| `Or` | 或 |
| `Nor` | 或非 |
| `Xor` | 异或 |
| `Equiv` | 等价 |
| `AndReverse` | 反向与 |
| `AndInverted` | 反向与 (输入反转) |
| `OrReverse` | 反向或 |
| `OrInverted` | 反向或 (输入反转) |
### ColorWriteMask
颜色写入掩码,控制颜色通道写入。
| 枚举值 | 值 | 描述 |
|--------|---|------|
| `Red` | 1 | 红色通道 |
| `Green` | 2 | 绿色通道 |
| `Blue` | 4 | 蓝色通道 |
| `Alpha` | 8 | 透明度通道 |
| `All` | 15 | 所有通道 |
**使用示例**:
```cpp
// 组合多个通道
ColorWriteMask mask = ColorWriteMask::Red | ColorWriteMask::Green | ColorWriteMask::Blue;
// 或者使用 All
ColorWriteMask mask = ColorWriteMask::All;
```
## 深度和模板
### ComparisonFunc
比较函数,用于深度/模板测试。
| 枚举值 | 描述 |
|--------|------|
| `Never` | 从不通过 |
| `Less` | 小于 |
| `Equal` | 等于 |
| `LessEqual` | 小于等于 |
| `Greater` | 大于 |
| `NotEqual` | 不等于 |
| `GreaterEqual` | 大于等于 |
| `Always` | 永远通过 |
### StencilOp
模板操作。
| 枚举值 | 描述 |
|--------|------|
| `Keep` | 保持当前值 |
| `Zero` | 设为 0 |
| `Replace` | 替换为参考值 |
| `IncrSat` | 增加并饱和 |
| `DecrSat` | 减少并饱和 |
| `Invert` | 反转位 |
| `Incr` | 增加 (溢出回绕) |
| `Decr` | 减少 (溢出回绕) |
## 纹理采样
### FilterMode
采样器过滤模式。
| 枚举值 | 描述 |
|--------|------|
| `Point` | 点采样 |
| `Linear` | 线性采样 |
| `Anisotropic` | 各向异性采样 |
| `ComparisonPoint` | 比较点采样 |
| `ComparisonLinear` | 比较线性采样 |
| `ComparisonAnisotropic` | 比较各向异性采样 |
| `MinimumPoint` | 最小值点采样 |
| `MinimumLinear` | 最小值线性采样 |
| `MinimumAnisotropic` | 最小值各向异性采样 |
| `MaximumPoint` | 最大值点采样 |
| `MaximumLinear` | 最大值线性采样 |
| `MaximumAnisotropic` | 最大值各向异性采样 |
### TextureAddressMode
纹理寻址模式。
| 枚举值 | 描述 |
|--------|------|
| `Wrap` | 重复寻址 |
| `Mirror` | 镜像寻址 |
| `Clamp` | 钳制寻址 |
| `Border` | 边框颜色寻址 |
| `MirrorOnce` | 单次镜像寻址 |
### BorderColor
边框颜色。
| 枚举值 | 描述 |
|--------|------|
| `TransparentBlack` | 透明黑色 (0,0,0,0) |
| `OpaqueBlack` | 不透明黑色 (0,0,0,1) |
| `OpaqueWhite` | 不透明白色 (1,1,1,1) |
## 纹理和缓冲区类型
### TextureType
纹理类型。
| 枚举值 | 描述 |
|--------|------|
| `Texture1D` | 1D 纹理 |
| `Texture2D` | 2D 纹理 |
| `Texture2DArray` | 2D 纹理数组 |
| `Texture3D` | 3D 纹理 |
| `TextureCube` | 立方体纹理 |
| `TextureCubeArray` | 立方体纹理数组 |
### BufferType
缓冲区类型。
| 枚举值 | 描述 |
|--------|------|
| `Vertex` | 顶点缓冲区 |
| `Index` | 索引缓冲区 |
| `Constant` | 常量缓冲区 (CBV) |
| `ReadBack` | 回读缓冲区 |
| `Indirect` | 间接执行缓冲区 |
| `RaytracingAccelerationStructure` | 光线追踪加速结构 |
| `ShaderBindingTable` | 着色器绑定表 |
### Format
纹理和缓冲区格式。
| 枚举值 | 描述 |
|--------|------|
| `Unknown` | 未知格式 |
| `R8_UNorm` | 单通道 8 位归一化 |
| `R8G8_UNorm` | 双通道 8 位归一化 |
| `R8G8B8A8_UNorm` | 四通道 8 位归一化 |
| `R16G16B16A16_Float` | 四通道 16 位浮点 |
| `R32G32B32A32_Float` | 四通道 32 位浮点 |
| `R16_Float` | 单通道 16 位浮点 |
| `R32_Float` | 单通道 32 位浮点 |
| `D16_UNorm` | 16 位深度 |
| `D24_UNorm_S8_UInt` | 24 位深度 + 8 位模板 |
| `D32_Float` | 32 位深度 |
| `BC1_UNorm` | BC1 压缩格式 |
| `BC2_UNorm` | BC2 压缩格式 |
| `BC3_UNorm` | BC3 压缩格式 |
| `BC4_UNorm` | BC4 压缩格式 |
| `BC5_UNorm` | BC5 压缩格式 |
| `BC6H_UF16` | BC6H 压缩格式 (无符号) |
| `BC7_UNorm` | BC7 压缩格式 |
| `R32G32B32A32_UInt` | 四通道 32 位无符号整数 |
| `R32_UInt` | 单通道 32 位无符号整数 |
## 资源和内存
### ResourceStates
资源状态,描述资源当前的使用方式。
| 枚举值 | 描述 |
|--------|------|
| `Common` | 通用状态 |
| `VertexAndConstantBuffer` | 顶点缓冲/常量缓冲 |
| `IndexBuffer` | 索引缓冲 |
| `RenderTarget` | 渲染目标 |
| `UnorderedAccess` | 无序访问 |
| `DepthWrite` | 深度写入 |
| `DepthRead` | 深度读取 |
| `NonPixelShaderResource` | 非像素着色器资源 |
| `PixelShaderResource` | 像素着色器资源 |
| `CopySrc` | 复制源 |
| `CopyDst` | 复制目标 |
| `Present` | 显示呈现 |
| `GenericRead` | 通用读取 |
### HeapType
内存堆类型。
| 枚举值 | 描述 |
|--------|------|
| `Default` | 默认堆 (GPU 直接访问) |
| `Upload` | 上传堆 (CPU 写入 GPU 读取) |
| `Readback` | 回读堆 (GPU 写入 CPU 读取) |
| `Custom` | 自定义堆 |
## 描述符类型
### DescriptorType
描述符类型。
| 枚举值 | 描述 |
|--------|------|
| `CBV` | 常量缓冲区视图 |
| `SRV` | 着色器资源视图 |
| `UAV` | 无序访问视图 |
| `Sampler` | 采样器 |
| `RTV` | 渲染目标视图 |
| `DSV` | 深度模板视图 |
### DescriptorHeapType
描述符堆类型。
| 枚举值 | 描述 |
|--------|------|
| `CBV_SRV_UAV` | CBV/SRV/UAV 混合堆 |
| `Sampler` | 采样器堆 |
| `RTV` | 渲染目标视图堆 |
| `DSV` | 深度模板视图堆 |
### RootParameterType
根参数类型。
| 枚举值 | 描述 |
|--------|------|
| `DescriptorTable` | 描述符表 |
| `Constants` | 常量 (32-bit 常量) |
| `CBV` | 常量缓冲区视图 |
| `SRV` | 着色器资源视图 |
| `UAV` | 无序访问视图 |
## 命令相关
### CommandQueueType
命令队列类型。
| 枚举值 | 描述 |
|--------|------|
| `Direct` | 直接命令队列 (图形/计算) |
| `Compute` | 计算命令队列 |
| `Copy` | 复制命令队列 |
### PipelineType
管线类型。
| 枚举值 | 描述 |
|--------|------|
| `Graphics` | 图形管线 |
| `Compute` | 计算管线 |
| `Raytracing` | 光线追踪管线 |
### LoadAction
加载操作,渲染通道开始时的加载行为。
| 枚举值 | 描述 |
|--------|------|
| `Undefined` | 未定义 |
| `Load` | 加载现有内容 |
| `Clear` | 清除为指定值 |
### StoreAction
存储操作,渲染通道结束时的存储行为。
| 枚举值 | 描述 |
|--------|------|
| `Undefined` | 未定义 |
| `Store` | 存储结果 |
| `Resolve` | 解析 (多重采样) |
| `StoreAndResolve` | 存储并解析 |
| `Discard` | 丢弃 |
### PresentFlags
呈现标志。
| 枚举值 | 描述 |
|--------|------|
| `None` | 无标志 |
| `AllowTearing` | 允许垂直同步撕裂 |
| `StrictlyTimedFrame` | 严格计时帧 |
| `AllowDisplayLatencyWaitableObject` | 允许显示延迟等待对象 |
### QueryType
查询类型。
| 枚举值 | 描述 |
|--------|------|
| `Occlusion` | 遮挡查询 |
| `Timestamp` | 时间戳查询 |
| `PipelineStatistics` | 管线统计查询 |
## RHI 后端
### RHIType
RHI 后端类型。
| 枚举值 | 描述 |
|--------|------|
| `D3D12` | DirectX 12 |
| `OpenGL` | OpenGL |
| `Vulkan` | Vulkan (预留) |
| `Metal` | Metal (预留) |
## 相关文档
- [../rhi.md](../rhi.md) - RHI 模块总览
- [RHITypes](../types/types.md) - 结构体类型汇总