RHICommandList
命名空间: XCEngine::RHI
类型: class (abstract)
描述: GPU 命令列表抽象接口,用于录制和执行 GPU 命令。
概述
RHICommandList 封装了 GPU 命令的录制和执行。每个后端实现需要提供命令列表的创建、重置、命令录制和关闭等功能。
公共类型
DepthStencilState
深度模板状态结构体。
BlendState
混合状态结构体。
公共方法
生命周期
| 方法 |
描述 |
virtual void Shutdown() |
释放命令列表资源 |
命令录制控制
| 方法 |
描述 |
virtual void Reset() |
重置命令列表,开始新的录制 |
virtual void Close() |
关闭命令列表,结束录制 |
资源状态转换
| 方法 |
描述 |
virtual void TransitionBarrier(void* resource, ResourceStates stateBefore, ResourceStates stateAfter) |
资源状态转换屏障 |
渲染状态设置
| 方法 |
描述 |
virtual void SetPipelineState(void* pso) |
设置管线状态对象 |
virtual void SetPrimitiveTopology(PrimitiveTopology topology) |
设置图元拓扑 |
virtual void SetViewport(const Viewport& viewport) |
设置视口 |
virtual void SetViewports(uint32_t count, const Viewport* viewports) |
设置多个视口 |
virtual void SetScissorRect(const Rect& rect) |
设置裁剪矩形 |
virtual void SetScissorRects(uint32_t count, const Rect* rects) |
设置多个裁剪矩形 |
virtual void SetRenderTargets(uint32_t count, void** renderTargets, void* depthStencil = nullptr) |
设置渲染目标 |
深度/混合状态
| 方法 |
描述 |
virtual void SetDepthStencilState(const DepthStencilState& state) |
设置深度模板状态 |
virtual void SetStencilRef(uint8_t ref) |
设置模板参考值 |
virtual void SetBlendState(const BlendState& state) |
设置混合状态 |
virtual void SetBlendFactor(const float factor[4]) |
设置混合因子 |
顶点/索引缓冲
| 方法 |
描述 |
virtual void SetVertexBuffer(uint32_t slot, void* buffer, uint64_t offset, uint32_t stride) |
设置顶点缓冲 |
virtual void SetVertexBuffers(uint32_t startSlot, uint32_t count, const uint64_t* buffers, const uint64_t* offsets, const uint32_t* strides) |
设置多个顶点缓冲 |
virtual void SetIndexBuffer(void* buffer, uint64_t offset, Format format) |
设置索引缓冲 |
绘制命令
| 方法 |
描述 |
virtual void Draw(uint32_t vertexCount, uint32_t instanceCount = 1, uint32_t startVertex = 0, uint32_t startInstance = 0) |
绘制调用 |
virtual void DrawIndexed(uint32_t indexCount, uint32_t instanceCount = 1, uint32_t startIndex = 0, int32_t baseVertex = 0, uint32_t startInstance = 0) |
索引绘制调用 |
清除命令
| 方法 |
描述 |
virtual void Clear(float r, float g, float b, float a, uint32_t buffers) |
清除缓冲 |
virtual void ClearRenderTarget(void* renderTarget, const float color[4]) |
清除渲染目标 |
virtual void ClearDepthStencil(void* depthStencil, float depth, uint8_t stencil) |
清除深度模板 |
资源复制
| 方法 |
描述 |
virtual void CopyResource(void* dst, void* src) |
复制资源 |
计算着色器
| 方法 |
描述 |
virtual void Dispatch(uint32_t x, uint32_t y, uint32_t z) |
分发计算着色器 |
图元拓扑类型 (PrimitiveTopology)
| 枚举值 |
描述 |
PointList |
点列表 |
LineList |
线段列表 |
LineStrip |
线段条带 |
TriangleList |
三角形列表 |
TriangleStrip |
三角形条带 |
PatchList |
补丁列表(曲面细分) |
使用示例
相关文档