FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 全メンバ一覧
FK::fk_ShaderBinder クラス

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

#include <FK/ShaderBinder.h>

公開メンバ関数

 fk_ShaderBinder (void)
 コンストラクタ1
 
 ~fk_ShaderBinder ()
 デストラクタ
 
fk_ShaderProgramgetProgram (void)
 シェーダープログラム参照関数
 
fk_ShaderParametergetParameter (void)
 シェーダーパラメーター参照関数
 
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 bindWindow (fk_Window *window)
 ウィンドウ連携設定関数1
 
void bindWindow (fk_AppWindow *window)
 ウィンドウ連携設定関数2
 
void unbindWindow (fk_Window *window)
 ウィンドウ連携解除メソッド1
 
void unbindWindow (fk_AppWindow *window)
 ウィンドウ連携解除メソッド2
 

詳解

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

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

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

シェーダープログラムの設定については fk_ShaderProgram を、 シェーダーに渡すパラメータ設定については fk_ShaderParameter を参照して下さい。

参照
fk_ShaderProgram, fk_ShaderParameter, fk_TextureSampler, fk_Model

構築子と解体子

◆ fk_ShaderBinder()

FK::fk_ShaderBinder::fk_ShaderBinder ( void  )

コンストラクタ1

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

◆ ~fk_ShaderBinder()

FK::fk_ShaderBinder::~fk_ShaderBinder ( )

デストラクタ

関数詳解

◆ getProgram()

fk_ShaderProgram * FK::fk_ShaderBinder::getProgram ( void  )

シェーダープログラム参照関数

シェーダープログラムを格納する、 fk_ShaderProgram 型インスタンスを参照します。 シェーダープログラムの設定はこのインスタンスを利用して行います。 詳細は fk_ShaderProgram のマニュアルを参照して下さい。

戻り値
現在設定されている fk_ShaderProgram 型インスタンス
参照
fk_ShaderProgram, setProgram()

◆ getParameter()

fk_ShaderParameter * FK::fk_ShaderBinder::getParameter ( void  )

シェーダーパラメーター参照関数

シェーダーパラメーターを格納する、 fk_ShaderParameter 型インスタンスを参照します。 シェーダーへのパラメーターの設定はこのインスタンスを利用して行います。 詳細は fk_ShaderParametern のマニュアルを参照して下さい。

戻り値
現在設定されている fk_ShaderParameter 型インスタンス
参照
fk_ShaderParameter, setParameter()

◆ bindModel()

void FK::fk_ShaderBinder::bindModel ( fk_Model model)

シェーダーモデル連携設定関数

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

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

引数
[in]modelシェーダー適用モデルインスタンス

◆ unbindModel()

void FK::fk_ShaderBinder::unbindModel ( fk_Model model)

シェーダーモデル連携解除関数

bindModel() 関数によってシェーダーを適用したモデルに対し、 適用を外します。

引数
[in]modelシェーダー適用済モデルインスタンス

◆ initializeFrameBufferObject() [1/2]

void FK::fk_ShaderBinder::initializeFrameBufferObject ( int  width,
int  height 
)

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

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

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

引数
[in]widthFBO の横幅
[in]heightFBO の縦幅
参照
bindWindow(), finalizeFrameBufferObject()

◆ initializeFrameBufferObject() [2/2]

void FK::fk_ShaderBinder::initializeFrameBufferObject ( fk_Dimension  dim)

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

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

引数
[in]dimFBO の横幅と縦幅を表す fk_Dimension 型インスタンス
参照
bindWindow(), finalizeFrameBufferObject()

◆ bindWindow() [1/2]

void FK::fk_ShaderBinder::bindWindow ( fk_Window window)

ウィンドウ連携設定関数1

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

引数
[in]windowFBO用シェーダーの出力を表示するウィンドウの fk_Window 型インスタンス
参照
initializeFrameBufferObject(int, int), initializeFrameBufferObject(fk_Dimension *), unbindWindow(fk_Window *), bindWindow(fk_AppWindow *)

◆ bindWindow() [2/2]

void FK::fk_ShaderBinder::bindWindow ( fk_AppWindow window)

ウィンドウ連携設定関数2

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

引数
[in]windowFBO用シェーダーの出力を表示するウィンドウの fk_AppWindow 型インスタンス
参照
initializeFrameBufferObject(int, int), initializeFrameBufferObject(fk_Dimension *), unbindWindow(fk_AppWindow *), bindWindow(fk_Window *)

◆ unbindWindow() [1/2]

void FK::fk_ShaderBinder::unbindWindow ( fk_Window window)

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

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

引数
[in]windowbindWindow() メソッドで連携設定を行っていたウィンドウの fk_Window 型インスタンス
参照
bindWindow(fk_Window *), unbindWindow(fk_AppWindow *)

◆ unbindWindow() [2/2]

void FK::fk_ShaderBinder::unbindWindow ( fk_AppWindow window)

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

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

引数
[in]windowbindWindow() メソッドで連携設定を行っていたウィンドウの fk_AppWindow 型インスタンス
参照
bindWindow(fk_AppWindow *), unbindWindow(fk_Window *)