mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
Cleanup of SpritesheetRenderer
This commit is contained in:
parent
562d669ae1
commit
9aba931b0a
@ -2,11 +2,10 @@
|
|||||||
|
|
||||||
var ns = $.namespace("pskl.rendering");
|
var ns = $.namespace("pskl.rendering");
|
||||||
|
|
||||||
ns.SpritesheetRenderer = function (framesheet, renderingOptions) {
|
ns.SpritesheetRenderer = function (framesheet) {
|
||||||
this.framesheet = framesheet;
|
this.framesheet = framesheet;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Will open a new window displaying the spritesheet as a png
|
* Will open a new window displaying the spritesheet as a png
|
||||||
*/
|
*/
|
||||||
@ -14,31 +13,14 @@
|
|||||||
var canvas = this.createCanvas_();
|
var canvas = this.createCanvas_();
|
||||||
for (var i = 0 ; i < this.framesheet.getFrameCount() ; i++) {
|
for (var i = 0 ; i < this.framesheet.getFrameCount() ; i++) {
|
||||||
var frame = this.framesheet.getFrameByIndex(i);
|
var frame = this.framesheet.getFrameByIndex(i);
|
||||||
var offsetWidth = i * this.framesheet.getWidth();
|
this.drawFrameInCanvas_(frame, canvas, i * this.framesheet.getWidth(), 0);
|
||||||
var offsetHeight = 0;
|
|
||||||
this.drawFrameInCanvas_(frame, canvas, offsetWidth, offsetHeight);
|
|
||||||
}
|
|
||||||
var options = [
|
|
||||||
"dialog=yes", "scrollbars=no", "status=no",
|
|
||||||
"width=" + this.framesheet.getWidth() * this.framesheet.getFrameCount(),
|
|
||||||
"height="+this.framesheet.getHeight()
|
|
||||||
].join(",");
|
|
||||||
|
|
||||||
window.open(canvas.toDataURL("image/png"), "piskel-export", options);
|
|
||||||
};
|
|
||||||
|
|
||||||
ns.SpritesheetRenderer.prototype.createCanvas_ = function () {
|
|
||||||
var frameCount = this.framesheet.getFrameCount();
|
|
||||||
if (frameCount > 0){
|
|
||||||
var width = frameCount * this.framesheet.getWidth();
|
|
||||||
var height = this.framesheet.getHeight();
|
|
||||||
var canvas = pskl.CanvasUtils.createCanvas(width, height);
|
|
||||||
return canvas;
|
|
||||||
} else {
|
|
||||||
throw "Cannot render empty Spritesheet"
|
|
||||||
}
|
}
|
||||||
|
this.openCanvasAsPNGInWindow_(canvas);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO : (Julz) Mutualize with code already present in FrameRenderer
|
||||||
|
*/
|
||||||
ns.SpritesheetRenderer.prototype.drawFrameInCanvas_ = function (frame, canvas, offsetWidth, offsetHeight) {
|
ns.SpritesheetRenderer.prototype.drawFrameInCanvas_ = function (frame, canvas, offsetWidth, offsetHeight) {
|
||||||
var context = canvas.getContext('2d');
|
var context = canvas.getContext('2d');
|
||||||
for(var col = 0, width = frame.getWidth(); col < width; col++) {
|
for(var col = 0, width = frame.getWidth(); col < width; col++) {
|
||||||
@ -50,5 +32,26 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ns.SpritesheetRenderer.prototype.createCanvas_ = function () {
|
||||||
|
var frameCount = this.framesheet.getFrameCount();
|
||||||
|
if (frameCount > 0){
|
||||||
|
var width = frameCount * this.framesheet.getWidth();
|
||||||
|
var height = this.framesheet.getHeight();
|
||||||
|
return pskl.CanvasUtils.createCanvas(width, height);
|
||||||
|
} else {
|
||||||
|
throw "Cannot render empty Spritesheet"
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ns.SpritesheetRenderer.prototype.openCanvasAsPNGInWindow_ = function (canvas) {
|
||||||
|
var options = [
|
||||||
|
"dialog=yes", "scrollbars=no", "status=no",
|
||||||
|
"width=" + this.framesheet.getWidth() * this.framesheet.getFrameCount(),
|
||||||
|
"height=" + this.framesheet.getHeight()
|
||||||
|
].join(",");
|
||||||
|
|
||||||
|
window.open(canvas.toDataURL("image/png"), "piskel-export", options);
|
||||||
|
};
|
||||||
})();
|
})();
|
Loading…
Reference in New Issue
Block a user