docs: update RHI API docs
This commit is contained in:
@@ -4,12 +4,32 @@
|
||||
virtual void* GetNativeHandle() = 0;
|
||||
```
|
||||
|
||||
获取原生 API 句柄。
|
||||
获取原生图形 API 句柄。
|
||||
|
||||
**返回:** 原生着色器句柄
|
||||
返回底层图形 API(如 D3D12、Vulkan)的原生着色器对象指针。用于需要直接访问底层 API 的高级场景,或与外部库互操作。
|
||||
|
||||
**返回:** 指向原生着色器对象的指针,类型取决于具体实现(如 D3D12: `ID3DBlob*`,Vulkan: `VkShaderModule`)
|
||||
|
||||
**线程安全:** ❌(访问底层资源,非线程安全)
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
RHIShader* shader = device->CreateShader();
|
||||
shader->CompileFromFile(L"shaders/compute.cso", "CSMain", "cs_5_0");
|
||||
|
||||
void* nativeHandle = shader->GetNativeHandle();
|
||||
#ifdef XCENGINE_D3D12
|
||||
ID3DBlob* d3dBlob = static_cast<ID3DBlob*>(nativeHandle);
|
||||
// 使用 D3D12 API...
|
||||
#elif defined(XCENGINE_VULKAN)
|
||||
VkShaderModule vkModule = reinterpret_cast<VkShaderModule>(nativeHandle);
|
||||
// 使用 Vulkan API...
|
||||
#endif
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHIShader 总览](shader.md) - 返回类总览
|
||||
- [RHIShader](shader.md) - 返回类总览
|
||||
|
||||
Reference in New Issue
Block a user