docs: update RHI API docs
This commit is contained in:
@@ -4,23 +4,36 @@
|
||||
virtual bool CompileFromFile(const wchar_t* filePath, const char* entryPoint, const char* target) = 0;
|
||||
```
|
||||
|
||||
从文件编译着色器。
|
||||
从文件加载并编译着色器。
|
||||
|
||||
从指定的文件路径读取着色器代码并编译为 GPU 可执行的着色器程序。该方法支持各种着色器目标平台(如 D3D12 的 `vs_5_0`、`ps_5_0` 等,或 Vulkan 的 SPIR-V)。
|
||||
|
||||
**参数:**
|
||||
- `filePath` - 着色器源文件路径
|
||||
- `entryPoint` - 入口点函数名
|
||||
- `target` - 编译目标(如 `"vs_6_0"`, `"ps_6_0"`)
|
||||
- `filePath` - 着色器文件路径(宽字符字符串,支持 Unicode 路径)
|
||||
- `entryPoint` - 着色器入口点函数名称(如 `"VSMain"`、`"PSMain"`)
|
||||
- `target` - 着色器目标配置文件(如 `"vs_5_0"`、`"ps_5_0"`、`"spv"`)
|
||||
|
||||
**返回:** 成功返回 `true`,失败返回 `false`
|
||||
**返回:** 编译成功返回 `true`,失败返回 `false`
|
||||
|
||||
**复杂度:** O(n) - 取决于着色器代码复杂度
|
||||
**线程安全:** ❌(多线程同时编译同一着色器可能导致未定义行为)
|
||||
|
||||
**复杂度:** O(n),其中 n 为着色器代码行数
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
shader->CompileFromFile(L"shaders/vertex.hlsl", "main", "vs_6_0");
|
||||
RHIShader* vertexShader = device->CreateShader();
|
||||
if (vertexShader->CompileFromFile(L"shaders/vertex.cso", "VSMain", "vs_5_0")) {
|
||||
vertexShader->Bind();
|
||||
// 使用着色器...
|
||||
} else {
|
||||
printf("Vertex shader compilation failed!\n");
|
||||
}
|
||||
vertexShader->Shutdown();
|
||||
device->DestroyShader(vertexShader);
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHIShader 总览](shader.md) - 返回类总览
|
||||
- [RHIShader](shader.md) - 返回类总览
|
||||
- [`Compile`](compile.md) - 从内存数据编译着色器
|
||||
|
||||
Reference in New Issue
Block a user