FineKernelToolKit: FK::fk_ShaderParameter クラス

FineKernelToolKit 4.3.0

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

シェーダーパラメーター管理クラス [詳解]

`#include <FK/ShaderParameter.h>`

## 公開メンバ関数

| fk_ShaderParameter ()
| コンストラクタ
virtual | ~fk_ShaderParameter ()
| デストラクタ
std::string | getLastError (void)
| エラーメッセージプロパティ
void | setRegister (std::string name, float value, std::string="")
| float 型 uniform 変数設定関数
void | setRegister (std::string name, std::vector< float > *value, std::string="")
| float 配列型 uniform 変数設定関数
void | setRegister (std::string name, int value, std::string="")
| int 型 uniform 変数設定関数
void | setRegister (std::string name, std::vector< int > *value, std::string="")
| int 配列型 uniform 変数設定関数
void | setRegister (std::string name, fk_Vector *value, std::string="")
| fk_Vector 型 uniform 変数設定関数
void | setRegister (std::string name, fk_HVector *value, std::string="")
| fk_HVector 型 uniform 変数設定関数
void | setRegister (std::string name, fk_Matrix *value, std::string="")
| fk_Matrix 型 uniform 変数設定関数
bool | removeRegister (std::string name)
| uniform 変数解除関数
void | reserveAttribute (std::string name)
| attribute 変数予約関数
bool | attachTexture (int unit, fk_Texture *texture)
| 参照テクスチャ設定関数
bool | detachTexture (int unit)
| 参照テクスチャ解除関数
void | clearTexture (void)
| 参照テクスチャ全解除関数

## 詳解

シェーダーパラメーター管理クラス

このクラスは、シェーダープログラムに対してパラメーターを渡すための機能を提供します。 本クラスの機能は、 fk_ShaderBinder クラスの fk_ShaderBinder::getParameter() によってインスタンスを得ることで利用します。

参照
  fk_ShaderBinder, fk_ShaderProgram, fk_Texture

## 構築子と解体子

## ◆ fk_ShaderParameter()

FK::fk_ShaderParameter::fk_ShaderParameter | ( |  | ) |

コンストラクタ

## ◆ ~fk_ShaderParameter()

virtual FK::fk_ShaderParameter::~fk_ShaderParameter | ( |  | ) |

virtual

デストラクタ

## 関数詳解

## ◆ getLastError()

std::string FK::fk_ShaderParameter::getLastError | ( | void |  | ) |

エラーメッセージプロパティ

シェーダーに関するエラーが生じた場合に、 エラーメッセージの文字列をこのプロパティから取得できます。

## ◆ setRegister() [1/7]

void FK::fk_ShaderParameter::setRegister | ( | std::string | name,
|  | float | value,
|  | std::string | = "" )

float 型 uniform 変数設定関数

この関数は、シェーダーに対し float 型の uniform 変数を渡す設定を行います。

引数

  [in] | name | GLSL コード内での変数名
  [in] | value | uniform 変数に渡す値

## ◆ setRegister() [2/7]

void FK::fk_ShaderParameter::setRegister | ( | std::string | name,
|  | std::vector< float > * | value,
|  | std::string | = "" )

float 配列型 uniform 変数設定関数

このメソッドは、シェーダーに対し float 配列型の uniform 変数を渡す設定を行います。 配列のサイズは 1 から 4 までで、 GLSL 内での型は配列サイズが 1 から順に float, vec2, vec3, vec4 となります。

引数

  [in] | name | GLSL コード内での変数名
  [in] | value | uniform 変数に渡す配列

## ◆ setRegister() [3/7]

void FK::fk_ShaderParameter::setRegister | ( | std::string | name,
|  | int | value,
|  | std::string | = "" )

int 型 uniform 変数設定関数

このメソッドは、シェーダーに対し int 型の uniform 変数を渡す設定を行います。

引数

  [in] | name | GLSL コード内での変数名
  [in] | value | uniform 変数に渡す値

## ◆ setRegister() [4/7]

void FK::fk_ShaderParameter::setRegister | ( | std::string | name,
|  | std::vector< int > * | value,
|  | std::string | = "" )

int 配列型 uniform 変数設定関数

このメソッドは、シェーダーに対し int 配列型の uniform 変数を渡す設定を行います。 配列のサイズは 1 から 4 までで、 GLSL 内での型は配列サイズが 1 から順に int, ivec2, ivec3, ivec4 となります。

引数

  [in] | name | GLSL コード内での変数名
  [in] | value | uniform 変数に渡す配列

## ◆ setRegister() [5/7]

void FK::fk_ShaderParameter::setRegister | ( | std::string | name,
|  | fk_Vector * | value,
|  | std::string | = "" )

fk_Vector 型 uniform 変数設定関数

このメソッドは、シェーダーに対し fk_Vector 型の uniform 変数を渡す設定を行います。 GLSL コード内での型は vec3 となります。

引数

  [in] | name | GLSL コード内での変数名
  [in] | value | uniform 変数に渡す行列

## ◆ setRegister() [6/7]

void FK::fk_ShaderParameter::setRegister | ( | std::string | name,
|  | fk_HVector * | value,
|  | std::string | = "" )

fk_HVector 型 uniform 変数設定関数

このメソッドは、シェーダーに対し fk_HVector 型の uniform 変数を渡す設定を行います。 GLSL コード内での型は vec4 となります。

引数

  [in] | name | GLSL コード内での変数名
  [in] | value | uniform 変数に渡す行列

## ◆ setRegister() [7/7]

void FK::fk_ShaderParameter::setRegister | ( | std::string | name,
|  | fk_Matrix * | value,
|  | std::string | = "" )

fk_Matrix 型 uniform 変数設定関数

このメソッドは、シェーダーに対し fk_Matrix 型の uniform 変数を渡す設定を行います。 GLSL コード内での型は mat4 となります。

引数

  [in] | name | GLSL コード内での変数名
  [in] | value | uniform 変数に渡す行列

## ◆ removeRegister()

bool FK::fk_ShaderParameter::removeRegister | ( | std::string | name | ) |

uniform 変数解除関数

各種 setRegister() 関数で設定した uniform 変数を解除します。

引数

  [in] | name | GLSL コード内での変数名

戻り値
  uniform 変数が存在していた場合は解除し true を返します。 変数が存在していなかった場合は false を返します。

## ◆ reserveAttribute()

void FK::fk_ShaderParameter::reserveAttribute | ( | std::string | name | ) |

attribute 変数予約関数

attribute 変数用の名前を予約します。

引数

  [in] | name | GLSL コード内での変数名

## ◆ attachTexture()

bool FK::fk_ShaderParameter::attachTexture | ( | int | unit,
|  | fk_Texture * | texture )

参照テクスチャ設定関数

GLSLコード内の参照テクスチャを設定します。 ここで設定したテクスチャは、 GLSL内では sampler2D 型 uniform 変数配列である fk_TexID[] として扱われます。

引数

  [in] | unit | シェーダー内でのテクスチャ ID を指定します。 1 から 7 までを指定することができます。 この数値が、GLSL内での fk_TexID[unit] に対応することになります。 既に使用している ID を用いた場合、 前にその ID を用いていたテクスチャの設定は破棄されます。
  [in] | texture | テクスチャオブジェクト。詳細は fk_Texture を参照して下さい。

戻り値
  設定に成功すれば true を、失敗すれば false を返します。

## ◆ detachTexture()

bool FK::fk_ShaderParameter::detachTexture | ( | int | unit | ) |

参照テクスチャ解除関数

attachTexture() メソッドにて設定した参照テクスチャを解除します。

引数

  [in] | unit | テクスチャ ID

戻り値
  解除に成功すれば true を、失敗すれば false を返します。

## ◆ clearTexture()

void FK::fk_ShaderParameter::clearTexture | ( | void |  | ) |

参照テクスチャ全解除関数

attachTexture() メソッドにて設定した参照テクスチャを全て解除します。