From 43562d6079d3c209266f7d4cf7635133cd9c0201 Mon Sep 17 00:00:00 2001 From: luboslenco Date: Fri, 8 Jan 2021 15:18:41 +0100 Subject: [PATCH] Auto enable associated plugin on file import --- Assets/plugins/import_gltf.js | 55 ------------------ Assets/plugins/import_gltf_glb.js | 55 ++++++++++++++++++ ...{import_gltf.wasm => import_gltf_glb.wasm} | Bin Assets/plugins/import_usd.js | 51 ---------------- Assets/plugins/import_usdc.js | 51 ++++++++++++++++ .../{import_usd.wasm => import_usdc.wasm} | Bin Sources/arm/Config.hx | 10 ++++ Sources/arm/Context.hx | 17 ++++++ Sources/arm/io/ImportAsset.hx | 7 ++- Sources/arm/io/ImportMesh.hx | 6 +- Sources/arm/io/ImportTexture.hx | 6 +- Sources/arm/ui/BoxPreferences.hx | 15 ++--- 12 files changed, 153 insertions(+), 120 deletions(-) delete mode 100644 Assets/plugins/import_gltf.js create mode 100644 Assets/plugins/import_gltf_glb.js rename Assets/plugins/{import_gltf.wasm => import_gltf_glb.wasm} (100%) delete mode 100644 Assets/plugins/import_usd.js create mode 100644 Assets/plugins/import_usdc.js rename Assets/plugins/{import_usd.wasm => import_usdc.wasm} (100%) diff --git a/Assets/plugins/import_gltf.js b/Assets/plugins/import_gltf.js deleted file mode 100644 index 8a020bc1..00000000 --- a/Assets/plugins/import_gltf.js +++ /dev/null @@ -1,55 +0,0 @@ - -let Module = {}; -Module["instantiateWasm"] = function(imports, successCallback) { - let wasmbin = Krom.loadBlob("data/plugins/import_gltf.wasm"); - let module = new WebAssembly.Module(wasmbin); - let inst = new WebAssembly.Instance(module, imports); - successCallback(inst); - return inst.exports; -}; - -// emscripten-generated glue -var a;a=a||("undefined"!=typeof Module?Module:{});var g,f={};for(g in a)a.hasOwnProperty(g)&&(f[g]=a[g]);var k,h="./this.program";k=function(n){return"function"==typeof readbuffer?new Uint8Array(readbuffer(n)):("object"==typeof(n=read(n,"binary"))||m("Assertion failed: undefined"),n)},"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print);var q,n=a.print||console.log.bind(console),p=a.printErr||console.warn.bind(console);for(g in f)f.hasOwnProperty(g)&&(a[g]=f[g]);f=null,a.thisProgram&&(h=a.thisProgram),a.wasmBinary&&(q=a.wasmBinary),"object"!=typeof WebAssembly&&p("no native wasm support detected");var r,x,y,z,A,u=new WebAssembly.Table({initial:3,maximum:3,element:"anyfunc"}),v=!1;function w(n){return 0>10,56320|1023&i)))):r+=String.fromCharCode(i)}return r}function D(e){return e?B(E,e,void 0):""}function ia(e){F=e,g.HEAP8=G=new Int8Array(e),g.HEAP16=new Int16Array(e),g.HEAP32=H=new Int32Array(e),g.HEAPU8=E=new Uint8Array(e),g.HEAPU16=new Uint16Array(e),g.HEAPU32=new Uint32Array(e),g.HEAPF32=new Float32Array(e),g.HEAPF64=new Float64Array(e)}var A,ja=g.INITIAL_MEMORY||16777216;(A=g.wasmMemory?g.wasmMemory:new WebAssembly.Memory({initial:ja/65536,maximum:32768}))&&(F=A.buffer),ja=F.byteLength,ia(F);var ka=[],la=[],ma=[],na=[];function oa(){var e=g.preRun.shift();ka.unshift(e)}var pa=Math.abs,qa=Math.ceil,ra=Math.floor,sa=Math.min,I=0,ta=null,J=null;function z(e){throw g.onAbort&&g.onAbort(e),t(e),fa=!0,new WebAssembly.RuntimeError("abort("+e+"). Build with -s ASSERTIONS=1 for more info.")}function ua(){var e=K;return String.prototype.startsWith?e.startsWith("data:application/octet-stream;base64,"):0===e.indexOf("data:application/octet-stream;base64,")}g.preloadedImages={},g.preloadedAudios={};var va,L,xa,K="import_usd.wasm";function wa(){try{if(x)return new Uint8Array(x);if(ba)return ba(K);throw"both async and sync fetching of the wasm failed"}catch(e){z(e)}}function M(e){for(;0>>0),0!=t&&(n=Math.max(n,256)),t=e.B,e.B=new Uint8Array(n),0n)e.B.length=n;else for(;e.B.length=e.node.F)return 0;if(8<(e=Math.min(e.node.F-a,r))&&o.subarray)n.set(o.subarray(a,a+e),t);else for(r=0;r>>0)%T.length}function R(e,n){var t;if(t=(t=W(e,"x"))?t:e.C.S?0:2)throw new P(t,e);for(t=T[Wa(e.id,n)];t;t=t.wa){var r=t.name;if(t.parent.id===e.id&&r===n)return t}return e.C.S(e,n)}function Na(e,n,t,r){return n=Wa((e=new Xa(e,n,t,r)).parent.id,e.name),e.wa=T[n],T[n]=e}var Ya={r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218};function Za(e){var n=["r","w","rw"][3&e];return 512&e&&(n+="w"),n}function W(e,n){return Ta||(-1===n.indexOf("r")||292&e.mode)&&(-1===n.indexOf("w")||146&e.mode)&&(-1===n.indexOf("x")||73&e.mode)?0:2}function $a(e,n){try{return R(e,n),20}catch(e){}return W(e,"wx")}function ab(){for(var e=0;e<=4096;e++)if(!S[e])return e;throw new P(33)}function bb(e){X||((X=function(){}).prototype={});var n,t=new X;for(n in e)t[n]=e[n];return e=t,t=ab(),e.O=t,S[t]=e}var lb,Ma={open:function(e){e.D=Ra[e.node.Y].D,e.D.open&&e.D.open(e)},N:function(){throw new P(70)}};function Ha(e,n){Ra[e]={D:n}}function cb(e,n){var t="/"===n,r=!n;if(t&&Qa)throw new P(10);if(!t&&!r){var a=V(n,{ka:!1});if(n=a.path,(a=a.node).X)throw new P(10);if(16384!=(61440&a.mode))throw new P(54)}n={type:e,Qa:{},na:n,va:[]},((e=e.L(n)).L=n).root=e,t?Qa=e:a&&(a.X=n,a.L&&a.L.va.push(n))}function eb(e,n,t){var r=V(e,{parent:!0}).node;if(!(e=Da(e))||"."===e||".."===e)throw new P(28);var a=$a(r,e);if(a)throw new P(a);if(!r.C.W)throw new P(63);return r.C.W(r,e,n,t)}function Y(e){eb(e,16895,0)}function fb(e,n,t){void 0===t&&(t=n,n=438),eb(e,8192|n,t)}function gb(e,n){if(!O(e))throw new P(44);var t=V(n,{parent:!0}).node;if(!t)throw new P(44);var r=$a(t,n=Da(n));if(r)throw new P(r);if(!t.C.Z)throw new P(63);t.C.Z(t,n,e)}function Ua(e){if(!(e=V(e).node))throw new P(44);if(!e.C.T)throw new P(28);return O(Va(e.parent),e.C.T(e))}function hb(n,e){if(""===n)throw new P(44);if("string"==typeof e){var r=Ya[e];if(void 0===r)throw Error("Unknown file open mode: "+e);e=r}var a=64&e?4095&(void 0===a?438:a)|32768:0;if("object"==typeof n)var o=n;else{n=N(n);try{o=V(n,{ja:!(131072&e)}).node}catch(e){}}if(r=!1,64&e)if(o){if(128&e)throw new P(20)}else o=eb(n,a,0),r=!0;if(!o)throw new P(44);if(8192==(61440&o.mode)&&(e&=-513),65536&e&&16384!=(61440&o.mode))throw new P(54);if(!r&&(a=o?40960==(61440&o.mode)?32:16384==(61440&o.mode)&&("r"!==Za(e)||512&e)?31:W(o,Za(e)):44))throw new P(a);if(512&e){var i="string"==typeof(a=o)?V(a,{ja:!0}).node:a;if(!i.C.K)throw new P(63);if(16384==(61440&i.mode))throw new P(31);if(32768!=(61440&i.mode))throw new P(28);if(a=W(i,"w"))throw new P(a);i.C.K(i,{size:0,timestamp:Date.now()})}e&=-131713,(o=bb({node:o,path:Va(o),flags:e,seekable:!0,position:0,D:o.D,Ea:[],error:!1})).D.open&&o.D.open(o),!g.logReadFiles||1&e||(n in(ib=ib||{})||(ib[n]=1,t("FS.trackingDelegate error on read file: "+n)));try{U.onOpenFile&&(o=0,1!=(2097155&e)&&(o|=1),0!=(2097155&e)&&(o|=2),U.onOpenFile(n,o))}catch(e){t("FS.trackingDelegate['onOpenFile']('"+n+"', flags) threw an exception: "+e.message)}}function jb(e,n,t){if(null===e.O)throw new P(8);if(!e.seekable||!e.D.N)throw new P(70);if(0!=t&&1!=t&&2!=t)throw new P(28);e.position=e.D.N(e,n,t),e.Ea=[]}function kb(){P||((P=function(e,n){this.node=n,this.za=function(e){this.V=e},this.za(e),this.message="FS error"}).prototype=Error(),P.prototype.constructor=P,[44].forEach(function(e){Oa[e]=new P(e),Oa[e].stack=""}))}function mb(e,n){var t=0;return e&&(t|=365),n&&(t|=146),t}function Z(e,u,o){e=N("/dev/"+e);var n=mb(!!u,!!o);nb=nb||64;var t=nb++<<8|0;Ha(t,{open:function(e){e.seekable=!1},close:function(){o&&o.buffer&&o.buffer.length&&o(10)},read:function(e,n,t,r){for(var a=0,o=0;or-e.getDate())){e.setDate(e.getDate()+n);break}n-=r-e.getDate()+1,e.setDate(1),t<11?e.setMonth(t+1):(e.setMonth(0),e.setFullYear(e.getFullYear()+1))}return e}function vb(e,n,t,r){function a(e,n,t){for(e="number"==typeof e?e.toString():e||"";e.length>2];for(var f in r={Ca:H[r>>2],Ba:H[r+4>>2],$:H[r+8>>2],U:H[r+12>>2],R:H[r+16>>2],H:H[r+20>>2],aa:H[r+24>>2],ba:H[r+28>>2],Sa:H[r+32>>2],Aa:H[r+36>>2],Da:c?D(c):""},t=D(t),c={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})t=t.replace(new RegExp(f,"g"),c[f]);var l="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),g="January February March April May June July August September October November December".split(" "),c={"%a":function(e){return l[e.aa].substring(0,3)},"%A":function(e){return l[e.aa]},"%b":function(e){return g[e.R].substring(0,3)},"%B":function(e){return g[e.R]},"%C":function(e){return o((e.H+1900)/100|0,2)},"%d":function(e){return o(e.U,2)},"%e":function(e){return a(e.U,2," ")},"%g":function(e){return s(e).toString().substring(2)},"%G":s,"%H":function(e){return o(e.$,2)},"%I":function(e){return 0==(e=e.$)?e=12:12n?0:(G.set(f,e),f.length-1)}function Xa(e,n,t,r){e=e||this,this.parent=e,this.L=e.L,this.X=null,this.id=Sa++,this.name=n,this.mode=t,this.C={},this.D={},this.Y=r}function Ja(e,n){for(var t=0,r=0;r>6}else{if(u<=65535){if(o<=r+2)break;t[r++]=224|u>>12}else{if(o<=r+3)break;t[r++]=240|u>>18,t[r++]=128|u>>12&63}t[r++]=128|u>>6&63}t[r++]=128|63&u}}t[r]=0,e=r-a}else e=0;return n&&(t.length=e),t}Object.defineProperties(Xa.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}}}),kb(),T=Array(4096),cb(Q,"/"),Y("/tmp"),Y("/home"),Y("/home/web_user"),function(){Y("/dev"),Ha(259,{read:function(){return 0},write:function(e,n,t,r){return r}}),fb("/dev/null",259),Ga(1280,Ka),Ga(1536,La),fb("/dev/tty",1280),fb("/dev/tty1",1536);var e=Ea();Z("random",e),Z("urandom",e),Y("/dev/shm"),Y("/dev/shm/tmp")}(),Y("/proc"),Y("/proc/self"),Y("/proc/self/fd"),cb({L:function(){var e=Na("/proc/self","fd",16895,73);return e.C={S:function(e,n){var t=S[+n];if(!t)throw new P(8);return(e={parent:null,L:{na:"fake"},C:{T:function(){return t.path}}}).parent=e}},e}},"/proc/self/fd"),la.push({ua:function(){wb()}});var yb={b:function(e,n,t,r){z("Assertion failed: "+D(e)+", at: "+[n?D(n):"unknown filename",t,r?D(r):"unknown function"])},c:function(){z()},m:function(e,n,t){E.copyWithin(e,n,n+t)},d:function(e){e>>>=0;var n=E.length;if(2147483648>>16),ia(A.buffer);var a=1;break e}catch(e){}a=void 0}if(a)return!0}return!1},h:function(r,a){var o=0;return za().forEach(function(e,n){var t=a+o;for(n=H[r+4*n>>2]=t,t=0;t>0]=e.charCodeAt(t);G[n>>0]=0,o+=e.length+1}),0},i:function(e,n){var t=za();H[e>>2]=t.length;var r=0;return t.forEach(function(e){r+=e.length+1}),H[n>>2]=r,0},k:function(e){try{var n=pb(e);if(null===n.O)throw new P(8);n.da&&(n.da=null);try{n.D.close&&n.D.close(n)}catch(e){throw e}finally{S[n.O]=null}return n.O=null,0}catch(e){return void 0!==ob&&e instanceof P||z(e),e.V}},j:function(e,n,t,r){try{e:{for(var a=pb(e),o=e=0;o>2],u=a,s=H[n+8*o>>2],c=i,f=void 0,l=G;if(c<0||f<0)throw new P(28);if(null===u.O)throw new P(8);if(1==(2097155&u.flags))throw new P(8);if(16384==(61440&u.node.mode))throw new P(31);if(!u.D.read)throw new P(28);var g=void 0!==f;if(g){if(!u.seekable)throw new P(70)}else f=u.position;var d=u.D.read(u,l,s,c,f);g||(u.position+=d);var h=d;if(h<0){var w=-1;break e}if(e+=h,h>2]=w,0}catch(e){return void 0!==ob&&e instanceof P||z(e),e.V}},l:function(e,n,t,r,a){try{var o=pb(e);return(e=4294967296*t+(n>>>0))<=-9007199254740992||9007199254740992<=e?-61:(jb(o,e,r),xa=[o.position>>>0,(L=o.position,1<=+pa(L)?0>>0:~~+qa((L-(~~L>>>0))/4294967296)>>>0:0)],H[a>>2]=xa[0],H[a+4>>2]=xa[1],o.da&&0===e&&0===r&&(o.da=null),0)}catch(e){return void 0!==ob&&e instanceof P||z(e),e.V}},e:function(e,n,r,a){try{e:{for(var o=pb(e),i=e=0;i>2],c=H[n+(8*i+4)>>2],f=void 0,l=G;if(c<0||f<0)throw new P(28);if(null===u.O)throw new P(8);if(0==(2097155&u.flags))throw new P(8);if(16384==(61440&u.node.mode))throw new P(31);if(!u.D.write)throw new P(28);u.seekable&&1024&u.flags&&jb(u,0,2);var g=void 0!==f;if(g){if(!u.seekable)throw new P(70)}else f=u.position;var d=u.D.write(u,l,s,c,f,void 0);g||(u.position+=d);try{u.path&&U.onWriteToFile&&U.onWriteToFile(u.path)}catch(e){t("FS.trackingDelegate['onWriteToFile']('"+u.path+"') threw an exception: "+e.message)}var h=d;if(h<0){var w=-1;break e}e+=h}w=e}return H[a>>2]=w,0}catch(e){return void 0!==ob&&e instanceof P||z(e),e.V}},a:A,g:function(e,n,t,r){return vb(e,n,t,r)},f:function(e){switch(e){case 30:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return H[xb()>>2]=28,-1}};!function(){function n(e){g.asm=e.exports,ea=g.asm.n,I--,g.monitorRunDependencies&&g.monitorRunDependencies(I),0==I&&(null!==ta&&(clearInterval(ta),ta=null),J&&(e=J,J=null,e()))}function r(e){n(e.instance)}function a(e){return Promise.resolve().then(wa).then(function(e){return WebAssembly.instantiate(e,o)}).then(e,function(e){t("failed to asynchronously prepare wasm: "+e),z(e)})}var o={a:yb};if(I++,g.monitorRunDependencies&&g.monitorRunDependencies(I),g.instantiateWasm)try{return g.instantiateWasm(o,n)}catch(e){return t("Module.instantiateWasm callback failed with error: "+e)}x||"function"!=typeof WebAssembly.instantiateStreaming||ua()||"function"!=typeof fetch?a(r):fetch(K,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,o).then(r,function(e){return t("wasm streaming compile failed: "+e),t("falling back to ArrayBuffer instantiation"),a(r)})})}();var wb=g.___wasm_call_ctors=function(){return(wb=g.___wasm_call_ctors=g.asm.o).apply(null,arguments)};g.__Z4initi=function(){return(g.__Z4initi=g.asm.p).apply(null,arguments)};var Pa=g._malloc=function(){return(Pa=g._malloc=g.asm.q).apply(null,arguments)};g.__Z5parsev=function(){return(g.__Z5parsev=g.asm.r).apply(null,arguments)},g.__Z7destroyv=function(){return(g.__Z7destroyv=g.asm.s).apply(null,arguments)},g.__Z15get_index_countv=function(){return(g.__Z15get_index_countv=g.asm.t).apply(null,arguments)},g.__Z16get_vertex_countv=function(){return(g.__Z16get_vertex_countv=g.asm.u).apply(null,arguments)},g.__Z13get_scale_posv=function(){return(g.__Z13get_scale_posv=g.asm.v).apply(null,arguments)},g.__Z11get_indicesv=function(){return(g.__Z11get_indicesv=g.asm.w).apply(null,arguments)},g.__Z13get_positionsv=function(){return(g.__Z13get_positionsv=g.asm.x).apply(null,arguments)},g.__Z11get_normalsv=function(){return(g.__Z11get_normalsv=g.asm.y).apply(null,arguments)},g.__Z7get_uvsv=function(){return(g.__Z7get_uvsv=g.asm.z).apply(null,arguments)};var zb,xb=g.___errno_location=function(){return(xb=g.___errno_location=g.asm.A).apply(null,arguments)};function Bb(){function e(){if(!zb&&(zb=!0,g.calledRun=!0,!fa)){if(g.noFSInit||lb||(lb=!0,kb(),g.stdin,g.stdout,g.stderr,g.stdin?Z("stdin",g.stdin):gb("/dev/tty","/dev/stdin"),g.stdout?Z("stdout",null,g.stdout):gb("/dev/tty","/dev/stdout"),g.stderr?Z("stderr",null,g.stderr):gb("/dev/tty1","/dev/stderr"),hb("/dev/stdin","r"),hb("/dev/stdout","w"),hb("/dev/stderr","w")),M(la),Ta=!1,M(ma),g.onRuntimeInitialized&&g.onRuntimeInitialized(),g.postRun)for("function"==typeof g.postRun&&(g.postRun=[g.postRun]);g.postRun.length;){var e=g.postRun.shift();na.unshift(e)}M(na)}}if(!(0>10,56320|1023&i)))):r+=String.fromCharCode(i)}return r}function D(e){return e?B(E,e,void 0):""}function ia(e){F=e,g.HEAP8=G=new Int8Array(e),g.HEAP16=new Int16Array(e),g.HEAP32=H=new Int32Array(e),g.HEAPU8=E=new Uint8Array(e),g.HEAPU16=new Uint16Array(e),g.HEAPU32=new Uint32Array(e),g.HEAPF32=new Float32Array(e),g.HEAPF64=new Float64Array(e)}var A,ja=g.INITIAL_MEMORY||16777216;(A=g.wasmMemory?g.wasmMemory:new WebAssembly.Memory({initial:ja/65536,maximum:32768}))&&(F=A.buffer),ja=F.byteLength,ia(F);var ka=[],la=[],ma=[],na=[];function oa(){var e=g.preRun.shift();ka.unshift(e)}var pa=Math.abs,qa=Math.ceil,ra=Math.floor,sa=Math.min,I=0,ta=null,J=null;function z(e){throw g.onAbort&&g.onAbort(e),t(e),fa=!0,new WebAssembly.RuntimeError("abort("+e+"). Build with -s ASSERTIONS=1 for more info.")}function ua(){var e=K;return String.prototype.startsWith?e.startsWith("data:application/octet-stream;base64,"):0===e.indexOf("data:application/octet-stream;base64,")}g.preloadedImages={},g.preloadedAudios={};var va,L,xa,K="import_usdc.wasm";function wa(){try{if(x)return new Uint8Array(x);if(ba)return ba(K);throw"both async and sync fetching of the wasm failed"}catch(e){z(e)}}function M(e){for(;0>>0),0!=t&&(n=Math.max(n,256)),t=e.B,e.B=new Uint8Array(n),0n)e.B.length=n;else for(;e.B.length=e.node.F)return 0;if(8<(e=Math.min(e.node.F-a,r))&&o.subarray)n.set(o.subarray(a,a+e),t);else for(r=0;r>>0)%T.length}function R(e,n){var t;if(t=(t=W(e,"x"))?t:e.C.S?0:2)throw new P(t,e);for(t=T[Wa(e.id,n)];t;t=t.wa){var r=t.name;if(t.parent.id===e.id&&r===n)return t}return e.C.S(e,n)}function Na(e,n,t,r){return n=Wa((e=new Xa(e,n,t,r)).parent.id,e.name),e.wa=T[n],T[n]=e}var Ya={r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218};function Za(e){var n=["r","w","rw"][3&e];return 512&e&&(n+="w"),n}function W(e,n){return Ta||(-1===n.indexOf("r")||292&e.mode)&&(-1===n.indexOf("w")||146&e.mode)&&(-1===n.indexOf("x")||73&e.mode)?0:2}function $a(e,n){try{return R(e,n),20}catch(e){}return W(e,"wx")}function ab(){for(var e=0;e<=4096;e++)if(!S[e])return e;throw new P(33)}function bb(e){X||((X=function(){}).prototype={});var n,t=new X;for(n in e)t[n]=e[n];return e=t,t=ab(),e.O=t,S[t]=e}var lb,Ma={open:function(e){e.D=Ra[e.node.Y].D,e.D.open&&e.D.open(e)},N:function(){throw new P(70)}};function Ha(e,n){Ra[e]={D:n}}function cb(e,n){var t="/"===n,r=!n;if(t&&Qa)throw new P(10);if(!t&&!r){var a=V(n,{ka:!1});if(n=a.path,(a=a.node).X)throw new P(10);if(16384!=(61440&a.mode))throw new P(54)}n={type:e,Qa:{},na:n,va:[]},((e=e.L(n)).L=n).root=e,t?Qa=e:a&&(a.X=n,a.L&&a.L.va.push(n))}function eb(e,n,t){var r=V(e,{parent:!0}).node;if(!(e=Da(e))||"."===e||".."===e)throw new P(28);var a=$a(r,e);if(a)throw new P(a);if(!r.C.W)throw new P(63);return r.C.W(r,e,n,t)}function Y(e){eb(e,16895,0)}function fb(e,n,t){void 0===t&&(t=n,n=438),eb(e,8192|n,t)}function gb(e,n){if(!O(e))throw new P(44);var t=V(n,{parent:!0}).node;if(!t)throw new P(44);var r=$a(t,n=Da(n));if(r)throw new P(r);if(!t.C.Z)throw new P(63);t.C.Z(t,n,e)}function Ua(e){if(!(e=V(e).node))throw new P(44);if(!e.C.T)throw new P(28);return O(Va(e.parent),e.C.T(e))}function hb(n,e){if(""===n)throw new P(44);if("string"==typeof e){var r=Ya[e];if(void 0===r)throw Error("Unknown file open mode: "+e);e=r}var a=64&e?4095&(void 0===a?438:a)|32768:0;if("object"==typeof n)var o=n;else{n=N(n);try{o=V(n,{ja:!(131072&e)}).node}catch(e){}}if(r=!1,64&e)if(o){if(128&e)throw new P(20)}else o=eb(n,a,0),r=!0;if(!o)throw new P(44);if(8192==(61440&o.mode)&&(e&=-513),65536&e&&16384!=(61440&o.mode))throw new P(54);if(!r&&(a=o?40960==(61440&o.mode)?32:16384==(61440&o.mode)&&("r"!==Za(e)||512&e)?31:W(o,Za(e)):44))throw new P(a);if(512&e){var i="string"==typeof(a=o)?V(a,{ja:!0}).node:a;if(!i.C.K)throw new P(63);if(16384==(61440&i.mode))throw new P(31);if(32768!=(61440&i.mode))throw new P(28);if(a=W(i,"w"))throw new P(a);i.C.K(i,{size:0,timestamp:Date.now()})}e&=-131713,(o=bb({node:o,path:Va(o),flags:e,seekable:!0,position:0,D:o.D,Ea:[],error:!1})).D.open&&o.D.open(o),!g.logReadFiles||1&e||(n in(ib=ib||{})||(ib[n]=1,t("FS.trackingDelegate error on read file: "+n)));try{U.onOpenFile&&(o=0,1!=(2097155&e)&&(o|=1),0!=(2097155&e)&&(o|=2),U.onOpenFile(n,o))}catch(e){t("FS.trackingDelegate['onOpenFile']('"+n+"', flags) threw an exception: "+e.message)}}function jb(e,n,t){if(null===e.O)throw new P(8);if(!e.seekable||!e.D.N)throw new P(70);if(0!=t&&1!=t&&2!=t)throw new P(28);e.position=e.D.N(e,n,t),e.Ea=[]}function kb(){P||((P=function(e,n){this.node=n,this.za=function(e){this.V=e},this.za(e),this.message="FS error"}).prototype=Error(),P.prototype.constructor=P,[44].forEach(function(e){Oa[e]=new P(e),Oa[e].stack=""}))}function mb(e,n){var t=0;return e&&(t|=365),n&&(t|=146),t}function Z(e,u,o){e=N("/dev/"+e);var n=mb(!!u,!!o);nb=nb||64;var t=nb++<<8|0;Ha(t,{open:function(e){e.seekable=!1},close:function(){o&&o.buffer&&o.buffer.length&&o(10)},read:function(e,n,t,r){for(var a=0,o=0;or-e.getDate())){e.setDate(e.getDate()+n);break}n-=r-e.getDate()+1,e.setDate(1),t<11?e.setMonth(t+1):(e.setMonth(0),e.setFullYear(e.getFullYear()+1))}return e}function vb(e,n,t,r){function a(e,n,t){for(e="number"==typeof e?e.toString():e||"";e.length>2];for(var f in r={Ca:H[r>>2],Ba:H[r+4>>2],$:H[r+8>>2],U:H[r+12>>2],R:H[r+16>>2],H:H[r+20>>2],aa:H[r+24>>2],ba:H[r+28>>2],Sa:H[r+32>>2],Aa:H[r+36>>2],Da:c?D(c):""},t=D(t),c={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})t=t.replace(new RegExp(f,"g"),c[f]);var l="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),g="January February March April May June July August September October November December".split(" "),c={"%a":function(e){return l[e.aa].substring(0,3)},"%A":function(e){return l[e.aa]},"%b":function(e){return g[e.R].substring(0,3)},"%B":function(e){return g[e.R]},"%C":function(e){return o((e.H+1900)/100|0,2)},"%d":function(e){return o(e.U,2)},"%e":function(e){return a(e.U,2," ")},"%g":function(e){return s(e).toString().substring(2)},"%G":s,"%H":function(e){return o(e.$,2)},"%I":function(e){return 0==(e=e.$)?e=12:12n?0:(G.set(f,e),f.length-1)}function Xa(e,n,t,r){e=e||this,this.parent=e,this.L=e.L,this.X=null,this.id=Sa++,this.name=n,this.mode=t,this.C={},this.D={},this.Y=r}function Ja(e,n){for(var t=0,r=0;r>6}else{if(u<=65535){if(o<=r+2)break;t[r++]=224|u>>12}else{if(o<=r+3)break;t[r++]=240|u>>18,t[r++]=128|u>>12&63}t[r++]=128|u>>6&63}t[r++]=128|63&u}}t[r]=0,e=r-a}else e=0;return n&&(t.length=e),t}Object.defineProperties(Xa.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}}}),kb(),T=Array(4096),cb(Q,"/"),Y("/tmp"),Y("/home"),Y("/home/web_user"),function(){Y("/dev"),Ha(259,{read:function(){return 0},write:function(e,n,t,r){return r}}),fb("/dev/null",259),Ga(1280,Ka),Ga(1536,La),fb("/dev/tty",1280),fb("/dev/tty1",1536);var e=Ea();Z("random",e),Z("urandom",e),Y("/dev/shm"),Y("/dev/shm/tmp")}(),Y("/proc"),Y("/proc/self"),Y("/proc/self/fd"),cb({L:function(){var e=Na("/proc/self","fd",16895,73);return e.C={S:function(e,n){var t=S[+n];if(!t)throw new P(8);return(e={parent:null,L:{na:"fake"},C:{T:function(){return t.path}}}).parent=e}},e}},"/proc/self/fd"),la.push({ua:function(){wb()}});var yb={b:function(e,n,t,r){z("Assertion failed: "+D(e)+", at: "+[n?D(n):"unknown filename",t,r?D(r):"unknown function"])},c:function(){z()},m:function(e,n,t){E.copyWithin(e,n,n+t)},d:function(e){e>>>=0;var n=E.length;if(2147483648>>16),ia(A.buffer);var a=1;break e}catch(e){}a=void 0}if(a)return!0}return!1},h:function(r,a){var o=0;return za().forEach(function(e,n){var t=a+o;for(n=H[r+4*n>>2]=t,t=0;t>0]=e.charCodeAt(t);G[n>>0]=0,o+=e.length+1}),0},i:function(e,n){var t=za();H[e>>2]=t.length;var r=0;return t.forEach(function(e){r+=e.length+1}),H[n>>2]=r,0},k:function(e){try{var n=pb(e);if(null===n.O)throw new P(8);n.da&&(n.da=null);try{n.D.close&&n.D.close(n)}catch(e){throw e}finally{S[n.O]=null}return n.O=null,0}catch(e){return void 0!==ob&&e instanceof P||z(e),e.V}},j:function(e,n,t,r){try{e:{for(var a=pb(e),o=e=0;o>2],u=a,s=H[n+8*o>>2],c=i,f=void 0,l=G;if(c<0||f<0)throw new P(28);if(null===u.O)throw new P(8);if(1==(2097155&u.flags))throw new P(8);if(16384==(61440&u.node.mode))throw new P(31);if(!u.D.read)throw new P(28);var g=void 0!==f;if(g){if(!u.seekable)throw new P(70)}else f=u.position;var d=u.D.read(u,l,s,c,f);g||(u.position+=d);var h=d;if(h<0){var w=-1;break e}if(e+=h,h>2]=w,0}catch(e){return void 0!==ob&&e instanceof P||z(e),e.V}},l:function(e,n,t,r,a){try{var o=pb(e);return(e=4294967296*t+(n>>>0))<=-9007199254740992||9007199254740992<=e?-61:(jb(o,e,r),xa=[o.position>>>0,(L=o.position,1<=+pa(L)?0>>0:~~+qa((L-(~~L>>>0))/4294967296)>>>0:0)],H[a>>2]=xa[0],H[a+4>>2]=xa[1],o.da&&0===e&&0===r&&(o.da=null),0)}catch(e){return void 0!==ob&&e instanceof P||z(e),e.V}},e:function(e,n,r,a){try{e:{for(var o=pb(e),i=e=0;i>2],c=H[n+(8*i+4)>>2],f=void 0,l=G;if(c<0||f<0)throw new P(28);if(null===u.O)throw new P(8);if(0==(2097155&u.flags))throw new P(8);if(16384==(61440&u.node.mode))throw new P(31);if(!u.D.write)throw new P(28);u.seekable&&1024&u.flags&&jb(u,0,2);var g=void 0!==f;if(g){if(!u.seekable)throw new P(70)}else f=u.position;var d=u.D.write(u,l,s,c,f,void 0);g||(u.position+=d);try{u.path&&U.onWriteToFile&&U.onWriteToFile(u.path)}catch(e){t("FS.trackingDelegate['onWriteToFile']('"+u.path+"') threw an exception: "+e.message)}var h=d;if(h<0){var w=-1;break e}e+=h}w=e}return H[a>>2]=w,0}catch(e){return void 0!==ob&&e instanceof P||z(e),e.V}},a:A,g:function(e,n,t,r){return vb(e,n,t,r)},f:function(e){switch(e){case 30:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return H[xb()>>2]=28,-1}};!function(){function n(e){g.asm=e.exports,ea=g.asm.n,I--,g.monitorRunDependencies&&g.monitorRunDependencies(I),0==I&&(null!==ta&&(clearInterval(ta),ta=null),J&&(e=J,J=null,e()))}function r(e){n(e.instance)}function a(e){return Promise.resolve().then(wa).then(function(e){return WebAssembly.instantiate(e,o)}).then(e,function(e){t("failed to asynchronously prepare wasm: "+e),z(e)})}var o={a:yb};if(I++,g.monitorRunDependencies&&g.monitorRunDependencies(I),g.instantiateWasm)try{return g.instantiateWasm(o,n)}catch(e){return t("Module.instantiateWasm callback failed with error: "+e)}x||"function"!=typeof WebAssembly.instantiateStreaming||ua()||"function"!=typeof fetch?a(r):fetch(K,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,o).then(r,function(e){return t("wasm streaming compile failed: "+e),t("falling back to ArrayBuffer instantiation"),a(r)})})}();var wb=g.___wasm_call_ctors=function(){return(wb=g.___wasm_call_ctors=g.asm.o).apply(null,arguments)};g.__Z4initi=function(){return(g.__Z4initi=g.asm.p).apply(null,arguments)};var Pa=g._malloc=function(){return(Pa=g._malloc=g.asm.q).apply(null,arguments)};g.__Z5parsev=function(){return(g.__Z5parsev=g.asm.r).apply(null,arguments)},g.__Z7destroyv=function(){return(g.__Z7destroyv=g.asm.s).apply(null,arguments)},g.__Z15get_index_countv=function(){return(g.__Z15get_index_countv=g.asm.t).apply(null,arguments)},g.__Z16get_vertex_countv=function(){return(g.__Z16get_vertex_countv=g.asm.u).apply(null,arguments)},g.__Z13get_scale_posv=function(){return(g.__Z13get_scale_posv=g.asm.v).apply(null,arguments)},g.__Z11get_indicesv=function(){return(g.__Z11get_indicesv=g.asm.w).apply(null,arguments)},g.__Z13get_positionsv=function(){return(g.__Z13get_positionsv=g.asm.x).apply(null,arguments)},g.__Z11get_normalsv=function(){return(g.__Z11get_normalsv=g.asm.y).apply(null,arguments)},g.__Z7get_uvsv=function(){return(g.__Z7get_uvsv=g.asm.z).apply(null,arguments)};var zb,xb=g.___errno_location=function(){return(xb=g.___errno_location=g.asm.A).apply(null,arguments)};function Bb(){function e(){if(!zb&&(zb=!0,g.calledRun=!0,!fa)){if(g.noFSInit||lb||(lb=!0,kb(),g.stdin,g.stdout,g.stderr,g.stdin?Z("stdin",g.stdin):gb("/dev/tty","/dev/stdin"),g.stdout?Z("stdout",null,g.stdout):gb("/dev/tty","/dev/stdout"),g.stderr?Z("stderr",null,g.stderr):gb("/dev/tty1","/dev/stderr"),hb("/dev/stdin","r"),hb("/dev/stdout","w"),hb("/dev/stderr","w")),M(la),Ta=!1,M(ma),g.onRuntimeInitialized&&g.onRuntimeInitialized(),g.postRun)for("function"==typeof g.postRun&&(g.postRun=[g.postRun]);g.postRun.length;){var e=g.postRun.shift();na.unshift(e)}M(na)}}if(!(0= 0) { + Config.enablePlugin(f); + Log.info(f + " " + tr("plugin enabled")); + return true; + } + } + return false; + } } diff --git a/Sources/arm/io/ImportAsset.hx b/Sources/arm/io/ImportAsset.hx index 864288bf..19c72f8a 100644 --- a/Sources/arm/io/ImportAsset.hx +++ b/Sources/arm/io/ImportAsset.hx @@ -43,7 +43,12 @@ class ImportAsset { ImportFolder.run(path); } else { - Log.error(Strings.error1()); + if (Context.enableImportPlugin(path)) { + run(path, dropX, dropY, showBox); + } + else { + Log.error(Strings.error1()); + } } } } diff --git a/Sources/arm/io/ImportMesh.hx b/Sources/arm/io/ImportMesh.hx index 736523a0..8d941dcd 100644 --- a/Sources/arm/io/ImportMesh.hx +++ b/Sources/arm/io/ImportMesh.hx @@ -23,8 +23,10 @@ class ImportMesh { public static function run(path: String, _clearLayers = true, _replaceExisting = true) { if (!Path.isMesh(path)) { - Log.error(Strings.error1()); - return; + if (!Context.enableImportPlugin(path)) { + Log.error(Strings.error1()); + return; + } } clearLayers = _clearLayers; diff --git a/Sources/arm/io/ImportTexture.hx b/Sources/arm/io/ImportTexture.hx index 685735fb..21fd9cc5 100644 --- a/Sources/arm/io/ImportTexture.hx +++ b/Sources/arm/io/ImportTexture.hx @@ -10,8 +10,10 @@ class ImportTexture { public static function run(path: String) { if (!Path.isTexture(path)) { - Log.error(Strings.error1()); - return; + if (!Context.enableImportPlugin(path)) { + Log.error(Strings.error1()); + return; + } } for (a in Project.assets) { diff --git a/Sources/arm/ui/BoxPreferences.hx b/Sources/arm/ui/BoxPreferences.hx index 3bc54bfe..456e433e 100644 --- a/Sources/arm/ui/BoxPreferences.hx +++ b/Sources/arm/ui/BoxPreferences.hx @@ -486,7 +486,7 @@ plugin.drawUI = function(ui) { ui.endSticky(); if (filesPlugin == null) { - filesPlugin = File.readDirectory(Path.data() + Path.sep + "plugins"); + fetchPlugins(); } if (Config.raw.plugins == null) Config.raw.plugins = []; @@ -500,14 +500,7 @@ plugin.drawUI = function(ui) { var tag = isJs ? f.split(".")[0] : f; ui.check(h, tag); if (h.changed && h.selected != enabled) { - if (h.selected) { - Config.raw.plugins.push(f); - Plugin.start(f); - } - else { - Config.raw.plugins.remove(f); - Plugin.stop(f); - } + h.selected ? Config.enablePlugin(f) : Config.disablePlugin(f); App.redrawUI(); } if (ui.isHovered && ui.inputReleasedR) { @@ -559,6 +552,10 @@ plugin.drawUI = function(ui) { } } + public static function fetchPlugins() { + filesPlugin = File.readDirectory(Path.data() + Path.sep + "plugins"); + } + public static function getThemeIndex(): Int { return themes.indexOf(Config.raw.theme.substr(0, Config.raw.theme.length - 5)); // Strip .json }