force cache clear only when synth widgets present

This commit is contained in:
Stewart Allen 2021-02-08 10:10:31 -05:00
commit 3283d879ef
5 changed files with 13 additions and 22 deletions

View file

@ -2,7 +2,7 @@
## `C` cosmetic, `F` functional, `P` performance, `B` bug fix ## `C` cosmetic, `F` functional, `P` performance, `B` bug fix
* `B` client/worker cache invalidated by latest rotation work * `B` client/worker cache invalidated by latest rotation work. revisit sync.
* `B` normals possibly inverted on faces in 2D to 3D conversion * `B` normals possibly inverted on faces in 2D to 3D conversion
* `B` origin bug (Onshape?) when switching modes in 2.5 and 2.6 * `B` origin bug (Onshape?) when switching modes in 2.5 and 2.6
@ -19,13 +19,12 @@
# FDM # FDM
* `B` fix adaptive slicing with multi-extruder * `B` infill densities are inaccurate
* `B` fix support projection/end with grouped parts * `B` fix support projection/end with grouped parts
* `B` multi-extruder rendering of raft fails to offset the rest of the print * `B` multi-extruder rendering of raft fails to offset the rest of the print
* `B` multi-extruder purge blocks fail to generate properly for rafts * `B` multi-extruder purge blocks fail to generate properly for rafts
* `B` first layer support speed should be same as shell speed
* `F` test outlining solid projected areas * `F` test outlining solid projected areas (internally)
* `F` slicing controls per user-defined z-region * `F` slicing controls per user-defined z-region
* `F` control for size of purge block (with 0=disabled) * `F` control for size of purge block (with 0=disabled)
* `F` polishing and other non-planar work * `F` polishing and other non-planar work

View file

@ -110,9 +110,9 @@ KIRI.work = {
send("config", obj, function(reply) { }); send("config", obj, function(reply) { });
}, },
clear: function(widget) { clear: function() {
syncd = {}; syncd = {};
send("clear", widget ? {id:widget.id} : {}, function(reply) { }); send("clear", {}, function(reply) { });
}, },
snap: function(data) { snap: function(data) {

View file

@ -871,9 +871,6 @@
setOpacity(color.slicing_opacity); setOpacity(color.slicing_opacity);
STACKS.clear(); STACKS.clear();
if (mode === 'FDM') {
KIRI.client.clear();
}
KIRI.client.sync(); KIRI.client.sync();
KIRI.client.rotate(settings); KIRI.client.rotate(settings);

View file

@ -44,19 +44,9 @@ KIRI.worker = {
clear: function(data, send) { clear: function(data, send) {
current.snap = null; current.snap = null;
current.print = null; current.print = null;
if (!data.id) { dispatch.group = wgroup = {};
dispatch.group = wgroup = {}; dispatch.cache = wcache = {};
dispatch.cache = wcache = {}; send.done({ clear: true });
send.done({ clear: true });
return;
}
let had = wcache[data.id] !== undefined;
delete wcache[data.id];
send.done({
id: data.id,
had: had,
has: wcache[data.id] !== undefined
});
}, },
// widget sync // widget sync

View file

@ -23,13 +23,18 @@
function filterSynth() { function filterSynth() {
// remove synth widgets // remove synth widgets
let clear = false;
api.widgets.filter((widget) => { api.widgets.filter((widget) => {
if (widget.track.synth) { if (widget.track.synth) {
api.const.SPACE.platform.remove(widget.mesh); api.const.SPACE.platform.remove(widget.mesh);
kiri.Widget.Groups.remove(widget); kiri.Widget.Groups.remove(widget);
clear = true;
} }
return !widget.track.synth return !widget.track.synth
}); });
if (clear) {
kiri.client.clear();
}
} }
api.event.on("mode.set", mode => { api.event.on("mode.set", mode => {