@@ -418,6 +418,13 @@ var TextureTintPipeline = new Class({
418418 pcd = cmc * pmb + cmd * pmd ;
419419 pce = cme * pma + cmf * pmc + pme ;
420420 pcf = cme * pmb + cmf * pmd + pmf ;
421+
422+ cma = pca ;
423+ cmb = pcb ;
424+ cmc = pcc ;
425+ cmd = pcd ;
426+ cme = pce ;
427+ cmf = pcf ;
421428 }
422429
423430 this . setTexture2D ( texture , 0 ) ;
@@ -473,27 +480,12 @@ var TextureTintPipeline = new Class({
473480 var srd = cr * particle . scaleY ;
474481 var sre = particle . x - scrollX * particle . scrollFactorX ;
475482 var srf = particle . y - scrollY * particle . scrollFactorY ;
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-
483+ var mva = sra * cma + srb * cmc ;
484+ var mvb = sra * cmb + srb * cmd ;
485+ var mvc = src * cma + srd * cmc ;
486+ var mvd = src * cmb + srd * cmd ;
487+ var mve = sre * cma + srf * cmc + cme ;
488+ var mvf = sre * cmb + srf * cmd + cmf ;
497489 var tx0 = x * mva + y * mvc + mve ;
498490 var ty0 = x * mvb + y * mvd + mvf ;
499491 var tx1 = x * mva + yh * mvc + mve ;
@@ -606,6 +598,29 @@ var TextureTintPipeline = new Class({
606598 var blitterX = blitter . x - cameraScrollX ;
607599 var blitterY = blitter . y - cameraScrollY ;
608600
601+ if ( parentMatrix != null )
602+ {
603+ var pma = parentMatrix [ 0 ] ;
604+ var pmb = parentMatrix [ 1 ] ;
605+ var pmc = parentMatrix [ 2 ] ;
606+ var pmd = parentMatrix [ 3 ] ;
607+ var pme = parentMatrix [ 4 ] ;
608+ var pmf = parentMatrix [ 5 ] ;
609+ var pca = a * pma + b * pmc ;
610+ var pcb = a * pmb + b * pmd ;
611+ var pcc = c * pma + d * pmc ;
612+ var pcd = c * pmb + d * pmd ;
613+ var pce = e * pma + f * pmc + pme ;
614+ var pcf = e * pmb + f * pmd + pmf ;
615+
616+ a = pca ;
617+ b = pcb ;
618+ c = pcc ;
619+ d = pcd ;
620+ e = pce ;
621+ f = pcf ;
622+ }
623+
609624 for ( var batchIndex = 0 ; batchIndex < batchCount ; ++ batchIndex )
610625 {
611626 var batchSize = Math . min ( length , this . maxQuads ) ;
@@ -767,7 +782,7 @@ var TextureTintPipeline = new Class({
767782 var cmf = cameraMatrix [ 5 ] ;
768783 var mva , mvb , mvc , mvd , mve , mvf ;
769784
770- if ( parentMatrix ! = null )
785+ if ( parentMatrix == = null )
771786 {
772787 mva = sra * cma + srb * cmc ;
773788 mvb = sra * cmb + srb * cmd ;
@@ -881,7 +896,6 @@ var TextureTintPipeline = new Class({
881896 parentMatrix = parentTransformMatrix . matrix ;
882897 }
883898
884-
885899 var vertices = mesh . vertices ;
886900 var length = vertices . length ;
887901 var vertexCount = ( length / 2 ) | 0 ;
@@ -922,13 +936,40 @@ var TextureTintPipeline = new Class({
922936 var cmd = cameraMatrix [ 3 ] ;
923937 var cme = cameraMatrix [ 4 ] ;
924938 var cmf = cameraMatrix [ 5 ] ;
925- var mva = sra * cma + srb * cmc ;
926- var mvb = sra * cmb + srb * cmd ;
927- var mvc = src * cma + srd * cmc ;
928- var mvd = src * cmb + srd * cmd ;
929- var mve = sre * cma + srf * cmc + cme ;
930- var mvf = sre * cmb + srf * cmd + cmf ;
931939 var vertexOffset = 0 ;
940+ var mva , mvb , mvc , mvd , mve , mvf ;
941+
942+ if ( parentMatrix === null )
943+ {
944+ mva = sra * cma + srb * cmc ;
945+ mvb = sra * cmb + srb * cmd ;
946+ mvc = src * cma + srd * cmc ;
947+ mvd = src * cmb + srd * cmd ;
948+ mve = sre * cma + srf * cmc + cme ;
949+ mvf = sre * cmb + srf * cmd + cmf ;
950+ }
951+ else
952+ {
953+ var pma = parentMatrix [ 0 ] ;
954+ var pmb = parentMatrix [ 1 ] ;
955+ var pmc = parentMatrix [ 2 ] ;
956+ var pmd = parentMatrix [ 3 ] ;
957+ var pme = parentMatrix [ 4 ] ;
958+ var pmf = parentMatrix [ 5 ] ;
959+ var pca = cma * pma + cmb * pmc ;
960+ var pcb = cma * pmb + cmb * pmd ;
961+ var pcc = cmc * pma + cmd * pmc ;
962+ var pcd = cmc * pmb + cmd * pmd ;
963+ var pce = cme * pma + cmf * pmc + pme ;
964+ var pcf = cme * pmb + cmf * pmd + pmf ;
965+ mva = sra * pca + srb * pcc ;
966+ mvb = sra * pcb + srb * pcd ;
967+ mvc = src * pca + srd * pcc ;
968+ mvd = src * pcb + srd * pcd ;
969+ mve = sre * pca + srf * pcc + pce ;
970+ mvf = sre * pcb + srf * pcd + pcf ;
971+ }
972+
932973
933974 this . setTexture2D ( texture , 0 ) ;
934975
@@ -1066,13 +1107,39 @@ var TextureTintPipeline = new Class({
10661107 var cmd = cameraMatrix [ 3 ] ;
10671108 var cme = cameraMatrix [ 4 ] ;
10681109 var cmf = cameraMatrix [ 5 ] ;
1069- var mva = sra * cma + srb * cmc ;
1070- var mvb = sra * cmb + srb * cmd ;
1071- var mvc = src * cma + srd * cmc ;
1072- var mvd = src * cmb + srd * cmd ;
1073- var mve = sre * cma + srf * cmc + cme ;
1074- var mvf = sre * cmb + srf * cmd + cmf ;
10751110 var vertexOffset = 0 ;
1111+ var mva , mvb , mvc , mvd , mve , mvf ;
1112+
1113+ if ( parentMatrix === null )
1114+ {
1115+ mva = sra * cma + srb * cmc ;
1116+ mvb = sra * cmb + srb * cmd ;
1117+ mvc = src * cma + srd * cmc ;
1118+ mvd = src * cmb + srd * cmd ;
1119+ mve = sre * cma + srf * cmc + cme ;
1120+ mvf = sre * cmb + srf * cmd + cmf ;
1121+ }
1122+ else
1123+ {
1124+ var pma = parentMatrix [ 0 ] ;
1125+ var pmb = parentMatrix [ 1 ] ;
1126+ var pmc = parentMatrix [ 2 ] ;
1127+ var pmd = parentMatrix [ 3 ] ;
1128+ var pme = parentMatrix [ 4 ] ;
1129+ var pmf = parentMatrix [ 5 ] ;
1130+ var pca = cma * pma + cmb * pmc ;
1131+ var pcb = cma * pmb + cmb * pmd ;
1132+ var pcc = cmc * pma + cmd * pmc ;
1133+ var pcd = cmc * pmb + cmd * pmd ;
1134+ var pce = cme * pma + cmf * pmc + pme ;
1135+ var pcf = cme * pmb + cmf * pmd + pmf ;
1136+ mva = sra * pca + srb * pcc ;
1137+ mvb = sra * pcb + srb * pcd ;
1138+ mvc = src * pca + srd * pcc ;
1139+ mvd = src * pcb + srd * pcd ;
1140+ mve = sre * pca + srf * pcc + pce ;
1141+ mvf = sre * pcb + srf * pcd + pcf ;
1142+ }
10761143
10771144 this . setTexture2D ( texture , 0 ) ;
10781145
@@ -1307,15 +1374,41 @@ var TextureTintPipeline = new Class({
13071374 var cmd = cameraMatrix [ 3 ] ;
13081375 var cme = cameraMatrix [ 4 ] ;
13091376 var cmf = cameraMatrix [ 5 ] ;
1310- var mva = sra * cma + srb * cmc ;
1311- var mvb = sra * cmb + srb * cmd ;
1312- var mvc = src * cma + srd * cmc ;
1313- var mvd = src * cmb + srd * cmd ;
1314- var mve = sre * cma + srf * cmc + cme ;
1315- var mvf = sre * cmb + srf * cmd + cmf ;
13161377 var crop = ( bitmapText . cropWidth > 0 || bitmapText . cropHeight > 0 ) ;
13171378 var uta , utb , utc , utd , ute , utf ;
13181379 var vertexOffset = 0 ;
1380+ var mva , mvb , mvc , mvd , mve , mvf ;
1381+
1382+ if ( parentMatrix === null )
1383+ {
1384+ mva = sra * cma + srb * cmc ;
1385+ mvb = sra * cmb + srb * cmd ;
1386+ mvc = src * cma + srd * cmc ;
1387+ mvd = src * cmb + srd * cmd ;
1388+ mve = sre * cma + srf * cmc + cme ;
1389+ mvf = sre * cmb + srf * cmd + cmf ;
1390+ }
1391+ else
1392+ {
1393+ var pma = parentMatrix [ 0 ] ;
1394+ var pmb = parentMatrix [ 1 ] ;
1395+ var pmc = parentMatrix [ 2 ] ;
1396+ var pmd = parentMatrix [ 3 ] ;
1397+ var pme = parentMatrix [ 4 ] ;
1398+ var pmf = parentMatrix [ 5 ] ;
1399+ var pca = cma * pma + cmb * pmc ;
1400+ var pcb = cma * pmb + cmb * pmd ;
1401+ var pcc = cmc * pma + cmd * pmc ;
1402+ var pcd = cmc * pmb + cmd * pmd ;
1403+ var pce = cme * pma + cmf * pmc + pme ;
1404+ var pcf = cme * pmb + cmf * pmd + pmf ;
1405+ mva = sra * pca + srb * pcc ;
1406+ mvb = sra * pcb + srb * pcd ;
1407+ mvc = src * pca + srd * pcc ;
1408+ mvd = src * pcb + srd * pcd ;
1409+ mve = sre * pca + srf * pcc + pce ;
1410+ mvf = sre * pcb + srf * pcd + pcf ;
1411+ }
13191412
13201413 this . setTexture2D ( texture , 0 ) ;
13211414
@@ -1749,12 +1842,37 @@ var TextureTintPipeline = new Class({
17491842 var cmd = cameraMatrix [ 3 ] ;
17501843 var cme = cameraMatrix [ 4 ] ;
17511844 var cmf = cameraMatrix [ 5 ] ;
1752- var mva = sra * cma + srb * cmc ;
1753- var mvb = sra * cmb + srb * cmd ;
1754- var mvc = src * cma + srd * cmc ;
1755- var mvd = src * cmb + srd * cmd ;
1756- var mve = sre * cma + srf * cmc + cme ;
1757- var mvf = sre * cmb + srf * cmd + cmf ;
1845+ var mva , mvb , mvc , mvd , mve , mvf ;
1846+ if ( parentMatrix === null )
1847+ {
1848+ mva = sra * cma + srb * cmc ;
1849+ mvb = sra * cmb + srb * cmd ;
1850+ mvc = src * cma + srd * cmc ;
1851+ mvd = src * cmb + srd * cmd ;
1852+ mve = sre * cma + srf * cmc + cme ;
1853+ mvf = sre * cmb + srf * cmd + cmf ;
1854+ }
1855+ else
1856+ {
1857+ var pma = parentMatrix [ 0 ] ;
1858+ var pmb = parentMatrix [ 1 ] ;
1859+ var pmc = parentMatrix [ 2 ] ;
1860+ var pmd = parentMatrix [ 3 ] ;
1861+ var pme = parentMatrix [ 4 ] ;
1862+ var pmf = parentMatrix [ 5 ] ;
1863+ var pca = cma * pma + cmb * pmc ;
1864+ var pcb = cma * pmb + cmb * pmd ;
1865+ var pcc = cmc * pma + cmd * pmc ;
1866+ var pcd = cmc * pmb + cmd * pmd ;
1867+ var pce = cme * pma + cmf * pmc + pme ;
1868+ var pcf = cme * pmb + cmf * pmd + pmf ;
1869+ mva = sra * pca + srb * pcc ;
1870+ mvb = sra * pcb + srb * pcd ;
1871+ mvc = src * pca + srd * pcc ;
1872+ mvd = src * pcb + srd * pcd ;
1873+ mve = sre * pca + srf * pcc + pce ;
1874+ mvf = sre * pcb + srf * pcd + pcf ;
1875+ }
17581876 var tx0 = x * mva + y * mvc + mve ;
17591877 var ty0 = x * mvb + y * mvd + mvf ;
17601878 var tx1 = x * mva + yh * mvc + mve ;
@@ -1878,6 +1996,29 @@ var TextureTintPipeline = new Class({
18781996 var mvd = transformMatrix [ 3 ] ;
18791997 var mve = transformMatrix [ 4 ] ;
18801998 var mvf = transformMatrix [ 5 ] ;
1999+
2000+ if ( parentMatrix !== null )
2001+ {
2002+ var pma = parentMatrix [ 0 ] ;
2003+ var pmb = parentMatrix [ 1 ] ;
2004+ var pmc = parentMatrix [ 2 ] ;
2005+ var pmd = parentMatrix [ 3 ] ;
2006+ var pme = parentMatrix [ 4 ] ;
2007+ var pmf = parentMatrix [ 5 ] ;
2008+ var pca = mva * pma + mvb * pmc ;
2009+ var pcb = mva * pmb + mvb * pmd ;
2010+ var pcc = mvc * pma + mvd * pmc ;
2011+ var pcd = mvc * pmb + mvd * pmd ;
2012+ var pce = mve * pma + mvf * pmc + pme ;
2013+ var pcf = mve * pmb + mvf * pmd + pmf ;
2014+ mva = pca ;
2015+ mvb = pcb ;
2016+ mvc = pcc ;
2017+ mvd = pcd ;
2018+ mve = pce ;
2019+ mvf = pcf ;
2020+ }
2021+
18812022 var tx0 = x * mva + y * mvc + mve ;
18822023 var ty0 = x * mvb + y * mvd + mvf ;
18832024 var tx1 = x * mva + yh * mvc + mve ;
0 commit comments