# RHIShader::GetNativeHandle ```cpp virtual void* GetNativeHandle() = 0; ``` 获取原生图形 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(nativeHandle); // 使用 D3D12 API... #elif defined(XCENGINE_VULKAN) VkShaderModule vkModule = reinterpret_cast(nativeHandle); // 使用 Vulkan API... #endif ``` ## 相关文档 - [RHIShader](shader.md) - 返回类总览