|
FineKernelToolKit 4.2.13
|
シェーダープログラム統括クラス [詳解]
#include <FK/ShaderBinder.h>
公開メンバ関数 | |
| fk_ShaderBinder (void) | |
| コンストラクタ1 | |
| ~fk_ShaderBinder () | |
| デストラクタ | |
| fk_ShaderProgram * | getProgram (void) |
| シェーダープログラム参照関数 | |
| fk_ShaderParameter * | getParameter (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::fk_ShaderBinder::fk_ShaderBinder | ( | void | ) |
コンストラクタ1
インスタンスを生成します。 シェーダープログラムおよびシェーダーパラメーターは何も設定されません。
| FK::fk_ShaderBinder::~fk_ShaderBinder | ( | ) |
デストラクタ
| fk_ShaderProgram * FK::fk_ShaderBinder::getProgram | ( | void | ) |
シェーダープログラム参照関数
シェーダープログラムを格納する、 fk_ShaderProgram 型インスタンスを参照します。 シェーダープログラムの設定はこのインスタンスを利用して行います。 詳細は fk_ShaderProgram のマニュアルを参照して下さい。
| fk_ShaderParameter * FK::fk_ShaderBinder::getParameter | ( | void | ) |
シェーダーパラメーター参照関数
シェーダーパラメーターを格納する、 fk_ShaderParameter 型インスタンスを参照します。 シェーダーへのパラメーターの設定はこのインスタンスを利用して行います。 詳細は fk_ShaderParametern のマニュアルを参照して下さい。
| void FK::fk_ShaderBinder::bindModel | ( | fk_Model * | model | ) |
シェーダーモデル連携設定関数
設定されているシェーダープログラムを適用するモデルを設定します。 1つの fk_ShaderBinder インスタンスによるプログラムを、 複数のモデルに対して適用することが可能です。 モデルへのシェーダー適用を外すには、 unbindModel() 関数を利用して下さい。
また、1つのモデルに対し、複数のシェーダーを適用することも可能です。 その場合は、 bindModel() によって適用した順番に処理がなされます。
| [in] | model | シェーダー適用モデルインスタンス |
| void FK::fk_ShaderBinder::unbindModel | ( | fk_Model * | model | ) |
| void FK::fk_ShaderBinder::initializeFrameBufferObject | ( | int | width, |
| int | height | ||
| ) |
フレームバッファーオブジェクト (FBO) 初期化関数1
シェーダー内でフレームバッファーオブジェクト (FBO) を利用する際の初期化を行います。 この関数を呼ぶことで、 FBO にアクセスするシェーダープログラムを利用することができます。
本関数を用いたあと、実際に画面に出力を行うには bindWindow() メソッドで連携を行う必要があります。
| [in] | width | FBO の横幅 |
| [in] | height | FBO の縦幅 |
| void FK::fk_ShaderBinder::initializeFrameBufferObject | ( | fk_Dimension | dim | ) |
フレームバッファーオブジェクト (FBO) 初期化関数2
シェーダー内でフレームバッファーオブジェクト (FBO) を利用する際の初期化を行います。 この関数を呼ぶことで、 FBO にアクセスするシェーダープログラムを利用することができます。
| [in] | dim | FBO の横幅と縦幅を表す fk_Dimension 型インスタンス |
| void FK::fk_ShaderBinder::bindWindow | ( | fk_Window * | window | ) |
ウィンドウ連携設定関数1
フレームバッファーオブジェクト (FBO) を処理するシェーダーの出力を、 ウィンドウに表示するよう連携する設定を行います。
| [in] | window | FBO用シェーダーの出力を表示するウィンドウの fk_Window 型インスタンス |
| void FK::fk_ShaderBinder::bindWindow | ( | fk_AppWindow * | window | ) |
ウィンドウ連携設定関数2
フレームバッファーオブジェクト (FBO) を処理するシェーダーの出力を、 ウィンドウに表示するよう連携する設定を行います。
| [in] | window | FBO用シェーダーの出力を表示するウィンドウの fk_AppWindow 型インスタンス |
| void FK::fk_ShaderBinder::unbindWindow | ( | fk_Window * | window | ) |
ウィンドウ連携解除メソッド1
bindWindow() メソッドによって設定していた連携を解除します。
| [in] | window | bindWindow() メソッドで連携設定を行っていたウィンドウの fk_Window 型インスタンス |
| void FK::fk_ShaderBinder::unbindWindow | ( | fk_AppWindow * | window | ) |
ウィンドウ連携解除メソッド2
bindWindow() メソッドによって設定していた連携を解除します。
| [in] | window | bindWindow() メソッドで連携設定を行っていたウィンドウの fk_AppWindow 型インスタンス |