@@ -277,6 +277,7 @@ var TextureTintPipeline = new Class({
277277
278278 this . vertexCount = 0 ;
279279 batches . length = 0 ;
280+ this . pushBatch ( ) ;
280281 this . flushLocked = false ;
281282
282283 return this ;
@@ -375,7 +376,6 @@ var TextureTintPipeline = new Class({
375376 var vertexViewF32 = this . vertexViewF32 ;
376377 var vertexViewU32 = this . vertexViewU32 ;
377378 var renderer = this . renderer ;
378- var resolution = renderer . config . resolution ; // eslint-disable-line no-unused-vars
379379 var maxQuads = this . maxQuads ;
380380 var cameraScrollX = camera . scrollX ;
381381 var cameraScrollY = camera . scrollY ;
@@ -505,6 +505,8 @@ var TextureTintPipeline = new Class({
505505 }
506506 }
507507 }
508+
509+ this . setTexture2D ( texture , 0 ) ;
508510 } ,
509511
510512 /**
@@ -524,7 +526,6 @@ var TextureTintPipeline = new Class({
524526 var vertexViewF32 = this . vertexViewF32 ;
525527 var vertexViewU32 = this . vertexViewU32 ;
526528 var renderer = this . renderer ;
527- var resolution = renderer . config . resolution ; // eslint-disable-line no-unused-vars
528529 var list = blitter . getRenderList ( ) ;
529530 var length = list . length ;
530531 var cameraMatrix = camera . matrix . matrix ;
@@ -643,7 +644,6 @@ var TextureTintPipeline = new Class({
643644 var vertexViewF32 = this . vertexViewF32 ;
644645 var vertexViewU32 = this . vertexViewU32 ;
645646 var renderer = this . renderer ;
646- var resolution = renderer . config . resolution ; // eslint-disable-line no-unused-vars
647647 var cameraMatrix = camera . matrix . matrix ;
648648 var frame = sprite . frame ;
649649 var texture = frame . texture . source [ frame . sourceIndex ] . glTexture ;
@@ -771,7 +771,6 @@ var TextureTintPipeline = new Class({
771771 var vertexViewF32 = this . vertexViewF32 ;
772772 var vertexViewU32 = this . vertexViewU32 ;
773773 var renderer = this . renderer ;
774- var resolution = renderer . config . resolution ; // eslint-disable-line no-unused-vars
775774 var cameraMatrix = camera . matrix . matrix ;
776775 var frame = mesh . frame ;
777776 var texture = mesh . texture . source [ frame . sourceIndex ] . glTexture ;
@@ -850,7 +849,6 @@ var TextureTintPipeline = new Class({
850849 var vertexViewF32 = this . vertexViewF32 ;
851850 var vertexViewU32 = this . vertexViewU32 ;
852851 var renderer = this . renderer ;
853- var resolution = renderer . config . resolution ; // eslint-disable-line no-unused-vars
854852 var cameraMatrix = camera . matrix . matrix ;
855853 var cameraWidth = camera . width + 50 ;
856854 var cameraHeight = camera . height + 50 ;
@@ -1074,7 +1072,6 @@ var TextureTintPipeline = new Class({
10741072 var vertexViewF32 = this . vertexViewF32 ;
10751073 var vertexViewU32 = this . vertexViewU32 ;
10761074 var renderer = this . renderer ;
1077- var resolution = renderer . config . resolution ; // eslint-disable-line no-unused-vars
10781075 var cameraMatrix = camera . matrix . matrix ;
10791076 var frame = bitmapText . frame ;
10801077 var textureSource = bitmapText . texture . source [ frame . sourceIndex ] ;
@@ -1535,7 +1532,6 @@ var TextureTintPipeline = new Class({
15351532 var vertexViewF32 = this . vertexViewF32 ;
15361533 var vertexViewU32 = this . vertexViewU32 ;
15371534 var renderer = this . renderer ;
1538- var resolution = renderer . config . resolution ; // eslint-disable-line no-unused-vars
15391535 var cameraMatrix = camera . matrix . matrix ;
15401536 var width = srcWidth * ( flipX ? - 1.0 : 1.0 ) ;
15411537 var height = srcHeight * ( flipY ? - 1.0 : 1.0 ) ;
@@ -1617,6 +1613,93 @@ var TextureTintPipeline = new Class({
16171613 this . vertexCount += 6 ;
16181614 } ,
16191615
1616+ drawTexture : function (
1617+ texture ,
1618+ srcX , srcY ,
1619+ frameX , frameY , frameWidth , frameHeight ,
1620+ transformMatrix
1621+ )
1622+ {
1623+ this . renderer . setPipeline ( this ) ;
1624+
1625+ if ( this . vertexCount + 6 > this . vertexCapacity )
1626+ {
1627+ this . flush ( ) ;
1628+ }
1629+
1630+ var vertexViewF32 = this . vertexViewF32 ;
1631+ var vertexViewU32 = this . vertexViewU32 ;
1632+ var renderer = this . renderer ;
1633+ var width = srcWidth ;
1634+ var height = srcHeight ;
1635+ var x = srcX ;
1636+ var y = srcY ;
1637+ var xw = x + width ;
1638+ var yh = y + height ;
1639+ var mva = transformMatrix [ 0 ] ;
1640+ var mvb = transformMatrix [ 1 ] ;
1641+ var mvc = transformMatrix [ 2 ] ;
1642+ var mvd = transformMatrix [ 3 ] ;
1643+ var mve = transformMatrix [ 4 ] ;
1644+ var mvf = transformMatrix [ 5 ] ;
1645+ var tx0 = x * mva + y * mvc + mve ;
1646+ var ty0 = x * mvb + y * mvd + mvf ;
1647+ var tx1 = x * mva + yh * mvc + mve ;
1648+ var ty1 = x * mvb + yh * mvd + mvf ;
1649+ var tx2 = xw * mva + yh * mvc + mve ;
1650+ var ty2 = xw * mvb + yh * mvd + mvf ;
1651+ var tx3 = xw * mva + y * mvc + mve ;
1652+ var ty3 = xw * mvb + y * mvd + mvf ;
1653+ var vertexOffset = 0 ;
1654+ var textureWidth = texture . width ;
1655+ var textureHeight = texture . height ;
1656+ var u0 = ( frameX / textureWidth ) ;
1657+ var v0 = ( frameY / textureHeight ) ;
1658+ var u1 = ( frameX + frameWidth ) / textureWidth ;
1659+ var v1 = ( frameY + frameHeight ) / textureHeight ;
1660+ var tint = 0xffffffff ;
1661+
1662+ this . setTexture2D ( texture , 0 ) ;
1663+
1664+ vertexOffset = this . vertexCount * this . vertexComponentCount ;
1665+
1666+ vertexViewF32 [ vertexOffset + 0 ] = tx0 ;
1667+ vertexViewF32 [ vertexOffset + 1 ] = ty0 ;
1668+ vertexViewF32 [ vertexOffset + 2 ] = u0 ;
1669+ vertexViewF32 [ vertexOffset + 3 ] = v0 ;
1670+ vertexViewU32 [ vertexOffset + 4 ] = tint ;
1671+ vertexViewF32 [ vertexOffset + 5 ] = tx1 ;
1672+ vertexViewF32 [ vertexOffset + 6 ] = ty1 ;
1673+ vertexViewF32 [ vertexOffset + 7 ] = u0 ;
1674+ vertexViewF32 [ vertexOffset + 8 ] = v1 ;
1675+ vertexViewU32 [ vertexOffset + 9 ] = tint ;
1676+ vertexViewF32 [ vertexOffset + 10 ] = tx2 ;
1677+ vertexViewF32 [ vertexOffset + 11 ] = ty2 ;
1678+ vertexViewF32 [ vertexOffset + 12 ] = u1 ;
1679+ vertexViewF32 [ vertexOffset + 13 ] = v1 ;
1680+ vertexViewU32 [ vertexOffset + 14 ] = tint ;
1681+ vertexViewF32 [ vertexOffset + 15 ] = tx0 ;
1682+ vertexViewF32 [ vertexOffset + 16 ] = ty0 ;
1683+ vertexViewF32 [ vertexOffset + 17 ] = u0 ;
1684+ vertexViewF32 [ vertexOffset + 18 ] = v0 ;
1685+ vertexViewU32 [ vertexOffset + 19 ] = tint ;
1686+ vertexViewF32 [ vertexOffset + 20 ] = tx2 ;
1687+ vertexViewF32 [ vertexOffset + 21 ] = ty2 ;
1688+ vertexViewF32 [ vertexOffset + 22 ] = u1 ;
1689+ vertexViewF32 [ vertexOffset + 23 ] = v1 ;
1690+ vertexViewU32 [ vertexOffset + 24 ] = tint ;
1691+ vertexViewF32 [ vertexOffset + 25 ] = tx3 ;
1692+ vertexViewF32 [ vertexOffset + 26 ] = ty3 ;
1693+ vertexViewF32 [ vertexOffset + 27 ] = u1 ;
1694+ vertexViewF32 [ vertexOffset + 28 ] = v0 ;
1695+ vertexViewU32 [ vertexOffset + 29 ] = tint ;
1696+
1697+ this . vertexCount += 6 ;
1698+
1699+ // Force an immediate draw
1700+ this . flush ( ) ;
1701+ } ,
1702+
16201703 /**
16211704 * [description]
16221705 *
0 commit comments