NW4F Eft
Loading...
Searching...
No Matches
eft_Shader.h
Go to the documentation of this file.
1#ifndef EFT_SHADER_H_
2#define EFT_SHADER_H_
3
4#include <nw/eft/eft_typeDef.h>
5#include <nw/eft/cafe/eft_CafeWrapper.h>
6#include <nw/eft/eft_UniformBlock.h>
7
8namespace nw { namespace eft {
9
10// nw::eft::BillboardType
12
13// nw::eft::PtclRotType
15
16// nw::eft::StripeType
18
19// nw::eft::CombinerType
21
22// nw::eft::AlphaCombinerType
24
25enum
26{
31};
32
34
35enum
36{
40};
41
43
44enum
45{
50};
51
53
54enum
55{
60};
61
63
65{
75
81
82 bool IsUsePrimitive() const
83 {
84 return mUsePrimitive;
85 }
86
87 void MakeKeyFromSimpleEmitterData(const SimpleEmitterData* res, const char* userDef)
88 {
91 mUserShaderSetting = res->userShaderSetting;
92 mUserShaderFlag = res->userShaderFlag;
93 mUserShaderSwitchFlag = res->userShaderSwitchFlag;
95 //mStripeEmitterCoord = false; <-- Nintendo forgot to do this
96 mUsePrimitive = (res->meshType == EFT_MESH_TYPE_PRIMITIVE) ? true : false;
97
98 if (userDef)
99 strcpy(mUserShaderCompileDef, userDef);
100 else
101 mUserShaderCompileDef[0] = '\0';
102 }
103
104 void MakeKeyFromComplexEmitterData(const ComplexEmitterData* res, const char* userDef)
105 {
106 MakeKeyFromSimpleEmitterData(res, userDef);
107
110 {
111 const StripeData* stripeRes = reinterpret_cast<const StripeData*>((u32)res + res->stripeDataOffset);
112
114 if (res->stripeFlg & EFT_STRIPE_FLAG_EMITTER_COORD)
115 mStripeEmitterCoord = true;
116 else
117 mStripeEmitterCoord = false;
118 }
119 else
120 {
121 mStripeEmitterCoord = false;
122 }
123
124 if (userDef)
125 strcpy(mUserShaderCompileDef, userDef);
126 else
127 mUserShaderCompileDef[0] = '\0';
128 }
129
130 void MakeKeyFromChildData(const ChildData* res, const char* userDef)
131 {
134 mUserShaderSetting = res->childUserShaderSetting;
135 mUserShaderFlag = res->childUserShaderFlag;
136 mUserShaderSwitchFlag = res->childUserShaderSwitchFlag;
138 //mStripeEmitterCoord = false; <-- Nintendo forgot to do this
140
141 if (userDef)
142 strcpy(mUserShaderCompileDef, userDef);
143 else
144 mUserShaderCompileDef[0] = '\0';
145 }
146
147 bool IsEqual(const VertexShaderKey* key) const
148 {
149 if (mVertexBillboardTypeVariation == key->mVertexBillboardTypeVariation &&
150 mVertexRotationVariation == key->mVertexRotationVariation &&
151 mUserShaderSetting == key->mUserShaderSetting &&
152 mUserShaderFlag == key->mUserShaderFlag &&
153 mUserShaderSwitchFlag == key->mUserShaderSwitchFlag &&
154 mStripeTypeVariation == key->mStripeTypeVariation &&
155 mStripeEmitterCoord == key->mStripeEmitterCoord &&
156 mUsePrimitive == key->mUsePrimitive &&
157 strcmp(mUserShaderCompileDef, key->mUserShaderCompileDef) == 0)
158 {
159 return true;
160 }
161 return false;
162 }
163
164 // TODO
165 bool GetCompileSetting(char* compileSetting, u32 compileSettingBufferSize, bool targetCafe);
166};
167static_assert(sizeof(VertexShaderKey) == 0x20, "nw::eft::VertexShaderKey size mismatch");
168
170{
195
196 bool IsUseSoftEdge() const
197 {
198 return mUseSoftEdge;
199 }
200
201 bool IsUsePrimitive() const
202 {
203 return mUsePrimitive;
204 }
205
206 bool IsApplyAlpha() const
207 {
208 return mApplyAlpha;
209 }
210
211 bool IsEqual(const FragmentShaderKey* key) const
212 {
213 if (mShaderVariation == key->mShaderVariation &&
214 mUseSoftEdge == key->mUseSoftEdge &&
215 mTextureVariation == key->mTextureVariation &&
216 mColorVariation == key->mColorVariation &&
217 mAlphaVariation == key->mAlphaVariation &&
218 mUserShaderSetting == key->mUserShaderSetting &&
219 mUsePrimitive == key->mUsePrimitive &&
220 mTexture1ColorComposite == key->mTexture1ColorComposite &&
221 mTexture1AlphaComposite == key->mTexture1AlphaComposite &&
222 mPrimitiveColorComposite == key->mPrimitiveColorComposite &&
223 mPrimitiveAlphaComposite == key->mPrimitiveAlphaComposite &&
224 mTexture0ColorOpt == key->mTexture0ColorOpt &&
225 mTexture1ColorOpt == key->mTexture1ColorOpt &&
226 mPrimitiveColorOpt == key->mPrimitiveColorOpt &&
227 mTexture0AlphaOpt == key->mTexture0AlphaOpt &&
228 mTexture1AlphaOpt == key->mTexture1AlphaOpt &&
229 mPrimitiveAlphaOpt == key->mPrimitiveAlphaOpt &&
230 mApplyAlpha == key->mApplyAlpha &&
231 mUserShaderFlag == key->mUserShaderFlag &&
232 mUserShaderSwitchFlag == key->mUserShaderSwitchFlag &&
233 strcmp(mUserShaderCompileDef, key->mUserShaderCompileDef) == 0)
234 {
235 return true;
236 }
237 return false;
238 }
239
240 void MakeKeyFromSimpleEmitterData(const SimpleEmitterData* res, const char* userDef)
241 {
242 mShaderVariation = static_cast<FragmentShaderVariation>(res->shaderType);
243 mUseSoftEdge = res->shaderUseSoftEdge;
245 if (res->texRes[EFT_TEXTURE_SLOT_1].width != 0 && res->texRes[EFT_TEXTURE_SLOT_1].height != 0)
249 mUserShaderSetting = res->userShaderSetting;
250 mUserShaderFlag = res->userShaderFlag;
251 mUserShaderSwitchFlag = res->userShaderSwitchFlag;
252 mApplyAlpha = res->shaderApplyAlphaToRefract;
253 mUsePrimitive = (res->meshType == EFT_MESH_TYPE_PRIMITIVE) ? true : false;
254
255 switch (res->texture1ColorBlend)
256 {
260 }
261
262 switch (res->texture1AlphaBlend)
263 {
267 }
268
269 switch (res->primitiveColorBlend)
270 {
274 }
275
276 switch (res->primitiveAlphaBlend)
277 {
281 }
282
295
296 if (userDef)
297 strcpy(mUserShaderCompileDef, userDef);
298 else
299 mUserShaderCompileDef[0] = '\0';
300
301 _12 = 0;
302 _2c = 0;
303 }
304
305 void MakeKeyFromChildData(const ChildData* res, const char* userDef, u32 childFlag)
306 {
307 mShaderVariation = (FragmentShaderVariation)res->childShaderType;
308 mUseSoftEdge = res->childShaderUseSoftEdge;
312 mUserShaderSetting = res->childUserShaderSetting;
313 mUserShaderFlag = res->childUserShaderFlag;
314 mUserShaderSwitchFlag = res->childUserShaderSwitchFlag;
315 mApplyAlpha = res->childShaderApplyAlphaToRefract;
317
320
321 switch (res->primitiveColorBlend)
322 {
326 }
327
328 switch (res->primitiveAlphaBlend)
329 {
333 }
334
345
346 if (userDef)
347 strcpy(mUserShaderCompileDef, userDef);
348 else
349 mUserShaderCompileDef[0] = '\0';
350
351 _12 = 0;
352 _2c = 0;
353 }
354
355 // TODO
356 bool GetCompileSetting(char* compileSetting, u32 compileSettingBufferSize, bool targetCafe);
357};
358static_assert(sizeof(FragmentShaderKey) == 0x30, "nw::eft::FragmentShaderKey size mismatch");
359
365static_assert(sizeof(GeometryShaderKey) == 4, "nw::eft::GeometryShaderKey size mismatch");
366
374static_assert(sizeof(ShaderImageInformation) == 0x10, "nw::eft::ShaderImageInformation size mismatch");
375
397static_assert(sizeof(ShaderSrcInformation) == 0x48, "nw::eft::ShaderSrcInformation size mismatch");
398
407static_assert(sizeof(ShaderInformation) == 0x5C, "nw::eft::ShaderInformation size mismatch");
408
410{
411 friend class Renderer;
412
413private:
414 enum
415 {
422 //UNIFORM_BLOCK_ = 6,
423 //UNIFORM_BLOCK_ = 7,
425 };
426
427public:
435
448
449public:
451
452 void Finalize(Heap* heap);
453
454 bool SetupShaderResource(Heap* heap, void* shaderResource, u32 shaderResourceSize);
455
457 {
458 mVertexShaderKey = *key;
459 }
460
462 {
463 mFragmentShaderKey = *key;
464 }
465
467 {
468 mGeometryShaderKey = *key;
469 }
470
472 {
473 return mVertexShaderKey;
474 }
475
477 {
478 return mFragmentShaderKey;
479 }
480
482 {
483 return mGeometryShaderKey;
484 }
485
486 bool IsStripe() const
487 {
488 return mVertexShaderKey.IsStripe();
489 }
490
492 {
493 return mFragmentShaderKey.mShaderVariation;
494 }
495
497 {
498 return mFragmentShaderKey.IsUseSoftEdge();
499 }
500
502 {
503 return mFragmentShaderKey.mTextureVariation;
504 }
505
507 {
508 return mFragmentShaderKey.mColorVariation;
509 }
510
512 {
513 return mFragmentShaderKey.mAlphaVariation;
514 }
515
516 void InitializeAttribute();
521
522 void Setup(Heap* heap)
523 {
524 mShader.SetupShader(heap);
525 }
526
527 bool IsInitialized() const
528 {
529 return mShader.IsInitialized();
530 }
531
532 void Bind();
533
534 void EnableInstanced();
535 void DisableInstanced();
536
538 {
539 return &mShader;
540 }
541
543 {
544 mVertexViewUniformBlock.BindUniformBlock(block);
545 mFragmentViewUniformBlock.BindUniformBlock(block);
546 }
547
549 {
550 mVertexEmitterStaticUniformBlock.BindUniformBlock(block);
551 mFragmentEmitterStaticUniformBlock.BindUniformBlock(block);
552 }
553
555 {
556 mVertexEmitterDynamicUniformBlock.BindUniformBlock(block);
557 }
558
559 s32 GetPositionAttribute() const { return mPositionAttr; }
560 s32 GetNormalAttribute() const { return mNormalAttr; }
561 s32 GetColorAttribute() const { return mColorAttr; }
562 s32 GetTextureCoordAttribute() const { return mTexCoordAttr0; }
563 s32 GetTextureCoordAttribute1() const { return mTexCoordAttr1; }
564 s32 GetIndexAttribute() const { return mIndexAttr; }
565 s32 GetRotateAttribute() const { return vRotAttr; }
566 s32 GetColorAttribute0() const { return mColor0Attr; }
567 s32 GetColorAttribute1() const { return mColor1Attr; }
568 s32 GetScaleAttribute() const { return mSclAttr; }
569 s32 GetTexAnimAttribute() const { return mTexAnimAttr; }
570 s32 GetSubTexAnimAttribute() const { return mSubTexAnimAttr; }
571 s32 GetWolrdPosAttribute() const { return mWldPosAttr; }
572 s32 GetWolrdPosDiffAttribute() const { return mWldPosDfAttr; }
573 s32 GetEmitterMatrix0Attribute() const { return mEmtMatAttr0; }
574 s32 GetOuterAttribute() const { return mOuterAttr; }
575 s32 GetDirAttribute() const { return mDirAttr; }
576
578 {
579 return mFragmentTextureSampler[slot];
580 }
581
583 {
584 return mFragmentTextureSampler[EFT_TEXTURE_SLOT_FRAME_BUFFER];
585 }
586
588 {
589 return mFragmentTextureSampler[EFT_TEXTURE_SLOT_DEPTH_BUFFER];
590 }
591
592 bool SetUserVertexUniformBlock(UserUniformBlockID uniformBlockID, const char* name, void* param);
593 bool SetUserFragmentUniformBlock(UserUniformBlockID uniformBlockID, const char* name, void* param);
594
597
598private:
599 enum { DISPLAY_LSIT_SIZE = 512 };
602
615
617
629
637
642};
643static_assert(sizeof(ParticleShader) == 0x61C, "nw::eft::ParticleShader size mismatch");
644
645} } // namespace nw::eft
646
647#endif // EFT_SHADER_H_
Definition eft_Heap.h:9
Definition eft_Shader.h:410
s32 GetOuterAttribute() const
Definition eft_Shader.h:574
s32 GetSubTexAnimAttribute() const
Definition eft_Shader.h:570
void EnableInstanced()
Definition eft_Shader.cpp:156
VertexTextureLocation mUserVertexSamplerLocation[USER_SAMPLER_SLOT_MAX]
Definition eft_Shader.h:640
s32 mSubTexAnimAttr
Definition eft_Shader.h:620
const FragmentShaderKey & GetFragmentShaderKey() const
Definition eft_Shader.h:476
void InitializeFragmentShaderLocation()
Definition eft_Shader.cpp:54
Shader * GetShaderInst()
Definition eft_Shader.h:537
UniformBlock mStripeUniformBlock
Definition eft_Shader.h:636
UniformBlock mVertexEmitterDynamicUniformBlock
Definition eft_Shader.h:633
UniformBlock mFragmentEmitterStaticUniformBlock
Definition eft_Shader.h:635
s32 GetNormalAttribute() const
Definition eft_Shader.h:560
s32 mIndexAttr
Definition eft_Shader.h:612
FragmentCombinerTypeVariation GetCombinerTyperVariation() const
Definition eft_Shader.h:506
UniformBlock mVertexEmitterStaticUniformBlock
Definition eft_Shader.h:632
s32 mColor0Attr
Definition eft_Shader.h:623
s32 GetPositionAttribute() const
Definition eft_Shader.h:559
s32 vRotAttr
Definition eft_Shader.h:625
s32 mDirAttr
Definition eft_Shader.h:614
void Bind()
Definition eft_Shader.cpp:135
FragmentAlphaVariation GetAlphaVariation() const
Definition eft_Shader.h:511
bool SetUserVertexUniformBlock(UserUniformBlockID uniformBlockID, const char *name, void *param)
Definition eft_Shader.cpp:140
s32 GetTextureCoordAttribute() const
Definition eft_Shader.h:562
FragmentTextureLocation GetDepthTextureSamplerLocation() const
Definition eft_Shader.h:587
GeometryShaderKey mGeometryShaderKey
Definition eft_Shader.h:606
bool IsInitialized() const
Definition eft_Shader.h:527
const GeometryShaderKey & GetGeometryShaderKey() const
Definition eft_Shader.h:481
bool IsFragmentSoftEdgeVariation() const
Definition eft_Shader.h:496
UniformBlock mUserVertexUniformBlock[2]
Definition eft_Shader.h:638
s32 mNormalAttr
Definition eft_Shader.h:608
s32 GetTexAnimAttribute() const
Definition eft_Shader.h:569
s32 GetColorAttribute0() const
Definition eft_Shader.h:566
void DisableInstanced()
Definition eft_Shader.cpp:160
s32 GetDirAttribute() const
Definition eft_Shader.h:575
UniformBlock _56c
Definition eft_Shader.h:634
s32 mTexCoordAttr0
Definition eft_Shader.h:610
@ UNIFORM_BLOCK_VERTEX_EMITTER_DYNAMIC_BLOCK
Definition eft_Shader.h:418
@ UNIFORM_BLOCK_VERTEX_VIEW_BLOCK
Definition eft_Shader.h:416
@ UNIFORM_BLOCK_FRAGMENTVIEW_BLOCK
Definition eft_Shader.h:421
@ UNIFORM_BLOCK_VERTEX_EMITTER_STATIC_BLOCK
Definition eft_Shader.h:417
@ UNIFORM_BLOCK_VERTEX_STRIPE_BLOCK
Definition eft_Shader.h:419
@ UNIFORM_BLOCK_ID_MAX
Definition eft_Shader.h:424
@ UNIFORM_BLOCK_FRAGMENT_EMITTER_STATIC_BLOCK
Definition eft_Shader.h:420
s32 GetWolrdPosDiffAttribute() const
Definition eft_Shader.h:572
void InitializeVertexShaderLocation()
Definition eft_Shader.cpp:47
void BindEmitterDynamicUniformBlock(EmitterDynamicUniformBlock *block)
Definition eft_Shader.h:554
void Finalize(Heap *heap)
Definition eft_Shader.cpp:42
FragmentTextureLocation mUserFragmentSamplerLocation[USER_SAMPLER_SLOT_MAX]
Definition eft_Shader.h:641
s32 mColorAttr
Definition eft_Shader.h:609
s32 GetIndexAttribute() const
Definition eft_Shader.h:564
FragmentTextureLocation mFragmentTextureSampler[EFT_TEXTURE_SLOT_MAX]
Definition eft_Shader.h:616
FragmentTextureVariation GetTextureVariation() const
Definition eft_Shader.h:501
s32 GetColorAttribute() const
Definition eft_Shader.h:561
bool IsStripe() const
Definition eft_Shader.h:486
void SetGeometryShaderKey(GeometryShaderKey *key)
Definition eft_Shader.h:466
UniformBlock mUserFragmentUniformBlock[2]
Definition eft_Shader.h:639
s32 GetRotateAttribute() const
Definition eft_Shader.h:565
@ DISPLAY_LSIT_SIZE
Definition eft_Shader.h:599
FragmentTextureLocation GetUserFragmentSamplerLocation(UserSamplerSlot userSamplerSlot, const char *name)
s32 mTexAnimAttr
Definition eft_Shader.h:619
u32 mDisplayListBufferUsed
Definition eft_Shader.h:601
s32 mTexCoordAttr1
Definition eft_Shader.h:611
s32 mEmtMatAttr2
Definition eft_Shader.h:628
s32 mWldPosAttr
Definition eft_Shader.h:621
void InitializeStripeVertexShaderLocation()
Definition eft_Shader.cpp:89
s32 GetEmitterMatrix0Attribute() const
Definition eft_Shader.h:573
u8 mDisplayListBuffer[DISPLAY_LSIT_SIZE]
Definition eft_Shader.h:600
void SetVertexShaderKey(VertexShaderKey *key)
Definition eft_Shader.h:456
s32 GetScaleAttribute() const
Definition eft_Shader.h:568
const VertexShaderKey & GetVertexShaderKey() const
Definition eft_Shader.h:471
FragmentShaderVariation GetShaderVariation() const
Definition eft_Shader.h:491
s32 GetColorAttribute1() const
Definition eft_Shader.h:567
FragmentShaderKey mFragmentShaderKey
Definition eft_Shader.h:605
s32 mOuterAttr
Definition eft_Shader.h:613
s32 mEmtMatAttr1
Definition eft_Shader.h:627
s32 mEmtMatAttr0
Definition eft_Shader.h:626
VertexTextureLocation GetUserVertexSamplerLocation(UserSamplerSlot userSamplerSlot, const char *name)
s32 GetWolrdPosAttribute() const
Definition eft_Shader.h:571
UserSamplerSlot
Definition eft_Shader.h:437
@ USER_SAMPLER_SLOT_6
Definition eft_Shader.h:444
@ USER_SAMPLER_SLOT_5
Definition eft_Shader.h:443
@ USER_SAMPLER_SLOT_MAX
Definition eft_Shader.h:446
@ USER_SAMPLER_SLOT_2
Definition eft_Shader.h:440
@ USER_SAMPLER_SLOT_0
Definition eft_Shader.h:438
@ USER_SAMPLER_SLOT_4
Definition eft_Shader.h:442
@ USER_SAMPLER_SLOT_1
Definition eft_Shader.h:439
@ USER_SAMPLER_SLOT_7
Definition eft_Shader.h:445
@ USER_SAMPLER_SLOT_3
Definition eft_Shader.h:441
s32 mColor1Attr
Definition eft_Shader.h:624
UniformBlock mVertexViewUniformBlock
Definition eft_Shader.h:630
void SetFragmentShaderKey(FragmentShaderKey *key)
Definition eft_Shader.h:461
s32 GetTextureCoordAttribute1() const
Definition eft_Shader.h:563
void InitializeStripeAttribute()
Definition eft_Shader.cpp:95
void Setup(Heap *heap)
Definition eft_Shader.h:522
void BindEmitterStaticUniformBlock(EmitterStaticUniformBlock *block)
Definition eft_Shader.h:548
FragmentTextureLocation GetFrameBufferTextureSamplerLocation() const
Definition eft_Shader.h:582
UniformBlock mFragmentViewUniformBlock
Definition eft_Shader.h:631
VertexShaderKey mVertexShaderKey
Definition eft_Shader.h:604
Shader mShader
Definition eft_Shader.h:603
ParticleShader()
Definition eft_Shader.cpp:6
s32 mSclAttr
Definition eft_Shader.h:618
s32 mWldPosDfAttr
Definition eft_Shader.h:622
FragmentTextureLocation GetTextureSamplerLocation(TextureSlot slot) const
Definition eft_Shader.h:577
bool SetUserFragmentUniformBlock(UserUniformBlockID uniformBlockID, const char *name, void *param)
bool SetupShaderResource(Heap *heap, void *shaderResource, u32 shaderResourceSize)
Definition eft_Shader.cpp:103
UserUniformBlockID
Definition eft_Shader.h:429
@ UNIFORM_BLOCK_USER_VERTEX_ID_1
Definition eft_Shader.h:431
@ UNIFORM_BLOCK_USER_VERTEX_ID_0
Definition eft_Shader.h:430
@ UNIFORM_BLOCK_USER_FRAGMENT_ID_0
Definition eft_Shader.h:432
@ UNIFORM_BLOCK_USER_FRAGMENT_ID_1
Definition eft_Shader.h:433
void InitializeAttribute()
Definition eft_Shader.cpp:67
void BindViewUniformBlock(ViewUniformBlock *block)
Definition eft_Shader.h:542
s32 mPositionAttr
Definition eft_Shader.h:607
Definition eft_Renderer.h:23
Definition eft_CafeWrapper.h:122
Definition eft_CafeWrapper.h:181
Definition eft_CafeWrapper.cpp:117
@ EFT_STRIPE_FLAG_EMITTER_COORD
Definition eft_Data.h:555
@ EFT_COLOR_BLEND_TYPE_MOD
Definition eft_Data.h:405
@ EFT_COLOR_BLEND_TYPE_SUB
Definition eft_Data.h:407
@ EFT_COLOR_BLEND_TYPE_ADD
Definition eft_Data.h:406
u8 FragmentAlphaVariation
Definition eft_Shader.h:23
u8 FragmentCombinerTypeVariation
Definition eft_Shader.h:20
u8 FragmentCompositeVariation
Definition eft_Shader.h:52
u8 FragmentShaderVariation
Definition eft_Shader.h:33
@ EFT_ROT_TYPE_NO_WORK
Definition eft_Data.h:345
@ EFT_FRAGMENT_SHADER_INPUT_OPT_ONE
Definition eft_Shader.h:57
@ EFT_FRAGMENT_SHADER_INPUT_OPT_MAX
Definition eft_Shader.h:59
@ EFT_FRAGMENT_SHADER_INPUT_OPT_RED
Definition eft_Shader.h:58
@ EFT_FRAGMENT_SHADER_INPUT_OPT_SRC
Definition eft_Shader.h:56
@ EFT_FRAGMENT_SHADER_TYPE_VARIATION_MAX
Definition eft_Shader.h:30
@ EFT_FRAGMENT_SHADER_TYPE_VARIATION_PARTICLE
Definition eft_Shader.h:27
@ EFT_FRAGMENT_SHADER_TYPE_VARIATION_REFRACT_PARTICLE
Definition eft_Shader.h:28
@ EFT_FRAGMENT_SHADER_TYPE_VARIATION_DISTORTION_PARTICLE
Definition eft_Shader.h:29
TextureSlot
Definition eft_Data.h:145
@ EFT_TEXTURE_SLOT_MAX
Definition eft_Data.h:151
@ EFT_TEXTURE_SLOT_1
Definition eft_Data.h:147
@ EFT_EMITTER_FLAG_TEXTURE0_ALPHA_ONE
Definition eft_Data.h:237
@ EFT_EMITTER_FLAG_TEXTURE1_COLOR_ONE
Definition eft_Data.h:235
@ EFT_EMITTER_FLAG_TEXTURE0_COLOR_ONE
Definition eft_Data.h:234
@ EFT_EMITTER_FLAG_PRIMITIVE_ALPHA_ONE
Definition eft_Data.h:239
@ EFT_EMITTER_FLAG_TEXTURE1_ALPHA_ONE
Definition eft_Data.h:238
@ EFT_EMITTER_FLAG_PRIMITIVE_COLOR_ONE
Definition eft_Data.h:236
u8 VertexBillboardTypeVariation
Definition eft_Shader.h:11
@ EFT_BILLBOARD_TYPE_COMPLEX_STRIPE
Definition eft_Data.h:372
@ EFT_BILLBOARD_TYPE_STRIPE
Definition eft_Data.h:371
@ EFT_STRIPE_TYPE_BILLBOARD
Definition eft_Data.h:562
@ EFT_STRIPE_TYPE_MAX
Definition eft_Data.h:565
@ EFT_MESH_TYPE_PRIMITIVE
Definition eft_Data.h:358
u8 VertexRotationVariation
Definition eft_Shader.h:14
@ EFT_FRAGMENT_SHADER_COMPOSITE_MUL
Definition eft_Shader.h:46
@ EFT_FRAGMENT_SHADER_COMPOSITE_MAX
Definition eft_Shader.h:49
@ EFT_FRAGMENT_SHADER_COMPOSITE_SUB
Definition eft_Shader.h:48
@ EFT_FRAGMENT_SHADER_COMPOSITE_ADD
Definition eft_Shader.h:47
@ EFT_CHILD_FLAG_PRIMITIVE_ALPHA_ONE
Definition eft_Data.h:489
@ EFT_CHILD_FLAG_TEXTURE_ALPHA_ONE
Definition eft_Data.h:488
@ EFT_CHILD_FLAG_PRIMITIVE_COLOR_ONE
Definition eft_Data.h:487
@ EFT_CHILD_FLAG_TEXTURE_COLOR_ONE
Definition eft_Data.h:486
u8 FragmentInputOptVariation
Definition eft_Shader.h:62
@ EFT_FRAGMENT_SHADER_TEXTURE_VARIATION_0
Definition eft_Shader.h:37
@ EFT_FRAGMENT_SHADER_TEXTURE_VARIATION_1
Definition eft_Shader.h:38
@ EFT_FRAGMENT_SHADER_TEXTURE_VARIATION_MAX
Definition eft_Shader.h:39
u8 VertexStripeVariation
Definition eft_Shader.h:17
u8 FragmentTextureVariation
Definition eft_Shader.h:42
Definition eft_Data.h:1024
BillboardType childBillboardType
Definition eft_Data.h:1039
PtclRotType childRotType
Definition eft_Data.h:1059
ColorBlendType primitiveAlphaBlend
Definition eft_Data.h:1049
CombinerType childCombinerType
Definition eft_Data.h:1085
MeshType childMeshType
Definition eft_Data.h:1038
AlphaCombinerType childAlphaCombinerType
Definition eft_Data.h:1086
ColorBlendType primitiveColorBlend
Definition eft_Data.h:1048
Definition eft_Data.h:1006
Definition eft_UniformBlock.h:22
Definition eft_UniformBlock.h:29
Definition eft_Shader.h:170
FragmentInputOptVariation mTexture1ColorOpt
Definition eft_Shader.h:183
void MakeKeyFromSimpleEmitterData(const SimpleEmitterData *res, const char *userDef)
Definition eft_Shader.h:240
FragmentTextureVariation mTextureVariation
Definition eft_Shader.h:173
FragmentCompositeVariation mTexture1AlphaComposite
Definition eft_Shader.h:179
u8 mApplyAlpha
Definition eft_Shader.h:188
FragmentInputOptVariation mPrimitiveColorOpt
Definition eft_Shader.h:184
FragmentShaderVariation mShaderVariation
Definition eft_Shader.h:171
FragmentInputOptVariation mTexture0ColorOpt
Definition eft_Shader.h:182
FragmentCombinerTypeVariation mColorVariation
Definition eft_Shader.h:174
FragmentCompositeVariation mPrimitiveAlphaComposite
Definition eft_Shader.h:181
bool IsUsePrimitive() const
Definition eft_Shader.h:201
FragmentInputOptVariation mPrimitiveAlphaOpt
Definition eft_Shader.h:187
u16 _2c
Definition eft_Shader.h:193
FragmentInputOptVariation mTexture0AlphaOpt
Definition eft_Shader.h:185
u8 mUseSoftEdge
Definition eft_Shader.h:172
bool IsUseSoftEdge() const
Definition eft_Shader.h:196
u8 dummy[2]
Definition eft_Shader.h:194
FragmentCompositeVariation mPrimitiveColorComposite
Definition eft_Shader.h:180
u32 mUserShaderFlag
Definition eft_Shader.h:190
FragmentAlphaVariation mAlphaVariation
Definition eft_Shader.h:175
u16 _12
Definition eft_Shader.h:189
void MakeKeyFromChildData(const ChildData *res, const char *userDef, u32 childFlag)
Definition eft_Shader.h:305
bool IsEqual(const FragmentShaderKey *key) const
Definition eft_Shader.h:211
FragmentCompositeVariation mTexture1ColorComposite
Definition eft_Shader.h:178
u8 mUserShaderSetting
Definition eft_Shader.h:176
FragmentInputOptVariation mTexture1AlphaOpt
Definition eft_Shader.h:186
bool IsApplyAlpha() const
Definition eft_Shader.h:206
char mUserShaderCompileDef[16]
Definition eft_Shader.h:192
u32 mUserShaderSwitchFlag
Definition eft_Shader.h:191
bool mUsePrimitive
Definition eft_Shader.h:177
bool GetCompileSetting(char *compileSetting, u32 compileSettingBufferSize, bool targetCafe)
Definition eft_Data.h:645
Definition eft_Shader.h:361
u8 mStripeType
Definition eft_Shader.h:362
u8 mDummy[3]
Definition eft_Shader.h:363
Definition eft_Shader.h:368
u32 totalSize
Definition eft_Shader.h:370
u32 shaderNum
Definition eft_Shader.h:369
u32 offsetShaderBinInfo
Definition eft_Shader.h:372
u32 offsetShaderSrcInfo
Definition eft_Shader.h:371
Definition eft_Shader.h:400
VertexShaderKey vertexShaderKey
Definition eft_Shader.h:401
u32 offset
Definition eft_Shader.h:405
u32 shaderSize
Definition eft_Shader.h:404
FragmentShaderKey fragmentShaderKey
Definition eft_Shader.h:402
GeometryShaderKey geometryShaderKey
Definition eft_Shader.h:403
u32 offset
Definition eft_Shader.h:384
u32 size
Definition eft_Shader.h:383
Definition eft_Shader.h:377
sourceCodeTable vshUser
Definition eft_Shader.h:392
sourceCodeTable gshStripe
Definition eft_Shader.h:391
sourceCodeTable fshParticle
Definition eft_Shader.h:389
sourceCodeTable vshParticle
Definition eft_Shader.h:388
sourceCodeTable fshParticleDeclaration
Definition eft_Shader.h:395
sourceCodeTable vshParticleDeclaration
Definition eft_Shader.h:394
sourceCodeTable fshUser
Definition eft_Shader.h:393
u32 shaderSourceNum
Definition eft_Shader.h:378
u32 shaderSourceTotalSize
Definition eft_Shader.h:379
sourceCodeTable vshStripe
Definition eft_Shader.h:390
Definition eft_Data.h:834
ColorBlendType texture1ColorBlend
Definition eft_Data.h:956
ColorBlendType primitiveAlphaBlend
Definition eft_Data.h:959
BillboardType billboardType
Definition eft_Data.h:923
AlphaCombinerType alphaCombinerType
Definition eft_Data.h:859
PtclRotType ptclRotType
Definition eft_Data.h:856
MeshType meshType
Definition eft_Data.h:922
CombinerType colorCombinerType
Definition eft_Data.h:858
ColorBlendType primitiveColorBlend
Definition eft_Data.h:957
ColorBlendType texture1AlphaBlend
Definition eft_Data.h:958
Definition eft_Data.h:1162
StripeType stripeType
Definition eft_Data.h:1163
Definition eft_Shader.h:65
u8 mUserShaderSetting
Definition eft_Shader.h:68
u32 mUserShaderFlag
Definition eft_Shader.h:72
bool IsEqual(const VertexShaderKey *key) const
Definition eft_Shader.h:147
VertexBillboardTypeVariation mVertexBillboardTypeVariation
Definition eft_Shader.h:66
VertexStripeVariation mStripeTypeVariation
Definition eft_Shader.h:69
bool IsStripe() const
Definition eft_Shader.h:76
void MakeKeyFromChildData(const ChildData *res, const char *userDef)
Definition eft_Shader.h:130
bool GetCompileSetting(char *compileSetting, u32 compileSettingBufferSize, bool targetCafe)
u32 mUserShaderSwitchFlag
Definition eft_Shader.h:73
bool mUsePrimitive
Definition eft_Shader.h:71
bool IsUsePrimitive() const
Definition eft_Shader.h:82
VertexRotationVariation mVertexRotationVariation
Definition eft_Shader.h:67
void MakeKeyFromComplexEmitterData(const ComplexEmitterData *res, const char *userDef)
Definition eft_Shader.h:104
void MakeKeyFromSimpleEmitterData(const SimpleEmitterData *res, const char *userDef)
Definition eft_Shader.h:87
bool mStripeEmitterCoord
Definition eft_Shader.h:70
char mUserShaderCompileDef[16]
Definition eft_Shader.h:74
Definition eft_Data.h:634
Definition eft_UniformBlock.h:9