@@ -370,6 +370,14 @@ var TextureTintPipeline = new Class({
370370 */
371371 drawEmitterManager : function ( emitterManager , camera , parentTransformMatrix )
372372 {
373+ var parentMatrix = null ;
374+
375+ if ( parentTransformMatrix !== undefined )
376+ {
377+ parentMatrix = parentTransformMatrix . matrix ;
378+ }
379+
380+
373381 this . renderer . setPipeline ( this ) ;
374382
375383 var roundPixels = this . renderer . config . roundPixels ;
@@ -393,6 +401,24 @@ var TextureTintPipeline = new Class({
393401 var vertexComponentCount = this . vertexComponentCount ;
394402 var vertexCapacity = this . vertexCapacity ;
395403 var texture = emitterManager . defaultFrame . source . glTexture ;
404+ var pca , pcb , pcc , pcd , pce , pcf ;
405+
406+ if ( parentMatrix != null )
407+ {
408+ var pma = parentMatrix [ 0 ] ;
409+ var pmb = parentMatrix [ 1 ] ;
410+ var pmc = parentMatrix [ 2 ] ;
411+ var pmd = parentMatrix [ 3 ] ;
412+ var pme = parentMatrix [ 4 ] ;
413+ var pmf = parentMatrix [ 5 ] ;
414+
415+ pca = cma * pma + cmb * pmc ;
416+ pcb = cma * pmb + cmb * pmd ;
417+ pcc = cmc * pma + cmd * pmc ;
418+ pcd = cmc * pmb + cmd * pmd ;
419+ pce = cme * pma + cmf * pmc + pme ;
420+ pcf = cme * pmb + cmf * pmd + pmf ;
421+ }
396422
397423 this . setTexture2D ( texture , 0 ) ;
398424
@@ -447,12 +473,27 @@ var TextureTintPipeline = new Class({
447473 var srd = cr * particle . scaleY ;
448474 var sre = particle . x - scrollX * particle . scrollFactorX ;
449475 var srf = particle . y - scrollY * particle . scrollFactorY ;
450- var mva = sra * cma + srb * cmc ;
451- var mvb = sra * cmb + srb * cmd ;
452- var mvc = src * cma + srd * cmc ;
453- var mvd = src * cmb + srd * cmd ;
454- var mve = sre * cma + srf * cmc + cme ;
455- var mvf = sre * cmb + srf * cmd + cmf ;
476+ var mva , mvb , mvc , mvd , mve , mvf ;
477+
478+ if ( parentMatrix === null )
479+ {
480+ mva = sra * cma + srb * cmc ;
481+ mvb = sra * cmb + srb * cmd ;
482+ mvc = src * cma + srd * cmc ;
483+ mvd = src * cmb + srd * cmd ;
484+ mve = sre * cma + srf * cmc + cme ;
485+ mvf = sre * cmb + srf * cmd + cmf ;
486+ }
487+ else
488+ {
489+ mva = sra * pca + srb * pcc ;
490+ mvb = sra * pcb + srb * pcd ;
491+ mvc = src * pca + srd * pcc ;
492+ mvd = src * pcb + srd * pcd ;
493+ mve = sre * pca + srf * pcc + pce ;
494+ mvf = sre * pcb + srf * pcd + pcf ;
495+ }
496+
456497 var tx0 = x * mva + y * mvc + mve ;
457498 var ty0 = x * mvb + y * mvd + mvf ;
458499 var tx1 = x * mva + yh * mvc + mve ;
@@ -535,6 +576,14 @@ var TextureTintPipeline = new Class({
535576 */
536577 drawBlitter : function ( blitter , camera , parentTransformMatrix )
537578 {
579+ var parentMatrix = null ;
580+
581+ if ( parentTransformMatrix !== undefined )
582+ {
583+ parentMatrix = parentTransformMatrix . matrix ;
584+ }
585+
586+
538587 this . renderer . setPipeline ( this ) ;
539588
540589 var roundPixels = this . renderer . config . roundPixels ;
@@ -657,17 +706,14 @@ var TextureTintPipeline = new Class({
657706 */
658707 batchSprite : function ( sprite , camera , parentTransformMatrix )
659708 {
660- var parentMatrix ;
709+ var parentMatrix = null ;
661710
662- if ( parentTransformMatrix === undefined )
663- {
664- parentMatrix = IdentityMatrix ;
665- }
666- else
711+ if ( parentTransformMatrix !== undefined )
667712 {
668713 parentMatrix = parentTransformMatrix . matrix ;
669714 }
670715
716+
671717 this . renderer . setPipeline ( this ) ;
672718
673719 if ( this . vertexCount + 6 > this . vertexCapacity )
@@ -719,24 +765,39 @@ var TextureTintPipeline = new Class({
719765 var cmd = cameraMatrix [ 3 ] ;
720766 var cme = cameraMatrix [ 4 ] ;
721767 var cmf = cameraMatrix [ 5 ] ;
722- var pma = parentMatrix [ 0 ] ;
723- var pmb = parentMatrix [ 1 ] ;
724- var pmc = parentMatrix [ 2 ] ;
725- var pmd = parentMatrix [ 3 ] ;
726- var pme = parentMatrix [ 4 ] ;
727- var pmf = parentMatrix [ 5 ] ;
728- var pca = cma * pma + cmb * pmc ;
729- var pcb = cma * pmb + cmb * pmd ;
730- var pcc = cmc * pma + cmd * pmc ;
731- var pcd = cmc * pmb + cmd * pmd ;
732- var pce = cme * pma + cmf * pmc + pme ;
733- var pcf = cme * pmb + cmf * pmd + pmf ;
734- var mva = sra * pca + srb * pcc ;
735- var mvb = sra * pcb + srb * pcd ;
736- var mvc = src * pca + srd * pcc ;
737- var mvd = src * pcb + srd * pcd ;
738- var mve = sre * pca + srf * pcc + pce ;
739- var mvf = sre * pcb + srf * pcd + pcf ;
768+ var mva , mvb , mvc , mvd , mve , mvf ;
769+
770+ if ( parentMatrix != null )
771+ {
772+ mva = sra * cma + srb * cmc ;
773+ mvb = sra * cmb + srb * cmd ;
774+ mvc = src * cma + srd * cmc ;
775+ mvd = src * cmb + srd * cmd ;
776+ mve = sre * cma + srf * cmc + cme ;
777+ mvf = sre * cmb + srf * cmd + cmf ;
778+ }
779+ else
780+ {
781+ var pma = parentMatrix [ 0 ] ;
782+ var pmb = parentMatrix [ 1 ] ;
783+ var pmc = parentMatrix [ 2 ] ;
784+ var pmd = parentMatrix [ 3 ] ;
785+ var pme = parentMatrix [ 4 ] ;
786+ var pmf = parentMatrix [ 5 ] ;
787+ var pca = cma * pma + cmb * pmc ;
788+ var pcb = cma * pmb + cmb * pmd ;
789+ var pcc = cmc * pma + cmd * pmc ;
790+ var pcd = cmc * pmb + cmd * pmd ;
791+ var pce = cme * pma + cmf * pmc + pme ;
792+ var pcf = cme * pmb + cmf * pmd + pmf ;
793+ mva = sra * pca + srb * pcc ;
794+ mvb = sra * pcb + srb * pcd ;
795+ mvc = src * pca + srd * pcc ;
796+ mvd = src * pcb + srd * pcd ;
797+ mve = sre * pca + srf * pcc + pce ;
798+ mvf = sre * pcb + srf * pcd + pcf ;
799+ }
800+
740801 var tx0 = x * mva + y * mvc + mve ;
741802 var ty0 = x * mvb + y * mvd + mvf ;
742803 var tx1 = x * mva + yh * mvc + mve ;
@@ -813,6 +874,14 @@ var TextureTintPipeline = new Class({
813874 */
814875 batchMesh : function ( mesh , camera , parentTransformMatrix )
815876 {
877+ var parentMatrix = null ;
878+
879+ if ( parentTransformMatrix !== undefined )
880+ {
881+ parentMatrix = parentTransformMatrix . matrix ;
882+ }
883+
884+
816885 var vertices = mesh . vertices ;
817886 var length = vertices . length ;
818887 var vertexCount = ( length / 2 ) | 0 ;
@@ -903,6 +972,14 @@ var TextureTintPipeline = new Class({
903972 */
904973 batchBitmapText : function ( bitmapText , camera , parentTransformMatrix )
905974 {
975+ var parentMatrix = null ;
976+
977+ if ( parentTransformMatrix !== undefined )
978+ {
979+ parentMatrix = parentTransformMatrix . matrix ;
980+ }
981+
982+
906983 this . renderer . setPipeline ( this ) ;
907984
908985 if ( this . vertexCount + 6 > this . vertexCapacity )
@@ -1138,6 +1215,14 @@ var TextureTintPipeline = new Class({
11381215 */
11391216 batchDynamicBitmapText : function ( bitmapText , camera , parentTransformMatrix )
11401217 {
1218+ var parentMatrix = null ;
1219+
1220+ if ( parentTransformMatrix !== undefined )
1221+ {
1222+ parentMatrix = parentTransformMatrix . matrix ;
1223+ }
1224+
1225+
11411226 this . renderer . setPipeline ( this ) ;
11421227
11431228 if ( this . vertexCount + 6 > this . vertexCapacity )
@@ -1467,7 +1552,8 @@ var TextureTintPipeline = new Class({
14671552 getTint ( text . _tintBL , text . _alphaBL ) ,
14681553 getTint ( text . _tintBR , text . _alphaBR ) ,
14691554 0 , 0 ,
1470- camera
1555+ camera ,
1556+ parentTransformMatrix
14711557 ) ;
14721558 } ,
14731559
@@ -1523,7 +1609,8 @@ var TextureTintPipeline = new Class({
15231609 frameX , frameY , frameWidth , frameHeight ,
15241610 tint , tint , tint , tint ,
15251611 0 , 0 ,
1526- camera
1612+ camera ,
1613+ parentTransformMatrix
15271614 ) ;
15281615 }
15291616 } ,
@@ -1560,7 +1647,8 @@ var TextureTintPipeline = new Class({
15601647 getTint ( tileSprite . _tintBR , tileSprite . _alphaBR ) ,
15611648 tileSprite . tilePositionX / tileSprite . frame . width ,
15621649 tileSprite . tilePositionY / tileSprite . frame . height ,
1563- camera
1650+ camera ,
1651+ parentTransformMatrix
15641652 ) ;
15651653 } ,
15661654
@@ -1617,6 +1705,14 @@ var TextureTintPipeline = new Class({
16171705 camera ,
16181706 parentTransformMatrix )
16191707 {
1708+ var parentMatrix = null ;
1709+
1710+ if ( parentTransformMatrix !== undefined )
1711+ {
1712+ parentMatrix = parentTransformMatrix . matrix ;
1713+ }
1714+
1715+
16201716 this . renderer . setPipeline ( this ) ;
16211717
16221718 if ( this . vertexCount + 6 > this . vertexCapacity )
@@ -1752,6 +1848,14 @@ var TextureTintPipeline = new Class({
17521848 parentTransformMatrix
17531849 )
17541850 {
1851+ var parentMatrix = null ;
1852+
1853+ if ( parentTransformMatrix !== undefined )
1854+ {
1855+ parentMatrix = parentTransformMatrix . matrix ;
1856+ }
1857+
1858+
17551859 this . renderer . setPipeline ( this ) ;
17561860
17571861 if ( this . vertexCount + 6 > this . vertexCapacity )
0 commit comments