1005 B
1005 B
RHIShader::GetNativeHandle
virtual void* GetNativeHandle() = 0;
获取原生图形 API 句柄。
返回底层图形 API(如 D3D12、Vulkan)的原生着色器对象指针。用于需要直接访问底层 API 的高级场景,或与外部库互操作。
返回: 指向原生着色器对象的指针,类型取决于具体实现(如 D3D12: ID3DBlob*,Vulkan: VkShaderModule)
线程安全: ❌(访问底层资源,非线程安全)
复杂度: O(1)
示例:
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 - 返回类总览