docs: rebuild Debug API content
This commit is contained in:
@@ -1,32 +1,54 @@
|
||||
# RenderDocCapture::Initialize
|
||||
|
||||
初始化内部状态。
|
||||
加载 `renderdoc.dll` 并初始化当前抓帧上下文。
|
||||
|
||||
```cpp
|
||||
bool Initialize(void* device = nullptr, void* window = nullptr);
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Debug/RenderDocCapture.h`,当前页面用于固定 `RenderDocCapture` 类目录下的方法级 canonical 路径。
|
||||
## 行为说明
|
||||
|
||||
**参数:**
|
||||
- `device` - 参数语义详见头文件声明。
|
||||
- `window` - 参数语义详见头文件声明。
|
||||
当前实现是幂等的:
|
||||
|
||||
**返回:** `bool` - 返回值语义详见头文件声明。
|
||||
- 如果已经初始化,直接返回 `true`。
|
||||
- 注意:在“已经初始化”的情况下,新的 `device` 和 `window` 参数不会写回内部状态。
|
||||
|
||||
**示例:**
|
||||
首次初始化时,当前实现会:
|
||||
|
||||
1. 保存 `device` 与 `window` 指针。
|
||||
2. 在可执行文件所在目录查找并加载 `renderdoc.dll`。
|
||||
3. 获取 RenderDoc 1.7.0 API。
|
||||
4. 额外设置三个默认 U32 capture 选项:`2`、`8`、`9` 都设为 `1`。
|
||||
5. 记录一条初始化成功日志。
|
||||
|
||||
当前 API 允许在初始化时传空指针;这种情况下只要 DLL 可用,初始化仍可成功,但之后 [BeginCapture](BeginCapture.md) 仍要求设备和窗口已补齐。
|
||||
|
||||
## 参数
|
||||
|
||||
- `device` - 可选的图形设备指针。
|
||||
- `window` - 可选的窗口句柄。
|
||||
|
||||
## 返回值
|
||||
|
||||
- `bool` - `true` 表示 RenderDoc 已成功加载并可继续配置;`false` 表示加载或 API 获取失败。
|
||||
|
||||
## 线程语义
|
||||
|
||||
- 建议在创建窗口后、图形后端初始化期间由主线程调用。
|
||||
|
||||
## 示例
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Debug/RenderDocCapture.h>
|
||||
using namespace XCEngine::Debug;
|
||||
|
||||
void Example() {
|
||||
XCEngine::Debug::RenderDocCapture object;
|
||||
// 根据上下文补齐参数后调用 RenderDocCapture::Initialize(...)。
|
||||
(void)object;
|
||||
if (RenderDocCapture::Get().Initialize(nullptr, hwnd)) {
|
||||
RenderDocCapture::Get().SetDevice(devicePtr);
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](RenderDocCapture.md)
|
||||
- [返回模块目录](../Debug.md)
|
||||
- [返回类型总览](RenderDocCapture.md)
|
||||
- [SetDevice](SetDevice.md)
|
||||
- [SetWindow](SetWindow.md)
|
||||
- [RenderDoc Capture Workflow](../../../_guides/Debug/RenderDoc-Capture-Workflow.md)
|
||||
|
||||
Reference in New Issue
Block a user