4#include <nw/eft/eft_Emitter.h>
5#include <nw/eft/eft_TemporaryBuffer.h>
7#include <nw/eft/cafe/eft_CafeWrapper.h>
9namespace nw {
namespace eft {
31 static_assert(
sizeof(
sortPtcl) == 0xC,
"nw::eft::Renderer::sortPtcl size mismatch");
39 void BeginRender(
const nw::math::MTX44& proj,
const nw::math::MTX34& view,
const nw::math::VEC3& camPos, f32 near, f32 far);
52 void SetDepthTexture(
Texture depthTexture, f32 offsetU = 0.0f, f32 offsetV = 0.0f, f32 scaleU = 1.0f, f32 scaleV = 1.0f)
55 mDepthTextureOffset.x = offsetU;
56 mDepthTextureOffset.y = offsetV;
57 mDepthTextureScale.x = scaleU;
58 mDepthTextureScale.y = scaleV;
64 mFrameBufferTextureOffset.x = offsetU;
65 mFrameBufferTextureOffset.y = offsetV;
66 mFrameBufferTextureScale.x = scaleU;
67 mFrameBufferTextureScale.y = scaleV;
80 return mTemporaryBuffer.GetSize();
85 return mTemporaryBuffer.GetUsedSize();
109 return cres->childUserShaderSetting;
113 return emitter
->res->userShaderSetting;
124 return cres->childUserShaderFlag;
128 return emitter
->res->userShaderFlag;
139 return &cres->childUserShaderParam;
143 return &emitter
->res->userShaderParam;
149 return emitter
->res->userShaderParam.param[paramIdx];
157 return cres->childUserShaderParam.param[paramIdx];
167 return cres->childUserShaderParam.param[paramIdx];
171 return emitter
->res->userShaderParam.param[paramIdx];
187 return mStripeVertexCalcNum;
210 return mRenderContext;
253 const nw::math::VEC3& startPos,
254 const nw::math::VEC3& startVel,
255 const nw::math::VEC3& endPos,
256 const nw::math::VEC3& endVel,
287static_assert(
sizeof(
Renderer) == 0x17C,
"nw::eft::Renderer size mismatch");
Definition eft_Config.h:11
Definition eft_CafeWrapper.h:14
u32 PrimitiveType
Definition eft_CafeWrapper.h:16
Definition eft_Shader.h:410
Definition eft_Primitive.h:10
Definition eft_CafeWrapper.h:69
Definition eft_Renderer.h:23
Rendercontext mRenderContext
Definition eft_Renderer.h:265
nw::math::MTX44 GetViewMatrix() const
Definition eft_Renderer.h:218
s32 MakeStripeAttributeBlockCoreDivide(PtclStripe *stripe, StripeVertexBuffer *stripeVertex, s32 wroteVertexNum, s32 numDivide)
Definition eft_RendererStripe.cpp:156
nw::math::MTX44 mMatViewProj
Definition eft_Renderer.h:268
VertexBuffer mPositionVB
Definition eft_Renderer.h:272
void EndRender()
Definition eft_Renderer.cpp:466
nw::math::VEC3 mEyePos
Definition eft_Renderer.h:271
nw::math::VEC2 mDepthTextureOffset
Definition eft_Renderer.h:277
const nw::eft::UserShaderParam * GetUserShaderParam(const EmitterInstance *emitter)
Definition eft_Renderer.h:132
bool SetupParticleShaderAndVertex(ParticleShader *shader, MeshType meshType, Primitive *primitive)
Definition eft_Renderer.cpp:152
nw::math::MTX44 GetViewProjMatrix() const
Definition eft_Renderer.h:223
void SetShaderType(ShaderType type)
Definition eft_Renderer.h:195
nw::math::VEC2 mFrameBufferTextureScale
Definition eft_Renderer.h:280
u32 GetStripeVertexCalcNum() const
Definition eft_Renderer.h:185
Renderer(Heap *heap, System *system, const Config &config)
Definition eft_Renderer.cpp:34
nw::math::VEC2 mDepthTextureScale
Definition eft_Renderer.h:278
ParticleShader * GetShader(const EmitterInstance *emitter)
Definition eft_Renderer.h:90
static s32 ComparePtclViewZ(const void *a, const void *b)
Definition eft_Renderer.cpp:15
VertexBuffer mIndexVB
Definition eft_Renderer.h:273
u8 GetUserShaderSetting(const EmitterInstance *emitter)
Definition eft_Renderer.h:102
u32 GetDoubleBufferSize() const
Definition eft_Renderer.h:78
bool MakeStripeAttributeBlock(EmitterInstance *emitter)
Definition eft_RendererStripe.cpp:349
nw::math::VEC3 mEyeVec
Definition eft_Renderer.h:270
void BeginRender(const nw::math::MTX44 &proj, const nw::math::MTX34 &view, const nw::math::VEC3 &camPos, f32 near, f32 far)
Definition eft_Renderer.cpp:95
void EntryChildParticleSub(const EmitterInstance *emitter, bool cacheFlush, void *userParam)
Definition eft_Renderer.cpp:324
void BindParticleAttributeBlock(PtclAttributeBuffer *ptclAttributeBuffer, ParticleShader *shader, u32 entryNum)
Definition eft_RenderBlock.cpp:6
~Renderer()
Definition eft_Renderer.cpp:87
s32 MakeConnectionStripeAttributeBlockCore(EmitterInstance *emitter, s32 numPtcl, PtclInstance *pTailPtcl, PtclInstance *pTail2ndPtcl, s32 tailType, StripeVertexBuffer *stripeVertex, s32 wroteVertexNum=0)
Definition eft_RendererStripe.cpp:473
DrawViewFlag GetDrawViewFlag() const
Definition eft_Renderer.h:180
Draw::PrimitiveType mDrawPrimitiveType
Definition eft_Renderer.h:266
Primitive * GetCurrentPrimitive() const
Definition eft_Renderer.h:203
u32 mStripeVertexCalcNum
Definition eft_Renderer.h:282
void * AllocFromDoubleBuffer(u32 size)
Definition eft_RendererEtc.cpp:12
void SetDepthTexture(Texture depthTexture, f32 offsetU=0.0f, f32 offsetV=0.0f, f32 scaleU=1.0f, f32 scaleV=1.0f)
Definition eft_Renderer.h:52
nw::math::MTX44 mMatBillboard
Definition eft_Renderer.h:269
u32 GetUserShaderFlag(const EmitterInstance *emitter)
Definition eft_Renderer.h:117
StripeVertexBuffer * MakeConnectionStripeAttributeBlock(EmitterInstance *emitter, bool cacheFlush)
Definition eft_RendererStripe.cpp:997
void EntryParticleSub(const EmitterInstance *emitter, bool cacheFlush, void *userParam)
Definition eft_Renderer.cpp:343
nw::math::VEC2 mFrameBufferTextureOffset
Definition eft_Renderer.h:279
f32 GetParentParticleUserShaderParam(const EmitterInstance *emitter, u32 paramIdx)
Definition eft_Renderer.h:147
void SetFrameBufferTexture(Texture frameBufferTexture, f32 offsetU=0.0f, f32 offsetV=0.0f, f32 scaleU=1.0f, f32 scaleV=1.0f)
Definition eft_Renderer.h:61
System * mSystem
Definition eft_Renderer.h:263
void SetTextureSlot(TextureSlot slot, Texture texture)
Definition eft_Renderer.h:70
PtclType mCurrentDrawingType
Definition eft_Renderer.h:283
DrawViewFlag mDrawViewFlag
Definition eft_Renderer.h:285
const System * GetEffectSystem() const
Definition eft_Renderer.h:190
void FlushCache()
Definition eft_RendererEtc.cpp:20
ViewUniformBlock * mViewUniformBlock
Definition eft_Renderer.h:275
PtclType GetPtclType() const
Definition eft_Renderer.h:213
ShaderType mCurrentShaderType
Definition eft_Renderer.h:284
s32 MakeStripeAttributeBlockCore(PtclStripe *__restrict stripe, StripeVertexBuffer *stripeVertex, s32 wroteVertexNum)
Definition eft_RendererStripe.cpp:13
void RequestParticle(const EmitterInstance *e, ParticleShader *shader, bool bChild, bool cacheFlush, void *userParam)
Definition eft_Renderer.cpp:188
void EntryParticleFromCallback(const EmitterInstance *emitter, bool cacheFlush, void *userParam)
Definition eft_Renderer.h:42
void EntryParticle(EmitterInstance *emitter, bool cacheFlush=true, void *userParam=NULL)
Definition eft_Renderer.cpp:362
void EntryStripe(EmitterInstance *emitter, bool cacheFlush, void *userParam)
Definition eft_RendererStripe.cpp:1231
Primitive * mCurrentPrimitive
Definition eft_Renderer.h:274
Rendercontext & GetRenderContext()
Definition eft_Renderer.h:208
f32 GetUserShaderParam(const EmitterInstance *emitter, u32 paramIdx)
Definition eft_Renderer.h:160
void SwapDoubleBuffer()
Definition eft_RendererEtc.cpp:6
bool ConnectionStripeUvScaleCalc(f32 &frateScaleUv, f32 &uvStartOfs, const EmitterInstance *emitter, s32 numLoop, f32 frateScale, s32 tailType)
Definition eft_RendererStripe.cpp:431
void SetDrawViewFlag(DrawViewFlag flag)
Definition eft_Renderer.h:175
u32 GetUsedDoubleBufferSize() const
Definition eft_Renderer.h:83
TemporaryBuffer mTemporaryBuffer
Definition eft_Renderer.h:281
Texture mExtensionTexture[EFT_TEXTURE_SLOT_MAX - EFT_TEXTURE_SLOT_BIN_MAX]
Definition eft_Renderer.h:276
static void GetPositionOnCubic(nw::math::VEC3 *retPos, const nw::math::VEC3 &startPos, const nw::math::VEC3 &startVel, const nw::math::VEC3 &endPos, const nw::math::VEC3 &endVel, float time)
Definition eft_RendererStripe.cpp:130
Heap * mHeap
Definition eft_Renderer.h:264
bool SetupStripeDrawSetting(const EmitterInstance *emitter, bool cacheFlush, void *userParam)
Definition eft_RendererStripe.cpp:1049
nw::math::MTX44 mMatView
Definition eft_Renderer.h:267
f32 GetChildParticleUserShaderParam(const EmitterInstance *emitter, u32 paramIdx)
Definition eft_Renderer.h:152
void EntryConnectionStripe(EmitterInstance *emitter, bool cacheFlush, void *userParam)
Definition eft_RendererStripe.cpp:1114
s32 MakeConnectionStripeAttributeBlockCoreDivide(EmitterInstance *emitter, s32 numPtcl, PtclInstance *pTailPtcl, PtclInstance *pTail2ndPtcl, s32 tailType, StripeVertexBuffer *stripeVertex, s32 wroteVertexNum=0)
Definition eft_RendererStripe.cpp:692
Definition eft_System.h:24
Definition eft_CafeWrapper.h:92
Definition eft_CafeWrapper.cpp:117
PtclType
Definition eft_Data.h:43
@ EFT_PTCL_TYPE_CHILD
Definition eft_Data.h:46
const GX2Texture * Texture
Definition eft_CafeWrapper.h:65
TextureSlot
Definition eft_Data.h:145
@ EFT_TEXTURE_SLOT_MAX
Definition eft_Data.h:151
@ EFT_TEXTURE_SLOT_BIN_MAX
Definition eft_Data.h:148
@ EFT_TEXTURE_SLOT_DEPTH_BUFFER
Definition eft_Data.h:149
@ EFT_TEXTURE_SLOT_FRAME_BUFFER
Definition eft_Data.h:150
ShaderType
Definition eft_Data.h:310
MeshType
Definition eft_Data.h:356
DrawViewFlag
Definition eft_Data.h:179
Definition eft_Data.h:1024
Definition eft_Data.h:1006
Definition eft_Emitter.h:23
ParticleShader * shader[EFT_SHADER_TYPE_MAX]
Definition eft_Emitter.h:56
ParticleShader * childShader[EFT_SHADER_TYPE_MAX]
Definition eft_Emitter.h:57
const SimpleEmitterData * res
Definition eft_Emitter.h:51
Definition eft_Data.h:656
Definition eft_Particle.h:69
Definition eft_Particle.h:28
Definition eft_Renderer.h:26
PtclInstance * ptcl
Definition eft_Renderer.h:27
u32 index
Definition eft_Renderer.h:29
f32 z
Definition eft_Renderer.h:28
Definition eft_UniformBlock.h:38
Definition eft_TemporaryBuffer.h:10
Definition eft_Data.h:737