docs: update RHI API docs

This commit is contained in:
2026-03-20 02:35:45 +08:00
parent ea756c0177
commit 070b444f8f
501 changed files with 13493 additions and 2022 deletions

View File

@@ -0,0 +1,53 @@
# BlendFactor
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 混合因子枚举,定义颜色混合的权重因子
## 概述
BlendFactor 枚举定义了混合运算中使用的各种因子,用于控制源颜色和目标颜色的混合权重。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Zero` | 0 |
| `One` | 1 |
| `SrcColor` | 源颜色 |
| `InvSrcColor` | 1 - 源颜色 |
| `SrcAlpha` | 源 alpha 值 |
| `InvSrcAlpha` | 1 - 源 alpha 值 |
| `DstAlpha` | 目标 alpha 值 |
| `InvDstAlpha` | 1 - 目标 alpha 值 |
| `DstColor` | 目标颜色 |
| `InvDstColor` | 1 - 目标颜色 |
| `SrcAlphaSat` | 饱和的源 alpha 值 |
| `BlendFactor` | 自定义混合因子 |
| `InvBlendFactor` | 1 - 自定义混合因子 |
| `Src1Color` | 第二个源的 RGB |
| `InvSrc1Color` | 1 - 第二个源的 RGB |
| `Src1Alpha` | 第二个源的 alpha |
| `InvSrc1Alpha` | 1 - 第二个源的 alpha |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
BlendFactor srcFactor = BlendFactor::SrcAlpha;
BlendFactor dstFactor = BlendFactor::InvSrcAlpha;
if (srcFactor == BlendFactor::One) {
// 完全使用源颜色
}
}
```
## 相关文档
- [BlendOp](blend-op.md) - 混合操作枚举
- [ColorWriteMask](color-write-mask.md) - 颜色写入掩码枚举

View File

@@ -0,0 +1,40 @@
# BlendOp
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 混合操作枚举,定义颜色混合的运算方式
## 概述
BlendOp 枚举定义了源颜色和目标颜色之间的混合运算方式,用于实现各种透明和混合效果。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Add` | 加法混合Src + Dst |
| `Subtract` | 减法混合Src - Dst |
| `ReverseSubtract` | 反向减法混合Dst - Src |
| `Min` | 取最小值 |
| `Max` | 取最大值 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
BlendOp blendOp = BlendOp::Add;
if (blendOp == BlendOp::Subtract) {
// 使用减法混合
}
}
```
## 相关文档
- [BlendFactor](blend-factor.md) - 混合因子枚举
- [LogicOp](logic-op.md) - 逻辑操作枚举

View File

@@ -0,0 +1,38 @@
# BorderColor
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 边界颜色枚举,定义纹理采样边界颜色
## 概述
BorderColor 枚举定义了当 TextureAddressMode 为 Border 模式时使用的边界颜色。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `TransparentBlack` | 透明黑色 (0,0,0,0) |
| `OpaqueBlack` | 不透明黑色 (0,0,0,1) |
| `OpaqueWhite` | 不透明白色 (1,1,1,1) |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
BorderColor borderColor = BorderColor::TransparentBlack;
if (borderColor == BorderColor::OpaqueWhite) {
// 使用白色边界
}
}
```
## 相关文档
- [TextureAddressMode](texture-address-mode.md) - 纹理寻址模式枚举
- [FilterMode](filter-mode.md) - 过滤模式枚举

View File

@@ -0,0 +1,42 @@
# BufferType
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 缓冲区类型枚举,定义 GPU 缓冲区的用途类型
## 概述
BufferType 枚举定义了引擎中使用的各种 GPU 缓冲区类型,每种类型对应不同的用途和访问模式。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Vertex` | 顶点缓冲区 |
| `Index` | 索引缓冲区 |
| `Constant` | 常量缓冲区CBV |
| `ReadBack` | 回读缓冲区 |
| `Indirect` | 间接执行缓冲区 |
| `RaytracingAccelerationStructure` | 光线追踪加速结构 |
| `ShaderBindingTable` | 着色器绑定表 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
BufferType bufferType = BufferType::Vertex;
if (bufferType == BufferType::Constant) {
// 常量缓冲区处理
}
}
```
## 相关文档
- [TextureType](texture-type.md) - 纹理类型枚举
- [DescriptorType](descriptor-type.md) - 描述符类型枚举

View File

@@ -0,0 +1,41 @@
# ColorWriteMask
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 颜色写入掩码枚举,控制颜色通道的写入
## 概述
ColorWriteMask 枚举定义了哪些颜色通道可以被写入渲染目标,支持位运算组合。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Red = 1` | 红色通道 |
| `Green = 2` | 绿色通道 |
| `Blue = 4` | 蓝色通道 |
| `Alpha = 8` | Alpha 通道 |
| `All = 15` | 所有通道Red\|Green\|Blue\|Alpha |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
ColorWriteMask mask = ColorWriteMask::All;
ColorWriteMask rgbOnly = ColorWriteMask::Red | ColorWriteMask::Green | ColorWriteMask::Blue;
if (mask == ColorWriteMask::All) {
// 写入所有通道
}
}
```
## 相关文档
- [BlendFactor](blend-factor.md) - 混合因子枚举
- [LogicOp](logic-op.md) - 逻辑操作枚举

View File

@@ -0,0 +1,38 @@
# CommandQueueType
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 命令队列类型枚举,定义 GPU 命令队列的类型
## 概述
CommandQueueType 枚举定义了不同类型的 GPU 命令队列,用于提交渲染和计算命令。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Direct` | 直接命令队列(图形命令) |
| `Compute` | 计算命令队列 |
| `Copy` | 复制命令队列 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
CommandQueueType queueType = CommandQueueType::Direct;
if (queueType == CommandQueueType::Compute) {
// 计算命令队列
}
}
```
## 相关文档
- [PipelineType](pipeline-type.md) - 管线类型枚举
- [CommandQueueType](command-queue-type.md) - 命令队列类型枚举

View File

@@ -0,0 +1,43 @@
# ComparisonFunc
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 比较函数枚举,定义深度和模板测试的比较方式
## 概述
ComparisonFunc 枚举用于深度测试和模板测试中的比较操作,决定何时通过测试。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Never` | 永不通过 |
| `Less` | 小于比较 |
| `Equal` | 等于比较 |
| `LessEqual` | 小于等于比较 |
| `Greater` | 大于比较 |
| `NotEqual` | 不等于比较 |
| `GreaterEqual` | 大于等于比较 |
| `Always` | 永远通过 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
ComparisonFunc depthFunc = ComparisonFunc::Less;
if (depthFunc == ComparisonFunc::Equal) {
// 等于深度时通过
}
}
```
## 相关文档
- [StencilOp](stencil-op.md) - 模板操作枚举
- [FilterMode](filter-mode.md) - 采样过滤模式枚举

View File

@@ -0,0 +1,38 @@
# CullMode
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 背面剔除模式枚举,控制图元的剔除方式
## 概述
CullMode 枚举用于控制 GPU 渲染时的背面剔除模式,决定哪些几何图元被丢弃以优化渲染性能。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `None` | 不进行剔除,显示所有图元 |
| `Front` | 剔除正面图元 |
| `Back` | 剔除背面图元(默认值) |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
CullMode cullMode = CullMode::Back;
if (cullMode == CullMode::None) {
// 不进行剔除
}
}
```
## 相关文档
- [FillMode](fill-mode.md) - 填充模式枚举
- [ShaderType](shader-type.md) - 着色器类型枚举

View File

@@ -0,0 +1,39 @@
# DescriptorHeapType
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 描述符堆类型枚举,定义描述符堆的用途类型
## 概述
DescriptorHeapType 枚举定义了 GPU 描述符堆的类型,决定了堆中包含的描述符种类。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `CBV_SRV_UAV` | 常量缓冲区、Shader资源、无序访问视图堆 |
| `Sampler` | 采样器堆 |
| `RTV` | 渲染目标视图堆 |
| `DSV` | 深度模板视图堆 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
DescriptorHeapType heapType = DescriptorHeapType::CBV_SRV_UAV;
if (heapType == DescriptorHeapType::Sampler) {
// 采样器堆
}
}
```
## 相关文档
- [DescriptorType](descriptor-type.md) - 描述符类型枚举
- [RootParameterType](root-parameter-type.md) - 根参数类型枚举

View File

@@ -0,0 +1,41 @@
# DescriptorType
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 描述符类型枚举,定义 GPU 描述符资源的类型
## 概述
DescriptorType 枚举定义了 RHI 层使用的各种描述符类型,用于绑定资源到渲染管线。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `CBV` | 常量缓冲区视图 |
| `SRV` | 着色器资源视图 |
| `UAV` | 无序访问视图 |
| `Sampler` | 采样器描述符 |
| `RTV` | 渲染目标视图 |
| `DSV` | 深度模板视图 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
DescriptorType descType = DescriptorType::CBV;
if (descType == DescriptorType::SRV) {
// 着色器资源视图处理
}
}
```
## 相关文档
- [DescriptorHeapType](descriptor-heap-type.md) - 描述符堆类型枚举
- [BufferType](buffer-type.md) - 缓冲区类型枚举

View File

@@ -4,43 +4,451 @@
**类型**: `enums`
**头文件**: `XCEngine/RHI/RHIEnums.h`
**描述**: RHI 模块中使用的所有枚举类型汇总。
## 主要枚举
## 概述
| 枚举 | 描述 |
|------|------|
| `ShaderType` | 着色器类型 |
| `ShaderVisibility` | 着色器可见性 |
| `CullMode` | 背面剔除模式 |
| `FillMode` | 填充模式 |
| `BlendOp` | 混合操作 |
本模块汇总了 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` | 混合因子 |
| `ComparisonFunc` | 比较函数 |
| `StencilOp` | 模板操作 |
| `PrimitiveTopology` | 图元拓扑 |
| `TextureType` | 纹理类型 |
| `Format` | 纹理/缓冲区格式 |
| `FilterMode` | 采样器过滤模式 |
| `TextureAddressMode` | 纹理寻址模式 |
| `BorderColor` | 边框颜色 |
| `BufferType` | 缓冲区类型 |
| `ResourceStates` | 资源状态 |
| `HeapType` | 内存堆类型 |
| `DescriptorType` | 描述符类型 |
| `DescriptorHeapType` | 描述符堆类型 |
| `CommandQueueType` | 命令队列类型 |
| `PipelineType` | 管线类型 |
| `LoadAction` | 加载操作 |
| `StoreAction` | 存储操作 |
| `PresentFlags` | 呈现标志 |
| `QueryType` | 查询类型 |
| `RootParameterType` | 根参数类型 |
| `LogicOp` | 逻辑操作 |
| `ColorWriteMask` | 颜色写入掩码 |
| `RHIType` | RHI 后端类型 |
| `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/rhi.md](../rhi.md) - RHI 模块总览
- [../rhi.md](../rhi.md) - RHI 模块总览
- [RHITypes](../types/types.md) - 结构体类型汇总

View File

@@ -0,0 +1,37 @@
# FillMode
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 填充模式枚举,控制几何图形的渲染方式
## 概述
FillMode 枚举定义了几何图形的渲染填充方式,用于控制渲染输出是实体填充还是线框模式。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Wireframe` | 线框模式,只渲染图元边缘 |
| `Solid` | 实体模式,填充图元内部(默认值) |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
FillMode fillMode = FillMode::Solid;
if (fillMode == FillMode::Wireframe) {
// 线框渲染模式
}
}
```
## 相关文档
- [CullMode](cull-mode.md) - 背面剔除模式枚举
- [PrimitiveTopology](primitive-topology.md) - 图元拓扑枚举

View File

@@ -0,0 +1,47 @@
# FilterMode
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 过滤模式枚举,定义纹理采样的过滤方式
## 概述
FilterMode 枚举定义了纹理采样时使用的过滤模式,包括点过滤、线性过滤和各向异性过滤。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Point` | 点采样 |
| `Linear` | 线性过滤 |
| `Anisotropic` | 各向异性过滤 |
| `ComparisonPoint` | 比较点采样 |
| `ComparisonLinear` | 比较线性过滤 |
| `ComparisonAnisotropic` | 比较各向异性过滤 |
| `MinimumPoint` | 最小值点采样 |
| `MinimumLinear` | 最小值线性过滤 |
| `MinimumAnisotropic` | 最小值各向异性过滤 |
| `MaximumPoint` | 最大值点采样 |
| `MaximumLinear` | 最大值线性过滤 |
| `MaximumAnisotropic` | 最大值各向异性过滤 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
FilterMode filterMode = FilterMode::Linear;
if (filterMode == FilterMode::Anisotropic) {
// 各向异性过滤
}
}
```
## 相关文档
- [TextureAddressMode](texture-address-mode.md) - 纹理寻址模式枚举
- [ComparisonFunc](comparison-func.md) - 比较函数枚举

View File

@@ -0,0 +1,55 @@
# Format
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 格式枚举,定义 GPU 资源的像素格式
## 概述
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` | HDR 压缩格式 BC6H |
| `BC7_UNorm` | 高质量压缩格式 BC7 |
| `R32G32B32A32_UInt` | 四通道 32 位无符号整数 |
| `R32_UInt` | 单通道 32 位无符号整数 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
Format format = Format::R8G8B8A8_UNorm;
if (format == Format::D32_Float) {
// 深度格式
}
}
```
## 相关文档
- [TextureType](texture-type.md) - 纹理类型枚举
- [BufferType](buffer-type.md) - 缓冲区类型枚举

View File

@@ -0,0 +1,39 @@
# HeapType
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 堆类型枚举,定义 GPU 内存堆的类型
## 概述
HeapType 枚举定义了 GPU 内存分配的不同堆类型,每种类型有不同的访问模式和用途。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Default` | 默认堆GPU 最优访问 |
| `Upload` | 上传堆CPU 可写 GPU 可读 |
| `Readback` | 回读堆CPU 可读 GPU 可写 |
| `Custom` | 自定义堆类型 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
HeapType heapType = HeapType::Default;
if (heapType == HeapType::Upload) {
// 上传堆
}
}
```
## 相关文档
- [ResourceStates](resource-states.md) - 资源状态枚举
- [BufferType](buffer-type.md) - 缓冲区类型枚举

View File

@@ -0,0 +1,38 @@
# LoadAction
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 加载操作枚举,定义渲染目标加载时的操作
## 概述
LoadAction 枚举定义了资源加载时的行为,用于控制渲染目标在渲染开始前的状态。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Undefined` | 未定义,不执行加载 |
| `Load` | 加载现有内容 |
| `Clear` | 清除为指定颜色/深度值 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
LoadAction loadAction = LoadAction::Clear;
if (loadAction == LoadAction::Load) {
// 保留现有内容
}
}
```
## 相关文档
- [StoreAction](store-action.md) - 存储操作枚举
- [LoadAction](load-action.md) - 加载操作枚举

View File

@@ -0,0 +1,51 @@
# LogicOp
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 逻辑操作枚举,定义颜色混合时的逻辑运算
## 概述
LogicOp 枚举定义了像素颜色上的逻辑运算操作,用于实现各种颜色混合效果。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Clear` | 清除为 0 |
| `Set` | 设置为 1 |
| `Copy` | 复制源值 |
| `CopyInverted` | 复制反转源值 |
| `Noop` | 无操作 |
| `Invert` | 反转目标值 |
| `And` | 源与目标 |
| `Nand` | 源与非目标 |
| `Or` | 源或目标 |
| `Nor` | 源或非目标 |
| `Xor` | 源异或目标 |
| `Equiv` | 源异或非目标 |
| `AndReverse` | 反转源与目标 |
| `AndInverted` | 源与反转目标 |
| `OrReverse` | 反转源或目标 |
| `OrInverted` | 源或反转目标 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
LogicOp logicOp = LogicOp::Copy;
if (logicOp == LogicOp::Xor) {
// 异或操作
}
}
```
## 相关文档
- [BlendOp](blend-op.md) - 混合操作枚举
- [BlendFactor](blend-factor.md) - 混合因子枚举

View File

@@ -0,0 +1,38 @@
# PipelineType
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 管线类型枚举,定义渲染管线的类型
## 概述
PipelineType 枚举定义了引擎支持的渲染管线类型,包括图形管线、计算管线和光线追踪管线。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Graphics` | 图形渲染管线 |
| `Compute` | 计算管线 |
| `Raytracing` | 光线追踪管线 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
PipelineType pipelineType = PipelineType::Graphics;
if (pipelineType == PipelineType::Raytracing) {
// 光线追踪渲染
}
}
```
## 相关文档
- [ShaderType](shader-type.md) - 着色器类型枚举
- [CommandQueueType](command-queue-type.md) - 命令队列类型枚举

View File

@@ -0,0 +1,39 @@
# PresentFlags
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 显示标志枚举,定义帧显示的选项
## 概述
PresentFlags 枚举定义了_present_操作的标志用于控制交换链呈现行为。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `None` | 无特殊标志 |
| `AllowTearing` | 允许垂直同步撕裂 |
| `StrictlyTimedFrame` | 严格计时帧 |
| `AllowDisplayLatencyWaitableObject` | 允许显示延迟等待对象 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
PresentFlags flags = PresentFlags::AllowTearing;
if (flags == PresentFlags::None) {
// 标准呈现
}
}
```
## 相关文档
- [StoreAction](store-action.md) - 存储操作枚举
- [ResourceStates](resource-states.md) - 资源状态枚举

View File

@@ -0,0 +1,46 @@
# PrimitiveTopology
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 图元拓扑枚举,定义几何图元的绘制方式
## 概述
PrimitiveTopology 枚举定义了如何解释顶点数据以形成几何图元,是渲染管线的重要参数。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Undefined` | 未定义拓扑 |
| `PointList` | 点列表 |
| `LineList` | 线段列表 |
| `LineStrip` | 线段条带 |
| `TriangleList` | 三角形列表 |
| `TriangleStrip` | 三角形条带 |
| `LineListAdj` | 带邻接信息的线段列表 |
| `LineStripAdj` | 带邻接信息的线段条带 |
| `TriangleListAdj` | 带邻接信息的三角形列表 |
| `TriangleStripAdj` | 带邻接信息的三角形条带 |
| `PatchList` | 补丁列表(细分几何) |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
PrimitiveTopology topology = PrimitiveTopology::TriangleList;
if (topology == PrimitiveTopology::LineStrip) {
// 线段条带渲染
}
}
```
## 相关文档
- [FillMode](fill-mode.md) - 填充模式枚举
- [ShaderType](shader-type.md) - 着色器类型枚举

View File

@@ -0,0 +1,38 @@
# QueryType
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 查询类型枚举,定义 GPU 查询的类型
## 概述
QueryType 枚举定义了引擎支持的 GPU 查询类型,用于获取渲染管线的各种统计信息。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Occlusion` | 遮挡查询 |
| `Timestamp` | 时间戳查询 |
| `PipelineStatistics` | 管线统计查询 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
QueryType queryType = QueryType::Timestamp;
if (queryType == QueryType::Occlusion) {
// 遮挡查询
}
}
```
## 相关文档
- [DescriptorType](descriptor-type.md) - 描述符类型枚举
- [ResourceStates](resource-states.md) - 资源状态枚举

View File

@@ -0,0 +1,48 @@
# ResourceStates
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 资源状态枚举,定义 GPU 资源的使用状态
## 概述
ResourceStates 枚举定义了 GPU 资源的当前状态,用于资源 barriers 和同步管理。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Common` | 通用状态 |
| `VertexAndConstantBuffer` | 顶点或常量缓冲区 |
| `IndexBuffer` | 索引缓冲区 |
| `RenderTarget` | 渲染目标 |
| `UnorderedAccess` | 无序访问 |
| `DepthWrite` | 深度写入 |
| `DepthRead` | 深度读取 |
| `NonPixelShaderResource` | 非像素着色器资源 |
| `PixelShaderResource` | 像素着色器资源 |
| `CopySrc` | 复制源 |
| `CopyDst` | 复制目标 |
| `Present` | 呈现状态 |
| `GenericRead` | 通用读取 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
ResourceStates state = ResourceStates::RenderTarget;
if (state == ResourceStates::Common) {
// 通用状态
}
}
```
## 相关文档
- [HeapType](heap-type.md) - 堆类型枚举
- [BufferType](buffer-type.md) - 缓冲区类型枚举

View File

@@ -0,0 +1,39 @@
# RHIType
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: RHI 类型枚举,定义底层图形 API 的类型
## 概述
RHIType 枚举定义了引擎支持的底层图形 API 类型,用于抽象不同平台的图形接口。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `D3D12` | DirectX 12 |
| `OpenGL` | OpenGL |
| `Vulkan` | Vulkan |
| `Metal` | Apple Metal |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
RHIType rhiType = RHIType::D3D12;
if (rhiType == RHIType::Vulkan) {
// Vulkan 特定处理
}
}
```
## 相关文档
- [PipelineType](pipeline-type.md) - 管线类型枚举
- [CommandQueueType](command-queue-type.md) - 命令队列类型枚举

View File

@@ -0,0 +1,40 @@
# RootParameterType
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 根参数类型枚举,定义根签名中参数的类型
## 概述
RootParameterType 枚举定义了根签名中参数的不同类型,用于配置渲染管线的资源绑定。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `DescriptorTable` | 描述符表 |
| `Constants` | 内联常量32位常量 |
| `CBV` | 内联常量缓冲区视图 |
| `SRV` | 内联着色器资源视图 |
| `UAV` | 内联无序访问视图 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
RootParameterType paramType = RootParameterType::DescriptorTable;
if (paramType == RootParameterType::Constants) {
// 内联常量
}
}
```
## 相关文档
- [DescriptorType](descriptor-type.md) - 描述符类型枚举
- [ShaderVisibility](shader-visibility.md) - 着色器可见性枚举

View File

@@ -0,0 +1,47 @@
# ShaderType
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 着色器类型枚举,定义不同阶段的着色器类型
## 概述
ShaderType 枚举定义了 GPU 渲染管线中不同阶段的着色器类型。这些类型对应于图形渲染和计算任务中的各个着色器阶段。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Vertex` | 顶点着色器,处理顶点变换 |
| `Fragment` | 片元着色器,处理像素着色 |
| `Geometry` | 几何着色器,处理图元操作 |
| `Compute` | 计算着色器,用于通用计算 |
| `TessControl` | 细分控制着色器 |
| `TessEvaluation` | 细分评估着色器 |
| `Hull` | 外壳着色器DirectX 11 |
| `Domain` | 域着色器DirectX 11 |
| `Amplification` | 放大着色器Mesh Shader |
| `Mesh` | 网格着色器 |
| `Library` | 着色器库 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
ShaderType vertexShader = ShaderType::Vertex;
ShaderType computeShader = ShaderType::Compute;
if (vertexShader == ShaderType::Vertex) {
// 处理顶点着色器
}
}
```
## 相关文档
- [CullMode](cull-mode.md) - 渲染状态枚举
- [PipelineType](pipeline-type.md) - 管线类型枚举

View File

@@ -0,0 +1,43 @@
# ShaderVisibility
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 着色器可见性枚举,定义根签名参数对哪些着色器阶段可见
## 概述
ShaderVisibility 枚举控制根签名中的描述符或常量对渲染管线中哪些着色器阶段可见。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `All` | 对所有着色器阶段可见 |
| `Vertex` | 仅对顶点着色器可见 |
| `Hull` | 仅对外壳着色器可见 |
| `Domain` | 仅对域着色器可见 |
| `Geometry` | 仅对几何着色器可见 |
| `Pixel` | 仅对像素着色器可见 |
| `Amplification` | 仅对放大着色器可见 |
| `Mesh` | 仅对网格着色器可见 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
ShaderVisibility visibility = ShaderVisibility::All;
if (visibility == ShaderVisibility::Pixel) {
// 仅像素着色器可见
}
}
```
## 相关文档
- [ShaderType](shader-type.md) - 着色器类型枚举
- [RootParameterType](root-parameter-type.md) - 根参数类型枚举

View File

@@ -0,0 +1,43 @@
# 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) - 加载操作枚举

View File

@@ -0,0 +1,40 @@
# StoreAction
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 存储操作枚举,定义渲染目标存储时的操作
## 概述
StoreAction 枚举定义了资源存储时的行为,用于控制渲染结果如何保存到目标资源。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Undefined` | 未定义,不执行存储 |
| `Store` | 存储渲染结果 |
| `Resolve` | 解析多重采样 |
| `StoreAndResolve` | 存储并解析 |
| `Discard` | 丢弃渲染结果 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
StoreAction storeAction = StoreAction::Store;
if (storeAction == StoreAction::Resolve) {
// 解析多重采样
}
}
```
## 相关文档
- [LoadAction](load-action.md) - 加载操作枚举
- [PresentFlags](present-flags.md) - 显示标志枚举

View File

@@ -0,0 +1,40 @@
# TextureAddressMode
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 纹理寻址模式枚举,定义纹理坐标超出范围时的行为
## 概述
TextureAddressMode 枚举定义了当纹理坐标超出 [0, 1] 范围时的采样行为。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Wrap` | 重复寻址 |
| `Mirror` | 镜像重复寻址 |
| `Clamp` | 夹取到边缘 |
| `Border` | 使用边界颜色 |
| `MirrorOnce` | 单次镜像后夹取 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
TextureAddressMode addressMode = TextureAddressMode::Wrap;
if (addressMode == TextureAddressMode::Clamp) {
// 夹取到边缘
}
}
```
## 相关文档
- [FilterMode](filter-mode.md) - 过滤模式枚举
- [BorderColor](border-color.md) - 边界颜色枚举

View File

@@ -0,0 +1,41 @@
# TextureType
**命名空间**: `XCEngine::RHI`
**类型**: `enum class`
**描述**: 纹理类型枚举,定义不同维度的纹理类型
## 概述
TextureType 枚举定义了引擎支持的各种纹理类型,包括 1D、2D、3D 纹理以及纹理数组和立方体贴图。
## 枚举值
| 枚举值 | 描述 |
|--------|------|
| `Texture1D` | 一维纹理 |
| `Texture2D` | 二维纹理 |
| `Texture2DArray` | 二维纹理数组 |
| `Texture3D` | 三维纹理 |
| `TextureCube` | 立方体贴图 |
| `TextureCubeArray` | 立方体贴图数组 |
## 使用示例
```cpp
#include "RHI/RHIEnums.h"
void Example() {
TextureType texType = TextureType::Texture2D;
if (texType == TextureType::TextureCube) {
// 立方体贴图处理
}
}
```
## 相关文档
- [BufferType](buffer-type.md) - 缓冲区类型枚举
- [DescriptorType](descriptor-type.md) - 描述符类型枚举