NW4F Eft
Loading...
Searching...
No Matches
eft_System.h
Go to the documentation of this file.
1#ifndef EFT_SYSTEM_H_
2#define EFT_SYSTEM_H_
3
4#include <nw/eft/eft_typeDef.h>
5#include <nw/eft/eft_Data.h>
6#include <nw/eft/eft_Callback.h>
7
8namespace nw { namespace eft {
9
10struct AlphaAnim;
11class Config;
12class EmitterCalc;
13class EmitterSet;
15class Handle;
16class Heap;
17struct PtclStripe;
18class Renderer;
19class Resource;
20struct ScaleAnim;
22
23class System
24{
25public:
26 explicit System(const Config& config);
27 virtual ~System(); // deleted
28
29 void EntryResource(Heap* heap, void* resource, s32 resId);
30 void ClearResource(Heap* heap, s32 resId);
31 Resource* GetResource(u32 resId) { return mResource[resId]; }
32
33 bool CreateEmitterSetID(Handle* handle, const nw::math::VEC3& pos, s32 emitterSetID, s32 resourceID = 0, u8 groupID = 0, u32 emitterMask = 0xffffffff)
34 {
35 nw::math::MTX34 matrix;
36 matrix.SetIdentity();
37 matrix._03 = pos.x;
38 matrix._13 = pos.y;
39 matrix._23 = pos.z;
40 return CreateEmitterSetID(handle, matrix, emitterSetID, resourceID, groupID, emitterMask);
41 }
42
43 bool CreateEmitterSetID(Handle* handle, const nw::math::MTX34& mtx, s32 emitterSetID, s32 resourceID = 0, u8 groupID = 0, u32 emitterMask = 0xffffffff);
44
46 void KillEmitterGroup(u8 groupID);
47 void KillEmitterSet(EmitterSet* emitterSet);
48 void KillEmitterSet(const char* emitterSetName, s32 resId);
49 void KillEmitter(EmitterInstance* emitter);
52
53 s32 SearchEmitterSetID(const char* emitterSetName, s32 resId = 0) const;
54 const char* SearchEmitterSetName(s32 emitterSetId, s32 resId = 0) const;
55
56 void BeginFrame();
57 void SwapDoubleBuffer();
58 void CalcEmitter(u8 groupID, f32 frameRate = 1.0f);
59
60public:
61 void CalcParticle(EmitterInstance* emitter, CpuCore core);
62 void CalcChildParticle(EmitterInstance* emitter, CpuCore core);
63 void CalcParticle(bool cacheFlush = true);
64 void Calc(bool cacheFlush = true);
65
66 void RemovePtcl();
67
68 void FlushCache();
69 void FlushGpuCache();
70
71 void BeginRender(const nw::math::MTX44& proj, const nw::math::MTX34& view, const nw::math::VEC3& camPos, f32 nearClip, f32 farClip);
72 void RenderEmitter(EmitterInstance* emitter, bool cacheFlush = true, void* userParam = NULL);
73 void EndRender();
74
79
81 {
82 return mRenderer[core];
83 }
84
92
100
102
106
110
111 bool IsValidStripe(u8 groupID) const
112 {
113 return mStripeHead[groupID] != NULL;
114 }
115
116 bool HasEnableEmitter(u8 groupID);
117
119 {
120 return mNumResource;
121 }
122
124 {
125 return mNumFreeEmitter;
126 }
127
129 {
130 return mNumEmitterCalc;
131 }
132
134 {
135 return mNumPtclCalc;
136 }
137
139 {
140 return mNumEmitterSetCalc;
141 }
142
144 {
145 return mNumStripeCalc;
146 }
147
149 {
150 return mNumEmittedPtcl;
151 }
152
155
156 const EmitterInstance* GetEmitterHead(u8 groupID) const
157 {
158 return mEmitterHead[groupID];
159 }
160
162 {
163 return mEmitterHead[groupID];
164 }
165
166 u32 GetNumEmitter(u8 groupID);
167
168 const EmitterInstance* GetEmitter(u8 groupID, u32 idx) const;
169
170 EmitterInstance* GetEmitter(u8 groupID, u32 idx);
171
172 const EmitterSet* GetEmitterSetHead(u8 groupID) const
173 {
174 return mEmitterSetHead[groupID];
175 }
176
178 {
179 return mEmitterSetHead[groupID];
180 }
181
182 const PtclStripe* GetStripeHead(u8 groupID) const
183 {
184 return mStripeHead[groupID];
185 }
186
187 bool IsHasRenderingEmitter(u8 groupID, u32 drawPath) const
188 {
189 for (u32 core = 0; core < EFT_CPU_CORE_MAX; core++)
190 if (mEnableRenderPath[core][groupID] & drawPath)
191 return true;
192
193 return false;
194 }
195
197 {
198 return mEnableGroupID;
199 }
200
202 {
203 return mPtcls;
204 }
205
207
209 {
210 return mEmitters;
211 }
212
214 {
215 return mStripes;
216 }
217
219 {
220 return (CpuCore)OSGetCoreId();
221 }
222
223public:
224 void AddPtclRemoveList(PtclInstance* ptcl, CpuCore core);
225 void EmitChildParticle();
226 void AddPtclAdditionList(PtclInstance* ptcl, CpuCore core);
227
230
233
234 void RemoveStripe(PtclStripe* stripe);
236
237 void ReCreateEmitter(void** resList, s32 numResList, s32 resId, s32 setId, bool killOnly);
238 void ReCreateEmitter(EmitterSet* set, s32 resId, s32 setId, u8 groupID);
239
240private:
242 EmitterInstance* AllocEmitter(u8 groupID);
243 void AddEmitterSetToDrawList(EmitterSet* set, u8 groupID);
244
245 void InitializeEmitter(EmitterInstance* emitter, const SimpleEmitterData* res, s32 resourceID, s32 emitterSetID, u32 setRndSeed, bool nonUpdateCreateID = false);
246
247 void RemovePtcl_();
248
254 static_assert(sizeof(sortEmitterSets) == 8, "nw::eft::System::sortEmitterSets size mismatch");
255
256 static int ComparePtclViewZ(const void* a, const void* b);
257
258protected:
259 virtual void Initialize(Heap* heap, const Config& config);
260
261private:
263
270
272
276
281
286
291
294
310
313
316
323
349};
350static_assert(sizeof(System) == 0xA28, "nw::eft::System size mismatch");
351
352} } // namespace nw::eft
353
354#endif // EFT_SYSTEM_H_
Definition eft_Config.h:11
Definition eft_Emitter.h:222
Definition eft_EmitterSet.h:122
Definition eft_Handle.h:11
Definition eft_Heap.h:9
Definition eft_Renderer.h:23
Definition eft_Resource.h:59
Definition eft_System.h:24
void SetUserDataEmitterPreCalcCallback(UserDataCallBackID id, UserDataEmitterPreCalcCallback callback)
Definition eft_SystemCallback.cpp:7
const PtclStripe * GetStripeBuf() const
Definition eft_System.h:213
void EntryResource(Heap *heap, void *resource, s32 resId)
Definition eft_SystemPublic.cpp:30
void RemovePtcl()
Definition eft_System.cpp:336
u32 GetPtclBufSize() const
void AddPtclAdditionList(PtclInstance *ptcl, CpuCore core)
Definition eft_System.cpp:378
s32 GetNumPtclCalc() const
Definition eft_System.h:133
s32 GetNumEmittedPtcl() const
Definition eft_System.h:148
u32 mEmitterSetCreateID
Definition eft_System.h:314
u32 GetUsedDoubleBufferSize(CpuCore core=EFT_CPU_CORE_1) const
UserDataParticleMakeAttributeCallback mUserDataParticleMakeAttrCallback[EFT_USER_DATA_CALLBACK_ID_MAX]
Definition eft_System.h:334
s32 mCurEmitterIx
Definition eft_System.h:279
PtclInstance ** mPtclRemoveArray[EFT_CPU_CORE_MAX]
Definition eft_System.h:289
UserDataEmitterDrawOverrideCallback mUserDataEmitterDrawOverrideCallback[EFT_USER_DATA_CALLBACK_ID_MAX]
Definition eft_System.h:338
s32 GetNumEmitterSetCalc() const
Definition eft_System.h:138
u32 GetDoubleBufferSize(CpuCore core=EFT_CPU_CORE_1) const
u32 mCurrentDrawPathFlag[EFT_CPU_CORE_MAX]
Definition eft_System.h:347
EmitterInstance * mEmitters
Definition eft_System.h:277
virtual void Initialize(Heap *heap, const Config &config)
Definition eft_System.cpp:25
void * mRendererPtr[EFT_CPU_CORE_MAX]
Definition eft_System.h:319
EmitterSet * GetEmitterSetHead(u8 groupID)
Definition eft_System.h:177
void * mEmitterCalcSimplePtr
Definition eft_System.h:320
void CalcEmitter(u8 groupID, f32 frameRate=1.0f)
Definition eft_SystemCalcDraw.cpp:48
void RemovePtcl_()
Definition eft_System.cpp:225
EmitterSet * mEmitterSetHead[EFT_GROUP_MAX]
Definition eft_System.h:274
s32 mNumEmitterDataMask
Definition eft_System.h:301
void ReCreateEmitter(void **resList, s32 numResList, s32 resId, s32 setId, bool killOnly)
Definition eft_SystemCreation.cpp:227
void SetUserShaderEmitterPostCalcCallback(UserShaderCallBackID id, UserShaderEmitterPostCalcCallback callback)
Definition eft_SystemCallback.cpp:150
void KillParticle(EmitterInstance *emitter, PtclInstance *ptcl)
void FlushCache()
Definition eft_SystemCalcDraw.cpp:145
s32 mNumEmitterSetMask
Definition eft_System.h:269
UserShaderEmitterPostCalcCallback mUserShaderEmitterCalcPostCallback[EFT_USER_SHADER_CALLBACK_MAX]
Definition eft_System.h:340
EmitterInstance * GetEmitterHead(u8 groupID)
Definition eft_System.h:161
void ReCreateEmitter(EmitterSet *set, s32 resId, s32 setId, u8 groupID)
Definition eft_SystemCreation.cpp:263
s32 mNumEmitterCalc
Definition eft_System.h:304
void Calc(bool cacheFlush=true)
Definition eft_SystemCalcDraw.cpp:192
static int ComparePtclViewZ(const void *a, const void *b)
UserDataParticleRemoveCallback mUserDataParticleRemoveCallback[EFT_USER_DATA_CALLBACK_ID_MAX]
Definition eft_System.h:330
EmitterSet * mEmitterSetTail[EFT_GROUP_MAX]
Definition eft_System.h:275
void SetUserDataParticleEmitCallback(UserDataCallBackID id, UserDataParticleEmitCallback callback)
Definition eft_SystemCallback.cpp:19
void SetUserDataParticleCalcCallback(UserDataCallBackID id, UserDataParticleCalcCallback callback)
Definition eft_SystemCallback.cpp:31
nw::math::MTX44 mViewMatrix[EFT_CPU_CORE_MAX]
Definition eft_System.h:271
void AddPtclRemoveList(PtclInstance *ptcl, CpuCore core)
Definition eft_System.cpp:353
bool IsValidStripe(u8 groupID) const
Definition eft_System.h:111
void CalcParticle(EmitterInstance *emitter, CpuCore core)
Definition eft_SystemCalcDraw.cpp:88
EmitterStaticUniformBlock * mEmitterStaticUniformBlock
Definition eft_System.h:278
s32 mNumPtclDataMask
Definition eft_System.h:302
void SetUserDataEmitterPostCalcCallback(UserDataCallBackID id, UserDataEmitterPostCalcCallback callback)
Definition eft_SystemCallback.cpp:13
const char * SearchEmitterSetName(s32 emitterSetId, s32 resId=0) const
u64 mEnableGroupID
Definition eft_System.h:309
void KillEmitterGroup(u8 groupID)
Definition eft_SystemPublic.cpp:81
UserDataParticleRemoveCallback GetCurrentUserDataParticleRemoveCallback(const EmitterInstance *emitter)
Definition eft_SystemCallback.cpp:82
EmitterCalc * mEmitterCalc[EFT_EMITTER_TYPE_MAX]
Definition eft_System.h:315
s32 mNumPtclData
Definition eft_System.h:299
bool HasEnableEmitter(u8 groupID)
s32 GetNumFreeEmitter() const
Definition eft_System.h:123
s32 mNumStripe
Definition eft_System.h:300
UserShaderRenderStateSetCallback GetUserShaderRenderStateSetCallback(UserShaderCallBackID id)
Definition eft_SystemCallback.cpp:142
void RenderEmitter(EmitterInstance *emitter, bool cacheFlush=true, void *userParam=NULL)
Definition eft_SystemCalcDraw.cpp:213
bool mInitialized
Definition eft_System.h:262
u32 _8a4
Definition eft_System.h:322
PtclInstance ** mPtclAdditionArray[EFT_CPU_CORE_MAX]
Definition eft_System.h:287
void SetUserDataParticleRemoveCallback(UserDataCallBackID id, UserDataParticleRemoveCallback callback)
Definition eft_SystemCallback.cpp:25
UserDataParticleCalcCallback GetCurrentUserDataParticleCalcCallback(const EmitterInstance *emitter)
Definition eft_SystemCallback.cpp:93
UserDataCallBackID mEnableCallbackID
Definition eft_System.h:324
void KillEmitter(EmitterInstance *emitter)
Definition eft_SystemPublic.cpp:38
void AddEmitterSetToDrawList(EmitterSet *set, u8 groupID)
Definition eft_System.cpp:542
System(const Config &config)
Definition eft_System.cpp:17
s32 mNumEmitterSetCalc
Definition eft_System.h:306
UserShaderDrawOverrideCallback mUserShaderDrawOverrideCallback[EFT_USER_SHADER_CALLBACK_MAX]
Definition eft_System.h:342
Heap * mHeap
Definition eft_System.h:264
s32 GetNumEmitterCalc() const
Definition eft_System.h:128
s32 mNumResource
Definition eft_System.h:266
s32 mPtclAdditionIdx[EFT_CPU_CORE_MAX]
Definition eft_System.h:288
void KillChildParticle(EmitterInstance *emitter, PtclInstance *ptcl)
void SetUserDataEmitterDrawOverrideCallback(UserDataCallBackID id, UserDataEmitterDrawOverrideCallback callback)
Definition eft_SystemCallback.cpp:43
Renderer * GetRenderer()
Definition eft_System.h:75
void EndRender()
Definition eft_SystemCalcDraw.cpp:251
void * mEmitterSetPtr
Definition eft_System.h:318
u32 GetNumEmitter(u8 groupID)
u32 mPtclRemoveIdx[EFT_CPU_CORE_MAX]
Definition eft_System.h:290
UserShaderEmitterPostCalcCallback GetUserShaderEmitterPostCalcCallback(UserShaderCallBackID id)
Definition eft_SystemCallback.cpp:126
EmitterInstance * mEmitterHead[EFT_GROUP_MAX]
Definition eft_System.h:273
Resource * GetResource(u32 resId)
Definition eft_System.h:31
void SwapDoubleBuffer()
Definition eft_SystemCalcDraw.cpp:24
UserShaderRenderStateSetCallback mUserShaderRenderStateSetCallback[EFT_USER_SHADER_CALLBACK_MAX]
Definition eft_System.h:344
EmitterInstance * AllocEmitter(u8 groupID)
Definition eft_System.cpp:507
void KillEmitterSet(const char *emitterSetName, s32 resId)
Definition eft_SystemPublic.cpp:106
void BeginRender(const nw::math::MTX44 &proj, const nw::math::MTX34 &view, const nw::math::VEC3 &camPos, f32 nearClip, f32 farClip)
Definition eft_SystemCalcDraw.cpp:207
PtclStripe * AllocAndConnectStripe(EmitterInstance *e, PtclInstance *ptcl)
Definition eft_System.cpp:387
static CpuCore GetCurrentCore()
Definition eft_System.h:218
s32 GetNumResource() const
Definition eft_System.h:118
const EmitterInstance * GetEmitterBuf() const
Definition eft_System.h:208
void KillEmitterSet(EmitterSet *emitterSet)
Definition eft_SystemPublic.cpp:94
void CalcChildParticle(EmitterInstance *emitter, CpuCore core)
Definition eft_SystemCalcDraw.cpp:114
bool IsHasRenderingEmitter(u8 groupID, u32 drawPath) const
Definition eft_System.h:187
PtclStripe * mStripeHead[EFT_GROUP_MAX]
Definition eft_System.h:293
EmitterSet * AllocEmitterSet(Handle *handle)
Definition eft_System.cpp:484
s32 SearchEmitterSetID(const char *emitterSetName, s32 resId=0) const
Definition eft_SystemPublic.cpp:115
const PtclInstance * GetPtclBuf() const
Definition eft_System.h:201
UserDataEmitterPreCalcCallback mUserDataEmitterPreCalcCallback[EFT_USER_DATA_CALLBACK_ID_MAX]
Definition eft_System.h:326
s32 mNumEmitterData
Definition eft_System.h:298
EmitterSet * mEmitterSet
Definition eft_System.h:267
u32 _530
Definition eft_System.h:295
AlphaAnim * mAlphaAnim
Definition eft_System.h:284
s32 mNumEmittedPtcl
Definition eft_System.h:307
void SetUserDataParticleMakeAttributeCallback(UserDataCallBackID id, UserDataParticleMakeAttributeCallback callback)
Definition eft_SystemCallback.cpp:37
UserDataEmitterPostCalcCallback mUserDataEmitterPostCalcCallback[EFT_USER_DATA_CALLBACK_ID_MAX]
Definition eft_System.h:336
void * mEmitterCalcComplexPtr
Definition eft_System.h:321
virtual ~System()
Definition eft_System.cpp:170
sortEmitterSets * mSortEmittetSet[EFT_CPU_CORE_MAX]
Definition eft_System.h:345
UserDataEmitterPostCalcCallback GetCurrentUserDataEmitterPostCalcCallback(const EmitterInstance *emitter)
Definition eft_SystemCallback.cpp:60
void UpdateEmitterSetResInfo()
Definition eft_System.cpp:458
void EmitChildParticle()
Definition eft_System.cpp:361
u32 mCalcSwapFlag
Definition eft_System.h:348
UserDataParticleEmitCallback GetCurrentUserDataParticleEmitCallback(const EmitterInstance *emitter)
Definition eft_SystemCallback.cpp:71
void BeginFrame()
Definition eft_SystemCalcDraw.cpp:11
ScaleAnim * mScaleAnim
Definition eft_System.h:285
u32 mSortEmitterSetIx[EFT_CPU_CORE_MAX]
Definition eft_System.h:346
void SetUserShaderDrawOverrideCallback(UserShaderCallBackID id, UserShaderDrawOverrideCallback callback)
Definition eft_SystemCallback.cpp:156
void FlushGpuCache()
Definition eft_SystemCalcDraw.cpp:151
PtclStripe * mStripes
Definition eft_System.h:292
void UpdateEmitterResInfo()
Definition eft_System.cpp:445
void CalcParticle(bool cacheFlush=true)
Definition eft_SystemCalcDraw.cpp:159
const EmitterInstance * GetEmitter(u8 groupID, u32 idx) const
s32 mNumStripeCalc
Definition eft_System.h:308
const PtclStripe * GetStripeHead(u8 groupID) const
Definition eft_System.h:182
void ClearResource(Heap *heap, s32 resId)
Definition eft_SystemPublic.cpp:12
UserShaderDrawOverrideCallback GetUserShaderDrawOverrideCallback(UserShaderCallBackID id)
Definition eft_SystemCallback.cpp:134
Resource ** mResource
Definition eft_System.h:265
PtclInstance * mPtcls
Definition eft_System.h:282
u64 GetEnableGroupID() const
Definition eft_System.h:196
void KillAllEmitter()
s32 mNumEmitterSet
Definition eft_System.h:268
void SetUserShaderRenderStateSetCallback(UserShaderCallBackID id, UserShaderRenderStateSetCallback callback)
Definition eft_SystemCallback.cpp:162
UserDataParticleCalcCallback mUserDataParticleCalcCallback[EFT_USER_DATA_CALLBACK_ID_MAX]
Definition eft_System.h:332
s32 mCurEmitterSetIx
Definition eft_System.h:296
UserDataParticleEmitCallback mUserDataParticleEmitCallback[EFT_USER_DATA_CALLBACK_ID_MAX]
Definition eft_System.h:328
s32 mNumStripeMask
Definition eft_System.h:303
Renderer * mRenderer[EFT_CPU_CORE_MAX]
Definition eft_System.h:312
void InitializeEmitter(EmitterInstance *emitter, const SimpleEmitterData *res, s32 resourceID, s32 emitterSetID, u32 setRndSeed, bool nonUpdateCreateID=false)
Definition eft_SystemCreation.cpp:12
bool CreateEmitterSetID(Handle *handle, const nw::math::VEC3 &pos, s32 emitterSetID, s32 resourceID=0, u8 groupID=0, u32 emitterMask=0xffffffff)
Definition eft_System.h:33
void RemoveStripe(PtclStripe *stripe)
Definition eft_System.cpp:202
bool SetCurrentUserDataCallback(UserDataCallBackID id)
void * ResourcePtr
Definition eft_System.h:317
s32 mNumFreeEmitter
Definition eft_System.h:280
EmitterSet * RemoveEmitterSetFromDrawList(EmitterSet *set)
Definition eft_System.cpp:304
Renderer * GetRenderer(nw::eft::CpuCore core)
Definition eft_System.h:80
const EmitterInstance * GetEmitterHead(u8 groupID) const
Definition eft_System.h:156
EmitterInstance * GetEmitter(u8 groupID, u32 idx)
Definition eft_SystemPublic.cpp:120
u32 mEnableRenderPath[EFT_CPU_CORE_MAX][EFT_GROUP_MAX]
Definition eft_System.h:311
const EmitterSet * GetEmitterSetHead(u8 groupID) const
Definition eft_System.h:172
s32 GetNumStripeCalc() const
Definition eft_System.h:143
s32 mNumPtclCalc
Definition eft_System.h:305
PtclInstance * AllocPtcl(PtclType type)
Definition eft_System.cpp:427
UserDataEmitterDrawOverrideCallback GetCurrentUserDataEmitterDrawOverrideCallback(const EmitterInstance *emitter)
Definition eft_SystemCallback.cpp:115
UserDataEmitterPreCalcCallback GetCurrentUserDataEmitterPreCalcCallback(const EmitterInstance *emitter)
Definition eft_SystemCallback.cpp:49
s32 mCurPtclIx
Definition eft_System.h:283
s32 mCurStripeIx
Definition eft_System.h:297
UserDataParticleMakeAttributeCallback GetCurrentUserDataParticleMakeAttributeCallback(const EmitterInstance *emitter)
Definition eft_SystemCallback.cpp:104
Definition eft_CafeWrapper.cpp:117
void(* UserShaderEmitterPostCalcCallback)(ShaderEmitterPostCalcArg &arg)
Definition eft_Callback.h:87
void(* UserDataEmitterDrawOverrideCallback)(EmitterDrawOverrideArg &arg)
Definition eft_Callback.h:82
PtclType
Definition eft_Data.h:43
@ EFT_GROUP_MAX
Definition eft_Data.h:16
bool(* UserDataParticleEmitCallback)(ParticleEmitArg &arg)
Definition eft_Callback.h:83
void(* UserDataEmitterPreCalcCallback)(EmitterPreCalcArg &arg)
Definition eft_Callback.h:80
CpuCore
Definition eft_Data.h:24
@ EFT_CPU_CORE_MAX
Definition eft_Data.h:28
@ EFT_CPU_CORE_1
Definition eft_Data.h:26
@ EFT_EMITTER_TYPE_MAX
Definition eft_Data.h:37
void(* UserDataParticleMakeAttributeCallback)(const ParticleCalcArg &arg)
Definition eft_Callback.h:86
void(* UserShaderDrawOverrideCallback)(ShaderDrawOverrideArg &arg)
Definition eft_Callback.h:88
UserShaderCallBackID
Definition eft_Data.h:128
@ EFT_USER_SHADER_CALLBACK_MAX
Definition eft_Data.h:138
void(* UserDataEmitterPostCalcCallback)(EmitterPostCalcArg &arg)
Definition eft_Callback.h:81
bool(* UserDataParticleRemoveCallback)(ParticleRemoveArg &arg)
Definition eft_Callback.h:84
void(* UserShaderRenderStateSetCallback)(RenderStateSetArg &arg)
Definition eft_Callback.h:89
UserDataCallBackID
Definition eft_Data.h:63
@ EFT_USER_DATA_CALLBACK_ID_MAX
Definition eft_Data.h:73
void(* UserDataParticleCalcCallback)(ParticleCalcArg &arg)
Definition eft_Callback.h:85
Definition eft_Particle.h:49
Definition eft_Emitter.h:23
Definition eft_UniformBlock.h:29
Definition eft_Particle.h:69
Definition eft_Particle.h:28
Definition eft_Particle.h:58
Definition eft_Data.h:834
Definition eft_System.h:250
EmitterSet * emitterSet
Definition eft_System.h:251
u32 z
Definition eft_System.h:252