打开GL ES内存管理

时间:2013-08-21 12:16:37

标签: android opengl-es opengl-es-2.0

我正在使用Open GL ES 2.0开发Android应用。我对Open GL中的内存管理感到困惑。

我的问题是:

  • Open GL硬件有多少可用内存?显然,它会因设备而异。
  • 如何查看正在使用的内存量和方式 剩下多少?
  • 如果超出内存限制会怎样?
  • 我应该使用哪些技术来卸载当前未显示的数据?

我认为我将不得不实现某种系统来卸载目前在LRU上没有使用的纹理,但我想知道使用什么标准。 该应用程序默默地在某个时刻死亡,我怀疑这是因为我使用了太多的图形内存。

目前我从不卸载纹理,我似乎能够加载很多 - 在Nexus 7上测试我已经能够加载134个1024x1024 RGBA纹理,我计算得超过500MB。我认为一旦纹理加载到图形内存中它们占用的空间就会减少,但这仍然很多,显然我必须管理它,但我想要一些如何开始的技巧。

1 个答案:

答案 0 :(得分:0)

只需使用gles glDeleteTextures

即可

如果内存不足,可能会产生GL_OUT_OF_MEMORY错误。另一件事是监控Android中的内存使用情况。

android memory:How do I discover memory usage of my application in Android?

这里有一个关于opengl的有趣问题:how to manage memory with texture in opengl?