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

1.2 KiB

D3D12Screenshot

D3D12 截图工具类,提供屏幕截图捕获功能。

头文件

#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(...)

内部实现:复制到回读缓冲区并保存。

使用示例

// Capture back buffer
D3D12Texture* backBuffer = swapChain->GetBackBuffer(
    swapChain->GetCurrentBackBufferIndex());

D3D12Screenshot::Capture(
    device->GetDevice(),
    cmdQueue->GetCommandQueue(),
    backBuffer->GetResource(),
    "screenshot.png",
    1920, 1080);

备注

  • 截图自动复制到 READBACK 堆然后保存
  • 支持 PNG 等常见图片格式
  • 可能在内部创建临时资源