OpenGLESで描画する

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        setContentView(R.layout.main);
    }
}

Projectを作成すると、これは作成されている。
Activityは画面のレイアウトを決定するもの?Sceneのようなものか?

アプリを起動すると、まずonCreate()が呼ばれてくるらしい。

上記にGLSurfaceViewを導入することでOpenGLESによる描画ができるようになるらしい。
以下の通り。

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // フルスクリーン表示
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        
        MyRenderer renderer = new MyRenderer(this);
        GLSurfaceView glSurfaceView = new MyGLSurfaceView(this);
        glSurfaceView.setRenderer(renderer);
        setContentView(glSurfaceView);
    }
}

Rendererを生成して、それとGLSurfaceViewをsetRendererでくっつける。
setContentViewはViewをActivityに設定する。Viewは画面のパーツ。
ボタンなどもViewのサブクラス。

Rendererの実装は以下の通り。
3つの関数くらいは自動生成してくれるが、中身は自分で実装する。

public class MyRenderer implements GLSurfaceView.Renderer {

	// 自分で追加したコンストラクタ。コンテキストを保持するためのもの。
	public MyRenderer(Context context){
		this.mContext = context;		
	}
	
	@Override
	public void onDrawFrame(GL10 gl) {
		// TODO Auto-generated method stub
		// 描画処理を記述する。何度も呼び出される。

	}

	@Override
	public void onSurfaceChanged(GL10 gl, int width, int height) {
		// TODO Auto-generated method stub
		// Viewport設定、画面サイズ設定などを行う。画面生成時、画面向き変更時に呼び出される。
	}

	@Override
	public void onSurfaceCreated(GL10 gl, EGLConfig config) {
		// TODO Auto-generated method stub
		// 初期化処理、テクスチャ生成処理などを行う。画面生成時に呼び出される。
		
	}

}