13GX_CORE_NAMESPACE_BEGIN()
16#if GX_ENABLE_TESSELLATION
17class GxRenderHullShader;
18class GxRenderDomainShader;
20#if GX_ENABLE_COMPUTE_SHADER
67 GX_FORCE_INLINE
void update(
void);
87 GX_FORCE_INLINE
void setPass(u32 pass);
94 GX_FORCE_INLINE u32
getSize(
void)
const;
209 enum class CONFIG_FILE_FORMAT
265#if GX_ENABLE_TESSELLATION
267 GX_FORCE_INLINE
void setPropertyHullShaderCount(
const void*
const ) {}
269 GX_FORCE_INLINE
void getPropertyHullShaderCount(
void*
const pValue) { *
static_cast<u32*
>(pValue) =
_header.
_shaderCount[
static_cast<u32
>(RENDER_SHADER::HULL)]; }
272 GX_FORCE_INLINE
void setPropertyDomainShaderCount(
const void*
const ) {}
274 GX_FORCE_INLINE
void getPropertyDomainShaderCount(
void*
const pValue) { *
static_cast<u32*
>(pValue) =
_header.
_shaderCount[
static_cast<u32
>(RENDER_SHADER::DOMAIN_)]; }
277#if GX_ENABLE_COMPUTE_SHADER
279 GX_FORCE_INLINE
void setPropertyComputeShaderCount(
const void*
const ) {}
281 GX_FORCE_INLINE
void getPropertyComputeShaderCount(
void*
const pValue) { *
static_cast<u32*
>(pValue) =
_header.
_shaderCount[
static_cast<u32
>(RENDER_SHADER::COMPUTE)]; }
308#if GX_ENABLE_TESSELLATION
310 GxRenderHullShader* getHullShader(
GxShaderCode* pShaderCode);
312 GxRenderDomainShader* getDomainShader(
GxShaderCode* pShaderCode);
317 b32 getShader(GxShaderCode* pShaderCode, GxRenderVertexShader*& pVertexShader, GxRenderPixelShader*& pPixelShader);
319#if GX_ENABLE_COMPUTE_SHADER
324 u32 getOptimizedShaderCodeHash( GxShaderCode* pShaderCode, u8* pCodeBuffer );
383 GX_FORCE_INLINE
const GX_ENUM* getProgramFunctionsValueGxEnum(
GX_HANDLE handle)
const {
return _compiler.getProgramFunctionsValueGxEnum(handle); }
385 GX_FORCE_INLINE
const GX_ENUM* getMaterialFunctionsValueGxEnum(
GX_HANDLE handle)
const {
return _compiler.getMaterialFunctionsValueGxEnum(handle); }
423 GX_FORCE_INLINE GxShaderLanguage::GxParameterAnnotation getMaterialParameterAnnotation(
GX_HANDLE handle)
const {
return _compiler.getMaterialParameterAnnotation(handle); }
427 GX_FORCE_INLINE
const GxShaderLanguage& GetShaderLanguage(
void){
return _compiler;}
449 b32 saveResource(
void);
455 CONFIG_FILE_FORMAT checkConfigVersion(
GxStream& stream);
457 static constexpr CONFIG_FILE_FORMAT CONFIG_SAVE_FORMAT = CONFIG_FILE_FORMAT::BINARY;
474 GxShaderNode*
searchNode(GxShaderCode* pShaderCode);
479 GxShaderNode*
addNode(GxShaderCode* pShaderCode);
489 GxShaderObject createShader(GxShaderCode* pShaderCode);
491 GxShaderObject createShader(GxShaderCode* pShaderCode,
GxShaderLanguage& language);
493 b32 addShader(GxShaderObject& shaderObject);
495 void createVertexShader(GxShaderCompiler& shaderCompiler, u32 outputSemantics,
GxRenderVertexShader** ppOutVertexShader, u32* pOutVertexShaderHash,
GxShaderLanguage& language);
498#if GX_ENABLE_TESSELLATION
500 void createHullShader(GxShaderCompiler& shaderCompiler, u32 outputSemantics, GxRenderHullShader** ppOutVertexShader, u32* pOutHullShaderHash,
GxShaderLanguage& language);
502 void createDomainShader(GxShaderCompiler& shaderCompiler, u32 outputSemantics, GxRenderDomainShader** ppOutDomainShader, u32* pOutDomainShaderHash,
GxShaderLanguage& language);
504#if GX_ENABLE_COMPUTE_SHADER
509 s32 findShaderByBinaryCode(void* pBinaryCode, u32 size, const GxArray& hashArray, const GxArrayClassBaseReference& shaderArray);
513 b32 setConstantRegisterTableFromCompiler(
const GxShaderCompiler& shaderCompiler,
GxRenderShader* pRenderShader);
521 void setConstantRegisterParameterInformation(
void* pConstantRegisterParameterTable,
const GxShaderCompiler& shaderCompiler);
562#define GX_SAFE_FREE_SHADER_CODE(pShaderCode) \
565 pShaderCode->getShaderPackage()->freeShaderCode(pShaderCode); \
566 pShaderCode = nullptr; \
643 if(
_header._pShaderPackage->getProgramFunctionsCount() <= handle )
645 GX_ERROR(
false,
"未定義の program functions handle");
648 return _header._pProgramFunctions[handle];
659 if(
_header._pShaderPackage->getProgramFunctionsCount() <= handle )
661 GX_ERROR(
false,
"未定義の program functions handle");
665 else if(
_header._pShaderPackage->getProgramFunctionsValueCount(handle) <= value )
667 GX_ERROR(
false,
"未定義の program functions value");
671 _header._pProgramFunctions[handle] =
static_cast<u8
>(value);
681 if(
_header._pShaderPackage->getMaterialFunctionsCount() <= handle )
683 GX_ERROR(
false,
"未定義の material functions handle");
686 return _header._pMaterialFunctions[handle];
697 if(
_header._pShaderPackage->getMaterialFunctionsCount() <= handle )
699 GX_ERROR(
false,
"未定義の material functions handle");
703 else if(
_header._pShaderPackage->getMaterialFunctionsValueCount(handle) <= value )
705 GX_ERROR(
false,
"未定義の material functions value");
709 _header._pMaterialFunctions[handle] =
static_cast<u8
>(value);
719 if(
_header._pShaderPackage->getPassCount() <= pass )
721 GX_ERROR(
false,
"未定義のパス");
744 return getCodeAddress();
767 GX_ERROR(
false,
"未定義の program functions handle");
783 GX_ERROR(
false,
"未定義の material functions handle");
799 GX_ERROR(
false,
"未定義の program functions handle");
815 GX_ERROR(
false,
"未定義の material functions handle");
832 GX_ERROR(
false,
"未定義の program functions handle");
837 GX_ERROR(
false,
"未定義の program functions value");
854 GX_ERROR(
false,
"未定義の material functions handle");
859 GX_ERROR(
false,
"未定義の material functions value");
876 GX_ERROR(
false,
"未定義の program functions handle");
881 GX_ERROR(
false,
"未定義の program functions value");
898 GX_ERROR(
false,
"未定義の material functions handle");
914 GX_ERROR(
false,
"未定義の program functions handle");
930 GX_ERROR(
false,
"未定義の material functions handle");
946 GX_ERROR(
false,
"未定義の program parameter handle");
962 GX_ERROR(
false,
"未定義の material parameter handle");
978 GX_ERROR(
false,
"未定義の program parameter handle");
994 GX_ERROR(
false,
"未定義の material parameter handle");
1010 GX_ERROR(
false,
"未定義の program parameter handle");
1026 GX_ERROR(
false,
"未定義の material parameter handle");
1042 GX_ERROR(
false,
"未定義の material parameter handle");
1044 return defaultValue;
1050GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
u32 GX_HANDLE
ハンドル
Definition GxDefine.h:214
参照カウンタ用配列クラス
Definition GxArrayClassBase.h:145
配列クラス
Definition GxArray.h:18
ハンドラ基本クラス
Definition GxCallback.h:27
オブジェクト基底クラス
Definition GxBase.h:88
クリティカルセクションクラス
Definition GxThread.h:20
static u32 getHash32(void *pData, u32 size)
ハッシュ値取得(32bit、データ、サイズ指定版)
Definition GxMath.cpp:241
static constexpr u32 VALUE_4
4
Definition GxMath.h:121
static GX_FORCE_INLINE T getRoundUpFast(T value, size_t alignment)
数値切り上げ(高速版 ※2のべき乗指定)
Definition GxMath.h:537
コンピュートシェーダを管理する
Definition GxRenderComputeShader.h:21
ピクセルシェーダを管理する
Definition GxRenderPixelShader.h:20
シェーダ共通の処理を記述
Definition GxRenderShader.h:20
頂点シェーダを管理する
Definition GxRenderVertexShader.h:22
シェーダパッケージリソースクラス
Definition GxResShaderPackage.h:19
メタシェーダ言語クラス
Definition GxShaderLanguage.h:19
PARAMETER_TYPE
パラメータの種類
Definition GxShaderLanguage.h:35
シェーダパッケージクラス
Definition GxShaderPackage.h:28
GX_HANDLE getProgramFunctionsHandleByVirtualName(GX_CSTR name) const
プログラムで設定する関数のハンドルを仮想名から取得
Definition GxShaderPackage.cpp:690
GxShaderPackageHeader _header
ヘッダ
Definition GxShaderPackage.h:530
GxFunctions * _pProgramFunctions
関数情報
Definition GxShaderPackage.h:541
u32 getMaterialFunctionsValueByVirtualName(GX_HANDLE handle, GX_CSTR name) const
マテリアルで設定する関数の値を仮想名から取得
Definition GxShaderPackage.cpp:789
GxShaderNode * _pNode
ノードの先頭ポインタ
Definition GxShaderPackage.h:531
GX_FORCE_INLINE void setPropertyProgramParameterCount(const void *const)
プログラムで設定するパラメータの数を設定
Definition GxShaderPackage.h:295
GX_FORCE_INLINE void setPropertyMaterialParameterCount(const void *const)
マテリアルで設定するパラメータの数を設定
Definition GxShaderPackage.h:300
u32 getProgramFunctionsValueByName(GX_HANDLE handle, GX_CSTR name) const
プログラムで設定する関数の値を名前から取得
Definition GxShaderPackage.cpp:729
GX_FORCE_INLINE GX_CSTR getMaterialParameterVirtualName(GX_HANDLE handle) const
マテリアルで設定するパラメータの仮想名を取得
Definition GxShaderPackage.h:990
GX_FORCE_INLINE void getPropertyVertexShaderCount(void *const pValue)
頂点シェーダの数を取得
Definition GxShaderPackage.h:258
u32 _shaderCodeAllocateCount
シェーダコードの確保数
Definition GxShaderPackage.h:535
GX_FORCE_INLINE GX_CSTR getMaterialFunctionsValueName(GX_HANDLE handle, u32 value) const
マテリアルで設定する関数の値の名前を取得
Definition GxShaderPackage.h:850
GxShaderPackage(void)
デフォルトコンストラクタ
Definition GxShaderPackage.cpp:41
b32 getShader(GxShaderCode *pShaderCode, GxRenderVertexShader *&pVertexShader, GxRenderPixelShader *&pPixelShader)
シェーダ取得
Definition GxShaderPackage.cpp:546
GX_FORCE_INLINE void getPropertyPixelShaderCount(void *const pValue)
ピクセルシェーダの数を取得
Definition GxShaderPackage.h:263
GxCriticalSection _criticalSection
クリティカルセクション
Definition GxShaderPackage.h:546
GX_HANDLE getMaterialFunctionsHandleByVirtualName(GX_CSTR name) const
マテリアルで設定する関数のハンドルを仮想名から取得
Definition GxShaderPackage.cpp:709
u32 _shaderCodeSize
シェーダコードのサイズ
Definition GxShaderPackage.h:536
GX_FORCE_INLINE GX_CSTR getProgramParameterVirtualName(GX_HANDLE handle) const
プログラムで設定するパラメータの仮想名を取得
Definition GxShaderPackage.h:974
void freeShaderCode(GxShaderCode *pShaderCode)
シェーダコード解放
Definition GxShaderPackage.cpp:394
b32 initialize(void)
初期化関数
Definition GxShaderPackage.cpp:78
GX_FORCE_INLINE GX_CSTR getProgramParameterName(GX_HANDLE handle) const
プログラムで設定するパラメータの名前を取得
Definition GxShaderPackage.h:942
void terminate(void)
終了処理
Definition GxShaderPackage.cpp:330
GX_FORCE_INLINE u32 getProgramFunctionsValueCount(GX_HANDLE handle) const
プログラムで設定する関数の値数を取得
Definition GxShaderPackage.h:910
GX_FORCE_INLINE u32 getMaterialFunctionsValueCount(GX_HANDLE handle) const
マテリアルで設定する関数の値数を取得
Definition GxShaderPackage.h:926
GX_FORCE_INLINE void setPropertyProgramFunctionsCount(const void *const)
プログラムで設定する関数の数を設定
Definition GxShaderPackage.h:285
GX_FORCE_INLINE void getPropertyProgramFunctionsCount(void *const pValue)
プログラムで設定する関数の数を取得
Definition GxShaderPackage.h:287
void * _pShaderCodeBuffer
シェーダコードのバッファ
Definition GxShaderPackage.h:534
GX_HANDLE getMaterialParameterHandleByVirtualName(GX_CSTR name) const
マテリアルで設定する関数のハンドルを仮想名から取得
Definition GxShaderPackage.cpp:865
GX_FORCE_INLINE void setPropertyPixelShaderCount(const void *const)
ピクセルシェーダの数を設定
Definition GxShaderPackage.h:261
b32 _isUseOptimizedShaderVariation
最適化シェーダバリエーションを利用するか
Definition GxShaderPackage.h:554
static constexpr u32 CODE_COUNT_IN_NODE
ノード内のシェーダコード数
Definition GxShaderPackage.h:138
GX_HANDLE getProgramParameterHandleByVirtualName(GX_CSTR name) const
プログラムで設定する関数のハンドルを仮想名から取得
Definition GxShaderPackage.cpp:846
GX_FORCE_INLINE const GxShaderLanguage::GxParameterDefaultValue & getMaterialParameterDefaultValue(GX_HANDLE handle) const
マテリアルで設定するパラメータのデフォルト値を取得
Definition GxShaderPackage.h:1038
void setUseOptimizedShaderVariation(b32 isUse)
最適化シェーダバリエーションを利用するかを設定
Definition GxShaderPackage.cpp:3630
GX_FORCE_INLINE GX_CSTR getProgramFunctionsName(GX_HANDLE handle) const
プログラムで設定する関数の名前を取得
Definition GxShaderPackage.h:763
GX_FORCE_INLINE GX_CSTR getProgramFunctionsValueName(GX_HANDLE handle, u32 value) const
プログラムで設定する関数の値の名前を取得
Definition GxShaderPackage.h:828
GxRenderVertexShader * getVertexShader(GxShaderCode *pShaderCode)
頂点シェーダ取得
void setOptimizedMaterialFunctionsBits(u32 pass, u8 *pBits)
最適化シェーダバリエーションのマテリアル関数ビット列を設定
Definition GxShaderPackage.cpp:3660
GxShaderNode * addNode(GxShaderCode *pShaderCode)
ノード追加
Definition GxShaderPackage.cpp:2795
constexpr u32 getMaterialParameterCount(void) const
マテリアルで設定するパラメータの数を取得
Definition GxShaderPackage.h:336
constexpr u32 getProgramFunctionsCount(void) const
プログラムで設定する関数の数を取得
Definition GxShaderPackage.h:329
GX_HANDLE getMaterialParameterHandleByName(GX_CSTR name) const
マテリアルで設定するパラメータのハンドルを名前から取得
Definition GxShaderPackage.cpp:827
static constexpr u32 INVALID_INDEX
無効なインデックス
Definition GxShaderPackage.h:136
b32 load(GxStream &stream)
読み込み
Definition GxShaderPackage.cpp:884
GxFunction * _pFunction
関数情報
Definition GxShaderPackage.h:544
u32 getMaterialFunctionsValueByName(GX_HANDLE handle, GX_CSTR name) const
マテリアルで設定する関数の値を名前から取得
Definition GxShaderPackage.cpp:749
u8 * _pOptimizedProgramFunctionsBits[static_cast< s32 >(RENDER_PASS::MAX)]
最適化シェーダバリエーションのビット列(プログラム関数)
Definition GxShaderPackage.h:555
GX_FORCE_INLINE void getPropertyProgramParameterCount(void *const pValue)
プログラムで設定するパラメータの数を取得
Definition GxShaderPackage.h:297
GxShaderCode * getShaderCodeFromIndex(u32 index)
インデックスでシェーダコード取得
Definition GxShaderPackage.h:485
GX_HANDLE getProgramFunctionsHandleByName(GX_CSTR name) const
プログラムで設定する関数のハンドルを名前から取得
Definition GxShaderPackage.cpp:652
GX_FORCE_INLINE GxShaderLanguage::PARAMETER_TYPE getMaterialParameterType(GX_HANDLE handle) const
マテリアルで設定するパラメータのタイプを取得
Definition GxShaderPackage.h:1022
b32 _enableRuntimeCompile
実行時コンパイル有効
Definition GxShaderPackage.h:545
constexpr u32 getProgramParameterCount(void) const
プログラムで設定するパラメータの数を取得
Definition GxShaderPackage.h:334
GxRenderPixelShader * getPixelShader(GxShaderCode *pShaderCode)
ピクセルシェーダ取得
GX_FORCE_INLINE void setPropertyVertexShaderCount(const void *const)
頂点シェーダの数を設定
Definition GxShaderPackage.h:256
GX_FORCE_INLINE GxShaderLanguage::PARAMETER_TYPE getProgramParameterType(GX_HANDLE handle) const
プログラムで設定するパラメータのタイプを取得
Definition GxShaderPackage.h:1006
void setConstantRegisterSetInformation(GxRenderShader::GxRegisterSet *pConstantRegisterSet, void *pConstantRegisterParameterTable, const GxShaderInfo &shaderInfo)
定数レジスタセット情報設定
Definition GxShaderPackage.cpp:3562
u32 addShaderCode(GxShaderCode *pShaderCode)
シェーダコード追加
Definition GxShaderPackage.cpp:2884
u8 * _pOptimizedMaterialFunctionsBits[static_cast< s32 >(RENDER_PASS::MAX)]
最適化シェーダバリエーションのビット列(マテリアル関数)
Definition GxShaderPackage.h:556
void setOptimizedProgramFunctionsBits(u32 pass, u8 *pBits)
最適化シェーダバリエーションのプログラム関数ビット列を設定
Definition GxShaderPackage.cpp:3640
GX_FORCE_INLINE GX_CSTR getMaterialFunctionsName(GX_HANDLE handle) const
マテリアルで設定する関数の名前を取得
Definition GxShaderPackage.h:779
GxShaderNode * searchNode(GxShaderCode *pShaderCode)
ノード検索
Definition GxShaderPackage.cpp:2740
GX_FORCE_INLINE GX_CSTR getMaterialFunctionsVirtualName(GX_HANDLE handle) const
マテリアルで設定する関数の仮想名を取得
Definition GxShaderPackage.h:811
GX_FORCE_INLINE void getPropertyMaterialFunctionsCount(void *const pValue)
マテリアルで設定する関数の数を取得
Definition GxShaderPackage.h:292
constexpr u32 getMaterialFunctionsCount(void) const
マテリアルで設定する関数の数を取得
Definition GxShaderPackage.h:331
void * _pStringData
文字列データ
Definition GxShaderPackage.h:533
GX_FORCE_INLINE void setPropertyMaterialFunctionsCount(const void *const)
マテリアルで設定する関数の数を設定
Definition GxShaderPackage.h:290
void * _pParameterFunctionBuffer
パラメータ、関数バッファ
Definition GxShaderPackage.h:539
GX_FORCE_INLINE GX_CSTR getProgramFunctionsValueVirtualName(GX_HANDLE handle, u32 value) const
プログラムで設定する関数の値の仮想名を取得
Definition GxShaderPackage.h:872
GX_FORCE_INLINE GX_CSTR getMaterialFunctionsValueVirtualName(GX_HANDLE handle, u32 value) const
マテリアルで設定する関数の値の仮想名を取得
Definition GxShaderPackage.h:894
GxArrayClassBaseReference _shaderArray[static_cast< u32 >(RENDER_SHADER::MAX)]
シェーダ配列
Definition GxShaderPackage.h:537
constexpr u32 getPassCount(void) const
パス数を取得
Definition GxShaderPackage.h:339
GxParameter * _pProgramParameter
パラメータ情報
Definition GxShaderPackage.h:540
u32 getProgramFunctionsValueByVirtualName(GX_HANDLE handle, GX_CSTR name) const
プログラムで設定する関数の値を仮想名から取得
Definition GxShaderPackage.cpp:769
GxArray _shaderHashArray[static_cast< u32 >(RENDER_SHADER::MAX)]
シェーダハッシュ配列
Definition GxShaderPackage.h:538
GX_FORCE_INLINE GX_CSTR getProgramFunctionsVirtualName(GX_HANDLE handle) const
プログラムで設定する関数の仮想名を取得
Definition GxShaderPackage.h:795
GxShaderCode * allocateShaderCode(void)
シェーダコード作成
Definition GxShaderPackage.cpp:366
GX_FORCE_INLINE void getPropertyMaterialParameterCount(void *const pValue)
マテリアルで設定するパラメータの数を取得
Definition GxShaderPackage.h:302
GX_HANDLE getProgramParameterHandleByName(GX_CSTR name) const
プログラムで設定するパラメータのハンドルを名前から取得
Definition GxShaderPackage.cpp:808
GxParameter * _pMaterialParameter
パラメータ情報
Definition GxShaderPackage.h:542
GX_HANDLE getMaterialFunctionsHandleByName(GX_CSTR name) const
マテリアルで設定する関数のハンドルを名前から取得
Definition GxShaderPackage.cpp:671
GxFunctions * _pMaterialFunctions
関数情報
Definition GxShaderPackage.h:543
GxShaderCode * getOptimizedShaderCode(GxShaderCode *pShaderCode)
最適化されたシェーダコードを取得
Definition GxShaderPackage.cpp:468
GX_FORCE_INLINE GX_CSTR getMaterialParameterName(GX_HANDLE handle) const
マテリアルで設定するパラメータの名前を取得
Definition GxShaderPackage.h:958
u32 _nodeAllocateCount
ノードの確保数
Definition GxShaderPackage.h:532
ストリーム基礎クラス
Definition GxStream.h:20
シェーダシステムクラス
Definition GxSysShader.h:21
GUI用
Definition GxDefine.h:194
定数レジスタ情報
Definition GxRenderShader.h:85
デフォルト値構造体
Definition GxShaderLanguage.h:74
関数のファイル位置構造体
Definition GxShaderPackage.h:184
size_t _virtualNameOffset
仮想名のオフセット
Definition GxShaderPackage.h:186
size_t _nameOffset
名前のオフセット
Definition GxShaderPackage.h:185
関数情報構造体
Definition GxShaderPackage.h:177
GX_CSTR _virtualName
仮想名
Definition GxShaderPackage.h:179
GX_CSTR _name
名前
Definition GxShaderPackage.h:178
関数配列のファイル位置構造体
Definition GxShaderPackage.h:200
u32 _functionCount
関数の数
Definition GxShaderPackage.h:204
size_t _virtualNameOffset
仮想名のオフセット
Definition GxShaderPackage.h:202
size_t _functionIndex
関数インデックス
Definition GxShaderPackage.h:203
size_t _nameOffset
名前のオフセット
Definition GxShaderPackage.h:201
関数配列構造体
Definition GxShaderPackage.h:191
u32 _functionCount
関数の数
Definition GxShaderPackage.h:195
GX_CSTR _name
名前
Definition GxShaderPackage.h:192
GX_CSTR _virtualName
仮想名
Definition GxShaderPackage.h:193
GxFunction * _pFunction
関数
Definition GxShaderPackage.h:194
パラメータのファイル位置構造体
Definition GxShaderPackage.h:168
GxShaderLanguage::GxParameterDefaultValue _defaultValue
デフォルト値
Definition GxShaderPackage.h:172
GxShaderLanguage::PARAMETER_TYPE _type
型
Definition GxShaderPackage.h:171
size_t _virtualNameOffset
仮想名のオフセット
Definition GxShaderPackage.h:170
size_t _nameOffset
名前のオフセット
Definition GxShaderPackage.h:169
パラメータ構造体
Definition GxShaderPackage.h:159
GxShaderLanguage::PARAMETER_TYPE _type
型
Definition GxShaderPackage.h:162
GX_CSTR _virtualName
仮想名
Definition GxShaderPackage.h:161
GxShaderLanguage::GxParameterDefaultValue _defaultValue
デフォルト値
Definition GxShaderPackage.h:163
GX_CSTR _name
名前
Definition GxShaderPackage.h:160
シェーダコード
Definition GxShaderPackage.h:52
static GX_FORCE_INLINE void copy(GxShaderCode *pDst, const GxShaderCode *pSrc)
コピー
Definition GxShaderPackage.h:621
GX_FORCE_INLINE u32 getMaterialFunctions(GX_HANDLE handle)
マテリアルで設定する関数の取得
Definition GxShaderPackage.h:679
GX_FORCE_INLINE void * getCodeAddress(void) const
シェーダコード本体のアドレスを取得
Definition GxShaderPackage.h:733
GX_FORCE_INLINE void update(void)
シェーダコード更新
Definition GxShaderPackage.h:631
GX_FORCE_INLINE const void * getCodeAddressConst(void) const
シェーダコード本体のアドレスを取得
Definition GxShaderPackage.h:742
GX_FORCE_INLINE void setProgramFunctions(GX_HANDLE handle, u32 value)
プログラムで設定する関数の設定
Definition GxShaderPackage.h:657
GxShaderCodeHeader _header
ヘッダ
Definition GxShaderPackage.h:102
static GX_FORCE_INLINE b32 compare(const GxShaderCode *pShaderCode0, const GxShaderCode *pShaderCode1)
比較
Definition GxShaderPackage.h:575
static GX_FORCE_INLINE b32 compareWithOptimizedData(const GxShaderCode *pShaderCode0, const GxShaderCode *pShaderCode1, u32 hash, u8 *pCodeBuffer)
比較
Definition GxShaderPackage.h:599
GX_FORCE_INLINE void setMaterialFunctions(GX_HANDLE handle, u32 value)
マテリアルで設定する関数の設定
Definition GxShaderPackage.h:695
constexpr GxShaderPackage * getShaderPackage(void) const
関連付けられたシェーダパッケージを取得
Definition GxShaderPackage.h:76
GX_FORCE_INLINE u32 getSize(void) const
ヘッダを除くサイズを取得
Definition GxShaderPackage.h:751
GX_FORCE_INLINE void setPass(u32 pass)
パスの設定
Definition GxShaderPackage.h:717
GX_FORCE_INLINE u32 getProgramFunctions(GX_HANDLE handle)
プログラムで設定する関数の取得
Definition GxShaderPackage.h:641
シェーダ情報
Definition GxShaderPackage.h:125
u32 _registerTableCount[static_cast< s32 >(GxRenderShader::REGISTER_SET_TYPE::MAX)]
レジスタ情報個数 (タイプ別)
Definition GxShaderPackage.h:130
u32 _registerTableTotal
レジスタ情報個数(総数)
Definition GxShaderPackage.h:129
u32 _constantBufferSize
定数バッファサイズ
Definition GxShaderPackage.h:127
u32 _usageInputSemantics
使用する入力セマンティックス
Definition GxShaderPackage.h:128
u32 _shaderAssembledCodeSize
シェーダ命令コードサイズ
Definition GxShaderPackage.h:126
u32 _registerStart[static_cast< s32 >(GxRenderShader::REGISTER_SET_TYPE::MAX)]
レジスタ使用開始番号 (タイプ別)
Definition GxShaderPackage.h:131
u32 _registerCount[static_cast< s32 >(GxRenderShader::REGISTER_SET_TYPE::MAX)]
レジスタ使用個数 (タイプ別)
Definition GxShaderPackage.h:132
シェーダノード
Definition GxShaderPackage.h:142
u32 _largeIndex
ハッシュ値の大きいノードのインデックス
Definition GxShaderPackage.h:146
u32 _smallIndex
ハッシュ値の小さいノードのインデックス
Definition GxShaderPackage.h:145
u32 _shaderCodeIndex[CODE_COUNT_IN_NODE]
シェーダコードのインデックス
Definition GxShaderPackage.h:143
s32 _shaderIndex[static_cast< u32 >(RENDER_SHADER::MAX)][CODE_COUNT_IN_NODE]
シェーダのインデックス
Definition GxShaderPackage.h:144
シェーダオブジェクト
Definition GxShaderPackage.h:151
GxRenderShader * _pShader[static_cast< u32 >(RENDER_SHADER::MAX)]
シェーダ
Definition GxShaderPackage.h:153
GxShaderCode * _pShaderCode
シェーダコード
Definition GxShaderPackage.h:152
u32 _shaderHash[static_cast< u32 >(RENDER_SHADER::MAX)]
シェーダのハッシュ
Definition GxShaderPackage.h:154
32bitブーリアン
Definition GxDefine.h:173