1.8 KiB
1.8 KiB
OpenGLDevice::Initialize
bool Initialize(const RHIDeviceDesc& desc) override
初始化 OpenGL 设备。
详细描述
根据 RHIDeviceDesc 初始化 OpenGL 设备。初始化过程包括:
- 检查是否已初始化: 如果已初始化,直接返回
true - 窗口处理:
- 如果
desc.windowHandle提供现有窗口,调用InitializeWithExistingWindow() - 否则调用
CreateRenderWindow()创建新窗口
- 如果
- GLFW 初始化: 确保 GLFW 库已初始化
- OpenGL 上下文: 创建 OpenGL 3.3 Core Profile 上下文
- Glad 加载: 使用 Glad 动态加载 OpenGL 函数
- 设备信息收集: 获取 GPU 厂商、渲染器、版本等信息
- 能力查询: 查询并存储 OpenGL 设备能力
RHIDeviceDesc 字段说明
| 字段 | 描述 |
|---|---|
width |
窗口宽度(当创建新窗口时) |
height |
窗口高度(当创建新窗口时) |
appName |
应用程序名称(用于窗口标题) |
enableDebugLayer |
是否启用调试上下文 |
windowHandle |
现有 GLFW 窗口句柄(可选) |
参数
desc- 设备描述符,包含初始化参数
返回值
bool - 初始化成功返回 true,失败返回 false
示例
OpenGLDevice device;
RHIDeviceDesc desc;
desc.width = 1920;
desc.height = 1080;
desc.appName = L"My OpenGL App";
desc.enableDebugLayer = true;
if (!device.Initialize(desc)) {
// 处理初始化失败
return;
}
// 设备已就绪,可以开始渲染
相关文档
- OpenGLDevice - 类总览
- CreateRenderWindow - 创建渲染窗口
- InitializeWithExistingWindow - 使用现有窗口初始化
- Shutdown - 关闭设备