Files
XCEngine/docs/api/rhi/opengl/device/shutdown.md
2026-03-20 02:35:45 +08:00

1.2 KiB

OpenGLDevice::Shutdown

void Shutdown() override

关闭 OpenGL 设备并释放相关资源。

详细描述

关闭 OpenGL 设备并执行清理操作:

  1. 窗口销毁: 如果设备拥有窗口 (m_ownsWindow == true),调用 glfwDestroyWindow() 销毁 GLFW 窗口
  2. 状态重置:
    • m_window 设为 nullptr
    • m_initialized 设为 false
    • m_ownsWindow 设为 false

窗口所有权

设备可能通过两种方式获得窗口:

  • 自有窗口: 通过 CreateRenderWindow() 创建,设备负责销毁
  • 外部窗口: 通过 InitializeWithExistingWindow() 传入,设备不负责销毁

注意事项

  • 多次调用 Shutdown() 是安全的
  • 销毁窗口后,与该窗口关联的 OpenGL 上下文将无效
  • 建议在程序结束前显式调用 Shutdown()

示例

{
    OpenGLDevice device;
    device.Initialize(desc);
    
    // ... 使用设备进行渲染
    
    device.Shutdown(); // 显式关闭
}
// 或等待析构函数自动调用

相关文档