13GX_CORE_NAMESPACE_BEGIN()
76 u32 _bindingLocationIndex;
80 GX_CHAR _name[PARAMETER_NAME_MAX];
95 static constexpr u32 INVALID_POOL_OFFSET =
static_cast<u32
>(-1);
105 void cleanup(
void)
override;
109 virtual b32 initialize(
const void* pAssembledCode, u32 assembledCodeSize, u32 constantRegisterParameterCount, u32 usageInputSemantics, u32 constantBufferSize) = 0;
111 b32 initializeParameter(u32 constantRegisterParameterCount, u32 usageInputSemantics, u32 constantBufferSize);
115 void createShader(
void* pShaderData, u32 shaderDataSize,
void* pShaderControl, GxNativeShaderStageBits shaderStage);
135 constexpr void*
getBuffer(
void)
const {
return _pBuffer; }
147 constexpr u32 getParameterBindLocationIndex(REGISTER_SET_TYPE type, u32 index)
const {
return _registerSet[
static_cast<s32
>(type)]._pConstantRegisterParameter[index]._bindingLocationIndex; }
150 constexpr u32 getParameterRegisterIndex(REGISTER_SET_TYPE type, u32 index) const { return _registerSet[static_cast<s32>(type)]._pConstantRegisterParameter[index]._registerIndex; }
161 virtual void getAssembledCode(
void* pBuffer, u32 size)
const;
163 virtual u32 getAssembledCodeSize(
void)
const;
173 GX_FORCE_INLINE GxNativeShader* getShader(
void) {
return &_shader; }
176 constexpr GxNativeShader* getShader(
void)
const {
return _pShader; }
181 constexpr GX_CSTR getPath(
void)
const {
return _path.getString(); }
183 GX_FORCE_INLINE
void setPath(
GxString path) { _path = path; }
193 virtual b32 map(GxRegisterSet*& pRegisterSet,
void*& pConstantRegisterParameterTable, u32 mappingType = 0);
195 virtual void unmap(
void);
197#if defined(_WINDOWS) || defined(_PS4) || defined(_PS5) || defined(_XBOX_XS)
199 GX_FORCE_INLINE
void writeConstantBuffer(u32 startRegister,
const f32* pFloatArray, u32 count);
201 void updateConstantBuffer(
void);
204 ID3D11Buffer* getConstantBuffer(
void)
const {
return _pD3D11ConstantBuffer; }
224 ID3D11Buffer* _pD3D11ConstantBuffer;
226#if GX_USE_DX11 || GX_USE_DX12 || defined(_PS5)
233 GxNativeShader _shader;
235 GxNativeShader* _pShader;
244#if defined(_WINDOWS) || defined(_PS4) || defined(_PS5) || defined(_XBOX_XS)
251void GxRenderShader::writeConstantBuffer(u32 startRegister,
const f32* pFloatArray, u32 count)
253 GX_MEMCPY(&_pConstantBufferNow[startRegister], pFloatArray,
sizeof(
GxVector4) * count);
257GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
u32 GX_HANDLE
ハンドル
Definition GxDefine.h:214
@ FLOAT4
4D f32 (f, f, f, f) に展開される
static constexpr u32 VALUE_64
64
Definition GxMath.h:125
描画関連の依存をこのクラスで吸収します
Definition GxRenderDevice.h:450
GPUリソースを管理する
Definition GxRenderResource.h:20
シェーダ共通の処理を記述
Definition GxRenderShader.h:20
constexpr void * getBuffer(void) const
バッファを取得
Definition GxRenderShader.h:135
PARAMETER_TYPE
パラメータの種類
Definition GxRenderShader.h:44
constexpr u32 getUsageInputSemantics(void) const
使用する入力セマンティックス
Definition GxRenderShader.h:128
constexpr GX_HANDLE getParameterHandle(REGISTER_SET_TYPE type, u32 index) const
パラメータのハンドルを取得
Definition GxRenderShader.h:142
constexpr u32 getParameterCount(REGISTER_SET_TYPE type) const
パラメータ数を取得
Definition GxRenderShader.h:140
constexpr u32 getParameterCount(void) const
パラメータ数の合計を取得
Definition GxRenderShader.h:130
constexpr GX_CSTR getParameterName(REGISTER_SET_TYPE type, u32 index) const
パラメータの名前を取得
Definition GxRenderShader.h:154
void * _pConstantRegisterParameterTable
定数レジスタパラメータを格納しておくメモリ領域
Definition GxRenderShader.h:215
constexpr u32 getConstantBufferSize(void) const
定数バッファサイズを取得
Definition GxRenderShader.h:132
constexpr u32 getParameterRegisterCount(REGISTER_SET_TYPE type, u32 index) const
パラメータの定数レジスタ数を取得
Definition GxRenderShader.h:152
constexpr u32 getRegisterStart(REGISTER_SET_TYPE type) const
使用定数レジスタ開始位置を取得
Definition GxRenderShader.h:157
u32 _constantRegisterParameterCount
シェーダ内の定数レジスタパラメータ数の合計
Definition GxRenderShader.h:216
constexpr PARAMETER_TYPE getParameterType(REGISTER_SET_TYPE type, u32 index) const
パラメータのパラメータの種類を取得
Definition GxRenderShader.h:144
constexpr u32 getRegisterCount(REGISTER_SET_TYPE type) const
使用定数レジスタ数を取得
Definition GxRenderShader.h:159
u32 _bufferSize
バッファサイズ
Definition GxRenderShader.h:221
u32 _mappingType
マップタイプ
Definition GxRenderShader.h:219
virtual GX_FORCE_INLINE void releaseDiscardBuffer(b32 isStoreDevelopMemory=true)
シェーダ命令コードのバッファなど中間データを解放
Definition GxRenderShader.h:169
REGISTER_SET_TYPE
定数レジスタの種類
Definition GxRenderShader.h:34
constexpr u32 getBufferSize(void) const
バッファサイズを取得
Definition GxRenderShader.h:137
u32 _constantBufferSize
定数バッファサイズ
Definition GxRenderShader.h:218
void * _pBuffer
データバッファ
Definition GxRenderShader.h:220
virtual b32 initialize(const void *pAssembledCode, u32 assembledCodeSize, u32 constantRegisterParameterCount, u32 usageInputSemantics, u32 constantBufferSize)=0
初期化関数
u32 _usageInputSemantics
使用する入力セマンティックス
Definition GxRenderShader.h:217
定数レジスタパラメータ
Definition GxRenderShader.h:69
PARAMETER_TYPE _type
パラメータの種類
Definition GxRenderShader.h:74
GX_HANDLE _handle
ハンドル
Definition GxRenderShader.h:73
u32 _registerIndex
レジスタインデックス
Definition GxRenderShader.h:78
u32 _registerCount
レジスタ数
Definition GxRenderShader.h:79
定数レジスタ情報
Definition GxRenderShader.h:85
u32 _constantRegisterStart
定数レジスタ開始位置
Definition GxRenderShader.h:88
GxConstantRegisterParameter * _pConstantRegisterParameter
定数レジスタパラメータ情報
Definition GxRenderShader.h:86
u32 _constantRegisterParameterCount
定数レジスタパラメータ情報数
Definition GxRenderShader.h:87
u32 _constantRegisterCount
定数レジスタ数
Definition GxRenderShader.h:89
文字列型クラス
Definition GxString.h:18
4次元ベクトル
Definition GxVector.h:582
32bitブーリアン
Definition GxDefine.h:173