better class scoping
This commit is contained in:
parent
918144a10f
commit
1a7937208d
2 changed files with 12 additions and 13 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
class DataWriter {
|
self.DataWriter = class DataWriter {
|
||||||
constructor(view, pos) {
|
constructor(view, pos) {
|
||||||
this.view = view;
|
this.view = view;
|
||||||
this.pos = pos || 0;
|
this.pos = pos || 0;
|
||||||
|
|
@ -56,7 +56,7 @@ class DataWriter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DataReader {
|
self.DataReader = class DataReader {
|
||||||
constructor(view, pos) {
|
constructor(view, pos) {
|
||||||
this.view = view;
|
this.view = view;
|
||||||
this.pos = pos || 0;
|
this.pos = pos || 0;
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@
|
||||||
newTop = KIRI.newTop,
|
newTop = KIRI.newTop,
|
||||||
newSlice = KIRI.newSlice,
|
newSlice = KIRI.newSlice,
|
||||||
newPoint = BASE.newPoint,
|
newPoint = BASE.newPoint,
|
||||||
newPolygon = BASE.newPolygon;
|
newPolygon = BASE.newPolygon,
|
||||||
|
plugin = {};
|
||||||
|
|
||||||
let preview,
|
let preview,
|
||||||
previewSmall,
|
previewSmall,
|
||||||
|
|
@ -633,7 +634,7 @@
|
||||||
layermax = Math.max(widget.slices.length);
|
layermax = Math.max(widget.slices.length);
|
||||||
});
|
});
|
||||||
|
|
||||||
let render = legacyMode ? renderLayer : renderLayerWasm;
|
let render = legacyMode ? plugin.renderLayer : plugin.renderLayerWasm;
|
||||||
|
|
||||||
// generate layer bitmaps
|
// generate layer bitmaps
|
||||||
// in wasm mode, rle layers generated here, too
|
// in wasm mode, rle layers generated here, too
|
||||||
|
|
@ -643,11 +644,12 @@
|
||||||
images.push(image);
|
images.push(image);
|
||||||
slices.push(layers);
|
slices.push(layers);
|
||||||
// transfer images to browser main
|
// transfer images to browser main
|
||||||
|
image = image.buffer;
|
||||||
online({
|
online({
|
||||||
progress: (index / layermax) * part1,
|
progress: (index / layermax) * part1,
|
||||||
message: "image_gen",
|
message: "image_gen",
|
||||||
data: image
|
data: image
|
||||||
});
|
},[image]);
|
||||||
if (end) break;
|
if (end) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -672,7 +674,6 @@
|
||||||
}, (progress, message) => {
|
}, (progress, message) => {
|
||||||
online({progress: progress * part2 + part1, message});
|
online({progress: progress * part2 + part1, message});
|
||||||
});
|
});
|
||||||
|
|
||||||
ondone({
|
ondone({
|
||||||
width: width,
|
width: width,
|
||||||
height: height,
|
height: height,
|
||||||
|
|
@ -831,7 +832,7 @@
|
||||||
range.min = 0;
|
range.min = 0;
|
||||||
range.max = lines.length - 1;
|
range.max = lines.length - 1;
|
||||||
range.oninput = function() {
|
range.oninput = function() {
|
||||||
let lineDV = new DataView(lines[range.value].buffer);
|
let lineDV = new DataView(lines[range.value]);
|
||||||
for (let i=0; i<lineDV.byteLength; i++) {
|
for (let i=0; i<lineDV.byteLength; i++) {
|
||||||
imgDV.setUint32(i*4, lineDV.getUint8(i));
|
imgDV.setUint32(i*4, lineDV.getUint8(i));
|
||||||
}
|
}
|
||||||
|
|
@ -914,7 +915,7 @@
|
||||||
|
|
||||||
let buflen = 3000 + coded.length + (layerCount * subcount * 28) + small.byteLength + large.byteLength;
|
let buflen = 3000 + coded.length + (layerCount * subcount * 28) + small.byteLength + large.byteLength;
|
||||||
let filebuf = new ArrayBuffer(buflen);
|
let filebuf = new ArrayBuffer(buflen);
|
||||||
let filedat = new DataWriter(new DataView(filebuf));
|
let filedat = new self.DataWriter(new DataView(filebuf));
|
||||||
let printtime = (process.slaBaseLayers * process.slaBaseOn) +
|
let printtime = (process.slaBaseLayers * process.slaBaseOn) +
|
||||||
(coded.layers.length - process.slaBaseLayers) * process.slaLayerOn;
|
(coded.layers.length - process.slaBaseLayers) * process.slaLayerOn;
|
||||||
|
|
||||||
|
|
@ -1303,7 +1304,7 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
// new WebAssembly rasterizer
|
// new WebAssembly rasterizer
|
||||||
self.renderLayerWasm = function renderLayer(params) {
|
plugin.renderLayerWasm = function renderLayer(params) {
|
||||||
let { width, height, index, widgets, scaleX, scaleY, masks } = params;
|
let { width, height, index, widgets, scaleX, scaleY, masks } = params;
|
||||||
let width2 = width / 2, height2 = height / 2;
|
let width2 = width / 2, height2 = height / 2;
|
||||||
let array = [];
|
let array = [];
|
||||||
|
|
@ -1367,7 +1368,7 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
let imagelen = width * height;
|
let imagelen = width * height;
|
||||||
let writer = new DataWriter(new DataView(wasm.memory.buffer), imagelen);
|
let writer = new self.DataWriter(new DataView(wasm.memory.buffer), imagelen);
|
||||||
writer.writeU16(width, true);
|
writer.writeU16(width, true);
|
||||||
writer.writeU16(height, true);
|
writer.writeU16(height, true);
|
||||||
writer.writeU16(array.length, true);
|
writer.writeU16(array.length, true);
|
||||||
|
|
@ -1378,10 +1379,8 @@
|
||||||
scaleMovePoly(poly);
|
scaleMovePoly(poly);
|
||||||
writePoly(writer, poly);
|
writePoly(writer, poly);
|
||||||
}
|
}
|
||||||
|
|
||||||
wasm.render(0, imagelen, 0);
|
wasm.render(0, imagelen, 0);
|
||||||
let image = wasm.heap.slice(0, imagelen), layers = [];
|
let image = wasm.heap.slice(0, imagelen), layers = [];
|
||||||
|
|
||||||
// one rle encoded bitstream for each mash (anti-alias sublayer)
|
// one rle encoded bitstream for each mash (anti-alias sublayer)
|
||||||
for (let l=0; l<masks.length; l++) {
|
for (let l=0; l<masks.length; l++) {
|
||||||
// while the image is still in wasm heap memory, rle encode it
|
// while the image is still in wasm heap memory, rle encode it
|
||||||
|
|
@ -1393,7 +1392,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// legacy JS-only rasterizer uses OffscreenCanvas
|
// legacy JS-only rasterizer uses OffscreenCanvas
|
||||||
self.renderLayer = function renderLayer(params) {
|
plugin.renderLayer = function renderLayer(params) {
|
||||||
let {width, height, index, widgets, scaleX, scaleY} = params;
|
let {width, height, index, widgets, scaleX, scaleY} = params;
|
||||||
let layer = new OffscreenCanvas(height,width);
|
let layer = new OffscreenCanvas(height,width);
|
||||||
let opt = { scaleX, scaleY, width, height, width2: width/2, height2: height/2 };
|
let opt = { scaleX, scaleY, width, height, width2: width/2, height2: height/2 };
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue