2011年3月1日火曜日

OpenGLES入門 その1

AndroidでのOpenGLESの使い方をおおまかに書いておきます。

■1
MyApplicationを作る。まずActivityを継承する

class MyApplication extends Activity {
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //AbsoluteLayoutを使うのは、後でボタンやテキストを表示させるため。
    AbsoluteLayout layout=new AbsoluteLayout(this);
    setContentView(layout);

    //GLサーフェイスビューを生成して設定
    GLSurfaceView mGLSurfaceView = new GLSurfaceView(this);
    GLRenderer glRenderer = new GLRenderer(this);
    mGLSurfaceView.setRenderer(glRenderer);
    layout.addView(mGLSurfaceView);
  }
}

■2
GLRendererクラスはGLSurfaceView.Rendererを継承する

public class GLRenderer implements GLSurfaceView.Renderer {
  private Scene mScene;
  private Resources mResource;

  public GLRenderer(Activity activity) {
    mResource = activity.getResources();//これは後でテクスチャを読み込むときに使う。
    mScene = new Scene();
  }

  //このonDrawFrameメソッドが毎フレーム呼ばれるので、ここで描画処理、更新処理を行う。
  public void onDrawFrame(GL10 gl) {
    mScene.draw(gl);
    mScene.update();
  }

  public void onSurfaceCreated(GL10 gl, EGLConfig config) {
    //ここにOpenGLの初期化処理を書いておく
  }
}

■3
SceneクラスはView.OnTouchListenerを継承する

public class Scene implements View.OnTouchListener{
  public void draw(GL10 gl) {
    //ここにポリゴンの描画処理を書く
  }
  public void update() {
    //ここに物体の移動処理などを書く
  }
  public boolean onTouch(View v, MotionEvent event) {
    //ここにタッチ操作処理を書く
    return false;
  }
}

これをコピペしても動きません。すみません。
これで大体の流れをつかんで下さい。







0 件のコメント:

コメントを投稿