GLSurfaceViewの使い方
android sdk1.5から入ったOpenGL ESを簡単に使うためのクラス。
以下、使い方の手順
プロジェクト作成
eclipseでいつもどおりのやり方でプロジェクトを作成。
GLRendererクラス作成
新規クラスでGLRendererを作成する。
インターフェースでandroid.opengl.GLSurfaceView.Rendererをくっつける。
メソッドスタブの作成で継承された抽象メソッドにチェックを入れておく。
onSurfaceChanged()の中に以下の処理を追加
gl.glViewport(0, 0, width, height);
ActivityクラスにGLSurfaceViewインスタンス作成
GLSurfaceViewのインスタンスを作成して、
setRenderer()で先ほど作ったGLRendererインスタンスをセットする。
public class GLActivity extends Activity { //OpenGLESビュー private GLSurfaceView mGLSurfaceView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.main); //GLサーフェイスビューを作成して設定 mGLSurfaceView = new GLSurfaceView(this); mGLSurfaceView.setRenderer(new GLRenderer()); setContentView(mGLSurfaceView); } }
ActivityでonPause(),onResume()をオーバーライドする
eclipse補完入力を使えば簡単。
内部でGLSurfaceViewインスタンスのonPause(),onResume()を呼び出すようにする。
GLRendererのonDrawFrameに画面クリア処理を書く
onDrawFrame()に、引数で渡されるGL操作ハンドルを使って以下の処理を追加。
gl.glClearColor(1.0f, 0.0f, 0.0f, 1.0f); //画面クリアカラー設定 gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); //画面クリア
終わり
ここまで作って実行すると画面が真っ赤になる。
今後のandroidのOpenGL ESのサンプルはこれを土台に作っていく。
●●確認●●
glClearColorの引数を変えてみる
glClearColor()は画面クリア時の色を設定する関数で、
引数は前から順に、赤の強さ、緑の強さ、青の強さ、不透明度を表す。
glClearColor(0.0f, 1.0f, 0.0f, 1.0f);
glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);