FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | プロパティ | 全メンバ一覧
FK_CLI::fk_ShaderProgram クラス

シェーダープログラム格納クラス [詳解]

#include <CLI/FK_CLI/include/ShaderProgram_CLI.h>

公開メンバ関数

 fk_ShaderProgram ()
 コンストラクタ
 
 ~fk_ShaderProgram ()
 デストラクタ
 
 !fk_ShaderProgram ()
 ファイナライザ
 
bool LoadVertexShader (String^ fileName)
 バーテックスシェーダーコード入力メソッド
 
bool LoadFragmentShader (String^ fileName)
 フラグメントシェーダーコード入力メソッド
 
bool LoadGeometryShader (String^ fileName)
 ジオメトリシェーダーコード入力メソッド
 
bool LoadTessCtrlShader (String^ fileName)
 テッセレーション制御シェーダーコード入力メソッド
 
bool LoadTessEvalShader (String^ fileName)
 テッセレーション評価シェーダーコード入力メソッド
 
bool Validate (void)
 シェーダープログラムコンパイルメソッド
 
bool Link (void)
 シェーダープログラムリンクメソッド
 

プロパティ

String^ VertexShaderSource [get, set]
 バーテックスシェーダーコードプロパティ
 
String^ FragmentShaderSource [get, set]
 フラグメントシェーダーコードプロパティ
 
String^ GeometryShaderSource [get, set]
 ジオメトリシェーダーコードプロパティ
 
String^ TessCtrlShaderSource [get, set]
 テッセレーション制御コードプロパティ
 
String^ TessEvalShaderSource [get, set]
 テッセレーション評価シェーダーコードプロパティ
 
UInt32 ProgramID [get]
 IDプロパティ
 
String^ LastError [get]
 エラーメッセージプロパティ
 

詳解

シェーダープログラム格納クラス

このクラスは、シェーダーのプログラムソースを格納するための機能を提供します。 インスタンス内部でバーテックス(頂点)シェーダーと フラグメント(ピクセル)シェーダーのソースコードを管理します。 本クラスは単独のインスタンスとしてはあまり利用用途はなく、 fk_ShaderBinderfk_ShaderBinder.Program プロパティとして利用することがほとんどです。

参照
fk_ShaderBinder, fk_ShaderParameter, fk_TextureSampler

構築子と解体子

◆ fk_ShaderProgram()

FK_CLI::fk_ShaderProgram::fk_ShaderProgram ( )

コンストラクタ

◆ ~fk_ShaderProgram()

FK_CLI::fk_ShaderProgram::~fk_ShaderProgram ( )

デストラクタ

◆ !fk_ShaderProgram()

FK_CLI::fk_ShaderProgram::!fk_ShaderProgram ( )

ファイナライザ

関数詳解

◆ LoadVertexShader()

bool FK_CLI::fk_ShaderProgram::LoadVertexShader ( String^  fileName)

バーテックスシェーダーコード入力メソッド

バーテックス(頂点)シェーダーのコードが記述されているファイルから、 コードを読み込みます。 読み込みに成功した場合、 fk_ShaderProgram.VertexShaderSource プロパティにその内容が格納されます。 なお、コードに誤りがあった場合でも、この時点では false を返しません。 実際に利用するには、 Validate() メソッドを呼ぶ必要があります。

引数
[in]fileNameファイル名
戻り値
入力に成功すれば true を、失敗すれば false を返します。

◆ LoadFragmentShader()

bool FK_CLI::fk_ShaderProgram::LoadFragmentShader ( String^  fileName)

フラグメントシェーダーコード入力メソッド

フラグメント(ピクセル)シェーダーのコードが記述されているファイルから、 コードを読み込みます。 読み込みに成功した場合、 fk_ShaderProgram.FragmentShaderSource プロパティにその内容が格納されます。 なお、コードに誤りがあった場合でも、この時点では false を返しません。 実際に利用するには、 Validate() メソッドを呼ぶ必要があります。

引数
[in]fileNameファイル名
戻り値
入力に成功すれば true を、失敗すれば false を返します。

◆ LoadGeometryShader()

bool FK_CLI::fk_ShaderProgram::LoadGeometryShader ( String^  fileName)

ジオメトリシェーダーコード入力メソッド

ジオメトリシェーダーのコードが記述されているファイルから、 コードを読み込みます。 読み込みに成功した場合、 fk_ShaderProgram.GeometryShaderSource プロパティにその内容が格納されます。 なお、コードに誤りがあった場合でも、この時点では false を返しません。 実際に利用するには、 Validate() メソッドを呼ぶ必要があります。

引数
[in]fileNameファイル名
戻り値
入力に成功すれば true を、失敗すれば false を返します。

◆ LoadTessCtrlShader()

bool FK_CLI::fk_ShaderProgram::LoadTessCtrlShader ( String^  fileName)

テッセレーション制御シェーダーコード入力メソッド

テッセレーション評価シェーダーのコードが記述されているファイルから、 コードを読み込みます。 読み込みに成功した場合、 fk_ShaderProgram.TessCtrlShaderSource プロパティにその内容が格納されます。 なお、コードに誤りがあった場合でも、この時点では false を返しません。 実際に利用するには、 Validate() 関数を呼ぶ必要があります。

引数
[in]fileNameファイル名
戻り値
入力に成功すれば true を、失敗すれば false を返します。

◆ LoadTessEvalShader()

bool FK_CLI::fk_ShaderProgram::LoadTessEvalShader ( String^  fileName)

テッセレーション評価シェーダーコード入力メソッド

テッセレーション評価シェーダーのコードが記述されているファイルから、 コードを読み込みます。 読み込みに成功した場合、 fk_ShaderProgram.TessEvalShaderSource プロパティにその内容が格納されます。 なお、コードに誤りがあった場合でも、この時点では false を返しません。 実際に利用するには、 Validate() 関数を呼ぶ必要があります。

引数
[in]fileNameファイル名
戻り値
入力に成功すれば true を、失敗すれば false を返します。

◆ Validate()

bool FK_CLI::fk_ShaderProgram::Validate ( void  )

シェーダープログラムコンパイルメソッド

格納されているシェーダーコードのコンパイルを行います。

戻り値
コンパイルに成功すれば true を、失敗すれば false を返します。 失敗した場合は、 fk_ShaderProgram.LastError プロパティでエラーメッセージを参照できます。

◆ Link()

bool FK_CLI::fk_ShaderProgram::Link ( void  )

シェーダープログラムリンクメソッド

コンパイル後、プログラムのリンクを実行します。 Attribute 変数等の定義はこの前に行っておく必要があります。

戻り値
リンクに成功すれば true を、失敗すれば false を返します。 失敗した場合は、 fk_ShaderProgram.LastError でエラーメッセージを取得できます。

プロパティ詳解

◆ VertexShaderSource

String^ FK_CLI::fk_ShaderProgram::VertexShaderSource
getset

バーテックスシェーダーコードプロパティ

バーテックス(頂点)シェーダーのコードの設定や取得を行います。 バーテックスシェーダーのコードを設定する際は、 本プロパティに直接コードを書き込むか、 LoadVertexShader() メソッドでコードが格納されているファイル名を指定して下さい。

◆ FragmentShaderSource

String^ FK_CLI::fk_ShaderProgram::FragmentShaderSource
getset

フラグメントシェーダーコードプロパティ

フラグメント(ピクセル)シェーダーのコードの設定や取得を行います。 フラグメントシェーダーのコードを設定する際は、 本プロパティに直接コードを書き込むか、 LoadVertexShader() メソッドでコードが格納されているファイル名を指定して下さい。

◆ GeometryShaderSource

String^ FK_CLI::fk_ShaderProgram::GeometryShaderSource
getset

ジオメトリシェーダーコードプロパティ

ジオメトリシェーダーのコードの設定や取得を行います。 ジオメトリシェーダーのコードを設定する際は、 本プロパティに直接コードを書き込むか、 LoadGeometryShader() メソッドでコードが格納されているファイル名を指定して下さい。

◆ TessCtrlShaderSource

String^ FK_CLI::fk_ShaderProgram::TessCtrlShaderSource
getset

テッセレーション制御コードプロパティ

テッセレーション制御シェーダーのコードの設定や取得を行います。 テッセレーション制御シェーダーのコードを設定する際は、 本プロパティに直接コードを書き込むか、 LoadTessCtrlShader() 関数でコードが格納されているファイル名を指定して下さい。

◆ TessEvalShaderSource

String^ FK_CLI::fk_ShaderProgram::TessEvalShaderSource
getset

テッセレーション評価シェーダーコードプロパティ

テッセレーション評価シェーダーのコードの設定や取得を行います。 テッセレーション評価シェーダーのコードを設定する際は、 本プロパティに直接コードを書き込むか、 LoadTessEvalShader() 関数でコードが格納されているファイル名を指定して下さい。

◆ ProgramID

UInt32 FK_CLI::fk_ShaderProgram::ProgramID
get

IDプロパティ

GPU からシェーダープログラムに割り振られた ID を取得します。

覚え書き
この ID は、具体的には OpenGL の関数である glCreateProgram() による返値のことです。

◆ LastError

String^ FK_CLI::fk_ShaderProgram::LastError
get

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

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