@@ -173,6 +173,16 @@ var ParticleRenderer = new Class({
173173 var particles = emitter . alive ;
174174 var length = particles . length ;
175175
176+ if ( length === 0 )
177+ {
178+ return ;
179+ }
180+
181+ if ( emitter . blendMode !== this . manager . blendMode )
182+ {
183+ this . manager . setBlendMode ( emitter . blendMode ) ;
184+ }
185+
176186 var data = this . vertexDataBuffer ;
177187 var vbF32 = data . floatView ;
178188 var vbU32 = data . uintView ;
@@ -201,9 +211,7 @@ var ParticleRenderer = new Class({
201211 var cameraScrollX = camera . scrollX * emitter . scrollFactorX ;
202212 var cameraScrollY = camera . scrollY * emitter . scrollFactorY ;
203213
204- if ( length === 0 ) return ;
205-
206- this . manager . setRenderer ( this , emitter . frame . source . glTexture , emitter . renderTarget ) ;
214+ this . manager . setRenderer ( this , emitter . frame . source . glTexture , renderTarget ) ;
207215
208216 for ( var batchIndex = 0 ; batchIndex < batchCount ; ++ batchIndex )
209217 {
@@ -223,10 +231,10 @@ var ParticleRenderer = new Class({
223231
224232 var xw = x + frame . width ;
225233 var yh = y + frame . height ;
226-
234+
227235 tempMatrix . applyITRS (
228- particle . x - cameraScrollX ,
229- particle . y - cameraScrollY ,
236+ particle . x - cameraScrollX * particle . scrollFactorX ,
237+ particle . y - cameraScrollY * particle . scrollFactorY ,
230238 particle . rotation ,
231239 particle . scaleX ,
232240 particle . scaleY
0 commit comments