Files
XCEngine/docs/api/rhi/shader/shader.md
ssdfasd 8df04c120f docs: 更新 API 文档 - 多模块修复和完善
- audio: 更新 audio-system 方法文档
- components: 新增 audio-listener/audio-source 组件方法文档,新增 remove-component 方法
- core: 更新 filewriter, types 文档
- math: 更新 box 方法文档
- memory: 更新 proxy-allocator 文档
- resources: 更新 loader 和 texture 文档
- rhi: 更新 opengl 设备、shader、swap-chain 文档
- threading: 更新 mutex 和 task-system 文档
2026-03-26 01:58:45 +08:00

2.3 KiB
Raw Blame History

RHIShader

命名空间: XCEngine::RHI

类型: class (abstract)

头文件: XCEngine/RHI/RHIShader.h

描述: 着色器接口,管理 GPU 着色器程序

概述

RHIShader 是 XCEngine RHI 模块中的抽象着色器接口类,定义了 GPU 着色器程序的标准 API。该类是所有具体着色器实现如 D3D12Shader、OpenGLShader 等)的基类,提供了统一的着色器编译和元数据查询接口。

设计目的:

  • 提供跨平台的着色器抽象
  • 统一着色器编译和资源管理
  • 简化渲染管线中着色器的使用

公共方法

方法 描述
CompileFromFile 从文件编译着色器
Compile 从内存数据编译着色器
GetType 获取着色器类型
IsValid 检查着色器是否有效
GetNativeHandle 获取原生句柄
Shutdown 释放着色器资源

公共属性

属性 类型 描述
ShaderType enum 着色器类型枚举

ShaderType 枚举值

枚举值 描述
ShaderType::Vertex 顶点着色器
ShaderType::Fragment 片元着色器
ShaderType::Geometry 几何着色器
ShaderType::Compute 计算着色器
ShaderType::TessControl 曲面细分控制着色器
ShaderType::TessEvaluation 曲面细分评估着色器
ShaderType::Hull Hull 着色器 (D3D12)
ShaderType::Domain Domain 着色器 (D3D12)
ShaderType::Amplification 放大着色器 (Mesh Shader)
ShaderType::Mesh Mesh 着色器
ShaderType::Library 着色器库

使用示例

#include "XCEngine/RHI/RHIShader.h"
#include "XCEngine/RHI/RHIDevice.h"

using namespace XCEngine::RHI;

// 通过 RHIDevice 创建并编译着色器
ShaderCompileDesc vsDesc;
vsDesc.fileName = L"shaders/vertex.cso";
vsDesc.entryPoint = "VSMain";
vsDesc.profile = "vs_5_0";
RHIShader* vertexShader = device->CreateShader(vsDesc);
if (vertexShader && vertexShader->IsValid()) {
    // 渲染...
}

if (vertexShader) {
    vertexShader->Shutdown();
    delete vertexShader;
}

相关文档