com.nttdocomo.ui.ogl
インタフェース GraphicsOGL


public interface GraphicsOGL
 [iアプリオプションAPI]

OpenGL® ES 1.1相当のグラフィックス機能を提供するインタフェースです。
APIとして、OpenGL® ES 1.1の固定小数点を除いた機能が使用できます。

OpenGL® ES に相当する機能をサポートする Graphics クラスは、 このインタフェースを実装しなければなりません。

現在の端末では、 OpenGL® ES のグラフィックスコンテキストを1つしか持たない実装となっています。 例えば、描画インスタンスを g1 から g2 等に変更した場合でも、 GraphicsOGL インタフェースのメソッドで設定するリソースについては、 最後に設定したパラメータがシステムの共有パラメータとして有効となることに注意して下さい。

3Dと2Dの共存方法

OpenGL® ESによる3D描画とcom.nttdocomo.ui.Graphicsによる2D描画の呼び出しは混在させることができません。 そこで3D描画と2D描画の切り替えを beginDrawing()endDrawing() で明示的に行う必要があります。

アプリケーションはOpenGL® ESによる3D描画を開始する際に beginDrawing() を呼び出します。
この間の2D描画は正常に描画されません。
3D描画要求を終了した後、 endDrawing() を呼び出すことにより、その後の2D描画は3D描画の上に正常に描き重ねることが 可能となります。
逆に beginDrawing()endDrawing()間以外でOpenGL® ESによる3D描画のAPIを呼び出した場合、 その呼び出しによる動作も不定です。

3Dの反映タイミング
OpenGL® ESは通常、関数eglSwapBuffers()の呼び出しにより画面への反映を行いますが、GraphicsOGLでは endDrawing() 呼び出し後に画面への反映が行われます。実際の反映タイミングは機種依存となります。 但し、2D描画と同様に Graphics#lock() によりGraphicsがロックされている場合、Graphics#unlock() 時に反映されます。
その他の3D描画との競合
OpenGL® ESによる3D描画と、従来のcom.nttdocomo.ui.graphics3d.Graphics3D 及び com.nttdocomo.opt.ui.j3d.Graphics3D による描画は 同時に使用することはできません。
先発優先となり、最初に使用された3Dグラフィクス機能が有効になります。
  • com.nttdocomo.ui.graphics3d.Graphics3D 及び com.nttdocomo.opt.ui.j3d.Graphics3D の描画機能を呼び出した後で本クラスの描画開始メソッドbeginDrawing()を 呼び出した場合は、beginDrawing()で例外IllegalStateExceptionが発生します。
  • また、本クラスの描画開始メソッドbeginDrawing()が呼び出された後で com.nttdocomo.ui.graphics3d.Graphics3D 及び com.nttdocomo.opt.ui.j3d.Graphics3D の描画機能を呼び出した場合は、それらの描画機能でUnsupportedOperationExceptionが 発生します。

バッファオブジェクトに関する注意事項
glBindBuffer(int,int)の呼び出しによってバッファオブジェクトが有効にされている場合とそうでない場合とで glColorPointer(),glNormalPointer(),glTexCoordPointer(),glVertexPointer(),glDrawElements(), glMatrixIndexPointerOES(),glWeightPointerOES(),glPointSizePointerOES() を 以下のように呼び分ける必要があります。

バッファオブジェクトとDirectBuffer混在使用の制限について
描画メソッド glDrawArrays(), glDrawElements() をコールする際、glEnableClientState(int)で有効にされ、glColorPointer(), glNormalPointer(), glTexCoordPointer(), glVertexPointer(), glDrawElements(), glMatrixIndexPointerOES(), glWeightPointerOES(), glPointSizePointerOES() を使用して設定されている各種配列は、 次の条件にしたがっている必要があります。


上記条件に従っていない場合、例外 IllegalStateException が発生します。

なお、これら混在の制限はあくまで描画メソッドコール時の制限です。
同一アプリケーション中で、DirectBufferのみを使用する描画メソッドと、バッファオブジェクトのみを使用する描画メソッドとを 混在して使用することは可能です。

導入されたバージョン:
DoJa-5.0 (903i)

フィールドの概要
static int GL_ACTIVE_TEXTURE
          OpenGL ES 1.1の同名の定数を表します。
static int GL_ADD
          OpenGL ES 1.1の同名の定数を表します。
static int GL_ADD_SIGNED
          OpenGL ES 1.1の同名の定数を表します。
static int GL_ALIASED_LINE_WIDTH_RANGE
          OpenGL ES 1.1の同名の定数を表します。
static int GL_ALIASED_POINT_SIZE_RANGE
          OpenGL ES 1.1の同名の定数を表します。
static int GL_ALPHA
          OpenGL ES 1.1の同名の定数を表します。
static int GL_ALPHA_BITS
          OpenGL ES 1.1の同名の定数を表します。
static int GL_ALPHA_SCALE
          OpenGL ES 1.1の同名の定数を表します。
static int GL_ALPHA_TEST
          OpenGL ES 1.1の同名の定数を表します。
static int GL_ALPHA_TEST_FUNC
          OpenGL ES 1.1の同名の定数を表します。
static int GL_ALPHA_TEST_REF
          OpenGL ES 1.1の同名の定数を表します。
static int GL_ALWAYS
          OpenGL ES 1.1の同名の定数を表します。
static int GL_AMBIENT
          OpenGL ES 1.1の同名の定数を表します。
static int GL_AMBIENT_AND_DIFFUSE
          OpenGL ES 1.1の同名の定数を表します。
static int GL_AND
          OpenGL ES 1.1の同名の定数を表します。
static int GL_AND_INVERTED
          OpenGL ES 1.1の同名の定数を表します。
static int GL_AND_REVERSE
          OpenGL ES 1.1の同名の定数を表します。
static int GL_ARRAY_BUFFER
          OpenGL ES 1.1の同名の定数を表します。
static int GL_ARRAY_BUFFER_BINDING
          OpenGL ES 1.1の同名の定数を表します。
static int GL_BACK
          OpenGL ES 1.1の同名の定数を表します。
static int GL_BLEND
          OpenGL ES 1.1の同名の定数を表します。
static int GL_BLEND_DST
          OpenGL ES 1.1の同名の定数を表します。
static int GL_BLEND_SRC
          OpenGL ES 1.1の同名の定数を表します。
static int GL_BLUE_BITS
          OpenGL ES 1.1の同名の定数を表します。
static int GL_BUFFER_ACCESS
          OpenGL ES 1.1の同名の定数を表します。
static int GL_BUFFER_SIZE
          OpenGL ES 1.1の同名の定数を表します。
static int GL_BUFFER_USAGE
          OpenGL ES 1.1の同名の定数を表します。
static int GL_BYTE
          OpenGL ES 1.1の同名の定数を表します。
static int GL_CCW
          OpenGL ES 1.1の同名の定数を表します。
static int GL_CLAMP_TO_EDGE
          OpenGL ES 1.1の同名の定数を表します。
static int GL_CLEAR
          OpenGL ES 1.1の同名の定数を表します。
static int GL_CLIENT_ACTIVE_TEXTURE
          OpenGL ES 1.1の同名の定数を表します。
static int GL_CLIP_PLANE0
          OpenGL ES 1.1の同名の定数を表します。
static int GL_CLIP_PLANE1
          OpenGL ES 1.1の同名の定数を表します。
static int GL_CLIP_PLANE2
          OpenGL ES 1.1の同名の定数を表します。
static int GL_CLIP_PLANE3
          OpenGL ES 1.1の同名の定数を表します。
static int GL_CLIP_PLANE4
          OpenGL ES 1.1の同名の定数を表します。
static int GL_CLIP_PLANE5
          OpenGL ES 1.1の同名の定数を表します。
static int GL_COLOR_ARRAY
          OpenGL ES 1.1の同名の定数を表します。
static int GL_COLOR_ARRAY_BUFFER_BINDING
          OpenGL ES 1.1の同名の定数を表します。
static int GL_COLOR_ARRAY_POINTER
          OpenGL ES 1.1の同名の定数を表します。
static int GL_COLOR_ARRAY_SIZE
          OpenGL ES 1.1の同名の定数を表します。
static int GL_COLOR_ARRAY
          OpenGL ES 1.1縺ョ蜷悟錐縺ョ螳壽焚繧定。ィ縺励∪縺吶