よーくログを見ると、EGL_BAD_SURFACEとか言われてるわけです。
で、調べてみてもよくわからないんですよね。 これまた日本語で見つかる記事は無いし。
読めない英語を頑張って読んでいたら、大分前にこんなのが
ようするに、OpenGLの初期化の段階で
int[] spec = new int[] { EGL10.EGL_RED_SIZE, 5, //赤 EGL10.EGL_GREEN_SIZE, 5, //青 EGL10.EGL_BLUE_SIZE, 5, //緑 EGL10.EGL_DEPTH_SIZE, 1, //深度 EGL10.EGL_NONE }; EGLConfig[] configs = new EGLConfig[1]; egl.eglChooseConfig(display, spec, configs, 1, new int[1]);
ってやってる、このRGBのbit指定がダメだ。と。
エミュレータはそこらへんなんか適当なのになぁ。へ・・・へぇーーー。
でも、そのビット指定を外すと
int[] spec = new int[] { EGL10.EGL_NONE };
こんな情けない配列になりますけど。 良いですか? 良いんです!!!
でも、こんなんで悩んでる人は今はあまりいないっぽい。 多分だけど、みんなGLSurfaceViewの恩恵に預っているのだろう。
じゃぁなんでGLSurfaceView使わないかって? だってあのGLThreadってFPS指定できないでしょ。多分。
あと、描画メソッドの中で更新もしなきゃならなさそうだし(別スレッドでやる方法もあるんだろうけど、synchronizedで同期とるとかなんか嫌。)
更新→描画→更新 のちゃんとしたゲームループがほしいんだあ。
0 件のコメント:
コメントを投稿