Androidアプリでは、3D描画を行う為のライブラリとしてOpenGL ESを利用する事ができる。
使用するパッケージは以下のような感じ。
javax.microedition.khronos.opengles
javax.microedition.khronos.egl
OpenGLを管理してくれるView。
描画はUIスレッドとは独立した専用スレッドで行われる。
描画に関する処理はGLSurfaceView.Rendererインターフェースが担う事になる。
以下、画面を青くするサンプル。
GLSurfaceView.Rendererを実装するクラスを作成。
import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.opengles.GL10; import android.opengl.GLSurfaceView; public class GLTestRenderer implements GLSurfaceView.Renderer { @Override public void onSurfaceCreated( GL10 gl, EGLConfig config ) { } @Override public void onSurfaceChanged( GL10 gl, int w, int h ) { } @Override public void onDrawFrame( GL10 gl ) { gl.glClearColor(0.0f, 0.0f, 1.0f, 1.0f); gl.glClear(GL10.GL_COLOR_BUFFER_BIT); } }
import android.app.Activity; import android.os.Bundle; import android.opengl.GLSurfaceView; public class MainActivity extends Activity { private GLTestRenderer mMyRenderer; private GLSurfaceView mGLSurfaceView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mMyRenderer = new GLTestRenderer(); mGLSurfaceView = new GLSurfaceView(this); mGLSurfaceView.setRenderer(mMyRenderer); setContentView(mGLSurfaceView); } }
コメントをお書きください