mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
feature : zoom : continued
- simplified Renderer(s) architecture (removed decorator, CachedFrameRenderer simply inherits from FrameRenderer now) - keeping AbstractRenderer to act as interface - fixed issue with layers : forgot to clone the first frame while merging and therefore was modifying the original frame when I just wanted to create a tmp frame (FrameUtils.js) - extracted the mousemove throttling delay used in DrawingController to Constants.js and reduced it from 40ms to 10ms
This commit is contained in:
@ -2,17 +2,25 @@
|
||||
var ns = $.namespace('pskl.rendering.frame');
|
||||
|
||||
/**
|
||||
* Cached renderer that can uses the same constructor as pskl.rendering.FrameRenderer
|
||||
* It will build a FrameRenderer on the fly to use as decorated renderer
|
||||
* FrameRenderer implementation that prevents unnecessary redraws.
|
||||
* @param {HtmlElement} container HtmlElement to use as parentNode of the Frame
|
||||
* @param {Object} renderingOptions
|
||||
* @param {Array} classes array of strings to use for css classes
|
||||
*/
|
||||
ns.CachedFrameRenderer = function (container, renderingOptions, classes) {
|
||||
var frameRenderer = new pskl.rendering.frame.FrameRenderer(container, renderingOptions, classes);
|
||||
pskl.rendering.CachedRenderer.call(this, frameRenderer);
|
||||
pskl.rendering.frame.FrameRenderer.call(this, container, renderingOptions, classes);
|
||||
this.serializedFrame = '';
|
||||
};
|
||||
|
||||
pskl.utils.inherit(pskl.rendering.frame.CachedFrameRenderer, pskl.rendering.CachedRenderer);
|
||||
pskl.utils.inherit(pskl.rendering.frame.CachedFrameRenderer, pskl.rendering.frame.FrameRenderer);
|
||||
|
||||
ns.CachedFrameRenderer.prototype.render = function (frame) {
|
||||
var offset = this.getOffset();
|
||||
var size = this.getDisplaySize();
|
||||
var serializedFrame = [this.getZoom(), offset.x, offset.y, size.width, size.height, frame.serialize()].join('-');
|
||||
if (this.serializedFrame != serializedFrame) {
|
||||
this.serializedFrame = serializedFrame;
|
||||
this.superclass.render.call(this, frame);
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
Reference in New Issue
Block a user