绘制纹理后的Opengl ES 2.0 glDeleteFramebuffers

时间:2019-05-22 10:31:02

标签: opengl-es opengl-es-2.0 delete-operator framebuffer

我使用帧缓冲区渲染到纹理。但是我不确定何时应该正确使用glDeleteFramebuffers。 fbo应该在纹理存在的同时存在,还是可以在最后绘制纹理之后安全地调用glDeleteFramebuffers。

1 个答案:

答案 0 :(得分:0)

您可以在最后一次绘制纹理后安全地调用glDeleteFramebuffers。但是,我会假设创建和销毁帧缓冲区非常昂贵,因此,只有在我确定不会再渲染到该纹理的情况下,我才会这样做。

我遇到了一些Android GLES驱动程序上的错误,在删除帧缓冲区之前,我不得不将纹理从帧缓冲区中分离出来,因此建议您这样做,以防万一:

glBindFramebuffer(GL_FRAMEBUFFER, frameBuffer);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 0, 0);