1.2 KiB
1.2 KiB
RenderDocCapture::BeginCapture
开始一次手动 RenderDoc 抓帧。
bool BeginCapture(const char* title = nullptr);
行为说明
当前实现会在开始抓帧前依次检查:
- RenderDoc 是否已加载。
- 当前是否已经处于抓帧中。
m_device与m_window是否都非空。
任一条件不满足时都会记录警告并返回 false。
如果检查通过,当前实现会:
- 如果
title非空,则调用SetCaptureTitle(title)。 - 调用
SetForegroundWindow和SetFocus,把目标窗口切到前台。 - 调用
SetActiveWindow(m_device, m_window)。 - 调用
StartFrameCapture(m_device, m_window)。
参数
title- 可选的 capture 标题。
返回值
bool-true表示已向 RenderDoc 发出开始抓帧请求;false表示前置条件不满足。
线程语义
- 建议在拥有目标窗口与图形设备上下文的主线程调用。
示例
using namespace XCEngine::Debug;
if (RenderDocCapture::Get().BeginCapture("D3D12_Triangle_Test")) {
Logger::Get().Info(LogCategory::RenderDoc, "Capture started");
}