mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
0c9f04bc71 | |||
ac9ccd04e2 | |||
ce8d71f47e | |||
29cd0d80f3 | |||
d3f5a41c0d | |||
3f181c6248 |
@ -10,7 +10,7 @@ SETLOCAL
|
||||
|
||||
set MISC_FOLDER=%PISKEL_HOME%\misc
|
||||
set RELEASES_FOLDER=%PISKEL_HOME%\dest\desktop
|
||||
set DEST_FOLDER=%RELEASES_FOLDER%\piskel\win64
|
||||
set DEST_FOLDER=%RELEASES_FOLDER%\piskel\win32
|
||||
|
||||
ECHO "Updating Piskel icon -- Using Resource Hacker"
|
||||
%RESOURCE_HACKER_PATH%\ResHacker -addoverwrite "%DEST_FOLDER%\piskel.exe", "%DEST_FOLDER%\piskel-logo.exe", "%MISC_FOLDER%\desktop\logo.ico", ICONGROUP, IDR_MAINFRAME, 1033
|
||||
|
@ -3,7 +3,7 @@
|
||||
"name": "piskel",
|
||||
"main": "./dest/index.html",
|
||||
"description": "Web based 2d animations editor",
|
||||
"version": "0.5.0",
|
||||
"version": "0.5.2",
|
||||
"homepage": "http://github.com/juliandescottes/piskel",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
@ -23,8 +23,8 @@
|
||||
-o-transition: all 500ms ease-out;
|
||||
transition: all 500ms ease-out;
|
||||
|
||||
background-image: linear-gradient(45deg, rgba(0,0,0, 0.8) 25%, transparent 25%, transparent 75%, rgba(0,0,0, 0.8) 75%, rgba(0,0,0, 0.8)),
|
||||
linear-gradient(-45deg, rgba(0,0,0, 0.8) 25%, transparent 25%, transparent 75%, rgba(0,0,0, 0.8) 75%, rgba(0,0,0, 0.8));
|
||||
background-image: linear-gradient(45deg, #1D1D1D 20%, transparent 25%, transparent 75%, #1D1D1D 80%, #1D1D1D),
|
||||
linear-gradient(-45deg, #1D1D1D 20%, transparent 25%, transparent 75%, #1D1D1D 80%, #1D1D1D);
|
||||
background-size: 29px 45px;
|
||||
background-repeat: repeat-x;
|
||||
background-position-x: 3px;
|
||||
|
@ -21,7 +21,6 @@
|
||||
ns.PopupPreviewController.prototype.open = function () {
|
||||
if (!this.isOpen()) {
|
||||
this.popup = window.open('about:blank', '', 'width=320,height=320');
|
||||
this.popup.document.body.innerHTML = pskl.utils.Template.get('popup-preview-partial');
|
||||
window.setTimeout(this.onPopupLoaded.bind(this), 500);
|
||||
} else {
|
||||
this.popup.focus();
|
||||
@ -30,6 +29,7 @@
|
||||
|
||||
ns.PopupPreviewController.prototype.onPopupLoaded = function () {
|
||||
this.popup.document.title = POPUP_TITLE;
|
||||
this.popup.document.body.innerHTML = pskl.utils.Template.get('popup-preview-partial');
|
||||
pskl.utils.Event.addEventListener(this.popup, 'resize', this.onWindowResize_, this);
|
||||
pskl.utils.Event.addEventListener(this.popup, 'unload', this.onPopupClosed_, this);
|
||||
var container = this.popup.document.querySelector('.preview-container');
|
||||
|
@ -26,7 +26,6 @@
|
||||
}
|
||||
|
||||
ns.GifExportController.prototype.init = function () {
|
||||
this.optionTemplate_ = pskl.utils.Template.get('gif-export-option-template');
|
||||
|
||||
this.uploadStatusContainerEl = document.querySelector('.gif-upload-status');
|
||||
this.previewContainerEl = document.querySelector('.gif-export-preview');
|
||||
|
File diff suppressed because one or more lines are too long
@ -48,15 +48,32 @@
|
||||
}
|
||||
};
|
||||
|
||||
var batchAll = function (frames, job) {
|
||||
var batches = [];
|
||||
frames = frames.slice(0);
|
||||
while (frames.length) {
|
||||
batches.push(frames.splice(0, 10));
|
||||
}
|
||||
var result = Q([]);
|
||||
batches.forEach(function (batch) {
|
||||
result = result.then(function (results) {
|
||||
return Q.all(batch.map(job)).then(function (partials) {
|
||||
return results.concat(partials);
|
||||
});
|
||||
});
|
||||
});
|
||||
return result;
|
||||
};
|
||||
|
||||
ns.CurrentColorsService.prototype.updateCurrentColors_ = function () {
|
||||
var layers = this.piskelController.getLayers();
|
||||
var frames = layers.map(function (l) {return l.getFrames();}).reduce(function (p, n) {return p.concat(n);});
|
||||
|
||||
Q.all(
|
||||
frames.map(function (frame) {
|
||||
return this.cachedFrameProcessor.get(frame);
|
||||
}.bind(this))
|
||||
).done(function (results) {
|
||||
var job = function (frame) {
|
||||
return this.cachedFrameProcessor.get(frame);
|
||||
}.bind(this);
|
||||
|
||||
batchAll(frames, job).then(function (results) {
|
||||
var colors = {};
|
||||
results.forEach(function (result) {
|
||||
Object.keys(result).forEach(function (color) {
|
||||
|
@ -1,43 +1 @@
|
||||
(function () {
|
||||
var flipFrame = function (frame, horizontal, vertical) {
|
||||
var clone = frame.clone();
|
||||
var w = frame.getWidth();
|
||||
var h = frame.getHeight();
|
||||
clone.forEachPixel(function (color, x, y) {
|
||||
if (horizontal) {
|
||||
x = w - x - 1;
|
||||
}
|
||||
if (vertical) {
|
||||
y = h - y - 1;
|
||||
}
|
||||
frame.pixels[x][y] = color;
|
||||
});
|
||||
frame.version++;
|
||||
};
|
||||
|
||||
window.flip = function (horizontal, vertical) {
|
||||
var currentFrameIndex = pskl.app.piskelController.getCurrentFrameIndex();
|
||||
var layers = pskl.app.piskelController.getLayers();
|
||||
layers.forEach(function (layer) {
|
||||
flipFrame(layer.getFrameAt(currentFrameIndex), horizontal, vertical);
|
||||
});
|
||||
$.publish(Events.PISKEL_RESET);
|
||||
$.publish(Events.PISKEL_SAVE_STATE, {
|
||||
type : pskl.service.HistoryService.SNAPSHOT
|
||||
});
|
||||
};
|
||||
|
||||
window.copyToAll = function () {
|
||||
var ref = pskl.app.piskelController.getCurrentFrame();
|
||||
var layer = pskl.app.piskelController.getCurrentLayer();
|
||||
layer.getFrames().forEach(function (frame) {
|
||||
if (frame !== ref) {
|
||||
frame.setPixels(ref.getPixels());
|
||||
}
|
||||
});
|
||||
$.publish(Events.PISKEL_RESET);
|
||||
$.publish(Events.PISKEL_SAVE_STATE, {
|
||||
type : pskl.service.HistoryService.SNAPSHOT
|
||||
});
|
||||
};
|
||||
})();
|
||||
(function () {})();
|
||||
|
@ -14,7 +14,7 @@
|
||||
var color = {
|
||||
r : 255,
|
||||
g : 255,
|
||||
b : 255
|
||||
b : 0
|
||||
};
|
||||
var match = null;
|
||||
while (true) {
|
||||
|
@ -28,7 +28,7 @@
|
||||
this.synchronize_(this.lastInput);
|
||||
};
|
||||
|
||||
ns.SizeInput.prototype.enableSync = function () {
|
||||
ns.SizeInput.prototype.disableSync = function () {
|
||||
this.syncEnabled = false;
|
||||
};
|
||||
|
||||
|
@ -2,9 +2,10 @@
|
||||
|
||||
(typeof exports != "undefined" ? exports : pskl_exports).scripts = [
|
||||
// Core libraries
|
||||
"js/lib/jquery-1.8.0.js","js/lib/jquery-ui-1.10.3.custom.js","js/lib/pubsub.js","js/lib/bootstrap/bootstrap.js",
|
||||
|
||||
|
||||
"js/lib/jquery-1.8.0.js",
|
||||
"js/lib/jquery-ui-1.10.3.custom.js",
|
||||
"js/lib/pubsub.js",
|
||||
"js/lib/bootstrap/bootstrap.js",
|
||||
|
||||
// Application wide configuration
|
||||
"js/Constants.js",
|
||||
@ -126,7 +127,6 @@
|
||||
"js/controller/dialogs/ImportImageController.js",
|
||||
"js/controller/dialogs/BrowseLocalController.js",
|
||||
|
||||
|
||||
// Dialogs controller
|
||||
"js/controller/dialogs/DialogsController.js",
|
||||
|
||||
|
@ -5,25 +5,25 @@ describe("Color utils", function() {
|
||||
|
||||
it("returns a color when provided with array of colors", function() {
|
||||
// when/then
|
||||
var unusedColor = pskl.utils.ColorUtils.getUnusedColor(['#ffffff', '#feffff', '#fdffff']);
|
||||
var unusedColor = pskl.utils.ColorUtils.getUnusedColor(['#ffff00', '#feff00', '#fdff00']);
|
||||
// verify
|
||||
expect(unusedColor).toBe('#FCFFFF');
|
||||
expect(unusedColor).toBe('#FCFF00');
|
||||
|
||||
// when/then
|
||||
unusedColor = pskl.utils.ColorUtils.getUnusedColor(['#fcffff', '#feffff', '#fdffff']);
|
||||
unusedColor = pskl.utils.ColorUtils.getUnusedColor(['#fcff00', '#feff00', '#fdff00']);
|
||||
// verify
|
||||
expect(unusedColor).toBe('#FFFFFF');
|
||||
expect(unusedColor).toBe('#FFFF00');
|
||||
});
|
||||
|
||||
it("returns a color for an empty array", function() {
|
||||
// when/then
|
||||
var unusedColor = pskl.utils.ColorUtils.getUnusedColor([]);
|
||||
// verify
|
||||
expect(unusedColor).toBe('#FFFFFF');
|
||||
expect(unusedColor).toBe('#FFFF00');
|
||||
|
||||
// when/then
|
||||
unusedColor = pskl.utils.ColorUtils.getUnusedColor();
|
||||
// verify
|
||||
expect(unusedColor).toBe('#FFFFFF');
|
||||
expect(unusedColor).toBe('#FFFF00');
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user