Skip to content

Commit e2f7ca4

Browse files
committed
Fixed camera zoom and origin. draw and drawFrame work now.
1 parent 87b96f6 commit e2f7ca4

1 file changed

Lines changed: 29 additions & 14 deletions

File tree

src/gameobjects/rendertexture/RenderTexture.js

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)