1
14
释放上下文,其他所有内容都是上下文本地的(除非您启用了显示列表共享),并且将随上下文一起消失。 |
2
9
正如其他人提到的,您的操作系统(与驱动程序资源管理器协作)应该释放资源。这就是OSE的用途。值得注意的是,这与OpenGL无关,但它是行为良好的操作系统及其相关驱动程序的一部分。操作系统在那里处理 全部的 系统资源。OpenGL只是它们的一个子集,它们与文件句柄没有区别。现在,为了更加具体,您应该指定您关心的操作系统。 顺便说一句,这是我对克里斯夫的回答持异议的地方。驾驶员不应该决定是否需要进行清理。操作系统驱动程序模型将在用户模式OpenGL驱动程序(不应该进行实际的gfx资源分配,因为它在计算机中是共享的)、操作系统(提供等同于系统调用以分配资源)和内核模式驱动程序(仅在那里以与兼容的方式执行操作系统命令)之间有一个清晰的接口。GPU)。对于win2k和wddm模型来说,至少是这样。 所以…如果您的进程崩溃或以其他方式终止,在这些模型中,OS有责任调用内核模式驱动程序以释放与该进程关联的所有资源。 现在,不管你 应该 或者不是真的有点像在源代码中询问制表符或空格。不同的人在这里有不同的信仰。”无论如何,操作系统都会这样做,立即退出是一种更好的最终用户体验“vs”,我想知道我是否在泄漏内存,因为如果我的程序是长期运行的,我真的不希望它碰到OOM错误。做到这一点的最好方法是“始终保持无泄漏”,这是我所知道的两条主要思路。 |
3
1
当程序退出(或崩溃)时,它当前分配的任何内存最终都应该释放,就像程序退出时通常释放主内存一样。GPU可能需要一段时间才能“意识到”内存可以再次使用。 但是,您不应该依赖于这种行为,因为它可能取决于图形卡驱动程序的实现方式。当您(作为程序员)知道不再需要那个内存时,进行明确的清理调用要好得多。 |
4
0
当程序退出时,将释放所有GPU资源。一个简单的测试方法是不删除内容,反复运行你的应用程序,看看它是否在几次迭代之后失败了分配。 |
5
-1
在OpenGL中,没有存储绘图信息的内存。在这里,当我们执行OpenGL程序时,这一次调用draw frame方法,并按顺序调用。不管怎样,如果我们画一条线或一个圆的意思是,任何时候它调用的画框方法都可以在指定的地方画图。但是,OpenGL不会将这条线存储在内存中。 任何时候都只能画。但是,当我们看到这条线时,它已经成功地出现了。 前任: 在android opengl es2.0中,使用drawframe方法(inside draw方法)中的这个渲染器类绘制线或圆等。 我在Android AutoCAD应用程序开发中使用了这个OpenGL ES2.0程序。 如果要清除阴影线,请在OnDrawFrame方法内的渲染器类中使用此方法 gles20.glclearcolor(0.0f,0.0f,0.0f,1.0f); gles20.glclear(gles20.gl_color_buffer_bit); gles20.glclear(gles20.gl_color_buffer_bit_gles20.gl_depth_buffer_bit); |
TheKing · 为什么数组的地址可以有负值? 2 年前 |
yurnero · MATLAB:“加载”一个快速访问功能 6 年前 |
joe · 一页可以同时在两个工作集中吗? 6 年前 |
Jaques · “.exe”已触发断点 6 年前 |
adn bps · 在函数中修改变量的高效内存方法 6 年前 |
Gauraang Khurana · C语言中分段错误的不稳定行为 6 年前 |
Rajesh K · 如何查找设备中存在的广告垃圾? 6 年前 |