feat: implement descriptor heap with thread-safe allocation
D3D12 Resources: - Add descriptor_handle struct with CPU/GPU handles - Add descriptor_heap class for descriptor management - Implement allocate() and free() methods - Add mutex for thread-safe access - Support all D3D12 descriptor heap types D3D12 Core: - Add device() function to expose main device - Add release() template function for COM objects Documentation: - Add changelog for descriptor heap implementation - Update D3D12 Wiki with descriptor heap section - Mark descriptor heap task as completed
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#pragma once
|
||||
#include "D3D12CommonHeader.h"
|
||||
|
||||
/**
|
||||
* @brief Direct3D 12 核心类
|
||||
@@ -22,6 +23,12 @@ void shutdown();
|
||||
*/
|
||||
void render();
|
||||
|
||||
|
||||
/**
|
||||
* @brief 通用资源释放模板函数
|
||||
* @details 用于安全释放 DirectX COM 对象,检查空指针后调用 Release 并置空
|
||||
* @tparam T COM 接口类型
|
||||
*/
|
||||
template<typename T>
|
||||
constexpr void release(T*& resource)
|
||||
{
|
||||
@@ -32,4 +39,11 @@ constexpr void release(T*& resource)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 获取 Direct3D 12 设备
|
||||
* @details 返回 Direct3D 12 设备的智能指针
|
||||
* @return ID3D12Device* Direct3D 12 设备的智能指针
|
||||
*/
|
||||
ID3D12Device *const device();
|
||||
|
||||
}// namespace XEngine::graphics::d3d12
|
||||
Reference in New Issue
Block a user