清除/释放 OpenGL ES 缓冲区

Posted

技术标签:

【中文标题】清除/释放 OpenGL ES 缓冲区【英文标题】:Clearing/releasing OpenGL ES buffers 【发布时间】:2011-10-27 21:19:08 【问题描述】:

我正在为我的 OpenGL ES 1.1 ios 应用程序中的屏幕外渲染创建额外的帧缓冲区和渲染缓冲区。当我渲染到额外的渲染缓冲区时,我开始在 XCode 控制台中看到内存警告。 “释放”、“清除”等这些额外缓冲区的正确方法是什么?

我尝试了glClear(GL_COLOR_BUFFER_BIT),但内存警告仍在继续。注释掉渲染代码会导致警告消失。

【问题讨论】:

【参考方案1】:

我不明白你的意思,glClear 将缓冲区的内容(颜色、深度、模板等,取决于位标志)清除为特定值。如果你想删除缓冲区并释放它们的资源,一旦你完成了它们,分别使用glDeleteFramebuffersglDeleteRenderbuffers,可能带有一些OES后缀。

否则我不知道你在说什么,如果这两种情况不适用,你应该忽略这些愚蠢的警告。

【讨论】:

glDeleteFramebuffersOESglDeleteRenderBuffersOES 工作,谢谢:-)

以上是关于清除/释放 OpenGL ES 缓冲区的主要内容,如果未能解决你的问题,请参考以下文章

Android OpenGL ES 2.0 重用前一帧

OpenGL:清除模板缓冲区,除了某些位?

缩放 OpenGL ES 帧缓冲区的内容

OpenGL ES 2.0,使用多个顶点缓冲区进行绘制

来自 OpenGL ES 帧缓冲区 (iOS) 的 CGImageRef

在 OpenGL ES 中为帧缓冲区使用深度和模板渲染缓冲区附件