# RHIDevice::CreateShader 创建并编译一个着色器程序。 ```cpp virtual RHIShader* CreateShader(const ShaderCompileDesc& desc) = 0; ``` **参数:** - `desc` - 着色器编译描述符,包含入口点、目标配置文件、源码或文件路径等 **返回:** 新创建的着色器指针,失败返回 `nullptr` **复杂度:** O(n) - 取决于着色器代码复杂度 **示例:** ```cpp ShaderCompileDesc shaderDesc; shaderDesc.entryPoint = L"main"; shaderDesc.profile = L"vs_6_0"; shaderDesc.fileName = L"shaders/vertex.hlsl"; RHIShader* vertexShader = device->CreateShader(shaderDesc); if (!vertexShader->IsValid()) { // 处理编译错误 vertexShader->Shutdown(); } ``` ## 相关文档 - [RHIDevice 总览](device.md) - 返回类总览 - [RHIShader](../shader/shader.md) - 着色器类