我正在使用 Open GL ES 2.0 开发 Android 应用程序。我对 Open GL 中的内存管理感到困惑。
我的问题是:
- Open GL 硬件有多少内存可用?显然,它会因设备而异。
- 我怎样才能知道有多少内存正在使用以及还剩下多少?
- 如果我超出内存限制会怎样?
- 我应该使用什么技术来卸载当前未显示的数据?
我想我将不得不实现某种系统来卸载当前未在 LRU 基础上使用的纹理,但我想知道为此使用什么标准。该应用程序在某些时候默默地死掉了,我怀疑这是因为我使用了太多的图形内存。
目前我从不卸载纹理,而且我似乎能够加载很多 - 在 Nexus 7 上进行测试,我已经能够加载 134 个 1024x1024 RGBA 纹理,我计算它超过 500MB。我认为一旦纹理被加载到图形内存中,它们占用的空间就会减少,但这仍然很多,显然我必须管理它,但我想要一些关于如何开始的提示。