Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual c++ OpenGL上下文丢失后必须做什么?_Visual C++_Opengl_Sdl - Fatal编程技术网

Visual c++ OpenGL上下文丢失后必须做什么?

Visual c++ OpenGL上下文丢失后必须做什么?,visual-c++,opengl,sdl,Visual C++,Opengl,Sdl,思考这个问题的好方法是什么?把手丢了吗 GLC程序? glCreateShader? 玻璃织物? glGenBuffers 我想知道我是在做必要的事情,还是做得太多而导致内存泄漏如何丢失上下文?OpenGL上下文将一直存在,直到您销毁它或Windows/HDC 但是,所有OpenGL对象都绑定到它们在其中创建的上下文。如果销毁上下文,则所有对象也将被销毁,除非您与其他上下文共享了对象。在这种情况下,将只保留可共享对象。所以你必须重新加载它们 例如,我是调用所有3个函数调用:glCreatePro

思考这个问题的好方法是什么?把手丢了吗

GLC程序? glCreateShader? 玻璃织物? glGenBuffers


我想知道我是在做必要的事情,还是做得太多而导致内存泄漏

如何丢失上下文?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。