Android用のopengl-esでコンテキストを作成しようとしていますが、少し混乱しています。レンダラーや起動アクティビティとは完全に別のクラスでコンテキストを初期化しました。
import javax.microedition.khronos.egl.EGL11;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.egl.EGLContext;
import javax.microedition.khronos.egl.EGLDisplay;
import javax.microedition.khronos.egl.EGLSurface;
import javax.microedition.khronos.opengles.GL11;
public class Context {
public static GL11 gl;
EGLConfig[] configs = new EGLConfig[1];
EGLConfig config = configs[0];
EGLDisplay dpy;
int attribList;
EGLSurface surf;
static EGLContext glContext;
public Context() {
int attribList [] =
{
EGL11.EGL_DEPTH_SIZE, 15, // z-buffer
EGL11.EGL_NONE
};
dpy = ((EGL11) gl).eglGetDisplay(EGL11.EGL_DEFAULT_DISPLAY);
EGLContext glContext = ((EGL11) gl).eglCreateContext(dpy, config, EGL11.EGL_NO_CONTEXT, attribList);
gl = (GL11)glContext.getGL();
}
}
私のアプリは、起動時に画面に 2 つの正方形を描画する単純なものです。一方はランダムな方向に移動し、もう一方はその場にとどまって回転します。理論的には、ユーザーは画面に触れることができ、固定された正方形は画面に触れた場所に移動する必要があります。しかし、UnProject メソッド (座標を変換する必要がある) が呼び出されると、おそらく私のコンテキストが原因で、アプリがクラッシュします。
GL11 gl
(これは UnProject クラスの引数です) null を返します (アプリがクラッシュすると NullPointerException がスローされます)。
コンテキストが正しく初期化されていないため、null が返されますか、それとも問題は別の場所にあると思いますか?