使用 C ++ RAII 封装 OpenGL 对象

OpenGL 对象的 RAII 封装存在危险。最不可避免的是 OpenGL 对象与创建它们的 OpenGL 上下文相关联。因此,必须在 OpenGL 上下文中完成对 C++ RAII 对象的破坏,该上下文共享由该 C++对象管理的 OpenGL 对象的所有权。

这也意味着如果拥有该对象的所有上下文都被销毁,那么任何现有的 RAII 封装的 OpenGL 对象将尝试销毁不再存在的对象。

你必须采取手动步骤来处理此类上下文问题。