我正在使用Java在Android上使用Open GLES设计游戏。
显然我使用了很多纹理,很快就会耗尽内存。
我对Android和Java很新,但我认为解决这个问题的最简单方法是使用位图来破坏对象,我现在不需要,让垃圾收集器回收内存他们占据了,然后在我再次需要相应的纹理时,在后期重新创建这些对象。
这样的事情:
background = null;
然后当我需要背景对象中的纹理时:
background = new Background(context);
看起来很简单,除了那个上下文(我需要为我的类后台运行,因为它通过BitmapFactory从它加载纹理)不会传递到我的主游戏循环的onDrawFrame(GL10 gl)
函数中是我需要它的地方!
如果我尝试在GL10 gl之后添加上下文作为第二个参数,我会收到错误 - 这似乎不可能。
有人知道如何将上下文传递给onDrawFrame,或者其他方式如何从内存中清除上下文对象然后再次恢复它们?
答案 0 :(得分:0)
您必须绘制到SurfaceView
或GLSurfaceView
...这显然是View
的类型,因此具有getContext()方法。