diff --git a/js/controller/AnimatedPreviewController.js b/js/controller/AnimatedPreviewController.js index 14749608..c61e789a 100644 --- a/js/controller/AnimatedPreviewController.js +++ b/js/controller/AnimatedPreviewController.js @@ -10,10 +10,11 @@ this.setFPS(Constants.DEFAULT.FPS); var zoom = this.calculateZoom_(); + var frame = this.piskelController.getCurrentFrame(); var renderingOptions = { "zoom": zoom, - "height" : this.piskelController.getCurrentFrame().getHeight() * zoom, - "width" : this.piskelController.getCurrentFrame().getWidth() * zoom + "height" : frame.getHeight() * zoom, + "width" : frame.getWidth() * zoom }; this.renderer = new pskl.rendering.frame.FrameRenderer(this.container, renderingOptions); @@ -58,15 +59,18 @@ * Calculate the preview DPI depending on the framesheet size */ ns.AnimatedPreviewController.prototype.calculateZoom_ = function () { + var frame = this.piskelController.getCurrentFrame(); var previewSize = 200, - hZoom = previewSize / this.piskelController.getCurrentFrame().getHeight(), - wZoom = previewSize / this.piskelController.getCurrentFrame().getWidth(); + hZoom = previewSize / frame.getHeight(), + wZoom = previewSize / frame.getWidth(); return Math.min(hZoom, wZoom); }; ns.AnimatedPreviewController.prototype.updateZoom_ = function () { + var frame = this.piskelController.getCurrentFrame(); var zoom = this.calculateZoom_(); this.renderer.setZoom(zoom); + this.renderer.setDisplaySize(frame.getWidth() * zoom, frame.getHeight() * zoom); }; })(); \ No newline at end of file diff --git a/js/controller/DrawingController.js b/js/controller/DrawingController.js index 98efb7f4..417e0b44 100644 --- a/js/controller/DrawingController.js +++ b/js/controller/DrawingController.js @@ -110,6 +110,11 @@ } }, + ns.DrawingController.prototype.onFrameSizeChanged_ = function () { + this.compositeRenderer.setZoom(this.calculateZoom_()); + this.compositeRenderer.setDisplaySize(this.getContainerWidth_(), this.getContainerHeight_()); + }; + /** * @private */ diff --git a/js/rendering/frame/FrameRenderer.js b/js/rendering/frame/FrameRenderer.js index 9d3bb57d..eb0eb03d 100644 --- a/js/rendering/frame/FrameRenderer.js +++ b/js/rendering/frame/FrameRenderer.js @@ -212,7 +212,7 @@ * @private */ ns.FrameRenderer.prototype.renderFrame_ = function (frame) { - if (!this.canvas) { + if (!this.canvas || frame.getWidth() != this.canvas.width || frame.getHeight() != this.canvas.height) { this.canvas = pskl.CanvasUtils.createCanvas(frame.getWidth(), frame.getHeight()); }