D3D12 Core: - Add d3d12_command class for command queue management - Support Direct/Compute/Copy command queue types - Implement multi-frame buffering (frame_buffer_count=3) - Add begin_frame/end_frame rendering cycle - Add NAME_D3D12_OBJECT_INDEXED macro Platform Interface: - Add render function pointer to platform_interface - Implement render() in Renderer Documentation: - Add changelog for command queue implementation - Update D3D12 Wiki with multi-frame buffering section - Mark command queue task as completed
35 lines
860 B
C++
35 lines
860 B
C++
#pragma once
|
|
|
|
/**
|
|
* @brief Direct3D 12 核心类
|
|
* @details 定义了 Direct3D 12 核心功能的初始化与关闭函数
|
|
*/
|
|
namespace XEngine::graphics::d3d12::core{
|
|
/**
|
|
* @brief 初始化 Direct3D 12 核心功能
|
|
* @details 调用 DXGI 接口,确定要使用的 GPU 并创建 Direct3D 12 设备
|
|
* @return true 如果初始化成功,否则返回 false
|
|
*/
|
|
bool initialize();
|
|
/**
|
|
* @brief 关闭 Direct3D 12 核心功能
|
|
* @details 调用 Direct3D 12 设备的关闭函数,释放所有资源
|
|
*/
|
|
void shutdown();
|
|
/**
|
|
* @brief 渲染 Direct3D 12 核心功能
|
|
* @details 调用 Direct3D 12 设备的渲染函数,渲染当前渲染表面
|
|
*/
|
|
void render();
|
|
|
|
template<typename T>
|
|
constexpr void release(T*& resource)
|
|
{
|
|
if(resource)
|
|
{
|
|
resource->Release();
|
|
resource = nullptr;
|
|
}
|
|
}
|
|
|
|
}// namespace XEngine::graphics::d3d12
|