From 7b43a5736f26ae6e104821365a9e011331da1211 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Fri, 1 Jan 2021 11:55:49 -0500 Subject: [PATCH] skip renderning when using engine api --- src/kiri/engine.js | 1 + src/mode/fdm/prepare.js | 12 ++++++++---- src/mode/fdm/slice.js | 14 +++++++++----- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/kiri/engine.js b/src/kiri/engine.js index db058ee5..b27b6744 100644 --- a/src/kiri/engine.js +++ b/src/kiri/engine.js @@ -13,6 +13,7 @@ class Engine { this.settings = { mode: "FDM", controller: {}, + internal: true, filter: { FDM: "internal" }, device: KIRI.conf.defaults.fdm.d, // device profile process: KIRI.conf.defaults.fdm.p, // slicing settings diff --git a/src/mode/fdm/prepare.js b/src/mode/fdm/prepare.js index 9164476e..e67b6b18 100644 --- a/src/mode/fdm/prepare.js +++ b/src/mode/fdm/prepare.js @@ -395,10 +395,14 @@ } print.output = output; - print.render = FDM.prepareRender(output, (progress, layer) => { - update(0.5 + progress * 0.5, "render", layer); - }, { tools: device.extruders, thin: isThin, flat: isFlat, fdm: true }); - return print.render; + + // render when not internal (engine api) + if (!settings.internal) { + print.render = FDM.prepareRender(output, (progress, layer) => { + update(0.5 + progress * 0.5, "render", layer); + }, { tools: device.extruders, thin: isThin, flat: isFlat, fdm: true }); + return print.render; + } }; class Counter { diff --git a/src/mode/fdm/slice.js b/src/mode/fdm/slice.js index df007d4d..6be39d02 100644 --- a/src/mode/fdm/slice.js +++ b/src/mode/fdm/slice.js @@ -56,7 +56,8 @@ */ FDM.slice = function(settings, widget, onupdate, ondone) { FDM.fixExtruders(settings); - let spro = settings.process, + let render = !settings.internal, + spro = settings.process, sdev = settings.device, update_start = Date.now(), minSolid = spro.sliceSolidMinArea, @@ -258,9 +259,12 @@ }, "support"); } - forSlices(0.9, 1.0, function(slice) { - doRender(slice); - }, "render"); + // skip rendering in api-only mode + if (render) { + forSlices(0.9, 1.0, function(slice) { + doRender(slice); + }, "render"); + } // report slicing complete ondone(); @@ -323,7 +327,7 @@ if (poly.fill) output .setLayer("support", COLOR.support) .addLines(poly.fill, vopt({ offset, height })); - }) + }); // if (isThin && debug) { // output