aCu*_*ria 1 opengl sdl visual-c++
考虑这个问题的好方法是什么?手柄丢失了吗?
glCreateProgram()?glCreateShader()?glGenTextures()?glGenBuffers()?
我想知道我是否正在做必要的事情(或做太多和泄漏记忆)
你怎么会失去一个背景?OpenGL上下文将一直存在,直到你销毁它(或窗口/ HDC).
但是,所有OpenGL对象都绑定到它们所创建的上下文.如果销毁上下文,所有对象也会被销毁(除非您有另一个上下文的共享对象.在这种情况下,只有可共享对象将保持).所以你必须重装它们.
例如,我是否调用所有3个函数调用:glCreateProgram()glAttachShader()glLinkProgram()还是最后两个?
如果销毁OpenGL上下文,则必须调用重新创建对象所需的任何OpenGL函数.从旧上下文中获得的任何OpenGL对象都消失了.它们无效.它们是删除的指针,使用删除的指针总是错误的.
新的OpenGL上下文是新的.因此,您必须创建对象,就像它是一个新的上下文一样.因为它是.
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |