MCPcopy Create free account
hub / github.com/defold/defold / UpdateEmitterRenderData

Function UpdateEmitterRenderData

engine/particle/src/particle.cpp:2081–2103  ·  view source on GitHub ↗

Update render data for the emitter at the specified index

Source from the content-addressed store, hash-verified

2079
2080 // Update render data for the emitter at the specified index
2081 void UpdateEmitterRenderData(HInstance instance, uint32_t emitter_index, Instance* inst, Emitter* emitter, dmParticleDDF::Emitter* ddf, float dt)
2082 {
2083 EmitterRenderData& render_data = emitter->m_RenderData;
2084
2085 dmTransform::TransformS1 transform(Vector3(ddf->m_Position), ddf->m_Rotation, 1.0f);
2086 transform = dmTransform::Mul(inst->m_WorldTransform, transform);
2087 dmVMath::Matrix4 world = dmTransform::ToMatrix4(transform);
2088 dmParticle::EmitterPrototype* emitter_proto = &inst->m_Prototype->m_Emitters[emitter_index];
2089
2090 render_data.m_Transform = world;
2091 render_data.m_Material = emitter->m_Material ? emitter->m_Material : emitter_proto->m_Material;
2092 render_data.m_BlendMode = emitter_proto->m_BlendMode;
2093 render_data.m_Texture = emitter->m_AnimationData.m_Texture;
2094 render_data.m_RenderConstants = emitter->m_RenderConstants.Begin();
2095 render_data.m_RenderConstantsSize = emitter->m_RenderConstants.Size();
2096 render_data.m_Instance = instance;
2097 render_data.m_EmitterIndex = emitter_index;
2098 render_data.m_Attributes = ddf->m_Attributes.m_Data;
2099 render_data.m_AttributeCount = ddf->m_Attributes.m_Count;
2100
2101 UpdateEmitterRenderState(inst, emitter, ddf, dt);
2102 CalculateEmitterCullingSphere(inst, emitter, render_data.m_FrustumCullingCenter, render_data.m_FrustumCullingRadiusSq);
2103 }
2104
2105 // Update render data for the specified emitter on an instance.
2106 void UpdateRenderData(HParticleContext context, HInstance instance, uint32_t emitter_index, float dt)

Callers 3

CreateInstanceFunction · 0.85
UpdateFunction · 0.85
UpdateRenderDataFunction · 0.85

Calls 7

UpdateEmitterRenderStateFunction · 0.85
Vector3Class · 0.50
MulFunction · 0.50
ToMatrix4Function · 0.50
BeginMethod · 0.45
SizeMethod · 0.45

Tested by

no test coverage detected