Files
XCEngine/docs/api/XCEngine/Debug/RenderDocCapture/Initialize.md

1.5 KiB

RenderDocCapture::Initialize

加载 renderdoc.dll 并初始化当前抓帧上下文。

bool Initialize(void* device = nullptr, void* window = nullptr);

行为说明

当前实现是幂等的:

  • 如果已经初始化,直接返回 true
  • 注意:在“已经初始化”的情况下,新的 devicewindow 参数不会写回内部状态。

首次初始化时,当前实现会:

  1. 保存 devicewindow 指针。
  2. 在可执行文件所在目录查找并加载 renderdoc.dll
  3. 获取 RenderDoc 1.7.0 API。
  4. 额外设置三个默认 U32 capture 选项:289 都设为 1
  5. 记录一条初始化成功日志。

当前 API 允许在初始化时传空指针;这种情况下只要 DLL 可用,初始化仍可成功,但之后 BeginCapture 仍要求设备和窗口已补齐。

参数

  • device - 可选的图形设备指针。
  • window - 可选的窗口句柄。

返回值

  • bool - true 表示 RenderDoc 已成功加载并可继续配置;false 表示加载或 API 获取失败。

线程语义

  • 建议在创建窗口后、图形后端初始化期间由主线程调用。

示例

using namespace XCEngine::Debug;

if (RenderDocCapture::Get().Initialize(nullptr, hwnd)) {
    RenderDocCapture::Get().SetDevice(devicePtr);
}

相关文档