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");
Rendercontext mRenderContext
Definition eft_Renderer.h:265
nw::math::MTX44 GetViewMatrix() const
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)
bool SetupParticleShaderAndVertex(ParticleShader *shader, MeshType meshType, Primitive *primitive)
Definition eft_Renderer.cpp:152
nw::math::MTX44 GetViewProjMatrix() const
void SetShaderType(ShaderType type)
nw::math::VEC2 mFrameBufferTextureScale
Definition eft_Renderer.h:280
u32 GetStripeVertexCalcNum() const
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)
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)
u32 GetDoubleBufferSize() const
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
Draw::PrimitiveType mDrawPrimitiveType
Definition eft_Renderer.h:266
Primitive * GetCurrentPrimitive() const
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)
nw::math::MTX44 mMatBillboard
Definition eft_Renderer.h:269
u32 GetUserShaderFlag(const EmitterInstance *emitter)
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)
void SetFrameBufferTexture(Texture frameBufferTexture, f32 offsetU=0.0f, f32 offsetV=0.0f, f32 scaleU=1.0f, f32 scaleV=1.0f)
System * mSystem
Definition eft_Renderer.h:263
void SetTextureSlot(TextureSlot slot, Texture texture)
PtclType mCurrentDrawingType
Definition eft_Renderer.h:283
DrawViewFlag mDrawViewFlag
Definition eft_Renderer.h:285
const System * GetEffectSystem() const
void FlushCache()
Definition eft_RendererEtc.cpp:20
ViewUniformBlock * mViewUniformBlock
Definition eft_Renderer.h:275
PtclType GetPtclType() const
ShaderType mCurrentShaderType
Definition eft_Renderer.h:284
s32 MakeStripeAttributeBlockCore(PtclStripe *__restrict stripe, StripeVertexBuffer *stripeVertex, s32 wroteVertexNum)
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)
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()
f32 GetUserShaderParam(const EmitterInstance *emitter, u32 paramIdx)
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)
u32 GetUsedDoubleBufferSize() const
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)
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
const GX2Texture * Texture
EFT_TEXTURE_SLOT_DEPTH_BUFFER
EFT_TEXTURE_SLOT_FRAME_BUFFER
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
PtclInstance * ptcl
Definition eft_Renderer.h:27
u32 index
Definition eft_Renderer.h:29
f32 z
Definition eft_Renderer.h:28