From 367eb5db06ac566f4756f4c8886e200b61711eb5 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Sun, 11 Jul 2021 15:24:37 -0400 Subject: [PATCH] add string debugging for wasm. remove other debug code --- src/geo/wasm.js | 27 ++------------------------- src/kiri/init.js | 2 +- wasm/kiri-geo.cpp | 33 ++++++++++----------------------- wasm/kiri-geo.wasm | Bin 67030 -> 67005 bytes wasm/makefile | 2 +- 5 files changed, 14 insertions(+), 50 deletions(-) diff --git a/src/geo/wasm.js b/src/geo/wasm.js index 003416ca..88f38ac7 100644 --- a/src/geo/wasm.js +++ b/src/geo/wasm.js @@ -17,7 +17,6 @@ if (!self.window) (function() { const factor = self.base.config.clipper; const geo = self.geo; - const debug = false; function log() { console.log(...arguments); @@ -141,20 +140,6 @@ if (!self.window) (function() { return tops; } - function runTests() { - let newPolygon = self.base.newPolygon; - let p1 = newPolygon().centerCircle({x:2,y:2,z:0}, 2, 50); - // let p1 = newPolygon().add(0,0).add(4,0).add(4,4).add(0,4); - let p2 = p1.clone().setZ(0).move({x:2, y:2}); - let d1 = []; - let d2 = []; - geo.wasm.js.diff([p1], [p2], 0, d1, d2); - console.log('diff',{p1:p1.points, p2:p2.points, d1:d1[0].points, d2:d2[0].points}); - let o1 = geo.wasm.js.offset([p1], 1, 0); - console.log('offs',{o1:o1[0].points}); - wasm.test_string(5); - } - function readString(pos, len) { let view = new DataReader(geo.wasm.heap, pos); let out = []; @@ -173,9 +158,7 @@ if (!self.window) (function() { .then(response => response.arrayBuffer()) .then(bytes => WebAssembly.instantiate(bytes, { env: { - polygon: (a,b) => { console.log('polygon',a,b) }, - point: (a,b) => { console.log('point',a,b) }, - ostr: (len, ptr) => { console.log('ostr', readString(ptr, len)) } + debug_string: (len, ptr) => { console.log('wasm', readString(ptr, len)) } }, wasi_snapshot_preview1: { args_get: (count,bufsize) => { return 0 }, @@ -197,9 +180,7 @@ if (!self.window) (function() { memory: exports.memory, memmax: exports.memory.buffer.byteLength, malloc: exports.mem_get, - free: exports.mem_clr, - set_debug: exports.set_debug, - test_string: exports.test_string + free: exports.mem_clr }; wasm.shared = wasm.malloc(1024 * 1024 * 30), wasm.fn = { @@ -212,10 +193,6 @@ if (!self.window) (function() { union: polyUnion, offset: polyOffset }; - if (debug) { - wasm.set_debug(1); - runTests(); - } }); } diff --git a/src/kiri/init.js b/src/kiri/init.js index 64780eab..a418a940 100644 --- a/src/kiri/init.js +++ b/src/kiri/init.js @@ -2481,7 +2481,7 @@ platform.update_size(); // load wasm if indicated - KIRI.client.wasm(control.assembly); + KIRI.client.wasm(control.assembly === true); }; UI.sync(); diff --git a/wasm/kiri-geo.cpp b/wasm/kiri-geo.cpp index ad2e4dec..3b0fb26a 100644 --- a/wasm/kiri-geo.cpp +++ b/wasm/kiri-geo.cpp @@ -11,12 +11,9 @@ typedef int int32; using namespace ClipperLib; Uint8 *mem = 0; -Uint8 debug = 0; extern "C" { - extern void polygon(Uint32 points, Uint32 inners); - extern void point(Uint32 x, Uint32 y); - extern void ostr(Uint32 len, std::string str); + extern void debug_string(Uint32 len, char *str); } struct length16 { @@ -38,16 +35,23 @@ void mem_clr(Uint32 loc) { free((void *)loc); } +void send_string(const char *format, ...) { + char buffer[100]; + va_list args; + va_start(args, format); + Uint32 len = vsprintf(buffer, format, args); + va_end(args); + debug_string(len, buffer); +} + Uint32 readPoly(Path &path, Uint32 pos) { struct length16 *ls = (struct length16 *)(mem + pos); Uint16 points = ls->length; - // if (debug) polygon(points, 0); pos += 2; while (points > 0) { struct point32 *ip = (struct point32 *)(mem + pos); pos += 8; path << IntPoint(ip->x, ip->y); - // if (debug) point(ip->x, ip->y); points--; } return pos; @@ -64,12 +68,10 @@ Uint32 readPolys(Paths &paths, Uint32 pos, Uint32 count) { Uint32 writePolys(Paths &outs, Uint32 pos) { for (Path po : outs) { - // if (debug) polygon(po.size(), 1); struct length16 *ls = (struct length16 *)(mem + pos); ls->length = po.size(); pos += 2; for (IntPoint pt : po) { - // if (debug) point(pt.X, pt.Y); struct point32 *ip = (struct point32 *)(mem + pos); ip->x = (int)pt.X; ip->y = (int)pt.Y; @@ -84,7 +86,6 @@ Uint32 writePolys(Paths &outs, Uint32 pos) { __attribute__ ((export_name("poly_offset"))) Uint32 poly_offset(Uint32 memat, Uint32 polys, float offset, float clean, Uint8 simple) { - Paths ins(polys); Paths outs; Uint32 pos = memat; @@ -186,17 +187,3 @@ Uint32 poly_diff(Uint32 memat, Uint32 polysA, Uint32 polysB, Uint8 AB, Uint8 BA, return resat; } - -__attribute__ ((export_name("set_debug"))) -void set_debug(Uint8 value) { - debug = value; -} - -__attribute__ ((export_name("test_string"))) -void test_string(Uint8 value) { - // Creating a string from const char* - std::string str1 = "hello"; - //std::string str1 = std::format("{} {}", "hello", value); - - ostr(str1.length(), str1); -} diff --git a/wasm/kiri-geo.wasm b/wasm/kiri-geo.wasm index 81158784216de23a9bb8669ef9cfd4e3d060dc3f..69946494398cddd6541e9d8d7bd796dd4310f104 100755 GIT binary patch delta 2995 zcmai0dvKK175~otzTNDzd_2Vvm%9teZrQ|wgd|AoPP_kQ=@ zbIGaVsQX#7F$x9&X0e%S6S(nZmID!NWLen9cz7eTFE5xoZ_yKT zpPR4jV=i;?`26JsOP0-7K4cDaEfz0cGEZq{_L-mva0as0!Ddzt^^iXPXBji*R>B_G z3w5v`4glEy4u4^PWoKXuvu|b7r*C5h+r{2tTiI^*H})>gAF%gXHFI=bQk$8vS>2HY zHO9lv?N+G4uLrKnsAE1w?6>O^^u0`RI=cWYVXo-eToHR+SxgzF2z`;yGFsuFH(_K@ zK5W9Y!G35kW)HSoV3RRt_(5i`W1_?KVWf@twF-^KYEO;^W!U6LWISWvn6u{9B8Ryw&sgFhvq3ooqQ>~o#69Mr5worT=^+p8uKAUrk71I9-D`abs2{ ztpf7(w~cSY;{e_?#=i6nK$-F9RSTqxf4{t5C7RZ*d4R?b*X*WoS<$EzdV=Oti6T{0 zj3$bRt|sOK;STAW@Pne%0SzpRX-h-oGEhGltdG&s4150)~ z)3ITo2cJrHqgLEbgmo70ga%x{c7?Wy(P8=@JvjcgcD0Nt_;m4oM&|2R2ihadnIwbO z82&BS<@@j5_J#&;;d_-+XuMvTNn={o8&HaSt9-B?w^k3$(My?2b#g_%n+BTzeFNL* zVhLMhve5+z8`1^?)sMgie4#pEIvW1q2Id`hhbOv5JBf~BzG*YjnO$}pD)IG}G^oUymX4GJ`}fG6 zV3-jUt`U&@bmp&kNq>&Ocs%f2Pqop@V-1Z|sJ(Qefoz5I`+s~=c z6cP1vm1dXQDSB|_>4g-f>vSR9!i8s6K@Wa$rUXijm1nI$2d{ko3yOE<^Ko?SI=46& zHO0d62+VEy=~anu#%+tJp7lp)mz;wPLXo$fOSj+l3&o6yt>?z3^qRM=BwNwz=T`HY zJS_}}LaeCvYZJnam9sXsKpHzyfoHb z2*Ag9@q(Ye9c^+ywQWp*09MGzLR&_-ot%kp`uh5kX1S?U^tgK}ky?Ddjc1hxV=%de zQY@cYCa-cu@>mw+a*Jf2fHcWOdbrIWzGX75(EEvjyb)9A;8rX{PN8@e@qUn7q{pgY zENw*r5ti$<0V0@!$nQvuOqB{ts0BV%ko2eaK2q!Ti(a%}Obg2WcqEx@6EKHa2|%glEg>%>?w`6ifvR-f z#bSK8!#6^3b{0V|=C_YdeE!#+*<*JFf6SC@rc=tRVxKm#D@ZF_NTTnbkO)50_4~WwxfgGD zm6>>`9OHP{op>VMmprlZQ)CG!GCTA|bt|LB3owIz87^J%CVxv0*ZLELBd_ki8=9Ko zk{KrT$nAHc`1Fe--#eErjWB4EeND2DyL%cvl6o!PTx1Gj)N@Om{I%CIsi|S9v*=(*v+ z)~`n4)M$F9^h;N!xm77Kvohk{jeex=)S+yzF&*mBdvIBF+;>>|X|XQ)5H;3Y(Xgq= z|A(mL`kx%}*g%gScH==a1m*e@gW4h@v>HioS>1ikyrEy-NrF5AEz()Bpeg delta 2919 zcmah~eRLGn6`%KJcC(w=B@-kxh8W*2l3lZ=8q62kYM$qWKsW&{;<1%#5z~*ABZLGz zRLe$64}o9{+@J(DB^ZQ|Mhs5Akbp(RS_?EnAOtZVB=Vs_HjBGHAa1DH#JRXf|nreKgZyFD@*3?uEkV zm;6fF03qs{vW41j|I2MM zvh=(%O(7d$Q6QgehJ67R_Xc%YnZ+kd!q}LVlOk=i9txxpvQc-x_ADV)`fDqGDIhNX zexr=3SiWj9+C8h@L;FJ6#6(Ps;+C~6CiCt0WKxMq+5ze&-09bXP*XN3rj2G&g(FO!xf z!KBywzy^?O z{3vh?h9{BOW;i^I#MdhIFLxz52!PW36xwH+6R-?Ro118Kw8VQoOnOL?^pw3HQ&Is# z`?^Vm-rm-3CHwSkhc*yg(hpC;1z!625N;;_EyFT-z@uW11Q_apNfTTW&5?63b4^$& zC*c=8UMjhXlEX-Bw1iw#traSd%ud)!wPvb1MUuDD1d-~SDF^G(*GUaj9DO=&Ki&`) z<#!R9gB>(DiA!1ykYmTme&{&%si%etU`Cm&y-ij1K}2K3OKrj};tCG`b2`}tG40$j z>UeH@JgJ2x?a63^?fr=nm-RG8#h3=1#1xFW<+H_PH;g%cfV>MwkLRI{JCTL9;Kajd zSD&~aBkVmf1FfYa>vm9Su)3q}|2xe(`RbVe5<&`pfv%I;NMY=$VwE2r+e z_2}Nt$z%}bc4kiudi|mj3b*-1jhKRIa#Kclh1c&UQA9uTOlBl~$MHPZ7J1e9XZee!i%PpRPMuXDJpyr+sF) zT3FM4_m8&=1h;}%LE}kg6w}M(0&G)d#$u*Z2Bypw4X`wkZ2Z@L`WPGC@&UdHA zw1^QGnCi4L>ay@pz}=IX{C!jl)GRvG2jZ``;MHN%PW(ZVrNHZAaMFUt)2O!`cO5g%DCUS*QVVzrNn zBUDEO{V0QeW3MN0&B(XJ4Jj5(5Djt7tdhzlm&6-<%pwr$eP-#_dU-(X*Lg9$7(_g` znkf}?gv%vvnPWTRpMYpW(Np+XjR(dfP93DkS)Nl;MSV4jXvDj{DS5dCzM#5vy+pMl#`ElN z8=1%{2}{^)F$JAyi95%TIjj@1QsrBc$}>jRd1EFR=r?&QS5&J{)kAL diff --git a/wasm/makefile b/wasm/makefile index 558c5987..75c49510 100644 --- a/wasm/makefile +++ b/wasm/makefile @@ -4,7 +4,7 @@ kiri-sla.wasm: kiri-sla.c emcc --no-entry -o kiri-sla.wasm kiri-sla.c -O3 -s ERROR_ON_UNDEFINED_SYMBOLS=0 kiri-geo.wasm: kiri-geo.cpp - emcc --no-entry -o kiri-geo.wasm clipper.cpp kiri-geo.cpp -Oz -s ERROR_ON_UNDEFINED_SYMBOLS=0 -s TOTAL_MEMORY=40mb -std=c++20 + emcc --no-entry -o kiri-geo.wasm clipper.cpp kiri-geo.cpp -Oz -s ERROR_ON_UNDEFINED_SYMBOLS=0 -s TOTAL_MEMORY=40mb kiri-ani.wasm: kiri-ani.c emcc --no-entry -o kiri-ani.wasm kiri-ani.c -O3 -s ERROR_ON_UNDEFINED_SYMBOLS=0