Files
XCEngine/docs/api/rhi/d3d12/d3d12-screenshot.md

51 lines
1.2 KiB
Markdown

# D3D12Screenshot
D3D12 截图工具类,提供屏幕截图捕获功能。
## 头文件
```cpp
#include <XCEngine/RHI/D3D12/D3D12Screenshot.h>
```
## 命名空间
`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 等常见图片格式
- 可能在内部创建临时资源