1.5 KiB
1.5 KiB
RenderDocCapture::Initialize
加载 renderdoc.dll 并初始化当前抓帧上下文。
bool Initialize(void* device = nullptr, void* window = nullptr);
行为说明
当前实现是幂等的:
- 如果已经初始化,直接返回
true。 - 注意:在“已经初始化”的情况下,新的
device和window参数不会写回内部状态。
首次初始化时,当前实现会:
- 保存
device与window指针。 - 在可执行文件所在目录查找并加载
renderdoc.dll。 - 获取 RenderDoc 1.7.0 API。
- 额外设置三个默认 U32 capture 选项:
2、8、9都设为1。 - 记录一条初始化成功日志。
当前 API 允许在初始化时传空指针;这种情况下只要 DLL 可用,初始化仍可成功,但之后 BeginCapture 仍要求设备和窗口已补齐。
参数
device- 可选的图形设备指针。window- 可选的窗口句柄。
返回值
bool-true表示 RenderDoc 已成功加载并可继续配置;false表示加载或 API 获取失败。
线程语义
- 建议在创建窗口后、图形后端初始化期间由主线程调用。
示例
using namespace XCEngine::Debug;
if (RenderDocCapture::Get().Initialize(nullptr, hwnd)) {
RenderDocCapture::Get().SetDevice(devicePtr);
}