0

我正在使用opengl es 2.0开发动态壁纸,我想知道是否有办法在渲染器或位图的创建时保持纹理加载,因此它们不需要在每次屏幕方向更改或屏幕时重新创建熄灭。我已经使用缓冲区(索引等)完成了此操作,但纹理和位图正在回收。

4

1 回答 1

0

您遇到的行为是 Android 中 OpenGL 应用程序标准生命周期行为的一部分。

这在 30:29 的 Google I/O 视频中有很好的解释

http://developer.android.com/videos/index.html#v=5yorhsSPFG4

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

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

  1. 在启动时将所有内容加载到内存中(VBO + 纹理 + 索引 + 等)

  2. 每次从分配的系统内存(点 1)取回上下文到 GPU 时加载 GPU 内存并绑定

通过这种方式,您可以用一块石头取 2 只鸟,您可以保证您的资源始终可以很好地使用,并且您不会在每次“回到上下文”发生时增加加载时间。

于 2012-05-31T09:15:24.333 回答