|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface IBlendSupport
描画モードを用いた合成処理を支援するサービスです。 このサービスはシングルトンではないため、インジェクトするごとに新しいインスタンスが生成されます。
描画モードのデフォルトの実装は、上になる画像および下になる画像がどちらも乗算済みアルファの場合のものです。
上になる画像がストレートアルファである場合、getUnmultSrcClass()
メソッドで実装を取得し、
それを setProgramsClass(Class)
メソッドに渡すことで描画モードの実装を変更することができます。
また、replace(BlendMode, IShaderProgram)
メソッドを用いると、描画モード単位で実装を変更
することができます。例えば、フラクタルノイズエフェクトは色相と彩度の実装を独自のものに置き換えています。
メソッドの概要 | |
---|---|
IVideoBuffer |
blend(IVideoBuffer src,
IVideoBuffer dstIn,
IVideoBuffer dstOut,
BlendMode blendMode,
double opacity)
|
IVideoBuffer |
blend(IVideoBuffer src,
IVideoBuffer dstIn,
IVideoBuffer dstOut,
BlendMode blendMode,
double opacity,
IVideoEffectContext context)
blendMode で指定した描画モードを用いて dstIn の上に
src を合成し、dstOut に結果を出力します。 |
IVideoBuffer |
dissolve(IVideoBuffer src,
IVideoBuffer dstIn,
IVideoBuffer dstOut,
double opacity,
double seed)
|
java.lang.Class<?> |
getPremultAndMatteClass(boolean normalCategory)
上になる画像および下になる画像がどちらも乗算済みアルファであり、 下になる画像のアルファチャンネルがマットでもある場合の描画モードの実装を取得します。 |
java.lang.Class<?> |
getUnmultSrcClass()
上になる画像がストレートアルファ、下になる画像が乗算済みアルファである場合の描画モードの実装を取得します。 |
void |
replace(BlendMode blendMode,
IShaderProgram program)
blendMode で指定した描画モードの実装を、
program のシェーダプログラムに置き換えます。 |
void |
setProgramsClass(java.lang.Class<?> programsClass)
描画モードの実装を programsClass のクラスが持つものに全て置き換えます。 |
メソッドの詳細 |
---|
java.lang.Class<?> getUnmultSrcClass()
java.lang.Class<?> getPremultAndMatteClass(boolean normalCategory)
normalCategory
を false
にすると、
描画モード「なし」「通常」「ディザ合成」「ダイナミックディザ合成」もデフォルトの実装と同じになります。
normalCategory
- 描画モード「なし」「通常」「ディザ合成」「ダイナミックディザ合成」の実装がデフォルトの実装と同じなら
false
、そうでないなら true
void setProgramsClass(java.lang.Class<?> programsClass)
programsClass
のクラスが持つものに全て置き換えます。
programsClass
のクラス内で、BlendMode.DANCING_DISSOLVE
を除くすべての描画モードに対してシェーダプログラムが定義されている必要があります。
programsClass
- 描画モードの実装をもつクラスオブジェクトvoid replace(BlendMode blendMode, IShaderProgram program)
blendMode
で指定した描画モードの実装を、
program
のシェーダプログラムに置き換えます。
blendMode
- 実装を置き換える描画モードprogram
- 描画モードのシェーダプログラムIVideoBuffer blend(IVideoBuffer src, IVideoBuffer dstIn, IVideoBuffer dstOut, BlendMode blendMode, double opacity, IVideoEffectContext context)
blendMode
で指定した描画モードを用いて dstIn
の上に
src
を合成し、dstOut
に結果を出力します。
opacity
で src
の不透明度を指定することができます。
dstOut
に null
を指定した場合、dstIn
と同じ位置とサイズで出力バッファが作成され、戻り値に返されます。
blendMode
が BlendMode.DISSOLVE
または
BlendMode.DANCING_DISSOLVE
の場合、実行中のエフェクトのコンテキストを
引数 context
に与える必要があります。これは、コンテキストから乱数のシードを決定するためです。
シードを明示的に指定する場合は dissolve(IVideoBuffer, IVideoBuffer, IVideoBuffer, double, double)
メソッドを使用してください。
src
- 上になる画像dstIn
- 下になる画像dstOut
- 合成の結果を出力するバッファblendMode
- 合成に用いる描画モードopacity
- src
の不透明度context
- 実行中のエフェクトのコンテキスト
dstOut
が null
の場合は新たに作成されたバッファ、そうでない場合は dstOut
IVideoBuffer blend(IVideoBuffer src, IVideoBuffer dstIn, IVideoBuffer dstOut, BlendMode blendMode, double opacity)
IVideoBuffer dissolve(IVideoBuffer src, IVideoBuffer dstIn, IVideoBuffer dstOut, double opacity, double seed)
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |