Skip to content

Commit 0d4b36f

Browse files
committed
Now render from the correct list array.
1 parent 93665ff commit 0d4b36f

2 files changed

Lines changed: 2 additions & 147 deletions

File tree

v3/src/gameobjects/particles/ParticleManagerCanvasRenderer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ var GameObject = require('../GameObject');
22

33
var ParticleManagerCanvasRenderer = function (renderer, emitterManager, interpolationPercentage, camera)
44
{
5-
var emitters = emitterManager.emitters;
5+
var emitters = emitterManager.emitters.list;
66

77
if (emitters.length === 0 || GameObject.RENDER_MASK !== emitterManager.renderFlags || (emitterManager.cameraFilter > 0 && (emitterManager.cameraFilter & camera._id)))
88
{

v3/src/renderer/webgl/renderers/particlerenderer/ParticleRenderer.js

Lines changed: 1 addition & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -170,155 +170,13 @@ var ParticleRenderer = new Class({
170170
);
171171
},
172172

173-
/*
174-
renderEmitter: function (emitter, camera)
175-
{
176-
var particles = emitter.alive;
177-
var length = particles.length;
178-
179-
if (length === 0)
180-
{
181-
return;
182-
}
183-
184-
if (emitter.blendMode !== this.manager.blendMode)
185-
{
186-
this.manager.setBlendMode(emitter.blendMode);
187-
}
188-
189-
var data = this.vertexDataBuffer;
190-
var vbF32 = data.floatView;
191-
var vbU32 = data.uintView;
192-
var vtxOffset = 0;
193-
194-
var cameraMatrix = camera.matrix.matrix;
195-
var cma = cameraMatrix[0];
196-
var cmb = cameraMatrix[1];
197-
var cmc = cameraMatrix[2];
198-
var cmd = cameraMatrix[3];
199-
var cme = cameraMatrix[4];
200-
var cmf = cameraMatrix[5];
201-
202-
var elementCount = this.elementCount;
203-
204-
var particleCount = 0;
205-
var batchCount = Math.ceil(length / CONST.MAX);
206-
207-
var renderTarget = emitter.renderTarget;
208-
209-
var tempMatrix = this.tempMatrix;
210-
var tempMatrixMatrix = tempMatrix.matrix;
211-
212-
var particleOffset = 0;
213-
214-
var cameraScrollX = camera.scrollX * emitter.scrollFactorX;
215-
var cameraScrollY = camera.scrollY * emitter.scrollFactorY;
216-
217-
this.manager.setRenderer(this, emitter.defaultFrame.source.glTexture, renderTarget);
218-
219-
// If there are more particles than fit into a single batch (16000) then it flushes after each one
220-
for (var batchIndex = 0; batchIndex < batchCount; ++batchIndex)
221-
{
222-
var batchSize = Math.min(length, CONST.MAX);
223-
224-
for (var index = 0; index < batchSize; index++)
225-
{
226-
var particle = particles[particleOffset + index];
227-
228-
var frame = particle.frame;
229-
var uvs = frame.uvs;
230-
231-
var x = -(frame.halfWidth);
232-
var y = -(frame.halfHeight);
233-
234-
var color = particle.color;
235-
236-
var xw = x + frame.width;
237-
var yh = y + frame.height;
238-
239-
tempMatrix.applyITRS(
240-
particle.x - cameraScrollX * particle.scrollFactorX,
241-
particle.y - cameraScrollY * particle.scrollFactorY,
242-
particle.rotation,
243-
particle.scaleX,
244-
particle.scaleY
245-
);
246-
247-
var sra = tempMatrixMatrix[0];
248-
var srb = tempMatrixMatrix[1];
249-
var src = tempMatrixMatrix[2];
250-
var srd = tempMatrixMatrix[3];
251-
var sre = tempMatrixMatrix[4];
252-
var srf = tempMatrixMatrix[5];
253-
254-
var mva = sra * cma + srb * cmc;
255-
var mvb = sra * cmb + srb * cmd;
256-
var mvc = src * cma + srd * cmc;
257-
var mvd = src * cmb + srd * cmd;
258-
var mve = sre * cma + srf * cmc + cme;
259-
var mvf = sre * cmb + srf * cmd + cmf;
260-
261-
var tx0 = x * mva + y * mvc + mve;
262-
var ty0 = x * mvb + y * mvd + mvf;
263-
var tx1 = x * mva + yh * mvc + mve;
264-
var ty1 = x * mvb + yh * mvd + mvf;
265-
var tx2 = xw * mva + yh * mvc + mve;
266-
var ty2 = xw * mvb + yh * mvd + mvf;
267-
var tx3 = xw * mva + y * mvc + mve;
268-
var ty3 = xw * mvb + y * mvd + mvf;
269-
270-
vtxOffset = data.allocate(20);
271-
elementCount += 6;
272-
273-
// Top Left
274-
vbF32[vtxOffset++] = tx0;
275-
vbF32[vtxOffset++] = ty0;
276-
vbF32[vtxOffset++] = uvs.x0;
277-
vbF32[vtxOffset++] = uvs.y0;
278-
vbU32[vtxOffset++] = color;
279-
280-
// Bottom Left
281-
vbF32[vtxOffset++] = tx1;
282-
vbF32[vtxOffset++] = ty1;
283-
vbF32[vtxOffset++] = uvs.x1;
284-
vbF32[vtxOffset++] = uvs.y1;
285-
vbU32[vtxOffset++] = color;
286-
287-
// Bottom Right
288-
vbF32[vtxOffset++] = tx2;
289-
vbF32[vtxOffset++] = ty2;
290-
vbF32[vtxOffset++] = uvs.x2;
291-
vbF32[vtxOffset++] = uvs.y2;
292-
vbU32[vtxOffset++] = color;
293-
294-
// Top Right
295-
vbF32[vtxOffset++] = tx3;
296-
vbF32[vtxOffset++] = ty3;
297-
vbF32[vtxOffset++] = uvs.x3;
298-
vbF32[vtxOffset++] = uvs.y3;
299-
vbU32[vtxOffset++] = color;
300-
}
301-
302-
particleOffset += batchSize;
303-
304-
length -= batchSize;
305-
306-
this.elementCount = elementCount;
307-
308-
this.flush(undefined, renderTarget);
309-
310-
elementCount = 0;
311-
}
312-
},
313-
*/
314-
315173
renderEmitterManager: function (emitterManager, camera)
316174
{
317175
var renderTarget = emitterManager.renderTarget;
318176

319177
this.manager.setRenderer(this, emitterManager.defaultFrame.source.glTexture, renderTarget);
320178

321-
var emitters = emitterManager.emitters;
179+
var emitters = emitterManager.emitters.list;
322180

323181
for (var i = 0; i < emitters.length; i++)
324182
{
@@ -351,11 +209,8 @@ var ParticleRenderer = new Class({
351209

352210
var elementCount = this.elementCount;
353211

354-
var particleCount = 0;
355212
var batchCount = Math.ceil(length / CONST.MAX);
356213

357-
// var renderTarget = emitter.renderTarget;
358-
359214
var tempMatrix = this.tempMatrix;
360215
var tempMatrixMatrix = tempMatrix.matrix;
361216

0 commit comments

Comments
 (0)