タイトルそのままなんですが...。

普通、AndroidでOpenGLを使うときは、GLSurfaceViewだと思いますが、
そこをあえて、SurfaceViewでOpenGLしてみました。

“だから何?”と言われそうですが、例えばこんなケースに有効です。

  • UIスレッドに縛られずに描画したい。
  • OpenGLの初期化も自前で制御したい。
  • OpenGLのハンドラを自前で保持っときたい。

ポイントは、SurfaceView.getHolder().getSurface()を取得して、
それを使って、OpenGL初期化をすることですかね。

おおよそ、こんな処理の流れになります。

ソースコード一式はココ