@@ -43,8 +43,8 @@ var Transform = function (gameObject, x, y, scaleX, scaleY)
4343 // GL Vertex Data
4444 this . glVertextData = { x0 : 0 , y0 : 0 , x1 : 0 , y1 : 0 , x2 : 0 , y2 : 0 , x3 : 0 , y3 : 0 } ;
4545
46- // Canvas SetTransform Data
47- this . canvasData = { a : 1 , b : 0 , c : 0 , d : 1 , tx : 0 , ty : 0 } ;
46+ // Canvas SetTransform data
47+ this . canvasData = { a : 1 , b : 0 , c : 0 , d : 1 , tx : 0 , ty : 0 , dx : 0 , dy : 0 } ;
4848
4949 this . immediate = false ;
5050
@@ -455,7 +455,7 @@ Transform.prototype = {
455455 this . cache . d = this . cache . cr * this . _scaleY ;
456456 } ,
457457
458- updateVertexData : function ( interpolationPercentage )
458+ updateVertexData : function ( interpolationPercentage , renderer )
459459 {
460460 if ( ! this . gameObject . frame || ( ! this . _dirtyVertex && ! this . interpolate ) )
461461 {
@@ -542,7 +542,7 @@ Transform.prototype = {
542542 h1 = _w1 ;
543543 }
544544
545- if ( frame . autoRound === 1 || ( frame . autoRound === - 1 && this . game . renderer . roundPixels ) )
545+ if ( frame . autoRound === 1 || ( frame . autoRound === - 1 && renderer . roundPixels ) )
546546 {
547547 tx |= 0 ;
548548 ty |= 0 ;
@@ -597,8 +597,10 @@ Transform.prototype = {
597597 } ;
598598 } ,
599599
600- getCanvasTransformData : function ( interpolationPercentage )
600+ getCanvasTransformData : function ( interpolationPercentage , renderer )
601601 {
602+ var frame = this . gameObject . frame ;
603+
602604 var world = this . world ;
603605 var data = this . canvasData ;
604606
@@ -613,6 +615,8 @@ Transform.prototype = {
613615 data . d = old . d + ( ( world . d - old . d ) * interpolationPercentage ) ;
614616 data . tx = old . tx + ( ( world . tx - old . tx ) * interpolationPercentage ) ;
615617 data . ty = old . ty + ( ( world . ty - old . ty ) * interpolationPercentage ) ;
618+ data . dx = old . dx + ( ( frame . x - ( this . anchorX * frame . width ) ) * interpolationPercentage ) ;
619+ data . dy = old . dy + ( ( frame . y - ( this . anchorY * frame . height ) ) * interpolationPercentage ) ;
616620 }
617621 else
618622 {
@@ -623,6 +627,16 @@ Transform.prototype = {
623627 data . d = world . d ;
624628 data . tx = world . tx ;
625629 data . ty = world . ty ;
630+ data . dx = frame . x - ( this . anchorX * frame . width ) ;
631+ data . dy = frame . y - ( this . anchorY * frame . height ) ;
632+ }
633+
634+ if ( frame . autoRound === 1 || ( frame . autoRound === - 1 && renderer . roundPixels ) )
635+ {
636+ data . tx |= 0 ;
637+ data . ty |= 0 ;
638+ data . dx |= 0 ;
639+ data . dy |= 0 ;
626640 }
627641
628642 return data ;
0 commit comments