FineKernelToolKit: FK_CLI::fk_ShaderProgram クラス

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | プロパティ | 全メンバ一覧
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_ShaderBinder の fk_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

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

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