OpenGLを使う

OpenGLを使う




アンドロイドアプリでの描画方法はいくつかありますが、このゲームではOpenGLを使います。
OpenGLを使えば高速で細かな描画ができます。

そんなステキなOpenGLを使うにはどうすればいいのか?
今回はその使い方を極めます。

とりあえず、何も考えずに↓のようなソースコードを書きます。

MainActivity.java
package com.hitman;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

import android.app.Activity;
import android.os.Bundle;
import android.opengl.GLSurfaceView;

public class MainActivity extends Activity implements GLSurfaceView.Renderer
{
    //  コンストラクタ
    public  MainActivity()
    {
        super();

        m_View  = null;
    }

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

        m_View  = new GLSurfaceView( this );
        m_View.setRenderer( this );

        setContentView( m_View );
    }

    //  再開
    @Override
    public void onResume()
    {
        super.onResume();

        m_View.onResume();
    }

    //  一時停止
    @Override
    public void onPause()
    {
        m_View.onPause();

        super.onPause();
    }

    //  サーフェイスが作られた
    @Override
    public void onSurfaceCreated( GL10 gl, EGLConfig config )
    {
    }

    //  サーフェイスのサイズが変わった
    @Override
    public void onSurfaceChanged( GL10 gl, int width, int height )
    {
    }

    //  描画フレーム
    @Override
    public void onDrawFrame( GL10 gl )
    {
    }



    private GLSurfaceView   m_View;
}

何やら色々増えました!
これで何かが表示されるのか!?

起動すると真っ黒な画面が表示されます!!
やったー!
……って変わってないやんけ!

見た目は変わってませんがこの時点でOpenGLで描画されてます。
GLSurfaceViewがOpenGLを使ったViewです。

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

        m_View  = new GLSurfaceView( this );
        m_View.setRenderer( this );

        setContentView( m_View );
    }

でViewとActivityを関連付けてOpenGLによる描画が実現されてます。

しかし、このままではまだ画面に何かを描画することは出来ません。
何かを描画するにはOpenGLの設定を変更して描画命令を出す必要があります。

というわけで、次はOpenGLの設定をやってみましょう!



<前のページ
次のページ>