@sohale/implisolid
Version:
A Solid Modelling Kernel in Javascript based on Implicit Surfaces, for MP5 file format
58 lines (50 loc) • 2 kB
HTML
<html>
<script>;
var worker = new Worker('./e2_emworker.compiled.js');
var api_info = {
test: {
funcName: "worker_function",
callbackId: 3,
},
};
function test_data_worker(arguments_data_buffer) {
// The protocol used by Emscripten
worker.postMessage( {
funcName: api_info.test.funcName,
callbackId: api_info.test.callbackId,
data: arguments_data_buffer,
// 'finalResponse': false,
}
// , [arguments_data_buffer] //uncommet for transferable
);
}
function demo_request() {
var verts = new Float32Array([3.141592651234567890123456780,1,2, 3,4,5, 6,7,8, 9,0.5,1.5]);
var faces = new Uint16Array([0,1,2, 1,2,3, 0,1,3, 0,2,3]);
var b8verts=new Uint8Array(verts.buffer);
var b8faces=new Uint8Array(faces.buffer);
test_data_worker(b8verts); // b8verts.buffer to make it transferrable
// Desired:
//test_data_worker([b8verts, b8faces]); // Doesnt work. sends two bytes instead
//test_data_worker([b8verts, 60, b8faces]); // doesnt work
//test_data_worker({verts:b8verts, d:60, faces:b8faces}); // doesnt work
}
worker.addEventListener('message', function(event) {
// event.data is {callbackId: -1, finalResponse: true, data: 0}
switch (event.data.callbackId) {
case api_info.test.callbackId: //api_revlookup.:
// console.log("Result sent back from web worker", event.data);
// Reinterpret data
var uint8Arr = event.data.data;
var returned_message = String.fromCharCode.apply(null, uint8Arr)
console.log(returned_message);
break;
default:
console.error("Unrecognised message sent back.");
}
}, false);
demo_request();
console.log("request() sent.");
</script>
</html>