FineKernelToolKit  3.1.0
公開メンバ関数 | プロパティ | 全メンバ一覧
FK_ShaderPlugin::fk_ShaderBinder クラス

シェーダープログラム統括クラス [詳解]

公開メンバ関数

 fk_ShaderBinder ()
 コンストラクタ1 [詳解]
 
 fk_ShaderBinder (fk_ShaderProgram^ prog, fk_ShaderParameter^ param)
 コンストラクタ2 [詳解]
 
 ~fk_ShaderBinder ()
 デストラクタ [詳解]
 
void BindModel (fk_Model^ model)
 シェーダーモデル連携設定メソッド [詳解]
 
void UnbindModel (fk_Model^ model)
 シェーダーモデル連携解除メソッド [詳解]
 
void InitializeFrameBufferObject (int width, int height)
 フレームバッファーオブジェクト (FBO) 初期化メソッド1 [詳解]
 
void InitializeFrameBufferObject (fk_Dimension^ dim)
 フレームバッファーオブジェクト (FBO) 初期化メソッド2 [詳解]
 
void FinalizeFrameBufferObject ()
 フレームバッファーオブジェクト (FBO) 利用終了メソッド [詳解]
 
void BindWindow (fk_IBindableDrawer^ window)
 ウィンドウ連携設定メソッド [詳解]
 
void UnbindWindow (fk_IBindableDrawer^ window)
 ウィンドウ連携解除メソッド [詳解]
 

プロパティ

fk_ShaderProgram^  Program
 シェーダープログラムプロパティ [詳解]
 
fk_ShaderParameter^  Parameter
 シェーダーパラメータープロパティ [詳解]
 

詳解

シェーダープログラム統括クラス

このクラスは、FK におけるシェーダー全体を統括する機能を提供します。 FK でシェーダーを扱う場合は、 基本的にはこの fk_ShaderBinder クラスによるインスタンスを用いて制御を行います。

このクラスの役割は大きく以下の3種類となります。

fk_ShaderBinder.Program プロパティの扱い方については fk_ShaderProgram を、 fk_ShaderBinder.Parameter プロパティの扱い方については fk_ShaderParameter を参照して下さい。 また、入出力用テクスチャについては fk_TextureSampler を参照して下さい。

参照
fk_ShaderProgram, fk_ShaderParameter, fk_TextureSampler, FK_CLI::fk_Model

構築子と解体子

FK_ShaderPlugin::fk_ShaderBinder::fk_ShaderBinder ( )

コンストラクタ1

インスタンスを生成します。 シェーダープログラムおよびシェーダーパラメーターは何も設定されません。

FK_ShaderPlugin::fk_ShaderBinder::fk_ShaderBinder ( fk_ShaderProgram prog,
fk_ShaderParameter param 
)

コンストラクタ2

インスタンスを生成する際に、 プログラムとパラメーターを初期設定するコンストラクタです。

引数
[in]progシェーダープログラム
[in]paramシェーダーパラメーター
FK_ShaderPlugin::fk_ShaderBinder::~fk_ShaderBinder ( )

デストラクタ

関数詳解

void FK_ShaderPlugin::fk_ShaderBinder::BindModel ( fk_Model model)

シェーダーモデル連携設定メソッド

Program プロパティに設定されているシェーダープログラムを適用するモデルを設定します。 1つの fk_ShaderBinder インスタンスによるプログラムを、 複数のモデルに対して適用することが可能です。 モデルへのシェーダー適用を外すには、 UnbindModel() メソッドを利用して下さい。

また、1つのモデルに対し、複数のシェーダーを適用することも可能です。 その場合は、 BindModel() によって適用した順番に処理がなされます。

引数
[in]modelシェーダー適用モデルインスタンス
void FK_ShaderPlugin::fk_ShaderBinder::UnbindModel ( fk_Model model)

シェーダーモデル連携解除メソッド

BindModel() メソッドによってシェーダーを適用したモデルに対し、 適用を外します。

引数
[in]modelシェーダー適用済モデルインスタンス
void FK_ShaderPlugin::fk_ShaderBinder::InitializeFrameBufferObject ( int  width,
int  height 
)

フレームバッファーオブジェクト (FBO) 初期化メソッド1

シェーダー内でフレームバッファーオブジェクト (FBO) を利用する際の初期化を行います。 このメソッドを呼ぶことで、 FBO にアクセスするシェーダープログラムを利用することができます。

本メソッドを用いたあと、実際に画面に出力を行うには BindWindow() メソッドで連携を行う必要があります。

引数
[in]widthFBO の横幅
[in]heightFBO の縦幅
参照
BindWindow(), FinalizeFrameBufferObject()
void FK_ShaderPlugin::fk_ShaderBinder::InitializeFrameBufferObject ( fk_Dimension dim)

フレームバッファーオブジェクト (FBO) 初期化メソッド2

シェーダー内でフレームバッファーオブジェクト (FBO) を利用する際の初期化を行います。 このメソッドを呼ぶことで、 FBO にアクセスするシェーダープログラムを利用することができます。

引数
[in]dimFBO の横幅と縦幅を表す fk_Dimension^ 型インスタンス
参照
BindWindow(), FinalizeFrameBufferObject()
void FK_ShaderPlugin::fk_ShaderBinder::FinalizeFrameBufferObject ( )

フレームバッファーオブジェクト (FBO) 利用終了メソッド

フレームバッファーオブジェクト (FBO) の利用を終了します。

参照
InitializeFrameBufferObject(int, int), InitializeFrameBufferObject(fk_Dimension^)
void FK_ShaderPlugin::fk_ShaderBinder::BindWindow ( fk_IBindableDrawer^  window)

ウィンドウ連携設定メソッド

フレームバッファーオブジェクト (FBO) を処理するシェーダーの出力を、 ウィンドウに表示するよう連携する設定を行います。

引数
[in]windowFBO用シェーダーの出力を表示するウィンドウインスタンス
参照
InitializeFrameBufferObject(int, int), InitializeFrameBufferObject(fk_Dimension^), UnbindWindow()
void FK_ShaderPlugin::fk_ShaderBinder::UnbindWindow ( fk_IBindableDrawer^  window)

ウィンドウ連携解除メソッド

BindWindow() メソッドによって設定していた連携を解除します。

引数
[in]windowBindWindow() メソッドで連携設定を行っていたウィンドウインスタンス
参照
BindWindow()

プロパティ詳解

fk_ShaderProgram^ FK_ShaderPlugin::fk_ShaderBinder::Program

シェーダープログラムプロパティ

シェーダープログラムを設定します。 詳細は fk_ShaderProgram のマニュアルを参照して下さい。

fk_ShaderParameter^ FK_ShaderPlugin::fk_ShaderBinder::Parameter

シェーダーパラメータープロパティ

シェーダープログラムに渡すパラメーターを設定します。 詳細は fk_ShaderParameter のマニュアルを参照して下さい。