在活动暂停期间保存/重新创建OpenGL Framebuffer / Renderbuffer纹理

时间:2013-09-11 11:19:40

标签: android opengl-es framebuffer onpause

我有一个Android活动,使用带有动态内容的纹理(通过Framebuffer / Renderbuffer绘制)。

当活动暂停/恢复时,纹理(如所有纹理)都会丢失,必须重新创建。

有没有办法在暂停时将动态纹理的内容保存到某个持久对象中,并在恢复时从此对象重新创建纹理?

我已经发现一些线程描述了类似黑客的方法,以防止纹理在暂停时失效,但如果可能的话,我想“通过书籍”这样做,并在恢复时重置纹理内存上的纹理内存。

1 个答案:

答案 0 :(得分:0)

您可以使用glReadPixels将FBO的内容传输到应用的持久缓冲区中。然后,在恢复后,您可以将该数据加载回纹理。恢复渲染缓冲区需要加载到中间纹理中,然后使用完整的视口四边形绘制到附加了渲染缓冲区的FBO。因此,我建议您不要使用Renderbuffers,如果可以避免它们。使用纹理可以保存中间步骤。

相关问题