java - 有没有办法将上下文传递到 onDrawFrame(GL10 gl) 中?

标签 java android opengl-es openglcontext

我正在 Android 上的 Open GLES 中使用 Java 设计一款游戏。

显然我使用了大量纹理,很快我就会耗尽内存。

我对 Android 和 Java 很陌生,但我认为解决这个问题的最简单方法是销毁带有位图的对象,我目前不需要它,让垃圾收集器回收内存它们占据了,然后在后期当我再次需要各自的纹理时重新创建这些对象。

类似这样的事情:

background = null;

然后当我需要背景对象中的纹理时:

background = new Background(context);

看起来非常简单,除了上下文(我的类背景需要它运行,因为它通过 BitmapFactory 从它加载纹理)没有传递到 onDrawFrame(GL10 gl)函数位于我的主游戏循环所在以及我需要它的位置!

如果我尝试在 GL10 gl 之后添加上下文作为第二个参数,则会收到错误 - 这似乎不可能。

有人知道如何将上下文传递到 onDrawFrame 中,或者以其他方式如何从内存中清除上下文对象,然后再次恢复它们?

最佳答案

您必须绘制到 SurfaceViewGLSurfaceView...这显然是 View 的一种类型,因此具有getContext() 方法。

关于java - 有没有办法将上下文传递到 onDrawFrame(GL10 gl) 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9104852/

相关文章:

java - 为什么 printStackTrace 在 Clojure 中不起作用?

java - 我可以使用 "<? extends Type>"指定方法参数中的多个泛型必须是同一类型吗?

java - Android OpenGL ES 1 : Filling display with a quad

java - OpenGL ES 3.0 上的 sRGB 帧缓冲区

java - 如何针对大文件的整个字节运行方法

java - 迭代器减法

Android 线性布局 : Dividers won't show

Android - 如何拦截 'Install application' Intent

android - 使用 iText 在 Android 中将文本转换为 PDF

opengl-es - WebGL - 在平面上显示球体