FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 全メンバ一覧
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]nameGLSL コード内での変数名
[in]valueuniform 変数に渡す値

◆ 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]nameGLSL コード内での変数名
[in]valueuniform 変数に渡す配列

◆ setRegister() [3/7]

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

int 型 uniform 変数設定関数

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

引数
[in]nameGLSL コード内での変数名
[in]valueuniform 変数に渡す値

◆ 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]nameGLSL コード内での変数名
[in]valueuniform 変数に渡す配列

◆ 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]nameGLSL コード内での変数名
[in]valueuniform 変数に渡す行列

◆ 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]nameGLSL コード内での変数名
[in]valueuniform 変数に渡す行列

◆ 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]nameGLSL コード内での変数名
[in]valueuniform 変数に渡す行列

◆ removeRegister()

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

uniform 変数解除関数

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

引数
[in]nameGLSL コード内での変数名
戻り値
uniform 変数が存在していた場合は解除し true を返します。 変数が存在していなかった場合は false を返します。

◆ reserveAttribute()

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

attribute 変数予約関数

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

引数
[in]nameGLSL コード内での変数名

◆ 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() メソッドにて設定した参照テクスチャを全て解除します。