Package 

Class GLDrawer2D

  • All Implemented Interfaces:
    com.serenegiant.opengl.IDrawer2D

    
    public class GLDrawer2D
     implements IDrawer2D
                        

    描画領域全面にテクスチャを2D描画するためのヘルパークラス

    • Constructor Summary

      Constructors 
      Constructor Description
      GLDrawer2D(boolean isOES) コンストラクタGLコンテキスト/EGLレンダリングコンテキストが有効な状態で呼ばないとダメ
      GLDrawer2D(Array<float> vertices, Array<float> texcoord, boolean isOES) コンストラクタGLコンテキスト/EGLレンダリングコンテキストが有効な状態で呼ばないとダメ
    • Method Summary

      Modifier and Type Method Description
      void release() 破棄処理。GLコンテキスト/EGLレンダリングコンテキスト内で呼び出さないとダメ
      boolean isOES() 外部テクスチャを使うかどうか
      Array<float> getMvpMatrix() モデルビュー変換行列を取得(内部配列を直接返すので変更時は要注意)
      IDrawer2D setMvpMatrix(Array<float> matrix, int offset) モデルビュー変換行列に行列を割り当てる
      void getMvpMatrix(Array<float> matrix, int offset) モデルビュー変換行列のコピーを取得
      synchronized void draw(int texId, Array<float> tex_matrix, int offset) 指定したテクスチャを指定したテクスチャ変換行列を使って描画領域全面に描画するためのヘルパーメソッドこのクラスインスタンスのモデルビュー変換行列が設定されていればそれも適用された状態で描画する
      void draw(ITexture texture) Textureオブジェクトを描画するためのヘルパーメソッドTextureオブジェクトで管理しているテクスチャ名とテクスチャ座標変換行列を使って描画する
      void draw(TextureOffscreen offscreen) TextureOffscreenオブジェクトを描画するためのヘルパーメソッド
      int initTex() テクスチャ名生成のヘルパーメソッドGLHelper#initTexを呼び出すだけ
      void deleteTex(int hTex) テクスチャ名破棄のヘルパーメソッドGLHelper.
      synchronized void updateShader(String vs, String fs) 頂点シェーダー・フラグメントシェーダーを変更するGLコンテキスト/EGLレンダリングコンテキスト内で呼び出さないとダメglUseProgramが呼ばれた状態で返る
      void updateShader(String fs) フラグメントシェーダーを変更するGLコンテキスト/EGLレンダリングコンテキスト内で呼び出さないとダメglUseProgramが呼ばれた状態で返る
      void resetShader() 頂点シェーダー・フラグメントシェーダーをデフォルトに戻す
      int glGetAttribLocation(String name) アトリビュート変数のロケーションを取得glUseProgramが呼ばれた状態で返る
      int glGetUniformLocation(String name) ユニフォーム変数のロケーションを取得glUseProgramが呼ばれた状態で返る
      void glUseProgram() glUseProgramが呼ばれた状態で返る
      • Methods inherited from class com.serenegiant.opengl.IDrawer2D

        draw
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • GLDrawer2D

        GLDrawer2D(boolean isOES)
        コンストラクタGLコンテキスト/EGLレンダリングコンテキストが有効な状態で呼ばないとダメ
        Parameters:
        isOES - 外部テクスチャ(GL_TEXTURE_EXTERNAL_OES)を使う場合はtrue。通常の2Dテキスチャならfalse
      • GLDrawer2D

        GLDrawer2D(Array<float> vertices, Array<float> texcoord, boolean isOES)
        コンストラクタGLコンテキスト/EGLレンダリングコンテキストが有効な状態で呼ばないとダメ
        Parameters:
        vertices - 頂点座標, floatを8個 = (x,y) x 4ペア
        texcoord - テクスチャ座標, floatを8個 = (s,t) x 4ペア
        isOES - 外部テクスチャ(GL_TEXTURE_EXTERNAL_OES)を使う場合はtrue。通常の2Dテキスチャならfalse
    • Method Detail

      • release

         void release()

        破棄処理。GLコンテキスト/EGLレンダリングコンテキスト内で呼び出さないとダメ

      • isOES

         boolean isOES()

        外部テクスチャを使うかどうか

      • getMvpMatrix

         Array<float> getMvpMatrix()

        モデルビュー変換行列を取得(内部配列を直接返すので変更時は要注意)

      • setMvpMatrix

         IDrawer2D setMvpMatrix(Array<float> matrix, int offset)

        モデルビュー変換行列に行列を割り当てる

        Parameters:
        matrix - 領域チェックしていないのでoffsetから16個以上必須
      • getMvpMatrix

         void getMvpMatrix(Array<float> matrix, int offset)

        モデルビュー変換行列のコピーを取得

        Parameters:
        matrix - 領域チェックしていないのでoffsetから16個以上必須
      • draw

         synchronized void draw(int texId, Array<float> tex_matrix, int offset)

        指定したテクスチャを指定したテクスチャ変換行列を使って描画領域全面に描画するためのヘルパーメソッドこのクラスインスタンスのモデルビュー変換行列が設定されていればそれも適用された状態で描画する

        Parameters:
        texId - texture ID
        tex_matrix - テクスチャ変換行列、nullならば以前に適用したものが再利用される。領域チェックしていないのでoffsetから16個以上確保しておくこと
      • draw

         void draw(ITexture texture)

        Textureオブジェクトを描画するためのヘルパーメソッドTextureオブジェクトで管理しているテクスチャ名とテクスチャ座標変換行列を使って描画する

      • draw

         void draw(TextureOffscreen offscreen)

        TextureOffscreenオブジェクトを描画するためのヘルパーメソッド

      • initTex

         int initTex()

        テクスチャ名生成のヘルパーメソッドGLHelper#initTexを呼び出すだけ

      • deleteTex

         void deleteTex(int hTex)

        テクスチャ名破棄のヘルパーメソッドGLHelper.deleteTexを呼び出すだけ

      • updateShader

         synchronized void updateShader(String vs, String fs)

        頂点シェーダー・フラグメントシェーダーを変更するGLコンテキスト/EGLレンダリングコンテキスト内で呼び出さないとダメglUseProgramが呼ばれた状態で返る

        Parameters:
        vs - 頂点シェーダー文字列
        fs - フラグメントシェーダー文字列
      • updateShader

         void updateShader(String fs)

        フラグメントシェーダーを変更するGLコンテキスト/EGLレンダリングコンテキスト内で呼び出さないとダメglUseProgramが呼ばれた状態で返る

        Parameters:
        fs - フラグメントシェーダー文字列
      • resetShader

         void resetShader()

        頂点シェーダー・フラグメントシェーダーをデフォルトに戻す

      • glGetAttribLocation

         int glGetAttribLocation(String name)

        アトリビュート変数のロケーションを取得glUseProgramが呼ばれた状態で返る

      • glGetUniformLocation

         int glGetUniformLocation(String name)

        ユニフォーム変数のロケーションを取得glUseProgramが呼ばれた状態で返る

      • glUseProgram

         void glUseProgram()

        glUseProgramが呼ばれた状態で返る