Live texturing
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
/*
|
||||
* Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
(function () {
|
||||
"use strict";
|
||||
var start = 0;
|
||||
var zmq = require('zmq');
|
||||
var publisher = zmq.socket('pub');
|
||||
|
||||
publisher.bind('tcp://*:5555', function (err) {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
}
|
||||
else {
|
||||
console.log("5555");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
process.on('SIGINT', function () {
|
||||
publisher.close();
|
||||
});
|
||||
|
||||
|
||||
var PLUGIN_ID = require("./package.json").name,
|
||||
MENU_ID = "TeamFisk plugins",
|
||||
MENU_LABEL = "$$$/JavaScripts/Generator/TeamFisk plugins/Menu=Live Texturing RAMDisk";
|
||||
|
||||
var _generator = null;
|
||||
|
||||
// Initialize script here
|
||||
function init(generator, config) {
|
||||
_generator = generator;
|
||||
_generator.addMenuItem(MENU_ID, MENU_LABEL, true, false)
|
||||
.then(
|
||||
function () {
|
||||
console.log("Menu created", MENU_ID);
|
||||
}, function () {
|
||||
console.error("Menu creation failed", MENU_ID);
|
||||
}
|
||||
);
|
||||
|
||||
_generator.onPhotoshopEvent("imageChanged", handleImageChanged);
|
||||
}
|
||||
|
||||
var lastSent = 0;
|
||||
var isSaving = false;
|
||||
function handleImageChanged(document) {
|
||||
|
||||
var start = new Date().getTime();
|
||||
if (start - lastSent > 350 && !isSaving) {
|
||||
isSaving = true;
|
||||
//console.log("DOC: " + document.id);
|
||||
_generator.getDocumentInfo(document.id).then(
|
||||
function (document) {
|
||||
// console.log(new Date().getTime() / 1000);
|
||||
// console.log(stringify(document.timeStamp));
|
||||
//console.log("HELLO 1");
|
||||
//lastSent = document.timeStamp
|
||||
// console.log(stringify(document));
|
||||
//console.log("Received complete document:", stringify(document));
|
||||
//var str = 'var options = new PNGSaveOptions(); app.activeDocument.saveAs (new File("D:/HejHej.png"),options, false);';
|
||||
var str = 'app.activeDocument.save()';
|
||||
|
||||
_generator.evaluateJSXString(str).then(function () {
|
||||
isSaving = false;
|
||||
//console.log("Save succes");
|
||||
var size = (4 + document.file.length + 1);
|
||||
var message = new Buffer(size);
|
||||
|
||||
var offset = 0;
|
||||
|
||||
//console.log("document.file.length: " + document.file.length);
|
||||
//console.log("document.fileName: " + document.file);
|
||||
|
||||
message.writeInt32LE(document.file.length + 1, offset);
|
||||
|
||||
offset += 4;
|
||||
|
||||
var fileName = document.file.replace(/\\/g, "/");
|
||||
message.write(fileName, offset, fileName.length, 'utf8');
|
||||
offset += fileName.length;
|
||||
message.writeUInt8(0, offset); //Null byte
|
||||
offset += 1;
|
||||
|
||||
publisher.send(message);
|
||||
|
||||
var asd = new Date().getTime();
|
||||
var time = asd - start;
|
||||
//console.log(time);
|
||||
lastSent = new Date().getTime();
|
||||
//console.log("LastSent: " + lastSent);
|
||||
|
||||
},
|
||||
function () {
|
||||
console.log("Save Failure");
|
||||
isSaving = false;
|
||||
}).done();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function stringify(object) {
|
||||
try {
|
||||
return JSON.stringify(object, null, " ");
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
return String(object);
|
||||
}
|
||||
|
||||
//Declare entery function in the script
|
||||
exports.init = init;
|
||||
}());
|
||||
Reference in New Issue
Block a user