FineKernelToolKit 4.2.13
|
シェーダープログラム格納クラス [詳解]
#include <FK/ShaderProgram.h>
公開メンバ関数 | |
fk_ShaderProgram (void) | |
コンストラクタ | |
~fk_ShaderProgram () | |
デストラクタ | |
GLuint | getProgramID (void) |
ID取得関数 | |
std::string | getLastError (void) |
エラーメッセージ取得関数 | |
bool | loadVertexShader (std::string fileName) |
バーテックスシェーダーコード入力関数 | |
bool | loadFragmentShader (std::string fileName) |
フラグメントシェーダーコード入力関数 | |
bool | loadGeometryShader (std::string fileName) |
ジオメトリシェーダーコード入力関数 | |
bool | loadTessCtrlShader (std::string fileName) |
テッセレーション制御シェーダーコード入力関数 | |
bool | loadTessEvalShader (std::string fileName) |
テッセレーション評価シェーダーコード入力関数 | |
bool | validate (void) |
シェーダープログラムコンパイルメソッド | |
bool | link (void) |
シェーダープログラムリンクメソッド | |
公開変数類 | |
std::string | vertexShaderSource |
バーテックスシェーダーコードメンバー | |
std::string | fragmentShaderSource |
フラグメントシェーダーコードメンバー | |
std::string | geometryShaderSource |
ジオメトリシェーダーコードメンバー | |
std::string | tessCtrlShaderSource |
テッセレーション制御コードメンバー | |
std::string | tessEvalShaderSource |
テッセレーション評価シェーダーコードメンバー | |
シェーダープログラム格納クラス
このクラスは、シェーダーのプログラムソースを格納するための機能を提供します。 インスタンス内部でバーテックス(頂点)シェーダーと フラグメント(ピクセル)シェーダーのソースコードを管理します。 本クラスは単独のインスタンスとしてはあまり利用用途はなく、 fk_ShaderBinder::getProgram() を介して利用することがほとんどです。
FK::fk_ShaderProgram::fk_ShaderProgram | ( | void | ) |
コンストラクタ
FK::fk_ShaderProgram::~fk_ShaderProgram | ( | ) |
デストラクタ
GLuint FK::fk_ShaderProgram::getProgramID | ( | void | ) |
ID取得関数
GPU からシェーダープログラムに割り振られた ID を取得します。
std::string FK::fk_ShaderProgram::getLastError | ( | void | ) |
エラーメッセージ取得関数
シェーダーに関するエラーが生じた場合に、 エラーメッセージの文字列をこの関数で取得します。
bool FK::fk_ShaderProgram::loadVertexShader | ( | std::string | fileName | ) |
バーテックスシェーダーコード入力関数
バーテックス(頂点)シェーダーのコードが記述されているファイルから、 コードを読み込みます。 読み込みに成功した場合、 fk_ShaderProgram::vertexShaderSource メンバーにその内容が格納されます。 なお、コードに誤りがあった場合でも、この時点では false を返しません。 実際に利用するには、 validate() 関数を呼ぶ必要があります。
[in] | fileName | ファイル名 |
bool FK::fk_ShaderProgram::loadFragmentShader | ( | std::string | fileName | ) |
フラグメントシェーダーコード入力関数
フラグメント(ピクセル)シェーダーのコードが記述されているファイルから、 コードを読み込みます。 読み込みに成功した場合、 fk_ShaderProgram::fragmentShaderSource メンバーにその内容が格納されます。 なお、コードに誤りがあった場合でも、この時点では false を返しません。 実際に利用するには、 validate() 関数を呼ぶ必要があります。
[in] | fileName | ファイル名 |
bool FK::fk_ShaderProgram::loadGeometryShader | ( | std::string | fileName | ) |
ジオメトリシェーダーコード入力関数
ジオメトリシェーダーのコードが記述されているファイルから、 コードを読み込みます。 読み込みに成功した場合、 fk_ShaderProgram::geometryShaderSource メンバーにその内容が格納されます。 なお、コードに誤りがあった場合でも、この時点では false を返しません。 実際に利用するには、 validate() 関数を呼ぶ必要があります。
[in] | fileName | ファイル名 |
bool FK::fk_ShaderProgram::loadTessCtrlShader | ( | std::string | fileName | ) |
テッセレーション制御シェーダーコード入力関数
テッセレーション評価シェーダーのコードが記述されているファイルから、 コードを読み込みます。 読み込みに成功した場合、 fk_ShaderProgram::tessCtrlShaderSource メンバーにその内容が格納されます。 なお、コードに誤りがあった場合でも、この時点では false を返しません。 実際に利用するには、 validate() 関数を呼ぶ必要があります。
[in] | fileName | ファイル名 |
bool FK::fk_ShaderProgram::loadTessEvalShader | ( | std::string | fileName | ) |
テッセレーション評価シェーダーコード入力関数
テッセレーション評価シェーダーのコードが記述されているファイルから、 コードを読み込みます。 読み込みに成功した場合、 fk_ShaderProgram::tessEvalShaderSource メンバーにその内容が格納されます。 なお、コードに誤りがあった場合でも、この時点では false を返しません。 実際に利用するには、 validate() 関数を呼ぶ必要があります。
[in] | fileName | ファイル名 |
bool FK::fk_ShaderProgram::validate | ( | void | ) |
シェーダープログラムコンパイルメソッド
fk_ShaderProgram::vertexShaderSource, fk_ShaderProgram::fragmentShaderSource, fk_ShaderProgram::geometryShaderSource, fk_ShaderProgram::tessCtrlShaderSource, fk_ShaderProgram::tessEvalShaderSource に格納されているコードのコンパイルを行います。
bool FK::fk_ShaderProgram::link | ( | void | ) |
シェーダープログラムリンクメソッド
コンパイル後、プログラムのリンクを実行します。 Attribute 変数等の定義はこの前に行っておく必要があります。
std::string FK::fk_ShaderProgram::vertexShaderSource |
バーテックスシェーダーコードメンバー
バーテックス(頂点)シェーダーのコードの設定や取得を行います。 バーテックスシェーダーのコードを設定する際は、 本メンバーに直接コードを書き込むか、 loadVertexShader() 関数でコードが格納されているファイル名を指定して下さい。
std::string FK::fk_ShaderProgram::fragmentShaderSource |
フラグメントシェーダーコードメンバー
フラグメント(ピクセル)シェーダーのコードの設定や取得を行います。 フラグメントシェーダーのコードを設定する際は、 本メンバーに直接コードを書き込むか、 loadFragmentShader() 関数でコードが格納されているファイル名を指定して下さい。
std::string FK::fk_ShaderProgram::geometryShaderSource |
ジオメトリシェーダーコードメンバー
ジオメトリシェーダーのコードの設定や取得を行います。 ジオメトリシェーダーのコードを設定する際は、 本メンバーに直接コードを書き込むか、 loadGeometryShader() 関数でコードが格納されているファイル名を指定して下さい。
std::string FK::fk_ShaderProgram::tessCtrlShaderSource |
テッセレーション制御コードメンバー
テッセレーション制御シェーダーのコードの設定や取得を行います。
テッセレーション制御シェーダーのコードを設定する際は、 本メンバーに直接コードを書き込むか、 loadTessCtrlShader() 関数でコードが格納されているファイル名を指定して下さい。
std::string FK::fk_ShaderProgram::tessEvalShaderSource |
テッセレーション評価シェーダーコードメンバー
テッセレーション評価シェーダーのコードの設定や取得を行います。 テッセレーション評価シェーダーのコードを設定する際は、 本メンバーに直接コードを書き込むか、 loadTessEvalShader() 関数でコードが格納されているファイル名を指定して下さい。