ch.kuramo.javie.api.services
インタフェース IVideoRenderSupport


public interface IVideoRenderSupport


メソッドの概要
 void copy(IVideoBuffer src, IVideoBuffer dst)
          引数 src のバッファが保持する画像を、引数 dst のバッファにコピーします。
 IVideoBuffer createVideoBuffer(VideoBounds bounds)
          引数 bounds の位置とサイズ、コンテキストの色深度でビデオ用バッファを作成します。
 IVideoBuffer createVideoBuffer(VideoBounds bounds, ColorMode colorMode)
          引数 bounds の位置とサイズ、引数 colorMode の色深度でビデオ用バッファを作成します。
 void ortho2D(IVideoBuffer output)
           output.getBounds() の矩形領域全体が視体積にちょうど収まるように平行投影の設定を行います (ビューポートと投影行列が設定されます。
 void ortho2D(VideoBounds bounds)
          bounds の矩形領域全体が視体積にちょうど収まるように平行投影の設定を行います (ビューポートと投影行列が設定されます。
 void polygon2D(double[][][] contours, IVideoBuffer output, IVideoBuffer... input)
           
 void polygon2D(double[][][] contours, VideoBounds bounds, double[][]... texCoords)
           
 void quad2D(double left, double top, double right, double bottom, double[][]... texCoords)
           
 void quad2D(IVideoBuffer output, IVideoBuffer... input)
           
 void quad2D(VideoBounds bounds, double[][]... texCoords)
           
 IVideoBuffer useFramebuffer(java.lang.Runnable operation, int pushAttribs, IVideoBuffer output, IVideoBuffer... input)
           output のテクスチャをフレームバッファの出力先とし、operation の処理を実行します。
 IVideoBuffer useShaderProgram(IShaderProgram program, java.util.Collection<javax.media.opengl.GLUniformData> uniforms, IVideoBuffer output, IVideoBuffer... input)
           program のシェーダプログラムを使用して output.getBounds() の矩形を描画し、output に結果を出力します。
 IVideoBuffer useShaderProgram(IShaderProgram program, java.util.Collection<javax.media.opengl.GLUniformData> uniforms, java.lang.Runnable operation, int pushAttribs, IVideoBuffer output, IVideoBuffer... input)
          program のシェーダプログラムを使用して operation の処理を実行します。
 void useShaderProgramMRT(IShaderProgram program, java.util.Collection<javax.media.opengl.GLUniformData> uniforms, IVideoBuffer[] output, IVideoBuffer... input)
          useShaderProgram(IShaderProgram, Collection, IVideoBuffer, IVideoBuffer...)
 void useShaderProgramMRT(IShaderProgram program, java.util.Collection<javax.media.opengl.GLUniformData> uniforms, java.lang.Runnable operation, int pushAttribs, IVideoBuffer[] output, IVideoBuffer... input)
          useShaderProgram(IShaderProgram, Collection, Runnable, int, IVideoBuffer, IVideoBuffer...)
 

メソッドの詳細

createVideoBuffer

IVideoBuffer createVideoBuffer(VideoBounds bounds)
引数 bounds の位置とサイズ、コンテキストの色深度でビデオ用バッファを作成します。

パラメータ:
bounds - 作成するビデオ用バッファの位置とサイズ
戻り値:
作成されたビデオ用バッファ

createVideoBuffer

IVideoBuffer createVideoBuffer(VideoBounds bounds,
                               ColorMode colorMode)
引数 bounds の位置とサイズ、引数 colorMode の色深度でビデオ用バッファを作成します。

パラメータ:
bounds - 作成するビデオ用バッファの位置とサイズ
colorMode - 作成するビデオ用バッファの色深度
戻り値:
作成されたビデオ用バッファ

useFramebuffer

IVideoBuffer useFramebuffer(java.lang.Runnable operation,
                            int pushAttribs,
                            IVideoBuffer output,
                            IVideoBuffer... input)

output のテクスチャをフレームバッファの出力先とし、operation の処理を実行します。 input は可変長引数で、0番目がテクスチャ番号0に、1番目がテクスチャ番号1に、N番目がテクスチャ番号Nにバインドされます。 また、テクスチャマッピングは有効な状態となります。 このメソッドは operation の処理の前後で glPushAttrib / glPopAttrib を呼び出し、 OpenGL の状態を保存/復帰します。pushAttribs はその際 glPushAttrib に渡されるビットマスクです。 (実際には pushAttribs のビットに加え、いくつかのビットが追加されて glPushAttrib が呼び出されますが、 その動作に依存して pushAttribs の設定を省略してはいけません。operation の処理で変更される可能性がある状態に対しては、必ず pushAttribs のビットを設定してください。)

outputnull を指定した場合、input の最初のバッファと同じ位置とサイズで出力バッファが作成され、戻り値に返されます。 input に何も指定しないこともできますが、outputnull を指定した場合は1つ以上 input が必要です。

パラメータ:
operation - フレームバッファを使用して行う処理
pushAttribs - operation の処理前後で保存/復帰する OpenGL の状態を指定するビットマスク
output - フレームバッファの出力先となるバッファ
input - operation の処理時にバインドされるバッファ
戻り値:
outputnull の場合は新たに作成されたバッファ、そうでない場合は output

useShaderProgram

IVideoBuffer useShaderProgram(IShaderProgram program,
                              java.util.Collection<javax.media.opengl.GLUniformData> uniforms,
                              java.lang.Runnable operation,
                              int pushAttribs,
                              IVideoBuffer output,
                              IVideoBuffer... input)
program のシェーダプログラムを使用して operation の処理を実行します。 uniforms はシェーダプログラムへ渡す Uniform 変数のコレクションです。 operation, pushAttribs, output および inputuseFramebuffer(Runnable, int, IVideoBuffer, IVideoBuffer...) の引数とほぼ同じですが、 テクスチャマッピングは有効にならないことが異なります (テクスチャのバインドは行われます) 。

パラメータ:
program - operation の処理の際に使用するシェーダプログラム
uniforms - シェーダプログラムへ渡す Uniform 変数のコレクション
operation - シェーダプログラムを使用して実行する処理
pushAttribs - operation の処理前後で保存/復帰する OpenGL の状態を指定するビットマスク
output - 出力バッファ
input - operation の処理時にバインドされるバッファ
戻り値:
outputnull の場合は新たに作成されたバッファ、そうでない場合は output

useShaderProgramMRT

void useShaderProgramMRT(IShaderProgram program,
                         java.util.Collection<javax.media.opengl.GLUniformData> uniforms,
                         java.lang.Runnable operation,
                         int pushAttribs,
                         IVideoBuffer[] output,
                         IVideoBuffer... input)
useShaderProgram(IShaderProgram, Collection, Runnable, int, IVideoBuffer, IVideoBuffer...) のマルチレンダーターゲット(MRT)版です。program にはMRTを使用したシェーダプログラムを指定します。 output には、シェーダプログラムが使用するレンダーターゲットと同じ数の出力バッファを指定します。 program は、MRTを使用しないシェーダプログラムでも構いません。 その場合、output に指定できる出力バッファは1つだけです。

パラメータ:
program - operation の処理の際に使用するシェーダプログラム
uniforms - シェーダプログラムへ渡す Uniform 変数のコレクション
operation - シェーダプログラムを使用して実行する処理
pushAttribs - operation の処理前後で保存/復帰する OpenGL の状態を指定するビットマスク
output - 出力バッファの配列
input - operation の処理時にバインドされるバッファ

useShaderProgram

IVideoBuffer useShaderProgram(IShaderProgram program,
                              java.util.Collection<javax.media.opengl.GLUniformData> uniforms,
                              IVideoBuffer output,
                              IVideoBuffer... input)

program のシェーダプログラムを使用して output.getBounds() の矩形を描画し、output に結果を出力します。このとき output.getBounds() の領域全体がちょうど視体積に収まるように ortho2D(IVideoBuffer) で平行投影されます。 useShaderProgram(IShaderProgram, Collection, Runnable, int, IVideoBuffer, IVideoBuffer...) と同様にテクスチャのバインドが行われます。また、output と各 input の位置関係を元にテクスチャ座標が設定されます。

outputnull を指定した場合、input の最初のバッファと同じ位置とサイズで出力バッファが作成され、戻り値に返されます。 input に何も指定しないこともできますが、outputnull を指定した場合は1つ以上 input が必要です。

パラメータ:
program - シェーダプログラム
uniforms - シェーダプログラムへ渡す Uniform 変数のコレクション
output - 出力バッファ
input - 入力バッファ
戻り値:
outputnull の場合は新たに作成されたバッファ、そうでない場合は output

useShaderProgramMRT

void useShaderProgramMRT(IShaderProgram program,
                         java.util.Collection<javax.media.opengl.GLUniformData> uniforms,
                         IVideoBuffer[] output,
                         IVideoBuffer... input)
useShaderProgram(IShaderProgram, Collection, IVideoBuffer, IVideoBuffer...) のマルチレンダーターゲット(MRT)版です。program にはMRTを使用したシェーダプログラムを指定します。 output には、シェーダプログラムが使用するレンダーターゲットと同じ数の出力バッファを指定します。 program は、MRTを使用しないシェーダプログラムでも構いません。 その場合、output に指定できる出力バッファは1つだけです。

パラメータ:
program - シェーダプログラム
uniforms - シェーダプログラムへ渡す Uniform 変数のコレクション
output - 出力バッファの配列
input - 入力バッファ

ortho2D

void ortho2D(IVideoBuffer output)

output.getBounds() の矩形領域全体が視体積にちょうど収まるように平行投影の設定を行います (ビューポートと投影行列が設定されます。またモデルビュー行列は単位行列に初期化されます) 。

これは ortho2D(output.getBounds()) と同じです。

パラメータ:
output - 平行投影の対象領域を持つビデオバッファ
関連項目:
ortho2D(VideoBounds)

ortho2D

void ortho2D(VideoBounds bounds)
bounds の矩形領域全体が視体積にちょうど収まるように平行投影の設定を行います (ビューポートと投影行列が設定されます。またモデルビュー行列は単位行列に初期化されます) 。

パラメータ:
bounds - 平行投影の対象領域
関連項目:
ortho2D(IVideoBuffer)

quad2D

void quad2D(IVideoBuffer output,
            IVideoBuffer... input)

quad2D

void quad2D(VideoBounds bounds,
            double[][]... texCoords)

quad2D

void quad2D(double left,
            double top,
            double right,
            double bottom,
            double[][]... texCoords)

polygon2D

void polygon2D(double[][][] contours,
               IVideoBuffer output,
               IVideoBuffer... input)

polygon2D

void polygon2D(double[][][] contours,
               VideoBounds bounds,
               double[][]... texCoords)

copy

void copy(IVideoBuffer src,
          IVideoBuffer dst)
引数 src のバッファが保持する画像を、引数 dst のバッファにコピーします。 srcgetBounds メソッドが返す矩形に対応する dst 内の領域にコピーされます。この矩形が dst 内に収まらない場合、 dst 内に収まる部分だけがコピーされます。

パラメータ:
src - コピー元のバッファ
dst - コピー先のバッファ
導入されたバージョン:
0.5.0