docs: update RHI API docs
This commit is contained in:
@@ -4,18 +4,37 @@
|
||||
virtual bool Compile(const void* sourceData, size_t sourceSize, const char* entryPoint, const char* target) = 0;
|
||||
```
|
||||
|
||||
从内存编译着色器。
|
||||
从内存数据编译着色器。
|
||||
|
||||
将已加载到内存中的着色器代码编译为 GPU 可执行的着色器程序。适用于从资源包、网络或自定义加载器获取着色器代码的场景。
|
||||
|
||||
**参数:**
|
||||
- `sourceData` - 着色器源代码指针
|
||||
- `sourceSize` - 源代码大小
|
||||
- `entryPoint` - 入口点函数名
|
||||
- `target` - 编译目标
|
||||
- `sourceData` - 指向着色器源代码或字节码的指针
|
||||
- `sourceSize` - 源数据大小(字节数)
|
||||
- `entryPoint` - 着色器入口点函数名称
|
||||
- `target` - 着色器目标配置文件
|
||||
|
||||
**返回:** 成功返回 `true`,失败返回 `false`
|
||||
**返回:** 编译成功返回 `true`,失败返回 `false`
|
||||
|
||||
**复杂度:** O(n)
|
||||
**线程安全:** ❌(多线程同时编译同一着色器可能导致未定义行为)
|
||||
|
||||
**复杂度:** O(n),其中 n 为着色器代码行数
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
std::vector<char> shaderBytes = LoadShaderFromResource("vertex_shader");
|
||||
if (!shaderBytes.empty()) {
|
||||
RHIShader* shader = device->CreateShader();
|
||||
if (shader->Compile(shaderBytes.data(), shaderBytes.size(), "VSMain", "vs_5_0")) {
|
||||
shader->Bind();
|
||||
// 使用着色器...
|
||||
}
|
||||
shader->Shutdown();
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHIShader 总览](shader.md) - 返回类总览
|
||||
- [RHIShader](shader.md) - 返回类总览
|
||||
- [`CompileFromFile`](compile-from-file.md) - 从文件编译着色器
|
||||
|
||||
Reference in New Issue
Block a user