シェーダパッケージクラス More...
#include <GxShaderPackage.h>


Classes | |
| struct | GxFunction |
| 関数情報構造体 More... | |
| struct | GxFunctionFile |
| 関数のファイル位置構造体 More... | |
| struct | GxFunctions |
| 関数配列構造体 More... | |
| struct | GxFunctionsFile |
| 関数配列のファイル位置構造体 More... | |
| struct | GxParameter |
| パラメータ構造体 More... | |
| struct | GxParameterFile |
| パラメータのファイル位置構造体 More... | |
| struct | GxShaderCode |
| シェーダコード More... | |
| struct | GxShaderCodeHeader |
| シェーダコードヘッダー More... | |
| struct | GxShaderInfo |
| シェーダ情報 More... | |
| struct | GxShaderNode |
| シェーダノード More... | |
| struct | GxShaderObject |
| シェーダオブジェクト More... | |
| struct | GxShaderPackageHeader |
| パッケージ情報ヘッダー More... | |
Public Member Functions | |
初期化 | |
| GxShaderPackage (void) | |
| デフォルトコンストラクタ | |
| b32 | initialize (void) |
| 初期化関数 | |
| void | terminate (void) |
| 終了処理 | |
| GxShaderCode * | allocateShaderCode (void) |
| シェーダコード作成 | |
| void | freeShaderCode (GxShaderCode *pShaderCode) |
| シェーダコード解放 | |
アクセサ | |
| GX_FORCE_INLINE void | setPropertyVertexShaderCount (const void *const) |
| 頂点シェーダの数を設定 | |
| GX_FORCE_INLINE void | getPropertyVertexShaderCount (void *const pValue) |
| 頂点シェーダの数を取得 | |
| GX_FORCE_INLINE void | setPropertyPixelShaderCount (const void *const) |
| ピクセルシェーダの数を設定 | |
| GX_FORCE_INLINE void | getPropertyPixelShaderCount (void *const pValue) |
| ピクセルシェーダの数を取得 | |
| GX_FORCE_INLINE void | setPropertyProgramFunctionsCount (const void *const) |
| プログラムで設定する関数の数を設定 | |
| GX_FORCE_INLINE void | getPropertyProgramFunctionsCount (void *const pValue) |
| プログラムで設定する関数の数を取得 | |
| GX_FORCE_INLINE void | setPropertyMaterialFunctionsCount (const void *const) |
| マテリアルで設定する関数の数を設定 | |
| GX_FORCE_INLINE void | getPropertyMaterialFunctionsCount (void *const pValue) |
| マテリアルで設定する関数の数を取得 | |
| GX_FORCE_INLINE void | setPropertyProgramParameterCount (const void *const) |
| プログラムで設定するパラメータの数を設定 | |
| GX_FORCE_INLINE void | getPropertyProgramParameterCount (void *const pValue) |
| プログラムで設定するパラメータの数を取得 | |
| GX_FORCE_INLINE void | setPropertyMaterialParameterCount (const void *const) |
| マテリアルで設定するパラメータの数を設定 | |
| GX_FORCE_INLINE void | getPropertyMaterialParameterCount (void *const pValue) |
| マテリアルで設定するパラメータの数を取得 | |
| GxRenderVertexShader * | getVertexShader (GxShaderCode *pShaderCode) |
| 頂点シェーダ取得 | |
| GxRenderPixelShader * | getPixelShader (GxShaderCode *pShaderCode) |
| ピクセルシェーダ取得 | |
| b32 | getShader (GxShaderCode *pShaderCode, GxRenderVertexShader *&pVertexShader, GxRenderPixelShader *&pPixelShader) |
| シェーダ取得 | |
| u32 | getOptimizedShaderCodeHash (GxShaderCode *pShaderCode, u8 *pCodeBuffer) |
| 最適化されたシェーダコードのハッシュを取得 | |
| GxShaderCode * | getOptimizedShaderCode (GxShaderCode *pShaderCode) |
| 最適化されたシェーダコードを取得 | |
| constexpr u32 | getProgramFunctionsCount (void) const |
| プログラムで設定する関数の数を取得 | |
| constexpr u32 | getMaterialFunctionsCount (void) const |
| マテリアルで設定する関数の数を取得 | |
| constexpr u32 | getProgramParameterCount (void) const |
| プログラムで設定するパラメータの数を取得 | |
| constexpr u32 | getMaterialParameterCount (void) const |
| マテリアルで設定するパラメータの数を取得 | |
| constexpr u32 | getPassCount (void) const |
| パス数を取得 | |
| GX_HANDLE | getProgramFunctionsHandleByName (GX_CSTR name) const |
| プログラムで設定する関数のハンドルを名前から取得 | |
| GX_HANDLE | getMaterialFunctionsHandleByName (GX_CSTR name) const |
| マテリアルで設定する関数のハンドルを名前から取得 | |
| GX_HANDLE | getProgramFunctionsHandleByVirtualName (GX_CSTR name) const |
| プログラムで設定する関数のハンドルを仮想名から取得 | |
| GX_HANDLE | getMaterialFunctionsHandleByVirtualName (GX_CSTR name) const |
| マテリアルで設定する関数のハンドルを仮想名から取得 | |
| GX_FORCE_INLINE GX_CSTR | getProgramFunctionsName (GX_HANDLE handle) const |
| プログラムで設定する関数の名前を取得 | |
| GX_FORCE_INLINE GX_CSTR | getMaterialFunctionsName (GX_HANDLE handle) const |
| マテリアルで設定する関数の名前を取得 | |
| GX_FORCE_INLINE GX_CSTR | getProgramFunctionsVirtualName (GX_HANDLE handle) const |
| プログラムで設定する関数の仮想名を取得 | |
| GX_FORCE_INLINE GX_CSTR | getMaterialFunctionsVirtualName (GX_HANDLE handle) const |
| マテリアルで設定する関数の仮想名を取得 | |
| GX_FORCE_INLINE GX_CSTR | getProgramFunctionsValueName (GX_HANDLE handle, u32 value) const |
| プログラムで設定する関数の値の名前を取得 | |
| GX_FORCE_INLINE GX_CSTR | getMaterialFunctionsValueName (GX_HANDLE handle, u32 value) const |
| マテリアルで設定する関数の値の名前を取得 | |
| GX_FORCE_INLINE GX_CSTR | getProgramFunctionsValueVirtualName (GX_HANDLE handle, u32 value) const |
| プログラムで設定する関数の値の仮想名を取得 | |
| GX_FORCE_INLINE GX_CSTR | getMaterialFunctionsValueVirtualName (GX_HANDLE handle, u32 value) const |
| マテリアルで設定する関数の値の仮想名を取得 | |
| u32 | getProgramFunctionsValueByName (GX_HANDLE handle, GX_CSTR name) const |
| プログラムで設定する関数の値を名前から取得 | |
| u32 | getMaterialFunctionsValueByName (GX_HANDLE handle, GX_CSTR name) const |
| マテリアルで設定する関数の値を名前から取得 | |
| u32 | getProgramFunctionsValueByVirtualName (GX_HANDLE handle, GX_CSTR name) const |
| プログラムで設定する関数の値を仮想名から取得 | |
| u32 | getMaterialFunctionsValueByVirtualName (GX_HANDLE handle, GX_CSTR name) const |
| マテリアルで設定する関数の値を仮想名から取得 | |
| GX_FORCE_INLINE u32 | getProgramFunctionsValueCount (GX_HANDLE handle) const |
| プログラムで設定する関数の値数を取得 | |
| GX_FORCE_INLINE u32 | getMaterialFunctionsValueCount (GX_HANDLE handle) const |
| マテリアルで設定する関数の値数を取得 | |
| GX_HANDLE | getProgramParameterHandleByName (GX_CSTR name) const |
| プログラムで設定するパラメータのハンドルを名前から取得 | |
| GX_HANDLE | getMaterialParameterHandleByName (GX_CSTR name) const |
| マテリアルで設定するパラメータのハンドルを名前から取得 | |
| GX_HANDLE | getProgramParameterHandleByVirtualName (GX_CSTR name) const |
| プログラムで設定する関数のハンドルを仮想名から取得 | |
| GX_HANDLE | getMaterialParameterHandleByVirtualName (GX_CSTR name) const |
| マテリアルで設定する関数のハンドルを仮想名から取得 | |
| GX_FORCE_INLINE GX_CSTR | getProgramParameterName (GX_HANDLE handle) const |
| プログラムで設定するパラメータの名前を取得 | |
| GX_FORCE_INLINE GX_CSTR | getMaterialParameterName (GX_HANDLE handle) const |
| マテリアルで設定するパラメータの名前を取得 | |
| GX_FORCE_INLINE GX_CSTR | getProgramParameterVirtualName (GX_HANDLE handle) const |
| プログラムで設定するパラメータの仮想名を取得 | |
| GX_FORCE_INLINE GX_CSTR | getMaterialParameterVirtualName (GX_HANDLE handle) const |
| マテリアルで設定するパラメータの仮想名を取得 | |
| GX_FORCE_INLINE GxShaderLanguage::PARAMETER_TYPE | getProgramParameterType (GX_HANDLE handle) const |
| プログラムで設定するパラメータのタイプを取得 | |
| GX_FORCE_INLINE GxShaderLanguage::PARAMETER_TYPE | getMaterialParameterType (GX_HANDLE handle) const |
| マテリアルで設定するパラメータのタイプを取得 | |
| GX_FORCE_INLINE const GxShaderLanguage::GxParameterDefaultValue & | getMaterialParameterDefaultValue (GX_HANDLE handle) const |
| マテリアルで設定するパラメータのデフォルト値を取得 | |
| void | setUseOptimizedShaderVariation (b32 isUse) |
| 最適化シェーダバリエーションを利用するかを設定 | |
| void | setOptimizedProgramFunctionsBits (u32 pass, u8 *pBits) |
| 最適化シェーダバリエーションのプログラム関数ビット列を設定 | |
| void | setOptimizedMaterialFunctionsBits (u32 pass, u8 *pBits) |
| 最適化シェーダバリエーションのマテリアル関数ビット列を設定 | |
Public Member Functions inherited from GxClassBase | |
| constexpr | GxClassBase (void) |
| コンストラクタ | |
| constexpr | GxClassBase (const GxClassBase &base) |
| コピーコンストラクタ | |
| ~GxClassBase (void) override | |
| デストラクタ | |
Public Member Functions inherited from GxClassBaseRoot | |
| constexpr | GxClassBaseRoot (void) |
| コンストラクタ | |
| constexpr | GxClassBaseRoot (const GxClassBaseRoot &) |
| コピーコンストラクタ | |
| virtual | ~GxClassBaseRoot (void) |
| デストラクタ | |
| constexpr GxClassBaseRoot & | operator= (const GxClassBaseRoot &) |
| 代入演算子 | |
| virtual GxRtti & | getRtti (void) const =0 |
| Rttiの取得 | |
| virtual GX_FORCE_INLINE const GxTypedObject * | getDefaultObject (void) |
| デフォルトオブジェクトを取得 | |
| GX_FORCE_INLINE b32 | isDefaultObject (void) |
| デフォルトオブジェクト判定 | |
Protected Attributes | |
メンバ変数 | |
| GxShaderPackageHeader | _header |
| ヘッダ | |
| GxShaderNode * | _pNode |
| ノードの先頭ポインタ | |
| u32 | _nodeAllocateCount |
| ノードの確保数 | |
| void * | _pStringData |
| 文字列データ | |
| void * | _pShaderCodeBuffer |
| シェーダコードのバッファ | |
| u32 | _shaderCodeAllocateCount |
| シェーダコードの確保数 | |
| u32 | _shaderCodeSize |
| シェーダコードのサイズ | |
| GxArrayClassBaseReference | _shaderArray [static_cast< u32 >(RENDER_SHADER::MAX)] |
| シェーダ配列 | |
| GxArray | _shaderHashArray [static_cast< u32 >(RENDER_SHADER::MAX)] |
| シェーダハッシュ配列 | |
| void * | _pParameterFunctionBuffer |
| パラメータ、関数バッファ | |
| GxParameter * | _pProgramParameter |
| パラメータ情報 | |
| GxFunctions * | _pProgramFunctions |
| 関数情報 | |
| GxParameter * | _pMaterialParameter |
| パラメータ情報 | |
| GxFunctions * | _pMaterialFunctions |
| 関数情報 | |
| GxFunction * | _pFunction |
| 関数情報 | |
| b32 | _enableRuntimeCompile |
| 実行時コンパイル有効 | |
| GxCriticalSection | _criticalSection |
| クリティカルセクション | |
| b32 | _isUseOptimizedShaderVariation |
| 最適化シェーダバリエーションを利用するか | |
| u8 * | _pOptimizedProgramFunctionsBits [static_cast< s32 >(RENDER_PASS::MAX)] |
| 最適化シェーダバリエーションのビット列(プログラム関数) | |
| u8 * | _pOptimizedMaterialFunctionsBits [static_cast< s32 >(RENDER_PASS::MAX)] |
| 最適化シェーダバリエーションのビット列(マテリアル関数) | |
定義 | |
| class | GxSysShader |
| static constexpr u32 | INVALID_INDEX = 0xFFFFFFFFUL |
| 無効なインデックス | |
| static constexpr u32 | CODE_COUNT_IN_NODE = 16 |
| ノード内のシェーダコード数 | |
操作 | |
| b32 | load (GxStream &stream) |
| 読み込み | |
| GxShaderNode * | searchNode (GxShaderCode *pShaderCode) |
| ノード検索 | |
| GxShaderNode * | searchNode (u32 hash) |
| ノード検索 | |
| GxShaderNode * | addNode (GxShaderCode *pShaderCode) |
| ノード追加 | |
| u32 | addShaderCode (GxShaderCode *pShaderCode) |
| シェーダコード追加 | |
| GxShaderCode * | getShaderCodeFromIndex (u32 index) |
| インデックスでシェーダコード取得 | |
| void | setConstantRegisterSetInformation (GxRenderShader::GxRegisterSet *pConstantRegisterSet, void *pConstantRegisterParameterTable, const GxShaderInfo &shaderInfo) |
| 定数レジスタセット情報設定 | |
Additional Inherited Members | |
Static Public Member Functions inherited from GxClassBaseRoot | |
| static GX_FORCE_INLINE GxRtti & | __getStaticRtti (void) |
| Rttiの取得 | |
シェーダパッケージクラス
|
protected |
ノード追加
| pShaderCode | [in] シェーダコード |

|
protected |
シェーダコード追加
| pShaderCode | [in] シェーダコード |

| GxShaderPackage::GxShaderCode * GxShaderPackage::allocateShaderCode | ( | void | ) |
シェーダコード作成


| void GxShaderPackage::freeShaderCode | ( | GxShaderCode * | pShaderCode | ) |
シェーダコード解放
| shaderCode | [in] シェーダコード |
| GX_HANDLE GxShaderPackage::getMaterialFunctionsHandleByName | ( | GX_CSTR | name | ) | const |
マテリアルで設定する関数のハンドルを名前から取得
| name | [in] 名前 |

| GX_HANDLE GxShaderPackage::getMaterialFunctionsHandleByVirtualName | ( | GX_CSTR | name | ) | const |
マテリアルで設定する関数のハンドルを仮想名から取得
| name | [in] 仮想名 |

| GX_CSTR GxShaderPackage::getMaterialFunctionsName | ( | GX_HANDLE | handle | ) | const |
マテリアルで設定する関数の名前を取得
| handle | [in] ハンドル |
| u32 GxShaderPackage::getMaterialFunctionsValueByName | ( | GX_HANDLE | handle, |
| GX_CSTR | name ) const |
マテリアルで設定する関数の値を名前から取得
| handle | [in] ハンドル |
| name | [in] 名前 |

| u32 GxShaderPackage::getMaterialFunctionsValueByVirtualName | ( | GX_HANDLE | handle, |
| GX_CSTR | name ) const |
マテリアルで設定する関数の値を仮想名から取得
| handle | [in] ハンドル |
| name | [in] 仮想名 |

| u32 GxShaderPackage::getMaterialFunctionsValueCount | ( | GX_HANDLE | handle | ) | const |
マテリアルで設定する関数の値数を取得
| handle | [in] ハンドル |
| GX_CSTR GxShaderPackage::getMaterialFunctionsValueName | ( | GX_HANDLE | handle, |
| u32 | value ) const |
マテリアルで設定する関数の値の名前を取得
| handle | [in] ハンドル |
| value | [in] 値 |
| GX_CSTR GxShaderPackage::getMaterialFunctionsValueVirtualName | ( | GX_HANDLE | handle, |
| u32 | value ) const |
マテリアルで設定する関数の値の仮想名を取得
| handle | [in] ハンドル |
| value | [in] 値 |
| GX_CSTR GxShaderPackage::getMaterialFunctionsVirtualName | ( | GX_HANDLE | handle | ) | const |
マテリアルで設定する関数の仮想名を取得
| handle | [in] ハンドル |
| const GxShaderLanguage::GxParameterDefaultValue & GxShaderPackage::getMaterialParameterDefaultValue | ( | GX_HANDLE | handle | ) | const |
マテリアルで設定するパラメータのデフォルト値を取得
マテリアルで設定するパラメータのデフォルト値を取得
| handle | [in] ハンドル |

| GX_HANDLE GxShaderPackage::getMaterialParameterHandleByName | ( | GX_CSTR | name | ) | const |
マテリアルで設定するパラメータのハンドルを名前から取得
| name | [in] 名前 |

| GX_HANDLE GxShaderPackage::getMaterialParameterHandleByVirtualName | ( | GX_CSTR | name | ) | const |
マテリアルで設定する関数のハンドルを仮想名から取得
| name | [in] 仮想名 |

| GX_CSTR GxShaderPackage::getMaterialParameterName | ( | GX_HANDLE | handle | ) | const |
マテリアルで設定するパラメータの名前を取得
| handle | [in] ハンドル |
| GxShaderLanguage::PARAMETER_TYPE GxShaderPackage::getMaterialParameterType | ( | GX_HANDLE | handle | ) | const |
マテリアルで設定するパラメータのタイプを取得
マテリアルで設定するパラメータのタイプを取得
| handle | [in] ハンドル |
| GX_CSTR GxShaderPackage::getMaterialParameterVirtualName | ( | GX_HANDLE | handle | ) | const |
マテリアルで設定するパラメータの仮想名を取得
| handle | [in] ハンドル |
| GxShaderPackage::GxShaderCode * GxShaderPackage::getOptimizedShaderCode | ( | GxShaderCode * | pShaderCode | ) |
最適化されたシェーダコードを取得
| shaderCode | [in] 加工前のシェーダコード |

| u32 GxShaderPackage::getOptimizedShaderCodeHash | ( | GxShaderCode * | pShaderCode, |
| u8 * | pCodeBuffer ) |
最適化されたシェーダコードのハッシュを取得
| shaderCode | [in] シェーダコード |
| pCodeBuffer | [in] コードバッファ |

| GX_HANDLE GxShaderPackage::getProgramFunctionsHandleByName | ( | GX_CSTR | name | ) | const |
プログラムで設定する関数のハンドルを名前から取得
| name | [in] 名前 |

| GX_HANDLE GxShaderPackage::getProgramFunctionsHandleByVirtualName | ( | GX_CSTR | name | ) | const |
プログラムで設定する関数のハンドルを仮想名から取得
| name | [in] 仮想名 |

| GX_CSTR GxShaderPackage::getProgramFunctionsName | ( | GX_HANDLE | handle | ) | const |
プログラムで設定する関数の名前を取得
| handle | [in] ハンドル |
| u32 GxShaderPackage::getProgramFunctionsValueByName | ( | GX_HANDLE | handle, |
| GX_CSTR | name ) const |
プログラムで設定する関数の値を名前から取得
| handle | [in] ハンドル |
| name | [in] 名前 |

| u32 GxShaderPackage::getProgramFunctionsValueByVirtualName | ( | GX_HANDLE | handle, |
| GX_CSTR | name ) const |
プログラムで設定する関数の値を仮想名から取得
| handle | [in] ハンドル |
| name | [in] 仮想名 |

| u32 GxShaderPackage::getProgramFunctionsValueCount | ( | GX_HANDLE | handle | ) | const |
プログラムで設定する関数の値数を取得
| handle | [in] ハンドル |
| GX_CSTR GxShaderPackage::getProgramFunctionsValueName | ( | GX_HANDLE | handle, |
| u32 | value ) const |
プログラムで設定する関数の値の名前を取得
| handle | [in] ハンドル |
| value | [in] 値 |
| GX_CSTR GxShaderPackage::getProgramFunctionsValueVirtualName | ( | GX_HANDLE | handle, |
| u32 | value ) const |
プログラムで設定する関数の値の仮想名を取得
| handle | [in] ハンドル |
| value | [in] 値 |
| GX_CSTR GxShaderPackage::getProgramFunctionsVirtualName | ( | GX_HANDLE | handle | ) | const |
プログラムで設定する関数の仮想名を取得
| handle | [in] ハンドル |
| GX_HANDLE GxShaderPackage::getProgramParameterHandleByName | ( | GX_CSTR | name | ) | const |
プログラムで設定するパラメータのハンドルを名前から取得
| name | [in] 名前 |

| GX_HANDLE GxShaderPackage::getProgramParameterHandleByVirtualName | ( | GX_CSTR | name | ) | const |
プログラムで設定する関数のハンドルを仮想名から取得
| name | [in] 仮想名 |

| GX_CSTR GxShaderPackage::getProgramParameterName | ( | GX_HANDLE | handle | ) | const |
プログラムで設定するパラメータの名前を取得
| handle | [in] ハンドル |
| GxShaderLanguage::PARAMETER_TYPE GxShaderPackage::getProgramParameterType | ( | GX_HANDLE | handle | ) | const |
プログラムで設定するパラメータのタイプを取得
| handle | [in] ハンドル |
| GX_CSTR GxShaderPackage::getProgramParameterVirtualName | ( | GX_HANDLE | handle | ) | const |
プログラムで設定するパラメータの仮想名を取得
| handle | [in] ハンドル |
| b32 GxShaderPackage::getShader | ( | GxShaderCode * | pShaderCode, |
| GxRenderVertexShader *& | pVertexShader, | ||
| GxRenderPixelShader *& | pPixelShader ) |
シェーダ取得
| shaderCode | [in] シェーダコード |
| pVertexShader | [out] 頂点シェーダ |
| pPixelShader | [out] ピクセルシェーダ |
| pHullShader | [out] ハルシェーダ |
| pDomainShader | [out] ドメインシェーダ |


| b32 GxShaderPackage::initialize | ( | void | ) |
初期化関数
| shaderSource | [in] シェーダソース |
| includeCallbackHandler | [in] インクルード時のコールバック |
| saveResourceCallbackHandler | [in] リソース保存時のコールバック |
| isOriginalResource | [in] オリジナルリソースならtrue |
| pResShaderPackage | [in] シェーダーパッケージリソース |
| shaderPath | [in] シェーダソース |


読み込み
| stream | [in,out] 読み込み元ストリーム |


|
protected |
ノード検索
| pShaderCode | [in] シェーダコード |


|
protected |
ノード検索
| hash | [in] ハッシュ値 |

|
protected |
定数レジスタセット情報設定
| pConstantRegisterSet | [in,out] 定数レジスタセット情報設定先ポインタ |
| pConstantRegisterParameterTable | [in] 定数レジスタパラメータテーブルポインタ |
| shaderInfo | [in] シェーダ情報 |

| void GxShaderPackage::setOptimizedMaterialFunctionsBits | ( | u32 | pass, |
| u8 * | pBits ) |
最適化シェーダバリエーションのマテリアル関数ビット列を設定
| pass | [in] シェーダーパス |
| pBits | [in] ビット列 |

| void GxShaderPackage::setOptimizedProgramFunctionsBits | ( | u32 | pass, |
| u8 * | pBits ) |
最適化シェーダバリエーションのプログラム関数ビット列を設定
| pass | [in] シェーダーパス |
| pBits | [in] ビット列 |

| void GxShaderPackage::setUseOptimizedShaderVariation | ( | b32 | isUse | ) |
最適化シェーダバリエーションを利用するかを設定
| isUse | [in] 利用するならtrue |