add engine and frame apis for enabling threading and wasm

This commit is contained in:
Stewart Allen 2022-03-03 13:10:32 -05:00
commit 0584357287
5 changed files with 48 additions and 12 deletions

View file

@ -83,6 +83,17 @@ class Engine {
return this;
}
setController(controller) {
let ctrl = this.settings.controller;
Object.assign(ctrl, controller);
if (ctrl.threaded) {
kiri.client.pool.start();
} else {
kiri.client.pool.stop();
}
return this;
}
setTools(tools) {
this.settings.tools = tools;
return this;

View file

@ -63,6 +63,8 @@
setFeatures: (features) => { send({ features })},
setController: (controller) => { send({ controller })},
slice: () => { send({ function: "slice", callback: true }) },
prepare: () => { send({ function: "prepare", callback: true }) },

View file

@ -57,18 +57,25 @@ window.addEventListener('message', msg => {
}
if (data.set) switch (data.set) {
case "features":
if (data.features) {
Object.assign(feature, data.features);
break;
case "device":
Object.assign(settings.dev(), data.options);
}
if (data.device) {
Object.assign(settings.dev(), data.device);
conf.save();
break;
case "process":
Object.assign(settings.proc(), data.options);
}
if (data.process){
Object.assign(settings.proc(), data.process);
conf.save();
}
if (data.controller){
let ctrl = settings.ctrl();
Object.assign(ctrl, data.controller);
api.event.emit("set.threaded", ctrl.threaded);
conf.save();
break;
}
if (data.parse) {

View file

@ -165,6 +165,8 @@ gapp.register("kiri.init", [], (root, exports) => {
return bool;
}
api.event.on("set.threaded", bool => setThreaded(bool));
function booleanSave() {
let control = settings().controller;
let isDark = control.dark;

View file

@ -684,6 +684,18 @@ function settingsPrusaConvert(data) {
});
}
function setThreaded(bool) {
bool = bool ? true : false;
settings.controller.threaded = bool;
api.event.emit("set.threaded", bool);
}
function setEnableWASM(bool) {
bool = bool ? true : false;
settings.controller.assembly = bool;
api.event.emit("set.assembly", bool);
}
api.conf = {
dbo: () => { return ls2o('ws-settings') },
get: getSettings,
@ -695,6 +707,8 @@ api.conf = {
update_from: updateSettingsFromFields,
update_fields: updateFieldsFromSettings,
update_fields_from_range: updateFieldsFromRange,
set_enable_wasm: setEnableWASM,
set_threaded: setThreaded,
restore: restoreSettings,
export: settingsExport,
import: settingsImport,