我正在用 Java 在 Android 上的 Open GLES 中设计一个游戏。
显然我使用了很多纹理,很快我就会耗尽内存。
我对 Android 和 Java 很陌生,但我认为解决这个问题的最简单方法是用位图销毁对象,我目前不需要,让垃圾收集器回收它们占用的内存,然后在我再次需要相应纹理的后期重新创建这些对象。
像这样的东西:
background = null;
然后当我需要背景对象中的纹理时:
background = new Background(context);
看起来很简单,除了上下文(我的班级背景需要它来运行,因为它通过 BitmapFactory 从它加载纹理)没有传递到onDrawFrame(GL10 gl)
我的主游戏循环所在的函数和我需要的函数中!
如果我尝试在 GL10 gl 之后添加上下文作为第二个参数,我会收到一个错误 - 这似乎是不可能的。
有谁知道如何将上下文传递到 onDrawFrame,或者如何从内存中清除上下文对象然后再次恢复它们?