# D3D12Screenshot D3D12 截图工具类,提供屏幕截图捕获功能。 ## 头文件 ```cpp #include ``` ## 命名空间 `XCEngine::RHI` ## 公共静态成员函数 #### `static bool Capture(ID3D12Device* device, ID3D12CommandQueue* commandQueue, ID3D12Resource* renderTarget, const char* filename, uint32_t width, uint32_t height)` 捕获渲染目标内容并保存为图片。 - `device`: D3D12 设备 - `commandQueue`: 命令队列 - `renderTarget`: 渲染目标资源 - `filename`: 输出文件名 - `width` / `height`: 截图尺寸 - 返回: 捕获是否成功 ## 内部静态成员函数 #### `static bool CopyToReadbackAndSave(...)` 内部实现:复制到回读缓冲区并保存。 ## 使用示例 ```cpp // Capture back buffer D3D12Texture* backBuffer = swapChain->GetBackBuffer( swapChain->GetCurrentBackBufferIndex()); D3D12Screenshot::Capture( device->GetDevice(), cmdQueue->GetCommandQueue(), backBuffer->GetResource(), "screenshot.png", 1920, 1080); ``` ## 备注 - 截图自动复制到 READBACK 堆然后保存 - 支持 PNG 等常见图片格式 - 可能在内部创建临时资源