@@ -358,10 +358,35 @@ var RenderTexture = new Class({
358358 frame . source . glTexture = renderTarget . texture ;
359359 }
360360
361+ var camera = this . camera ;
362+
361363 frame . source . width = width ;
362364 frame . source . height = height ;
363365
364- this . camera . setSize ( width , height ) ;
366+ var renderer = this . renderer ;
367+ var rendererWidth = renderer . width ;
368+ var rendererHeight = renderer . height ;
369+
370+ var zoomX = rendererWidth / width ;
371+ var zoomY = rendererHeight / height ;
372+
373+ camera . setSize ( width , height ) ;
374+ camera . setZoom ( zoomX , zoomY ) ;
375+
376+ var ox = 0.5 ;
377+ var oy = 0.5 ;
378+
379+ if ( width !== rendererWidth )
380+ {
381+ ox = 0 ;
382+ }
383+
384+ if ( height !== rendererHeight )
385+ {
386+ oy = 0 ;
387+ }
388+
389+ camera . setOrigin ( ox , oy ) ;
365390
366391 frame . setSize ( width , height ) ;
367392
@@ -790,33 +815,23 @@ var RenderTexture = new Class({
790815 }
791816
792817 var camera = this . camera ;
793- var renderer = this . renderer ;
794818 var renderTarget = this . renderTarget ;
795819 var textureFrame = this . textureManager . getFrame ( key , frame ) ;
796820
797821 if ( textureFrame )
798822 {
823+ camera . preRender ( ) ;
824+
799825 if ( renderTarget )
800826 {
801- var zoomX = 1 - ( renderer . width / renderTarget . width ) ;
802- var zoomY = 1 - ( renderer . height / renderTarget . height ) ;
803-
804- var ox = 0 - renderTarget . width / 2 ;
805- var oy = 0 - renderTarget . height / 2 ;
806-
807- camera . setZoom ( zoomX , zoomY ) ;
808- camera . preRender ( ) ;
809-
810827 renderTarget . bind ( true ) ;
811828
812- this . pipeline . batchTextureFrame ( textureFrame , ox + x , oy + y , tint , alpha , camera . matrix , null ) ;
829+ this . pipeline . batchTextureFrame ( textureFrame , x , y , tint , alpha , camera . matrix , null ) ;
813830
814831 renderTarget . unbind ( true ) ;
815832 }
816833 else
817834 {
818- camera . preRender ( ) ;
819-
820835 this . batchTextureFrame ( textureFrame , x + this . frame . cutX , y + this . frame . cutY , alpha , tint ) ;
821836 }
822837
0 commit comments