FineKernelToolKit: FK::fk_ShaderProgram クラス

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 公開変数類 | 全メンバ一覧
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() 関数でコードが格納されているファイル名を指定して下さい。