FineKernelToolKit  3.1.0
公開メンバ関数 | プロパティ | 全メンバ一覧
FK_ShaderPlugin::fk_ShaderParameter クラス

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

公開メンバ関数

 fk_ShaderParameter ()
 コンストラクタ [詳解]
 
virtual ~fk_ShaderParameter ()
 デストラクタ [詳解]
 
void Register (String^ name, float value)
 float 型 uniform 変数設定メソッド [詳解]
 
void Register (String^ name, array< float >^value)
 float 配列型 uniform 変数設定メソッド [詳解]
 
void Register (String^ name, int value)
 int 型 uniform 変数設定メソッド [詳解]
 
void Register (String^ name, array< int >^value)
 int 配列型 uniform 変数設定メソッド [詳解]
 
void Register (String^ name, fk_Matrix^ value)
 行列型 uniform 変数設定メソッド [詳解]
 
bool Unregister (String^ name)
 uniform 変数解除メソッド [詳解]
 
void AddAttribute (String^ name, int dim, array< float >^value)
 float 配列型 attribute 変数設定メソッド [詳解]
 
void AddAttribute (String^ name, int dim, array< int >^value)
 int 配列型 attribute 変数設定メソッド [詳解]
 
bool RemoveAttribute (String^ name)
 attribute 変数解除メソッド [詳解]
 
bool AttachTexture (int unit, fk_TextureSampler^ texture)
 参照テクスチャ設定メソッド [詳解]
 
bool DetachTexture (int unit)
 参照テクスチャ解除メソッド [詳解]
 

プロパティ

String^  LastError [get]
 エラーメッセージプロパティ [詳解]
 

詳解

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

このクラスは、シェーダープログラムに対してパラメーターを渡すための機能を提供します。 本クラスは単独のインスタンスとしてはあまり利用用途はなく、 fk_ShaderBinder クラスの fk_ShaderBinder.Parameter プロパティとして利用することがほとんどです。

参照
fk_ShaderBinder, fk_ShaderParameter, fk_TextureSampler

構築子と解体子

FK_ShaderPlugin::fk_ShaderParameter::fk_ShaderParameter ( )

コンストラクタ

virtual FK_ShaderPlugin::fk_ShaderParameter::~fk_ShaderParameter ( )
virtual

デストラクタ

関数詳解

void FK_ShaderPlugin::fk_ShaderParameter::Register ( String^  name,
float  value 
)

float 型 uniform 変数設定メソッド

このメソッドは、バーテックスシェーダーやフラグメントシェーダーに対し、 float 型の uniform 変数を渡す設定を行います。

引数
[in]nameGLSL コード内での変数名
[in]valueuniform 変数に渡す値
void FK_ShaderPlugin::fk_ShaderParameter::Register ( String^  name,
array< float >^  value 
)

float 配列型 uniform 変数設定メソッド

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

引数
[in]nameGLSL コード内での変数名
[in]valueuniform 変数に渡す配列
void FK_ShaderPlugin::fk_ShaderParameter::Register ( String^  name,
int  value 
)

int 型 uniform 変数設定メソッド

このメソッドは、バーテックスシェーダーやフラグメントシェーダーに対し、 int 型の uniform 変数を渡す設定を行います。

引数
[in]nameGLSL コード内での変数名
[in]valueuniform 変数に渡す値
void FK_ShaderPlugin::fk_ShaderParameter::Register ( String^  name,
array< int >^  value 
)

int 配列型 uniform 変数設定メソッド

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

引数
[in]nameGLSL コード内での変数名
[in]valueuniform 変数に渡す配列
void FK_ShaderPlugin::fk_ShaderParameter::Register ( String^  name,
fk_Matrix value 
)

行列型 uniform 変数設定メソッド

このメソッドは、バーテックスシェーダーやフラグメントシェーダーに対し、 行列型の uniform 変数を渡す設定を行います。 このメソッドの引数は fk_Matrix 型変数となり、 GLSL コード内での型は mat4 となります。

引数
[in]nameGLSL コード内での変数名
[in]valueuniform 変数に渡す行列
bool FK_ShaderPlugin::fk_ShaderParameter::Unregister ( String^  name)

uniform 変数解除メソッド

各種 Register() メソッドで設定した uniform 変数を解除します。

引数
[in]nameGLSL コード内での変数名
戻り値
uniform 変数が存在していた場合は解除し true を返します。 変数が存在していなかった場合は false を返します。
void FK_ShaderPlugin::fk_ShaderParameter::AddAttribute ( String^  name,
int  dim,
array< float >^  value 
)

float 配列型 attribute 変数設定メソッド

このメソッドは、 バーテックスシェーダーに対し float 配列型の attribute 変数を渡す設定を行います。 1つの頂点に対して渡せる要素数は 1 から 4 までで、第2引数で指定します。 value に渡す配列のサイズは dim * 頂点数である必要があります。 GLSL 内での型は、要素数が 1 から順に float, vec2, vec3, vec4 となります。

引数
[in]nameGLSL コード内での変数名
[in]dimattribute 変数の要素数
[in]valueattribute 変数に渡す値の配列
void FK_ShaderPlugin::fk_ShaderParameter::AddAttribute ( String^  name,
int  dim,
array< int >^  value 
)

int 配列型 attribute 変数設定メソッド

このメソッドは、 バーテックスシェーダーに対し int 配列型の attribute 変数を渡す設定を行います。 1つの頂点に対して渡せる要素数は 1 から 4 までで、第2引数で指定します。 value に渡す配列のサイズは dim * 頂点数である必要があります。 GLSL 内での型は、要素数が 1 から順に int, ivec2, ivec3, ivec4 となります。

引数
[in]nameGLSL コード内での変数名
[in]dimattribute 変数の要素数
[in]valueattribute 変数に渡す値の配列
bool FK_ShaderPlugin::fk_ShaderParameter::RemoveAttribute ( String^  name)

attribute 変数解除メソッド

各種 AddAttribute() メソッドで設定した attribute 変数を解除します。

引数
[in]nameGLSL コード内での変数名
戻り値
attribute 変数が存在していた場合は解除し true を返します。 変数が存在していなかった場合は false を返します。
bool FK_ShaderPlugin::fk_ShaderParameter::AttachTexture ( int  unit,
fk_TextureSampler texture 
)

参照テクスチャ設定メソッド

GLSLコード内の参照テクスチャを設定します。 ここで設定したテクスチャは、 GLSL内では sampler2D 型 uniform 変数として扱われます。 複数のテクスチャを設定した場合、 GLSLコード内で変数を宣言した順番に割り振られます。

引数
[in]unitシェーダー内でのテクスチャ ID を指定します。 0 から 31 までを指定することができます。 既に使用している ID を用いた場合、 前にその ID を用いていたテクスチャの設定は破棄されます。 GLSLコード内では、複数の sampler2D 変数に対し ID の若い順に割り振られます。
[in]textureテクスチャオブジェクト。詳細は fk_TextureSampler を参照して下さい。
戻り値
設定に成功すれば true を、失敗すれば false を返します。
bool FK_ShaderPlugin::fk_ShaderParameter::DetachTexture ( int  unit)

参照テクスチャ解除メソッド

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

引数
[in]unitテクスチャ ID
戻り値
解除に成功すれば true を、失敗すれば false を返します。

プロパティ詳解

String^ FK_ShaderPlugin::fk_ShaderParameter::LastError
get

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

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