Android OpenGl Es 2.0实时壁纸纹理和位图

Android OpenGl Es 2.0实时壁纸纹理和位图,android,bitmap,textures,opengl-es-2.0,live-wallpaper,Android,Bitmap,Textures,Opengl Es 2.0,Live Wallpaper,我正在用opengl es 2.0开发一个实时壁纸,我想知道是否有办法在渲染器的创建或位图上保持加载纹理,这样他们就不需要在每次屏幕方向改变或屏幕关闭时重新创建。 我已经用缓冲区(索引等)实现了这一点,但纹理和位图正在循环使用。您所经历的行为是Android中OpenGL应用程序标准生命周期行为的一部分 这在30:29的谷歌I/O视频中得到了很好的解释 无论如何,GPU中的内存需要重新初始化,这并不意味着需要从头开始重新加载 通过执行以下操作,您可以获得相当好的性能: 启动时加载内存中的所有内

我正在用opengl es 2.0开发一个实时壁纸,我想知道是否有办法在渲染器的创建或位图上保持加载纹理,这样他们就不需要在每次屏幕方向改变或屏幕关闭时重新创建。
我已经用缓冲区(索引等)实现了这一点,但纹理和位图正在循环使用。

您所经历的行为是Android中OpenGL应用程序标准生命周期行为的一部分

这在30:29的谷歌I/O视频中得到了很好的解释

无论如何,GPU中的内存需要重新初始化,这并不意味着需要从头开始重新加载

通过执行以下操作,您可以获得相当好的性能:

  • 启动时加载内存中的所有内容(VBOs+纹理+索引+等)

  • 每次从分配的系统内存(第1点)返回上下文到GPU时,加载GPU内存并绑定


  • 通过这种方式,您可以保证您的资源始终是可用的,并且不会在每次发生“返回上下文”时增加加载时间。

    谢谢您的回复,我想我的问题就是您所描述的。你能告诉我什么时候你说要把纹理加载到内存中,这样我每次回到上下文时都可以使用它们吗?你的意思是什么?循环使用的对象不仅是opengl纹理,还包括位图,那么从png文件加载什么呢?谢谢