mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-14 17:49:52 +00:00
Support ECT1S and try mipmaps
This commit is contained in:
@@ -9,6 +9,9 @@ using namespace basisu;
|
|||||||
|
|
||||||
struct BasisOptions {
|
struct BasisOptions {
|
||||||
uint8_t quality;
|
uint8_t quality;
|
||||||
|
uint8_t compression;
|
||||||
|
bool uastc;
|
||||||
|
bool mipmap;
|
||||||
};
|
};
|
||||||
|
|
||||||
thread_local const val Uint8Array = val::global("Uint8Array");
|
thread_local const val Uint8Array = val::global("Uint8Array");
|
||||||
@@ -24,11 +27,13 @@ val encode(std::string image_in, int image_width, int image_height, BasisOptions
|
|||||||
params.m_read_source_images = false;
|
params.m_read_source_images = false;
|
||||||
// Writing is unnecessary, too
|
// Writing is unnecessary, too
|
||||||
params.m_read_source_images = false;
|
params.m_read_source_images = false;
|
||||||
// Generate .basis file
|
|
||||||
params.m_uastc = true;
|
|
||||||
// No printf pls
|
// No printf pls
|
||||||
params.m_status_output = false;
|
params.m_status_output = false;
|
||||||
params.m_compression_level = opts.quality;
|
// True => UASTC, False => ETC1S
|
||||||
|
params.m_uastc = opts.uastc;
|
||||||
|
params.m_mip_gen = opts.mipmap;
|
||||||
|
params.m_quality_level = opts.quality;
|
||||||
|
params.m_compression_level = opts.compression;
|
||||||
params.m_source_images.push_back(img);
|
params.m_source_images.push_back(img);
|
||||||
|
|
||||||
if (!compressor.init(params)) {
|
if (!compressor.init(params)) {
|
||||||
@@ -46,7 +51,11 @@ val encode(std::string image_in, int image_width, int image_height, BasisOptions
|
|||||||
}
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_BINDINGS(my_module) {
|
EMSCRIPTEN_BINDINGS(my_module) {
|
||||||
value_object<BasisOptions>("BasisOptions").field("quality", &BasisOptions::quality);
|
value_object<BasisOptions>("BasisOptions")
|
||||||
|
.field("quality", &BasisOptions::quality)
|
||||||
|
.field("compression", &BasisOptions::compression)
|
||||||
|
.field("uastc", &BasisOptions::uastc)
|
||||||
|
.field("mipmap", &BasisOptions::mipmap);
|
||||||
|
|
||||||
function("encode", &encode);
|
function("encode", &encode);
|
||||||
}
|
}
|
||||||
|
|||||||
3
codecs/basis/enc/basis_enc.d.ts
vendored
3
codecs/basis/enc/basis_enc.d.ts
vendored
@@ -1,5 +1,8 @@
|
|||||||
export interface EncodeOptions {
|
export interface EncodeOptions {
|
||||||
quality: number;
|
quality: number;
|
||||||
|
compression: number;
|
||||||
|
uastc: boolean;
|
||||||
|
mipmap: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface BasisModule extends EmscriptenWasm.Module {
|
export interface BasisModule extends EmscriptenWasm.Module {
|
||||||
|
|||||||
93
codecs/basis/enc/basis_enc.js
generated
93
codecs/basis/enc/basis_enc.js
generated
@@ -8,54 +8,51 @@ function(Module) {
|
|||||||
|
|
||||||
|
|
||||||
var f;f||(f=typeof Module !== 'undefined' ? Module : {});var aa,ba;f.ready=new Promise(function(a,b){aa=a;ba=b});var r={},t;for(t in f)f.hasOwnProperty(t)&&(r[t]=f[t]);var u="",ca;u=self.location.href;_scriptDir&&(u=_scriptDir);0!==u.indexOf("blob:")?u=u.substr(0,u.lastIndexOf("/")+1):u="";ca=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)};var da=f.print||console.log.bind(console),v=f.printErr||console.warn.bind(console);
|
var f;f||(f=typeof Module !== 'undefined' ? Module : {});var aa,ba;f.ready=new Promise(function(a,b){aa=a;ba=b});var r={},t;for(t in f)f.hasOwnProperty(t)&&(r[t]=f[t]);var u="",ca;u=self.location.href;_scriptDir&&(u=_scriptDir);0!==u.indexOf("blob:")?u=u.substr(0,u.lastIndexOf("/")+1):u="";ca=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)};var da=f.print||console.log.bind(console),v=f.printErr||console.warn.bind(console);
|
||||||
for(t in r)r.hasOwnProperty(t)&&(f[t]=r[t]);r=null;var ea=0,w;f.wasmBinary&&(w=f.wasmBinary);var noExitRuntime;f.noExitRuntime&&(noExitRuntime=f.noExitRuntime);"object"!==typeof WebAssembly&&x("no native wasm support detected");var B,fa=!1,ha=new TextDecoder("utf8");function ia(a,b){if(!a)return"";b=a+b;for(var c=a;!(c>=b)&&C[c];)++c;return ha.decode(C.subarray(a,c))}
|
for(t in r)r.hasOwnProperty(t)&&(f[t]=r[t]);r=null;var ea=0,w;f.wasmBinary&&(w=f.wasmBinary);var noExitRuntime=f.noExitRuntime||!0;"object"!==typeof WebAssembly&&A("no native wasm support detected");var ha,ia=!1,ja=new TextDecoder("utf8");function B(a,b){if(!a)return"";b=a+b;for(var c=a;!(c>=b)&&C[c];)++c;return ja.decode(C.subarray(a,c))}
|
||||||
function ja(a,b,c){var d=C;if(0<c){c=b+c-1;for(var e=0;e<a.length;++e){var g=a.charCodeAt(e);if(55296<=g&&57343>=g){var k=a.charCodeAt(++e);g=65536+((g&1023)<<10)|k&1023}if(127>=g){if(b>=c)break;d[b++]=g}else{if(2047>=g){if(b+1>=c)break;d[b++]=192|g>>6}else{if(65535>=g){if(b+2>=c)break;d[b++]=224|g>>12}else{if(b+3>=c)break;d[b++]=240|g>>18;d[b++]=128|g>>12&63}d[b++]=128|g>>6&63}d[b++]=128|g&63}}d[b]=0}}var la=new TextDecoder("utf-16le");
|
function ka(a,b,c){var d=C;if(0<c){c=b+c-1;for(var e=0;e<a.length;++e){var g=a.charCodeAt(e);if(55296<=g&&57343>=g){var m=a.charCodeAt(++e);g=65536+((g&1023)<<10)|m&1023}if(127>=g){if(b>=c)break;d[b++]=g}else{if(2047>=g){if(b+1>=c)break;d[b++]=192|g>>6}else{if(65535>=g){if(b+2>=c)break;d[b++]=224|g>>12}else{if(b+3>=c)break;d[b++]=240|g>>18;d[b++]=128|g>>12&63}d[b++]=128|g>>6&63}d[b++]=128|g&63}}d[b]=0}}var la=new TextDecoder("utf-16le");
|
||||||
function ma(a,b){var c=a>>1;for(b=c+b/2;!(c>=b)&&na[c];)++c;return la.decode(C.subarray(a,c<<1))}function oa(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e)D[b>>1]=a.charCodeAt(e),b+=2;D[b>>1]=0;return b-d}function pa(a){return 2*a.length}function qa(a,b){for(var c=0,d="";!(c>=b/4);){var e=E[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d}
|
function ma(a,b){var c=a>>1;for(b=c+b/2;!(c>=b)&&D[c];)++c;return la.decode(C.subarray(a,c<<1))}function na(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e)E[b>>1]=a.charCodeAt(e),b+=2;E[b>>1]=0;return b-d}function oa(a){return 2*a.length}function pa(a,b){for(var c=0,d="";!(c>=b/4);){var e=F[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d}
|
||||||
function ra(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var g=a.charCodeAt(e);if(55296<=g&&57343>=g){var k=a.charCodeAt(++e);g=65536+((g&1023)<<10)|k&1023}E[b>>2]=g;b+=4;if(b+4>c)break}E[b>>2]=0;return b-d}function sa(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4}return b}var F,G,C,D,na,E,I,ta,ua;
|
function qa(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var g=a.charCodeAt(e);if(55296<=g&&57343>=g){var m=a.charCodeAt(++e);g=65536+((g&1023)<<10)|m&1023}F[b>>2]=g;b+=4;if(b+4>c)break}F[b>>2]=0;return b-d}function ra(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4}return b}var sa,G,C,E,D,F,I,ta,ua;
|
||||||
function va(a){F=a;f.HEAP8=G=new Int8Array(a);f.HEAP16=D=new Int16Array(a);f.HEAP32=E=new Int32Array(a);f.HEAPU8=C=new Uint8Array(a);f.HEAPU16=na=new Uint16Array(a);f.HEAPU32=I=new Uint32Array(a);f.HEAPF32=ta=new Float32Array(a);f.HEAPF64=ua=new Float64Array(a)}var wa=f.INITIAL_MEMORY||16777216;f.wasmMemory?B=f.wasmMemory:B=new WebAssembly.Memory({initial:wa/65536,maximum:32768});B&&(F=B.buffer);wa=F.byteLength;va(F);var J,xa=[],ya=[],za=[],Aa=[];
|
function va(){var a=ha.buffer;sa=a;f.HEAP8=G=new Int8Array(a);f.HEAP16=E=new Int16Array(a);f.HEAP32=F=new Int32Array(a);f.HEAPU8=C=new Uint8Array(a);f.HEAPU16=D=new Uint16Array(a);f.HEAPU32=I=new Uint32Array(a);f.HEAPF32=ta=new Float32Array(a);f.HEAPF64=ua=new Float64Array(a)}var J,wa=[],xa=[],ya=[];function za(){var a=f.preRun.shift();wa.unshift(a)}var K=0,Aa=null,L=null;f.preloadedImages={};f.preloadedAudios={};
|
||||||
function Ba(){var a=f.preRun.shift();xa.unshift(a)}var K=0,Ca=null,L=null;f.preloadedImages={};f.preloadedAudios={};function x(a){if(f.onAbort)f.onAbort(a);v(a);fa=!0;a=new WebAssembly.RuntimeError("abort("+a+"). Build with -s ASSERTIONS=1 for more info.");ba(a);throw a;}function Da(){var a=M;return String.prototype.startsWith?a.startsWith("data:application/octet-stream;base64,"):0===a.indexOf("data:application/octet-stream;base64,")}var M="basis_enc.wasm";
|
function A(a){if(f.onAbort)f.onAbort(a);v(a);ia=!0;a=new WebAssembly.RuntimeError("abort("+a+"). Build with -s ASSERTIONS=1 for more info.");ba(a);throw a;}function Ba(){return M.startsWith("data:application/octet-stream;base64,")}var M="basis_enc.wasm";if(!Ba()){var Ca=M;M=f.locateFile?f.locateFile(Ca,u):u+Ca}function Da(){var a=M;try{if(a==M&&w)return new Uint8Array(w);if(ca)return ca(a);throw"both async and sync fetching of the wasm failed";}catch(b){A(b)}}
|
||||||
if(!Da()){var Ea=M;M=f.locateFile?f.locateFile(Ea,u):u+Ea}function Fa(){try{if(w)return new Uint8Array(w);if(ca)return ca(M);throw"both async and sync fetching of the wasm failed";}catch(a){x(a)}}function Ga(){return w||"function"!==typeof fetch?Promise.resolve().then(Fa):fetch(M,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+M+"'";return a.arrayBuffer()}).catch(function(){return Fa()})}
|
function Ea(){return w||"function"!==typeof fetch?Promise.resolve().then(function(){return Da()}):fetch(M,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+M+"'";return a.arrayBuffer()}).catch(function(){return Da()})}function Fa(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b(f);else{var c=b.ya;"number"===typeof c?void 0===b.da?J.get(c)():J.get(c)(b.da):c(void 0===b.da?null:b.da)}}}
|
||||||
function Ha(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b(f);else{var c=b.la;"number"===typeof c?void 0===b.fa?J.get(c)():J.get(c)(b.fa):c(void 0===b.fa?null:b.fa)}}}function Ia(a){this.ea=a-16;this.xa=function(b){E[this.ea+8>>2]=b};this.ua=function(b){E[this.ea+0>>2]=b};this.va=function(){E[this.ea+4>>2]=0};this.ta=function(){G[this.ea+12>>0]=0};this.wa=function(){G[this.ea+13>>0]=0};this.qa=function(b,c){this.xa(b);this.ua(c);this.va();this.ta();this.wa()}}
|
function Ga(a){this.ca=a-16;this.ta=function(b){F[this.ca+8>>2]=b};this.qa=function(b){F[this.ca+0>>2]=b};this.ra=function(){F[this.ca+4>>2]=0};this.pa=function(){G[this.ca+12>>0]=0};this.sa=function(){G[this.ca+13>>0]=0};this.ma=function(b,c){this.ta(b);this.qa(c);this.ra();this.pa();this.sa()}}var Ha=0,Ia=[null,[],[]],Ja={},Ka={};function La(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function Ma(a){return this.fromWireType(I[a>>2])}var N={},O={},Na={};
|
||||||
function Ja(){return 0<Ja.ia}var Ka=[null,[],[]],La={},Ma={};function Na(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function Oa(a){return this.fromWireType(I[a>>2])}var N={},O={},Pa={};function Qa(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}function Ra(a,b){a=Qa(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)}
|
function Oa(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}function Pa(a,b){a=Oa(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)}
|
||||||
function Sa(a){var b=Error,c=Ra(a,function(d){this.name=a;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}var Ta=void 0;
|
function Qa(a){var b=Error,c=Pa(a,function(d){this.name=a;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}var Ra=void 0;
|
||||||
function Ua(a,b,c){function d(h){h=c(h);if(h.length!==a.length)throw new Ta("Mismatched type converter count");for(var l=0;l<a.length;++l)P(a[l],h[l])}a.forEach(function(h){Pa[h]=b});var e=Array(b.length),g=[],k=0;b.forEach(function(h,l){O.hasOwnProperty(h)?e[l]=O[h]:(g.push(h),N.hasOwnProperty(h)||(N[h]=[]),N[h].push(function(){e[l]=O[h];++k;k===g.length&&d(e)}))});0===g.length&&d(e)}
|
function Sa(a,b,c){function d(h){h=c(h);if(h.length!==a.length)throw new Ra("Mismatched type converter count");for(var k=0;k<a.length;++k)P(a[k],h[k])}a.forEach(function(h){Na[h]=b});var e=Array(b.length),g=[],m=0;b.forEach(function(h,k){O.hasOwnProperty(h)?e[k]=O[h]:(g.push(h),N.hasOwnProperty(h)||(N[h]=[]),N[h].push(function(){e[k]=O[h];++m;m===g.length&&d(e)}))});0===g.length&&d(e)}
|
||||||
function Va(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+a);}}var Wa=void 0;function Q(a){for(var b="";C[a];)b+=Wa[C[a++]];return b}var Xa=void 0;function R(a){throw new Xa(a);}
|
function Ta(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+a);}}var Ua=void 0;function Q(a){for(var b="";C[a];)b+=Ua[C[a++]];return b}var Va=void 0;function R(a){throw new Va(a);}
|
||||||
function P(a,b,c){c=c||{};if(!("argPackAdvance"in b))throw new TypeError("registerType registeredInstance requires argPackAdvance");var d=b.name;a||R('type "'+d+'" must have a positive integer typeid pointer');if(O.hasOwnProperty(a)){if(c.pa)return;R("Cannot register type '"+d+"' twice")}O[a]=b;delete Pa[a];N.hasOwnProperty(a)&&(b=N[a],delete N[a],b.forEach(function(e){e()}))}var Ya=[],S=[{},{value:void 0},{value:null},{value:!0},{value:!1}];
|
function P(a,b,c){c=c||{};if(!("argPackAdvance"in b))throw new TypeError("registerType registeredInstance requires argPackAdvance");var d=b.name;a||R('type "'+d+'" must have a positive integer typeid pointer');if(O.hasOwnProperty(a)){if(c.la)return;R("Cannot register type '"+d+"' twice")}O[a]=b;delete Na[a];N.hasOwnProperty(a)&&(b=N[a],delete N[a],b.forEach(function(e){e()}))}var Wa=[],S=[{},{value:void 0},{value:null},{value:!0},{value:!1}];
|
||||||
function Za(a){4<a&&0===--S[a].ga&&(S[a]=void 0,Ya.push(a))}function T(a){switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=Ya.length?Ya.pop():S.length;S[b]={ga:1,value:a};return b}}function $a(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a}
|
function Xa(a){4<a&&0===--S[a].ea&&(S[a]=void 0,Wa.push(a))}function T(a){switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=Wa.length?Wa.pop():S.length;S[b]={ea:1,value:a};return b}}function Ya(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a}
|
||||||
function ab(a,b){switch(b){case 2:return function(c){return this.fromWireType(ta[c>>2])};case 3:return function(c){return this.fromWireType(ua[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}function bb(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Ra(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c}
|
function Za(a,b){switch(b){case 2:return function(c){return this.fromWireType(ta[c>>2])};case 3:return function(c){return this.fromWireType(ua[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}function $a(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Pa(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c}
|
||||||
function cb(a,b){var c=f;if(void 0===c[a].ca){var d=c[a];c[a]=function(){c[a].ca.hasOwnProperty(arguments.length)||R("Function '"+b+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+c[a].ca+")!");return c[a].ca[arguments.length].apply(this,arguments)};c[a].ca=[];c[a].ca[d.ja]=d}}
|
function ab(a,b){var c=f;if(void 0===c[a].aa){var d=c[a];c[a]=function(){c[a].aa.hasOwnProperty(arguments.length)||R("Function '"+b+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+c[a].aa+")!");return c[a].aa[arguments.length].apply(this,arguments)};c[a].aa=[];c[a].aa[d.ga]=d}}
|
||||||
function db(a,b,c){f.hasOwnProperty(a)?((void 0===c||void 0!==f[a].ca&&void 0!==f[a].ca[c])&&R("Cannot register public name '"+a+"' twice"),cb(a,a),f.hasOwnProperty(c)&&R("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),f[a].ca[c]=b):(f[a]=b,void 0!==c&&(f[a].Ea=c))}function eb(a,b){for(var c=[],d=0;d<a;d++)c.push(E[(b>>2)+d]);return c}
|
function bb(a,b,c){f.hasOwnProperty(a)?((void 0===c||void 0!==f[a].aa&&void 0!==f[a].aa[c])&&R("Cannot register public name '"+a+"' twice"),ab(a,a),f.hasOwnProperty(c)&&R("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),f[a].aa[c]=b):(f[a]=b,void 0!==c&&(f[a].Ba=c))}function cb(a,b){for(var c=[],d=0;d<a;d++)c.push(F[(b>>2)+d]);return c}
|
||||||
function fb(a,b){0<=a.indexOf("j")||x("Assertion failed: getDynCaller should only be called with i64 sigs");var c=[];return function(){c.length=arguments.length;for(var d=0;d<arguments.length;d++)c[d]=arguments[d];var e;-1!=a.indexOf("j")?e=c&&c.length?f["dynCall_"+a].apply(null,[b].concat(c)):f["dynCall_"+a].call(null,b):e=J.get(b).apply(null,c);return e}}
|
function db(a,b){var c=[];return function(){c.length=arguments.length;for(var d=0;d<arguments.length;d++)c[d]=arguments[d];a.includes("j")?(d=f["dynCall_"+a],d=c&&c.length?d.apply(null,[b].concat(c)):d.call(null,b)):d=J.get(b).apply(null,c);return d}}function U(a,b){a=Q(a);var c=a.includes("j")?db(a,b):J.get(b);"function"!==typeof c&&R("unknown function pointer with signature "+a+": "+b);return c}var eb=void 0;function fb(a){a=gb(a);var b=Q(a);V(a);return b}
|
||||||
function U(a,b){a=Q(a);var c=-1!=a.indexOf("j")?fb(a,b):J.get(b);"function"!==typeof c&&R("unknown function pointer with signature "+a+": "+b);return c}var gb=void 0;function hb(a){a=ib(a);var b=Q(a);V(a);return b}function jb(a,b){function c(g){e[g]||O[g]||(Pa[g]?Pa[g].forEach(c):(d.push(g),e[g]=!0))}var d=[],e={};b.forEach(c);throw new gb(a+": "+d.map(hb).join([", "]));}
|
function hb(a,b){function c(g){e[g]||O[g]||(Na[g]?Na[g].forEach(c):(d.push(g),e[g]=!0))}var d=[],e={};b.forEach(c);throw new eb(a+": "+d.map(fb).join([", "]));}function ib(a,b,c){switch(b){case 0:return c?function(d){return G[d]}:function(d){return C[d]};case 1:return c?function(d){return E[d>>1]}:function(d){return D[d>>1]};case 2:return c?function(d){return F[d>>2]}:function(d){return I[d>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var jb={};
|
||||||
function kb(a,b,c){switch(b){case 0:return c?function(d){return G[d]}:function(d){return C[d]};case 1:return c?function(d){return D[d>>1]}:function(d){return na[d>>1]};case 2:return c?function(d){return E[d>>2]}:function(d){return I[d>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var lb={};function mb(){return"object"===typeof globalThis?globalThis:Function("return this")()}function nb(a,b){var c=O[a];void 0===c&&R(b+" has unknown type "+hb(a));return c}var ob={};
|
function kb(){return"object"===typeof globalThis?globalThis:Function("return this")()}function lb(a,b){var c=O[a];void 0===c&&R(b+" has unknown type "+fb(a));return c}var mb={};Ra=f.InternalError=Qa("InternalError");for(var nb=Array(256),ob=0;256>ob;++ob)nb[ob]=String.fromCharCode(ob);Ua=nb;Va=f.BindingError=Qa("BindingError");f.count_emval_handles=function(){for(var a=0,b=5;b<S.length;++b)void 0!==S[b]&&++a;return a};
|
||||||
Ta=f.InternalError=Sa("InternalError");for(var pb=Array(256),qb=0;256>qb;++qb)pb[qb]=String.fromCharCode(qb);Wa=pb;Xa=f.BindingError=Sa("BindingError");f.count_emval_handles=function(){for(var a=0,b=5;b<S.length;++b)void 0!==S[b]&&++a;return a};f.get_first_emval=function(){for(var a=5;a<S.length;++a)if(void 0!==S[a])return S[a];return null};gb=f.UnboundTypeError=Sa("UnboundTypeError");ya.push({la:function(){rb()}});
|
f.get_first_emval=function(){for(var a=5;a<S.length;++a)if(void 0!==S[a])return S[a];return null};eb=f.UnboundTypeError=Qa("UnboundTypeError");
|
||||||
var Bb={b:function(a,b,c,d){x("Assertion failed: "+ia(a)+", at: "+[b?ia(b):"unknown filename",c,d?ia(d):"unknown function"])},J:function(a){return sb(a+16)+16},A:function(){},E:function(a,b,c){(new Ia(a)).qa(b,c);"uncaught_exception"in Ja?Ja.ia++:Ja.ia=1;throw a;},s:function(){return 0},H:function(){return 0},I:function(){},Q:function(a){var b=Ma[a];delete Ma[a];var c=b.ra,d=b.sa,e=b.ha,g=e.map(function(k){return k.oa}).concat(e.map(function(k){return k.za}));Ua([a],g,function(k){var h={};e.forEach(function(l,
|
var vb={a:function(a,b,c,d){A("Assertion failed: "+B(a)+", at: "+[b?B(b):"unknown filename",c,d?B(d):"unknown function"])},J:function(a){return pb(a+16)+16},M:function(){},C:function(a,b,c){(new Ga(a)).ma(b,c);Ha++;throw a;},n:function(){return 0},A:function(){return 0},B:function(){},I:function(a){var b=Ka[a];delete Ka[a];var c=b.na,d=b.oa,e=b.fa,g=e.map(function(m){return m.ka}).concat(e.map(function(m){return m.va}));Sa([a],g,function(m){var h={};e.forEach(function(k,l){var n=m[l],q=k.ia,x=k.ja,
|
||||||
m){var n=k[m],q=l.ma,y=l.na,z=k[m+e.length],p=l.ya,ka=l.Aa;h[l.ka]={read:function(A){return n.fromWireType(q(y,A))},write:function(A,H){var Z=[];p(ka,A,z.toWireType(Z,H));Na(Z)}}});return[{name:b.name,fromWireType:function(l){var m={},n;for(n in h)m[n]=h[n].read(l);d(l);return m},toWireType:function(l,m){for(var n in h)if(!(n in m))throw new TypeError('Missing field: "'+n+'"');var q=c();for(n in h)h[n].write(q,m[n]);null!==l&&l.push(d,q);return q},argPackAdvance:8,readValueFromPointer:Oa,da:d}]})},
|
y=m[l+e.length],p=k.ua,fa=k.wa;h[k.ha]={read:function(z){return n.fromWireType(q(x,z))},write:function(z,H){var X=[];p(fa,z,y.toWireType(X,H));La(X)}}});return[{name:b.name,fromWireType:function(k){var l={},n;for(n in h)l[n]=h[n].read(k);d(k);return l},toWireType:function(k,l){for(var n in h)if(!(n in l))throw new TypeError('Missing field: "'+n+'"');var q=c();for(n in h)h[n].write(q,l[n]);null!==k&&k.push(d,q);return q},argPackAdvance:8,readValueFromPointer:Ma,ba:d}]})},v:function(){},E:function(a,
|
||||||
L:function(a,b,c,d,e){var g=Va(c);b=Q(b);P(a,{name:b,fromWireType:function(k){return!!k},toWireType:function(k,h){return h?d:e},argPackAdvance:8,readValueFromPointer:function(k){if(1===c)var h=G;else if(2===c)h=D;else if(4===c)h=E;else throw new TypeError("Unknown boolean type size: "+b);return this.fromWireType(h[k>>g])},da:null})},K:function(a,b){b=Q(b);P(a,{name:b,fromWireType:function(c){var d=S[c].value;Za(c);return d},toWireType:function(c,d){return T(d)},argPackAdvance:8,readValueFromPointer:Oa,
|
b,c,d,e){var g=Ta(c);b=Q(b);P(a,{name:b,fromWireType:function(m){return!!m},toWireType:function(m,h){return h?d:e},argPackAdvance:8,readValueFromPointer:function(m){if(1===c)var h=G;else if(2===c)h=E;else if(4===c)h=F;else throw new TypeError("Unknown boolean type size: "+b);return this.fromWireType(h[m>>g])},ba:null})},D:function(a,b){b=Q(b);P(a,{name:b,fromWireType:function(c){var d=S[c].value;Xa(c);return d},toWireType:function(c,d){return T(d)},argPackAdvance:8,readValueFromPointer:Ma,ba:null})},
|
||||||
da:null})},v:function(a,b,c){c=Va(c);b=Q(b);P(a,{name:b,fromWireType:function(d){return d},toWireType:function(d,e){if("number"!==typeof e&&"boolean"!==typeof e)throw new TypeError('Cannot convert "'+$a(e)+'" to '+this.name);return e},argPackAdvance:8,readValueFromPointer:ab(b,c),da:null})},O:function(a,b,c,d,e,g){var k=eb(b,c);a=Q(a);e=U(d,e);db(a,function(){jb("Cannot call "+a+" due to unbound types",k)},b-1);Ua([],k,function(h){var l=a,m=a;h=[h[0],null].concat(h.slice(1));var n=e,q=h.length;2>
|
q:function(a,b,c){c=Ta(c);b=Q(b);P(a,{name:b,fromWireType:function(d){return d},toWireType:function(d,e){if("number"!==typeof e&&"boolean"!==typeof e)throw new TypeError('Cannot convert "'+Ya(e)+'" to '+this.name);return e},argPackAdvance:8,readValueFromPointer:Za(b,c),ba:null})},H:function(a,b,c,d,e,g){var m=cb(b,c);a=Q(a);e=U(d,e);bb(a,function(){hb("Cannot call "+a+" due to unbound types",m)},b-1);Sa([],m,function(h){var k=a,l=a;h=[h[0],null].concat(h.slice(1));var n=e,q=h.length;2>q&&R("argTypes array size mismatch! Must at least get return value and 'this' types!");
|
||||||
q&&R("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var y=null!==h[1]&&!1,z=!1,p=1;p<h.length;++p)if(null!==h[p]&&void 0===h[p].da){z=!0;break}var ka="void"!==h[0].name,A="",H="";for(p=0;p<q-2;++p)A+=(0!==p?", ":"")+"arg"+p,H+=(0!==p?", ":"")+"arg"+p+"Wired";m="return function "+Qa(m)+"("+A+") {\nif (arguments.length !== "+(q-2)+") {\nthrowBindingError('function "+m+" called with ' + arguments.length + ' arguments, expected "+(q-2)+" args!');\n}\n";z&&(m+="var destructors = [];\n");
|
for(var x=null!==h[1]&&!1,y=!1,p=1;p<h.length;++p)if(null!==h[p]&&void 0===h[p].ba){y=!0;break}var fa="void"!==h[0].name,z="",H="";for(p=0;p<q-2;++p)z+=(0!==p?", ":"")+"arg"+p,H+=(0!==p?", ":"")+"arg"+p+"Wired";l="return function "+Oa(l)+"("+z+") {\nif (arguments.length !== "+(q-2)+") {\nthrowBindingError('function "+l+" called with ' + arguments.length + ' arguments, expected "+(q-2)+" args!');\n}\n";y&&(l+="var destructors = [];\n");var X=y?"destructors":"null";z="throwBindingError invoker fn runDestructors retType classParam".split(" ");
|
||||||
var Z=z?"destructors":"null";A="throwBindingError invoker fn runDestructors retType classParam".split(" ");n=[R,n,g,Na,h[0],h[1]];y&&(m+="var thisWired = classParam.toWireType("+Z+", this);\n");for(p=0;p<q-2;++p)m+="var arg"+p+"Wired = argType"+p+".toWireType("+Z+", arg"+p+"); // "+h[p+2].name+"\n",A.push("argType"+p),n.push(h[p+2]);y&&(H="thisWired"+(0<H.length?", ":"")+H);m+=(ka?"var rv = ":"")+"invoker(fn"+(0<H.length?", ":"")+H+");\n";if(z)m+="runDestructors(destructors);\n";else for(p=y?1:2;p<
|
n=[R,n,g,La,h[0],h[1]];x&&(l+="var thisWired = classParam.toWireType("+X+", this);\n");for(p=0;p<q-2;++p)l+="var arg"+p+"Wired = argType"+p+".toWireType("+X+", arg"+p+"); // "+h[p+2].name+"\n",z.push("argType"+p),n.push(h[p+2]);x&&(H="thisWired"+(0<H.length?", ":"")+H);l+=(fa?"var rv = ":"")+"invoker(fn"+(0<H.length?", ":"")+H+");\n";if(y)l+="runDestructors(destructors);\n";else for(p=x?1:2;p<h.length;++p)q=1===p?"thisWired":"arg"+(p-2)+"Wired",null!==h[p].ba&&(l+=q+"_dtor("+q+"); // "+h[p].name+
|
||||||
h.length;++p)q=1===p?"thisWired":"arg"+(p-2)+"Wired",null!==h[p].da&&(m+=q+"_dtor("+q+"); // "+h[p].name+"\n",A.push(q+"_dtor"),n.push(h[p].da));ka&&(m+="var ret = retType.fromWireType(rv);\nreturn ret;\n");A.push(m+"}\n");h=bb(A).apply(null,n);p=b-1;if(!f.hasOwnProperty(l))throw new Ta("Replacing nonexistant public symbol");void 0!==f[l].ca&&void 0!==p?f[l].ca[p]=h:(f[l]=h,f[l].ja=p);return[]})},k:function(a,b,c,d,e){function g(m){return m}b=Q(b);-1===e&&(e=4294967295);var k=Va(c);if(0===d){var h=
|
"\n",z.push(q+"_dtor"),n.push(h[p].ba));fa&&(l+="var ret = retType.fromWireType(rv);\nreturn ret;\n");z.push(l+"}\n");h=$a(z).apply(null,n);p=b-1;if(!f.hasOwnProperty(k))throw new Ra("Replacing nonexistant public symbol");void 0!==f[k].aa&&void 0!==p?f[k].aa[p]=h:(f[k]=h,f[k].ga=p);return[]})},f:function(a,b,c,d,e){function g(l){return l}b=Q(b);-1===e&&(e=4294967295);var m=Ta(c);if(0===d){var h=32-8*c;g=function(l){return l<<h>>>h}}var k=b.includes("unsigned");P(a,{name:b,fromWireType:g,toWireType:function(l,
|
||||||
32-8*c;g=function(m){return m<<h>>>h}}var l=-1!=b.indexOf("unsigned");P(a,{name:b,fromWireType:g,toWireType:function(m,n){if("number"!==typeof n&&"boolean"!==typeof n)throw new TypeError('Cannot convert "'+$a(n)+'" to '+this.name);if(n<d||n>e)throw new TypeError('Passing a number "'+$a(n)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+d+", "+e+"]!");return l?n>>>0:n|0},argPackAdvance:8,readValueFromPointer:kb(b,k,0!==d),da:null})},j:function(a,b,
|
n){if("number"!==typeof n&&"boolean"!==typeof n)throw new TypeError('Cannot convert "'+Ya(n)+'" to '+this.name);if(n<d||n>e)throw new TypeError('Passing a number "'+Ya(n)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+d+", "+e+"]!");return k?n>>>0:n|0},argPackAdvance:8,readValueFromPointer:ib(b,m,0!==d),ba:null})},e:function(a,b,c){function d(g){g>>=2;var m=I;return new e(sa,m[g+1],m[g])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,
|
||||||
c){function d(g){g>>=2;var k=I;return new e(F,k[g+1],k[g])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=Q(c);P(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{pa:!0})},w:function(a,b){b=Q(b);var c="std::string"===b;P(a,{name:b,fromWireType:function(d){var e=I[d>>2];if(c)for(var g=d+4,k=0;k<=e;++k){var h=d+4+k;if(k==e||0==C[h]){g=ia(g,h-g);if(void 0===l)var l=g;else l+=String.fromCharCode(0),l+=g;g=h+1}}else{l=Array(e);
|
Uint32Array,Float32Array,Float64Array][b];c=Q(c);P(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{la:!0})},r:function(a,b){b=Q(b);var c="std::string"===b;P(a,{name:b,fromWireType:function(d){var e=I[d>>2];if(c)for(var g=d+4,m=0;m<=e;++m){var h=d+4+m;if(m==e||0==C[h]){g=B(g,h-g);if(void 0===k)var k=g;else k+=String.fromCharCode(0),k+=g;g=h+1}}else{k=Array(e);for(m=0;m<e;++m)k[m]=String.fromCharCode(C[d+4+m]);k=k.join("")}V(d);return k},toWireType:function(d,e){e instanceof ArrayBuffer&&
|
||||||
for(k=0;k<e;++k)l[k]=String.fromCharCode(C[d+4+k]);l=l.join("")}V(d);return l},toWireType:function(d,e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var g="string"===typeof e;g||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||R("Cannot pass non-string to std::string");var k=(c&&g?function(){for(var m=0,n=0;n<e.length;++n){var q=e.charCodeAt(n);55296<=q&&57343>=q&&(q=65536+((q&1023)<<10)|e.charCodeAt(++n)&1023);127>=q?++m:m=2047>=q?m+2:65535>=q?m+3:m+4}return m}:
|
(e=new Uint8Array(e));var g="string"===typeof e;g||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||R("Cannot pass non-string to std::string");var m=(c&&g?function(){for(var l=0,n=0;n<e.length;++n){var q=e.charCodeAt(n);55296<=q&&57343>=q&&(q=65536+((q&1023)<<10)|e.charCodeAt(++n)&1023);127>=q?++l:l=2047>=q?l+2:65535>=q?l+3:l+4}return l}:function(){return e.length})(),h=pb(4+m+1);I[h>>2]=m;if(c&&g)ka(e,h+4,m+1);else if(g)for(g=0;g<m;++g){var k=e.charCodeAt(g);255<k&&
|
||||||
function(){return e.length})(),h=sb(4+k+1);I[h>>2]=k;if(c&&g)ja(e,h+4,k+1);else if(g)for(g=0;g<k;++g){var l=e.charCodeAt(g);255<l&&(V(h),R("String has UTF-16 code units that do not fit in 8 bits"));C[h+4+g]=l}else for(g=0;g<k;++g)C[h+4+g]=e[g];null!==d&&d.push(V,h);return h},argPackAdvance:8,readValueFromPointer:Oa,da:function(d){V(d)}})},p:function(a,b,c){c=Q(c);if(2===b){var d=ma;var e=oa;var g=pa;var k=function(){return na};var h=1}else 4===b&&(d=qa,e=ra,g=sa,k=function(){return I},h=2);P(a,{name:c,
|
(V(h),R("String has UTF-16 code units that do not fit in 8 bits"));C[h+4+g]=k}else for(g=0;g<m;++g)C[h+4+g]=e[g];null!==d&&d.push(V,h);return h},argPackAdvance:8,readValueFromPointer:Ma,ba:function(d){V(d)}})},j:function(a,b,c){c=Q(c);if(2===b){var d=ma;var e=na;var g=oa;var m=function(){return D};var h=1}else 4===b&&(d=pa,e=qa,g=ra,m=function(){return I},h=2);P(a,{name:c,fromWireType:function(k){for(var l=I[k>>2],n=m(),q,x=k+4,y=0;y<=l;++y){var p=k+4+y*b;if(y==l||0==n[p>>h])x=d(x,p-x),void 0===q?
|
||||||
fromWireType:function(l){for(var m=I[l>>2],n=k(),q,y=l+4,z=0;z<=m;++z){var p=l+4+z*b;if(z==m||0==n[p>>h])y=d(y,p-y),void 0===q?q=y:(q+=String.fromCharCode(0),q+=y),y=p+b}V(l);return q},toWireType:function(l,m){"string"!==typeof m&&R("Cannot pass non-string to C++ string type "+c);var n=g(m),q=sb(4+n+b);I[q>>2]=n>>h;e(m,q+4,n+b);null!==l&&l.push(V,q);return q},argPackAdvance:8,readValueFromPointer:Oa,da:function(l){V(l)}})},R:function(a,b,c,d,e,g){Ma[a]={name:Q(b),ra:U(c,d),sa:U(e,g),ha:[]}},P:function(a,
|
q=x:(q+=String.fromCharCode(0),q+=x),x=p+b}V(k);return q},toWireType:function(k,l){"string"!==typeof l&&R("Cannot pass non-string to C++ string type "+c);var n=g(l),q=pb(4+n+b);I[q>>2]=n>>h;e(l,q+4,n+b);null!==k&&k.push(V,q);return q},argPackAdvance:8,readValueFromPointer:Ma,ba:function(k){V(k)}})},K:function(a,b,c,d,e,g){Ka[a]={name:Q(b),na:U(c,d),oa:U(e,g),fa:[]}},i:function(a,b,c,d,e,g,m,h,k,l){Ka[a].fa.push({ha:Q(b),ka:c,ia:U(d,e),ja:g,va:m,ua:U(h,k),wa:l})},F:function(a,b){b=Q(b);P(a,{Aa:!0,
|
||||||
b,c,d,e,g,k,h,l,m){Ma[a].ha.push({ka:Q(b),oa:c,ma:U(d,e),na:g,za:k,ya:U(h,l),Aa:m})},M:function(a,b){b=Q(b);P(a,{Da:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},n:Za,z:function(a){if(0===a)return T(mb());var b=lb[a];a=void 0===b?Q(a):b;return T(mb()[a])},N:function(a){4<a&&(S[a].ga+=1)},x:function(a,b,c,d){a||R("Cannot use deleted val. handle = "+a);a=S[a].value;var e=ob[b];if(!e){e="";for(var g=0;g<b;++g)e+=(0!==g?", ":"")+"arg"+g;var k="return function emval_allocator_"+
|
name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},k:Xa,N:function(a){if(0===a)return T(kb());var b=jb[a];a=void 0===b?Q(a):b;return T(kb()[a])},G:function(a){4<a&&(S[a].ea+=1)},L:function(a,b,c,d){a||R("Cannot use deleted val. handle = "+a);a=S[a].value;var e=mb[b];if(!e){e="";for(var g=0;g<b;++g)e+=(0!==g?", ":"")+"arg"+g;var m="return function emval_allocator_"+b+"(constructor, argTypes, args) {\n";for(g=0;g<b;++g)m+="var argType"+g+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+
|
||||||
b+"(constructor, argTypes, args) {\n";for(g=0;g<b;++g)k+="var argType"+g+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";e=(new Function("requireRegisteredType","Module","__emval_register",k+("var obj = new constructor("+e+");\nreturn __emval_register(obj);\n}\n")))(nb,f,T);ob[b]=e}return e(a,c,d)},y:function(a,b){a=nb(a,"_emval_take_value");a=a.readValueFromPointer(b);
|
g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";e=(new Function("requireRegisteredType","Module","__emval_register",m+("var obj = new constructor("+e+");\nreturn __emval_register(obj);\n}\n")))(lb,f,T);mb[b]=e}return e(a,c,d)},s:function(a,b){a=lb(a,"_emval_take_value");a=a.readValueFromPointer(b);return T(a)},b:function(){A()},y:function(){return 2147483648},g:function(a,b){W(a,b||1);throw"longjmp";},w:function(a,b,c){C.copyWithin(a,
|
||||||
return T(a)},f:function(){x()},h:function(a,b){W(a,b||1);throw"longjmp";},D:function(a,b,c){C.copyWithin(a,b,b+c)},l:function(a){a>>>=0;var b=C.length;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);d=Math.max(16777216,a,d);0<d%65536&&(d+=65536-d%65536);a:{try{B.grow(Math.min(2147483648,d)-F.byteLength+65535>>>16);va(B.buffer);var e=1;break a}catch(g){}e=void 0}if(e)return!0}return!1},u:function(){return 0},G:function(a,b,c,d){a=La.Ca(a);b=La.Ba(a,b,c);E[d>>
|
b,b+c)},x:function(a){var b=C.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);d=Math.max(a,d);0<d%65536&&(d+=65536-d%65536);a:{try{ha.grow(Math.min(2147483648,d)-sa.byteLength+65535>>>16);va();var e=1;break a}catch(g){}e=void 0}if(e)return!0}return!1},p:function(){return 0},z:function(a,b,c,d){a=Ja.za(a);b=Ja.xa(a,b,c);F[d>>2]=b;return 0},u:function(){},o:function(a,b,c,d){for(var e=0,g=0;g<c;g++){for(var m=F[b+8*g>>2],h=F[b+(8*g+4)>>2],k=0;k<
|
||||||
2]=b;return 0},B:function(){},t:function(a,b,c,d){for(var e=0,g=0;g<c;g++){for(var k=E[b+8*g>>2],h=E[b+(8*g+4)>>2],l=0;l<h;l++){var m=C[k+l],n=Ka[a];if(0===m||10===m){for(m=0;n[m]&&!(NaN<=m);)++m;m=ha.decode(n.subarray?n.subarray(0,m):new Uint8Array(n.slice(0,m)));(1===a?da:v)(m);n.length=0}else n.push(m)}e+=h}E[d>>2]=e;return 0},d:function(){return ea|0},i:function(a){var b=Date.now();E[a>>2]=b/1E3|0;E[a+4>>2]=b%1E3*1E3|0;return 0},m:tb,g:ub,r:vb,q:wb,o:xb,e:yb,C:zb,a:B,c:function(a){ea=a|0},F:function(a){switch(a){case 30:return 16384;
|
h;k++){var l=C[m+k],n=Ia[a];if(0===l||10===l){for(l=0;n[l]&&!(NaN<=l);)++l;l=ja.decode(n.subarray?n.subarray(0,l):new Uint8Array(n.slice(0,l)));(1===a?da:v)(l);n.length=0}else n.push(l)}e+=h}F[d>>2]=e;return 0},d:function(){return ea},l:function(a){var b=Date.now();F[a>>2]=b/1E3|0;F[a+4>>2]=b%1E3*1E3|0;return 0},t:qb,m:rb,h:sb,O:tb,P:ub,c:function(a){ea=a}};
|
||||||
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;
|
(function(){function a(e){f.asm=e.exports;ha=f.asm.Q;va();J=f.asm.U;xa.unshift(f.asm.R);K--;f.monitorRunDependencies&&f.monitorRunDependencies(K);0==K&&(null!==Aa&&(clearInterval(Aa),Aa=null),L&&(e=L,L=null,e()))}function b(e){a(e.instance)}function c(e){return Ea().then(function(g){return WebAssembly.instantiate(g,d)}).then(e,function(g){v("failed to asynchronously prepare wasm: "+g);A(g)})}var d={a:vb};K++;f.monitorRunDependencies&&f.monitorRunDependencies(K);if(f.instantiateWasm)try{return f.instantiateWasm(d,
|
||||||
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;
|
a)}catch(e){return v("Module.instantiateWasm callback failed with error: "+e),!1}(function(){return w||"function"!==typeof WebAssembly.instantiateStreaming||Ba()||"function"!==typeof fetch?c(b):fetch(M,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(g){v("wasm streaming compile failed: "+g);v("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ba);return{}})();
|
||||||
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:1}E[Ab()>>2]=28;return-1}};
|
f.___wasm_call_ctors=function(){return(f.___wasm_call_ctors=f.asm.R).apply(null,arguments)};var V=f._free=function(){return(V=f._free=f.asm.S).apply(null,arguments)},pb=f._malloc=function(){return(pb=f._malloc=f.asm.T).apply(null,arguments)},gb=f.___getTypeName=function(){return(gb=f.___getTypeName=f.asm.V).apply(null,arguments)};f.___embind_register_native_and_builtin_types=function(){return(f.___embind_register_native_and_builtin_types=f.asm.W).apply(null,arguments)};
|
||||||
(function(){function a(e){f.asm=e.exports;J=f.asm.S;K--;f.monitorRunDependencies&&f.monitorRunDependencies(K);0==K&&(null!==Ca&&(clearInterval(Ca),Ca=null),L&&(e=L,L=null,e()))}function b(e){a(e.instance)}function c(e){return Ga().then(function(g){return WebAssembly.instantiate(g,d)}).then(e,function(g){v("failed to asynchronously prepare wasm: "+g);x(g)})}var d={a:Bb};K++;f.monitorRunDependencies&&f.monitorRunDependencies(K);if(f.instantiateWasm)try{return f.instantiateWasm(d,a)}catch(e){return v("Module.instantiateWasm callback failed with error: "+
|
var Y=f.stackSave=function(){return(Y=f.stackSave=f.asm.X).apply(null,arguments)},Z=f.stackRestore=function(){return(Z=f.stackRestore=f.asm.Y).apply(null,arguments)},W=f._setThrew=function(){return(W=f._setThrew=f.asm.Z).apply(null,arguments)};f.dynCall_jiiii=function(){return(f.dynCall_jiiii=f.asm._).apply(null,arguments)};f.dynCall_jiji=function(){return(f.dynCall_jiji=f.asm.$).apply(null,arguments)};
|
||||||
e),!1}(function(){return w||"function"!==typeof WebAssembly.instantiateStreaming||Da()||"function"!==typeof fetch?c(b):fetch(M,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(g){v("wasm streaming compile failed: "+g);v("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ba);return{}})();
|
function sb(a,b){var c=Y();try{J.get(a)(b)}catch(d){Z(c);if(d!==d+0&&"longjmp"!==d)throw d;W(1,0)}}function rb(a,b,c){var d=Y();try{return J.get(a)(b,c)}catch(e){Z(d);if(e!==e+0&&"longjmp"!==e)throw e;W(1,0)}}function qb(a,b){var c=Y();try{return J.get(a)(b)}catch(d){Z(c);if(d!==d+0&&"longjmp"!==d)throw d;W(1,0)}}function ub(a,b,c,d){var e=Y();try{J.get(a)(b,c,d)}catch(g){Z(e);if(g!==g+0&&"longjmp"!==g)throw g;W(1,0)}}
|
||||||
var rb=f.___wasm_call_ctors=function(){return(rb=f.___wasm_call_ctors=f.asm.T).apply(null,arguments)},V=f._free=function(){return(V=f._free=f.asm.U).apply(null,arguments)},sb=f._malloc=function(){return(sb=f._malloc=f.asm.V).apply(null,arguments)},ib=f.___getTypeName=function(){return(ib=f.___getTypeName=f.asm.W).apply(null,arguments)};f.___embind_register_native_and_builtin_types=function(){return(f.___embind_register_native_and_builtin_types=f.asm.X).apply(null,arguments)};
|
function tb(a,b,c){var d=Y();try{J.get(a)(b,c)}catch(e){Z(d);if(e!==e+0&&"longjmp"!==e)throw e;W(1,0)}}var wb;L=function xb(){wb||yb();wb||(L=xb)};
|
||||||
var Ab=f.___errno_location=function(){return(Ab=f.___errno_location=f.asm.Y).apply(null,arguments)},X=f.stackSave=function(){return(X=f.stackSave=f.asm.Z).apply(null,arguments)},Y=f.stackRestore=function(){return(Y=f.stackRestore=f.asm._).apply(null,arguments)},W=f._setThrew=function(){return(W=f._setThrew=f.asm.$).apply(null,arguments)};f.dynCall_jiiii=function(){return(f.dynCall_jiiii=f.asm.aa).apply(null,arguments)};f.dynCall_jiji=function(){return(f.dynCall_jiji=f.asm.ba).apply(null,arguments)};
|
function yb(){function a(){if(!wb&&(wb=!0,f.calledRun=!0,!ia)){Fa(xa);aa(f);if(f.onRuntimeInitialized)f.onRuntimeInitialized();if(f.postRun)for("function"==typeof f.postRun&&(f.postRun=[f.postRun]);f.postRun.length;){var b=f.postRun.shift();ya.unshift(b)}Fa(ya)}}if(!(0<K)){if(f.preRun)for("function"==typeof f.preRun&&(f.preRun=[f.preRun]);f.preRun.length;)za();Fa(wa);0<K||(f.setStatus?(f.setStatus("Running..."),setTimeout(function(){setTimeout(function(){f.setStatus("")},1);a()},1)):a())}}f.run=yb;
|
||||||
function yb(a,b,c){var d=X();try{J.get(a)(b,c)}catch(e){Y(d);if(e!==e+0&&"longjmp"!==e)throw e;W(1,0)}}function xb(a,b){var c=X();try{J.get(a)(b)}catch(d){Y(c);if(d!==d+0&&"longjmp"!==d)throw d;W(1,0)}}function vb(a,b,c,d){var e=X();try{return J.get(a)(b,c,d)}catch(g){Y(e);if(g!==g+0&&"longjmp"!==g)throw g;W(1,0)}}function ub(a,b,c){var d=X();try{return J.get(a)(b,c)}catch(e){Y(d);if(e!==e+0&&"longjmp"!==e)throw e;W(1,0)}}
|
if(f.preInit)for("function"==typeof f.preInit&&(f.preInit=[f.preInit]);0<f.preInit.length;)f.preInit.pop()();yb();
|
||||||
function tb(a,b){var c=X();try{return J.get(a)(b)}catch(d){Y(c);if(d!==d+0&&"longjmp"!==d)throw d;W(1,0)}}function wb(a,b,c,d,e,g){var k=X();try{return J.get(a)(b,c,d,e,g)}catch(h){Y(k);if(h!==h+0&&"longjmp"!==h)throw h;W(1,0)}}function zb(a,b,c,d,e){var g=X();try{J.get(a)(b,c,d,e)}catch(k){Y(g);if(k!==k+0&&"longjmp"!==k)throw k;W(1,0)}}var Cb;L=function Db(){Cb||Eb();Cb||(L=Db)};
|
|
||||||
function Eb(){function a(){if(!Cb&&(Cb=!0,f.calledRun=!0,!fa)){Ha(ya);Ha(za);aa(f);if(f.onRuntimeInitialized)f.onRuntimeInitialized();if(f.postRun)for("function"==typeof f.postRun&&(f.postRun=[f.postRun]);f.postRun.length;){var b=f.postRun.shift();Aa.unshift(b)}Ha(Aa)}}if(!(0<K)){if(f.preRun)for("function"==typeof f.preRun&&(f.preRun=[f.preRun]);f.preRun.length;)Ba();Ha(xa);0<K||(f.setStatus?(f.setStatus("Running..."),setTimeout(function(){setTimeout(function(){f.setStatus("")},1);a()},1)):a())}}
|
|
||||||
f.run=Eb;if(f.preInit)for("function"==typeof f.preInit&&(f.preInit=[f.preInit]);0<f.preInit.length;)f.preInit.pop()();noExitRuntime=!0;Eb();
|
|
||||||
|
|
||||||
|
|
||||||
return Module.ready
|
return Module.ready
|
||||||
|
|||||||
Binary file not shown.
@@ -46,9 +46,19 @@ export class Options extends Component<Props, State> {
|
|||||||
const newOptions: EncodeOptions = {
|
const newOptions: EncodeOptions = {
|
||||||
// Copy over options the form doesn't currently care about, eg arithmetic
|
// Copy over options the form doesn't currently care about, eg arithmetic
|
||||||
...this.props.options,
|
...this.props.options,
|
||||||
|
uastc: inputFieldChecked(
|
||||||
|
form.uastc,
|
||||||
|
options.uastc,
|
||||||
|
),
|
||||||
|
mipmap: inputFieldChecked(
|
||||||
|
form.mipmap,
|
||||||
|
options.mipmap,
|
||||||
|
),
|
||||||
// .value
|
// .value
|
||||||
quality: inputFieldValueAsNumber(form.quality, options.quality),
|
quality: inputFieldValueAsNumber(form.quality, options.quality),
|
||||||
|
compression: inputFieldValueAsNumber(form.compression, options.compression),
|
||||||
};
|
};
|
||||||
|
console.log({newOptions});
|
||||||
this.props.onChange(newOptions);
|
this.props.onChange(newOptions);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -60,14 +70,25 @@ export class Options extends Component<Props, State> {
|
|||||||
<div class={style.optionOneCell}>
|
<div class={style.optionOneCell}>
|
||||||
<Range
|
<Range
|
||||||
name="quality"
|
name="quality"
|
||||||
min="0"
|
min="1"
|
||||||
max="4"
|
max="255"
|
||||||
value={options.quality}
|
value={options.quality}
|
||||||
onInput={this.onChange}
|
onInput={this.onChange}
|
||||||
>
|
>
|
||||||
Quality:
|
Quality:
|
||||||
</Range>
|
</Range>
|
||||||
</div>
|
</div>
|
||||||
|
<div class={style.optionOneCell}>
|
||||||
|
<Range
|
||||||
|
name="compression"
|
||||||
|
min="0"
|
||||||
|
max="4"
|
||||||
|
value={options.compression}
|
||||||
|
onInput={this.onChange}
|
||||||
|
>
|
||||||
|
Compression:
|
||||||
|
</Range>
|
||||||
|
</div>
|
||||||
<label class={style.optionReveal}>
|
<label class={style.optionReveal}>
|
||||||
<Revealer
|
<Revealer
|
||||||
checked={showAdvanced}
|
checked={showAdvanced}
|
||||||
@@ -75,7 +96,25 @@ export class Options extends Component<Props, State> {
|
|||||||
/>
|
/>
|
||||||
Advanced settings
|
Advanced settings
|
||||||
</label>
|
</label>
|
||||||
<Expander>{showAdvanced ? <div>Nothing here yet</div> : null}</Expander>
|
<Expander>{showAdvanced ? (<div>
|
||||||
|
<label class={style.optionToggle}>
|
||||||
|
UASTC
|
||||||
|
<Checkbox
|
||||||
|
name="uastc"
|
||||||
|
checked={options.uastc}
|
||||||
|
onChange={this.onChange}
|
||||||
|
/>
|
||||||
|
</label>
|
||||||
|
<label class={style.optionToggle}>
|
||||||
|
Embed Mipmaps
|
||||||
|
<Checkbox
|
||||||
|
name="mipmap"
|
||||||
|
checked={options.mipmap}
|
||||||
|
onChange={this.onChange}
|
||||||
|
/>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
</div>) : null}</Expander>
|
||||||
</form>
|
</form>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,5 +18,8 @@ export const label = 'Basis';
|
|||||||
export const mimeType = 'image/basisu';
|
export const mimeType = 'image/basisu';
|
||||||
export const extension = 'basis';
|
export const extension = 'basis';
|
||||||
export const defaultOptions: EncodeOptions = {
|
export const defaultOptions: EncodeOptions = {
|
||||||
quality: 2,
|
quality: 128,
|
||||||
|
compression: 2,
|
||||||
|
uastc: false,
|
||||||
|
mipmap: false,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user