0

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

当活动暂停/恢复时,纹理(像所有纹理一样)丢失并且必须重新创建。

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

我已经找到了一些描述类似黑客方法的线程,以防止纹理在暂停时失效,但如果可能的话,我想“按本书”做,并在暂停时释放纹理内存/在恢复时重新创建纹理。

4

1 回答 1

0

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

于 2013-09-11T11:33:48.120 回答