FineKernelToolKit: FK::fk_ShaderBinder クラス

FineKernelToolKit 4.3.0

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

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

`#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種類となります。

- シェーダープログラム管理:
  getProgram() によって得られる fk_ShaderProgram 型インスタンスによって、 シェーダープログラムの設定を行います。
- シェーダーパラメーター管理:
  getParamete() によって得られる fk_ShaderParameter 型インスタンスによって、 C++ 側からシェーダー側に渡すパラメーターを設定します。
- モデル管理:
  シェーダーを適用するモデルを bindModel() 関数 (FBO へ適用する場合は initializeFrameBufferObject() 関数) を用いて設定します。

シェーダープログラムの設定については 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] | width | FBO の横幅
  [in] | height | FBO の縦幅

参照
  bindWindow(), finalizeFrameBufferObject()

## ◆ initializeFrameBufferObject() [2/2]

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

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

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

引数

  [in] | dim | FBO の横幅と縦幅を表す fk_Dimension 型インスタンス

参照
  bindWindow(), finalizeFrameBufferObject()

## ◆ bindWindow() [1/2]

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

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

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

引数

  [in] | window | FBO用シェーダーの出力を表示するウィンドウの 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] | window | FBO用シェーダーの出力を表示するウィンドウの 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] | window | bindWindow() メソッドで連携設定を行っていたウィンドウの fk_Window 型インスタンス

参照
  bindWindow(fk_Window *), unbindWindow(fk_AppWindow *)

## ◆ unbindWindow() [2/2]

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

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

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

引数

  [in] | window | bindWindow() メソッドで連携設定を行っていたウィンドウの fk_AppWindow 型インスタンス

参照
  bindWindow(fk_AppWindow *), unbindWindow(fk_Window *)