Visual c++ OpenGL上下文丢失后必须做什么?
思考这个问题的好方法是什么?把手丢了吗 GLC程序? glCreateShader? 玻璃织物? glGenBuffersVisual c++ OpenGL上下文丢失后必须做什么?,visual-c++,opengl,sdl,Visual C++,Opengl,Sdl,思考这个问题的好方法是什么?把手丢了吗 GLC程序? glCreateShader? 玻璃织物? glGenBuffers 我想知道我是在做必要的事情,还是做得太多而导致内存泄漏如何丢失上下文?OpenGL上下文将一直存在,直到您销毁它或Windows/HDC 但是,所有OpenGL对象都绑定到它们在其中创建的上下文。如果销毁上下文,则所有对象也将被销毁,除非您与其他上下文共享了对象。在这种情况下,将只保留可共享对象。所以你必须重新加载它们 例如,我是调用所有3个函数调用:glCreatePro
我想知道我是在做必要的事情,还是做得太多而导致内存泄漏如何丢失上下文?OpenGL上下文将一直存在,直到您销毁它或Windows/HDC 但是,所有OpenGL对象都绑定到它们在其中创建的上下文。如果销毁上下文,则所有对象也将被销毁,除非您与其他上下文共享了对象。在这种情况下,将只保留可共享对象。所以你必须重新加载它们 例如,我是调用所有3个函数调用:glCreateProgram glAttachShader glLinkProgram还是仅调用最后两个 如果OpenGL上下文被破坏,则必须调用重新创建对象所需的任何OpenGL函数。从旧上下文中获得的任何OpenGL对象都将消失。它们是无效的。它们是已删除的指针,使用已删除的指针总是错误的
新的OpenGL上下文是新的。因此,您必须像创建新上下文一样创建对象。因为它是。你如何失去上下文?OpenGL上下文将一直存在,直到您销毁它或Windows/HDC 但是,所有OpenGL对象都绑定到它们在其中创建的上下文。如果销毁上下文,则所有对象也将被销毁,除非您与其他上下文共享了对象。在这种情况下,将只保留可共享对象。所以你必须重新加载它们 例如,我是调用所有3个函数调用:glCreateProgram glAttachShader glLinkProgram还是仅调用最后两个 如果OpenGL上下文被破坏,则必须调用重新创建对象所需的任何OpenGL函数。从旧上下文中获得的任何OpenGL对象都将消失。它们是无效的。它们是已删除的指针,使用已删除的指针总是错误的
新的OpenGL上下文是新的。因此,您必须像创建新上下文一样创建对象。因为它是。通过更改分辨率,上下文将丢失。SDL对象的句柄也被销毁了吗?例如,我是调用所有3个函数调用:glCreateProgram glAttachShader glLinkProgram还是仅调用最后两个?@aCuria:SDL那么你应该提到你在谈论SDL。通过更改分辨率,上下文将丢失。SDL对象的句柄也被销毁了吗?例如,我是调用所有3个函数调用:glCreateProgram glAttachShader glLinkProgram还是仅调用最后两个?@aCuria:SDL那么你应该提到你在谈论SDL。