【Android】アンドロイドでOpenGLを使ってみる(準備編)


いよいよ難関のOpenGLです。
難しそうですが、ちょっと挑戦してみることにします。

素人が勉強がてらに書いてみたものですが、参考になればと思います(`・ω・´)



OpenGLを使うにはGLSurfaceViewという特別なViewを利用します。
名前的にSurfaceViewの親戚みたいなものなんでしょうか。

何はともあれ、最初はActivityに追加するところから始めます(^ω^)

GLSurfaceViewの派生クラスをActivityに追加

GLSurfaceViewの派生クラスSampleGlViewを作り、
アクティビティのonCreateでインスタンスを生成。
onResume,onPauseで同名の関数を呼び出すようにします。

・SampleActivity.java
SampleGlView glView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    glView = new SampleGlView(this);
    setContentView(glView);
}

@Override
protected void onResume(){
  super.onResume();
  glView.onResume();
}

@Override
protected void onPause(){
  super.onPause();
  glView.onPause();
}



Rendererインターフェースを実装したオブジェクトをセット


次にGLSurfaceViewの派生クラスSampleGlViewを作成します。
このViewの中で Renderer というインターフェイスを実装したオブジェクトをセットします。
れんだらー?と最初は聞きなれない単語に戸惑いましたが、
レンダリング(描画)を行う為のオブジェクトなのでレンダラーというみたいです。

・SampleGlView.java
import android.content.Context;
import android.opengl.GLSurfaceView;

public class SampleGlView extends GLSurfaceView {

	SampleRenderer renderer;

	public SampleGlView(Context context) {
		super(context);
		renderer = new SampleRenderer();
		setRenderer( renderer );
	}

}



Rendererの関数(onSurfaceCreated、onSurfaceChanged、onDrawFrame)を実装する

SampleRendererを作成します。

インポートするもの
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import android.opengl.GLSurfaceView.Renderer;



SampleRendererの中では、onSurfaceCreated、onSurfaceChanged、onDrawFrame関数を作成します。

・SampleRenderer.java
public class SampleRenderer implements Renderer{

	@Override
	public void onDrawFrame(GL10 gl) {

	}

	@Override
	public void onSurfaceChanged(GL10 gl, int width, int height) {

	}

	@Override
	public void onSurfaceCreated(GL10 gl, EGLConfig config) {

	}

}



SurfaceViewを作成して描画処理をやったので名前でピンと来ました、
onSurfaceCreatedは初期化時、
onSurfaceChangedは画面変更時(横向き、縦向きの変化)に呼び出されます。
そしてonDrawFrame
これが描画処理を行う関数のようです。
SurfaceViewの時に使ったRun関数みたいなものでしょうか。

とりあえずは今回はここまでです(´ω`)
次回は描画処理の方法を紹介したいです。


関連記事