2011年4月25日月曜日

LifeTouchNote買いました

でも、感圧なのでせっかくAndroid2.2なのにマルチタッチが出来ない罠

試しに弾幕作ってみましたが、30FPSぐらいは出る様子。

操作をどうしたもんか・・・。

2011年4月14日木曜日

Garaxy S でOpenGLを使おうとしたらegl_bad_surfaceで怒られる罠

タイトルの通りですが、学生のGaraxySでOpenGLのテストをしてもらおうとしたら、画面の背景色クリアすら行かない状態。

よーくログを見ると、EGL_BAD_SURFACEとか言われてるわけです。

で、調べてみてもよくわからないんですよね。 これまた日本語で見つかる記事は無いし。
読めない英語を頑張って読んでいたら、大分前にこんなのが

ようするに、OpenGLの初期化の段階で

  1. int[] spec = new int[] {  
  2.  EGL10.EGL_RED_SIZE, 5//赤  
  3.  EGL10.EGL_GREEN_SIZE, 5//青  
  4.  EGL10.EGL_BLUE_SIZE, 5//緑  
  5.  EGL10.EGL_DEPTH_SIZE, 1//深度  
  6.  EGL10.EGL_NONE  
  7. };  
  8. EGLConfig[] configs = new EGLConfig[1];  
  9. egl.eglChooseConfig(display, spec, configs, 1new int[1]);  

ってやってる、このRGBのbit指定がダメだ。と。
エミュレータはそこらへんなんか適当なのになぁ。へ・・・へぇーーー。

でも、そのビット指定を外すと

  1. int[] spec = new int[] {  
  2.  EGL10.EGL_NONE  
  3. };  

こんな情けない配列になりますけど。 良いですか? 良いんです!!!

でも、こんなんで悩んでる人は今はあまりいないっぽい。 多分だけど、みんなGLSurfaceViewの恩恵に預っているのだろう。

じゃぁなんでGLSurfaceView使わないかって? だってあのGLThreadってFPS指定できないでしょ。多分。

あと、描画メソッドの中で更新もしなきゃならなさそうだし(別スレッドでやる方法もあるんだろうけど、synchronizedで同期とるとかなんか嫌。)
更新→描画→更新 のちゃんとしたゲームループがほしいんだあ。