From b556143b66c30eed3aab9b9adf7cd1c14e5d1851 Mon Sep 17 00:00:00 2001 From: jdescottes Date: Mon, 14 Jul 2014 14:39:21 +0200 Subject: [PATCH] fixed fps when restoring backup --- src/js/controller/AnimatedPreviewController.js | 8 +++++--- src/js/rendering/layer/LayersRenderer.js | 18 +++++++++++++----- src/js/service/BackupService.js | 4 +++- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/js/controller/AnimatedPreviewController.js b/src/js/controller/AnimatedPreviewController.js index c0cdd3b5..d20e1e2f 100644 --- a/src/js/controller/AnimatedPreviewController.js +++ b/src/js/controller/AnimatedPreviewController.js @@ -81,9 +81,11 @@ }; ns.AnimatedPreviewController.prototype.setFPS = function (fps) { - this.fps = fps; - $("#preview-fps").val(this.fps); - $("#display-fps").html(this.fps + " FPS"); + if (fps) { + this.fps = fps; + $("#preview-fps").val(this.fps); + $("#display-fps").html(this.fps + " FPS"); + } }; ns.AnimatedPreviewController.prototype.getFPS = function () { diff --git a/src/js/rendering/layer/LayersRenderer.js b/src/js/rendering/layer/LayersRenderer.js index 9e5a42b7..d81da39c 100644 --- a/src/js/rendering/layer/LayersRenderer.js +++ b/src/js/rendering/layer/LayersRenderer.js @@ -27,6 +27,10 @@ var currentFrameIndex = this.piskelController.getCurrentFrameIndex(); var currentLayerIndex = this.piskelController.getCurrentLayerIndex(); + var downLayers = layers.slice(0, currentLayerIndex); + var upLayers = layers.slice(currentLayerIndex + 1, layers.length); + + var serializedRendering = [ this.getZoom(), this.getGridWidth(), @@ -34,8 +38,8 @@ offset.y, size.width, size.height, - currentFrameIndex, - currentLayerIndex, + this.getHashForLayersAt_(currentFrameIndex, downLayers), + this.getHashForLayersAt_(currentFrameIndex, upLayers), layers.length ].join("-"); @@ -45,18 +49,15 @@ this.clear(); - var downLayers = layers.slice(0, currentLayerIndex); if (downLayers.length > 0) { var downFrame = this.getFrameForLayersAt_(currentFrameIndex, downLayers); this.belowRenderer.render(downFrame); } - var upLayers = layers.slice(currentLayerIndex + 1, layers.length); if (upLayers.length > 0) { var upFrame = this.getFrameForLayersAt_(currentFrameIndex, upLayers); this.aboveRenderer.render(upFrame); } - } }; @@ -80,6 +81,13 @@ return pskl.utils.FrameUtils.merge(frames); }; + ns.LayersRenderer.prototype.getHashForLayersAt_ = function (frameIndex, layers) { + var hash = layers.map(function (l) { + return l.getFrameAt(frameIndex).getHash(); + }); + return hash.join('-'); + }; + ns.LayersRenderer.prototype.flush = function () { this.serializedRendering = ''; }; diff --git a/src/js/service/BackupService.js b/src/js/service/BackupService.js index 59e9a23a..4b64666a 100644 --- a/src/js/service/BackupService.js +++ b/src/js/service/BackupService.js @@ -24,6 +24,7 @@ var info = { name : descriptor.name, description : descriptor.info, + fps : this.piskelController.getFPS(), date : Date.now(), hash : hash }; @@ -54,6 +55,7 @@ pskl.utils.serialization.Deserializer.deserialize(previousPiskel, function (piskel) { piskel.setDescriptor(new pskl.model.piskel.Descriptor(previousInfo.name, previousInfo.description, true)); pskl.app.piskelController.setPiskel(piskel); + pskl.app.animationController.setFPS(previousInfo.fps); }); }; -})(); \ No newline at end of file +})();