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

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

#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_ShaderBinder, fk_ShaderParameter, fk_TextureSampler

構築子と解体子

◆ fk_ShaderProgram()

FK::fk_ShaderProgram::fk_ShaderProgram ( void  )

コンストラクタ

◆ ~fk_ShaderProgram()

FK::fk_ShaderProgram::~fk_ShaderProgram ( )

デストラクタ

関数詳解

◆ getProgramID()

GLuint FK::fk_ShaderProgram::getProgramID ( void  )

ID取得関数

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

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

◆ getLastError()

std::string FK::fk_ShaderProgram::getLastError ( void  )

エラーメッセージ取得関数

シェーダーに関するエラーが生じた場合に、 エラーメッセージの文字列をこの関数で取得します。

戻り値
エラーメッセージ文字列

◆ loadVertexShader()

bool FK::fk_ShaderProgram::loadVertexShader ( std::string  fileName)

バーテックスシェーダーコード入力関数

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

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

◆ loadFragmentShader()

bool FK::fk_ShaderProgram::loadFragmentShader ( std::string  fileName)

フラグメントシェーダーコード入力関数

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

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

◆ loadGeometryShader()

bool FK::fk_ShaderProgram::loadGeometryShader ( std::string  fileName)

ジオメトリシェーダーコード入力関数

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

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

◆ loadTessCtrlShader()

bool FK::fk_ShaderProgram::loadTessCtrlShader ( std::string  fileName)

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

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

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

◆ loadTessEvalShader()

bool FK::fk_ShaderProgram::loadTessEvalShader ( std::string  fileName)

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

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

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

◆ validate()

bool FK::fk_ShaderProgram::validate ( void  )

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

fk_ShaderProgram::vertexShaderSource, fk_ShaderProgram::fragmentShaderSource, fk_ShaderProgram::geometryShaderSource, fk_ShaderProgram::tessCtrlShaderSource, fk_ShaderProgram::tessEvalShaderSource に格納されているコードのコンパイルを行います。

戻り値
コンパイルに成功すれば true を、失敗すれば false を返します。 失敗した場合は、 getLastError() でエラーメッセージを取得できます。

◆ link()

bool FK::fk_ShaderProgram::link ( void  )

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

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

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

メンバ詳解

◆ vertexShaderSource

std::string FK::fk_ShaderProgram::vertexShaderSource

バーテックスシェーダーコードメンバー

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

◆ fragmentShaderSource

std::string FK::fk_ShaderProgram::fragmentShaderSource

フラグメントシェーダーコードメンバー

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

◆ geometryShaderSource

std::string FK::fk_ShaderProgram::geometryShaderSource

ジオメトリシェーダーコードメンバー

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

◆ tessCtrlShaderSource

std::string FK::fk_ShaderProgram::tessCtrlShaderSource

テッセレーション制御コードメンバー

テッセレーション制御シェーダーのコードの設定や取得を行います。

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

◆ tessEvalShaderSource

std::string FK::fk_ShaderProgram::tessEvalShaderSource

テッセレーション評価シェーダーコードメンバー

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