@loaders.gl/textures 3.1.0-alpha.5 → 3.1.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/basis-loader.d.ts +1 -0
- package/dist/basis-loader.d.ts.map +1 -0
- package/dist/basis-loader.js +40 -0
- package/dist/basis-worker.js +675 -2
- package/dist/bundle.d.ts +1 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +2107 -0
- package/dist/compressed-texture-loader.d.ts +1 -0
- package/dist/compressed-texture-loader.d.ts.map +1 -0
- package/dist/compressed-texture-loader.js +64 -0
- package/dist/compressed-texture-worker.js +1179 -2
- package/dist/compressed-texture-writer.d.ts +1 -0
- package/dist/compressed-texture-writer.d.ts.map +1 -0
- package/dist/compressed-texture-writer.js +28 -0
- package/dist/crunch-loader.d.ts +1 -0
- package/dist/crunch-loader.d.ts.map +1 -0
- package/dist/crunch-loader.js +25 -0
- package/dist/crunch-worker.js +486 -2
- package/dist/es5/index.js +3 -3
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/{gl-constants.js → gl-extensions.js} +4 -4
- package/dist/es5/lib/gl-extensions.js.map +1 -0
- package/dist/es5/lib/parsers/basis-module-loader.js +1 -1
- package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -1
- package/dist/es5/lib/parsers/crunch-module-loader.js.map +1 -1
- package/dist/es5/lib/parsers/parse-basis.js +9 -9
- package/dist/es5/lib/parsers/parse-basis.js.map +1 -1
- package/dist/es5/lib/parsers/parse-crunch.js +4 -4
- package/dist/es5/lib/parsers/parse-crunch.js.map +1 -1
- package/dist/es5/lib/parsers/parse-dds.js +23 -23
- package/dist/es5/lib/parsers/parse-dds.js.map +1 -1
- package/dist/es5/lib/parsers/parse-ktx.js +2 -2
- package/dist/es5/lib/parsers/parse-ktx.js.map +1 -1
- package/dist/es5/lib/parsers/parse-npy.js +3 -1
- package/dist/es5/lib/parsers/parse-npy.js.map +1 -1
- package/dist/es5/lib/parsers/parse-pvr.js +28 -28
- package/dist/es5/lib/parsers/parse-pvr.js.map +1 -1
- package/dist/es5/lib/texture-api/async-deep-map.js.map +1 -1
- package/dist/es5/lib/texture-api/deep-load.js.map +1 -1
- package/dist/es5/lib/texture-api/generate-url.js +4 -12
- package/dist/es5/lib/texture-api/generate-url.js.map +1 -1
- package/dist/es5/lib/texture-api/load-image-array.js.map +1 -1
- package/dist/es5/lib/texture-api/load-image-cube.js.map +1 -1
- package/dist/es5/lib/texture-api/load-image.js +2 -5
- package/dist/es5/lib/texture-api/load-image.js.map +1 -1
- package/dist/es5/lib/texture-api/texture-api-types.js +2 -0
- package/dist/es5/lib/texture-api/texture-api-types.js.map +1 -0
- package/dist/es5/lib/utils/extract-mipmap-images.js.map +1 -1
- package/dist/es5/lib/utils/ktx-format-helper.js +67 -67
- package/dist/es5/lib/utils/ktx-format-helper.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/es5/libs/README.md +2 -2
- package/dist/es5/libs/basis_encoder.js +1 -1
- package/dist/es5/libs/basis_transcoder.js +1 -1
- package/dist/es5/libs/crunch.js +1 -0
- package/dist/es5/npy-loader.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/{gl-constants.js → gl-extensions.js} +2 -2
- package/dist/esm/lib/gl-extensions.js.map +1 -0
- package/dist/esm/lib/parsers/basis-module-loader.js +1 -1
- package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -1
- package/dist/esm/lib/parsers/crunch-module-loader.js.map +1 -1
- package/dist/esm/lib/parsers/parse-basis.js +8 -8
- package/dist/esm/lib/parsers/parse-basis.js.map +1 -1
- package/dist/esm/lib/parsers/parse-crunch.js +4 -4
- package/dist/esm/lib/parsers/parse-crunch.js.map +1 -1
- package/dist/esm/lib/parsers/parse-dds.js +23 -23
- package/dist/esm/lib/parsers/parse-dds.js.map +1 -1
- package/dist/esm/lib/parsers/parse-ktx.js +2 -2
- package/dist/esm/lib/parsers/parse-ktx.js.map +1 -1
- package/dist/esm/lib/parsers/parse-npy.js +3 -1
- package/dist/esm/lib/parsers/parse-npy.js.map +1 -1
- package/dist/esm/lib/parsers/parse-pvr.js +28 -28
- package/dist/esm/lib/parsers/parse-pvr.js.map +1 -1
- package/dist/esm/lib/texture-api/async-deep-map.js.map +1 -1
- package/dist/esm/lib/texture-api/deep-load.js.map +1 -1
- package/dist/esm/lib/texture-api/generate-url.js +5 -13
- package/dist/esm/lib/texture-api/generate-url.js.map +1 -1
- package/dist/esm/lib/texture-api/load-image-array.js.map +1 -1
- package/dist/esm/lib/texture-api/load-image-cube.js.map +1 -1
- package/dist/esm/lib/texture-api/load-image.js +2 -5
- package/dist/esm/lib/texture-api/load-image.js.map +1 -1
- package/dist/esm/lib/texture-api/texture-api-types.js +2 -0
- package/dist/esm/lib/texture-api/texture-api-types.js.map +1 -0
- package/dist/esm/lib/utils/extract-mipmap-images.js.map +1 -1
- package/dist/esm/lib/utils/ktx-format-helper.js +67 -67
- package/dist/esm/lib/utils/ktx-format-helper.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/esm/libs/README.md +2 -2
- package/dist/esm/libs/basis_encoder.js +1 -1
- package/dist/esm/libs/basis_transcoder.js +1 -1
- package/dist/esm/libs/crunch.js +1 -0
- package/dist/esm/npy-loader.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/ktx2-basis-universal-texture-writer.d.ts +1 -0
- package/dist/ktx2-basis-universal-texture-writer.d.ts.map +1 -0
- package/dist/ktx2-basis-universal-texture-writer.js +25 -0
- package/dist/lib/encoders/encode-ktx.d.ts +1 -0
- package/dist/lib/encoders/encode-ktx.d.ts.map +1 -0
- package/dist/lib/encoders/encode-ktx.js +10 -0
- package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts +1 -0
- package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -0
- package/dist/lib/encoders/encode-ktx2-basis-texture.js +41 -0
- package/dist/lib/encoders/encode-texture.d.ts +1 -0
- package/dist/lib/encoders/encode-texture.d.ts.map +1 -0
- package/dist/lib/encoders/encode-texture.js +30 -0
- package/dist/lib/{gl-constants.d.ts → gl-extensions.d.ts} +2 -1
- package/dist/lib/gl-extensions.d.ts.map +1 -0
- package/dist/lib/gl-extensions.js +72 -0
- package/dist/lib/parsers/basis-module-loader.d.ts +1 -0
- package/dist/lib/parsers/basis-module-loader.d.ts.map +1 -0
- package/dist/lib/parsers/basis-module-loader.js +114 -0
- package/dist/lib/parsers/crunch-module-loader.d.ts +1 -0
- package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -0
- package/dist/lib/parsers/crunch-module-loader.js +35 -0
- package/dist/lib/parsers/parse-basis.d.ts +1 -0
- package/dist/lib/parsers/parse-basis.d.ts.map +1 -0
- package/dist/lib/parsers/parse-basis.js +245 -0
- package/dist/lib/parsers/parse-compressed-texture.d.ts +1 -0
- package/dist/lib/parsers/parse-compressed-texture.d.ts.map +1 -0
- package/dist/lib/parsers/parse-compressed-texture.js +26 -0
- package/dist/lib/parsers/parse-crunch.d.ts +1 -0
- package/dist/lib/parsers/parse-crunch.d.ts.map +1 -0
- package/dist/lib/parsers/parse-crunch.js +105 -0
- package/dist/lib/parsers/parse-dds.d.ts +1 -0
- package/dist/lib/parsers/parse-dds.d.ts.map +1 -0
- package/dist/lib/parsers/parse-dds.js +108 -0
- package/dist/lib/parsers/parse-ktx.d.ts +3 -2
- package/dist/lib/parsers/parse-ktx.d.ts.map +1 -0
- package/dist/lib/parsers/parse-ktx.js +46 -0
- package/dist/lib/parsers/parse-npy.d.ts +8 -2
- package/dist/lib/parsers/parse-npy.d.ts.map +1 -0
- package/dist/lib/parsers/parse-npy.js +85 -0
- package/dist/lib/parsers/parse-pvr.d.ts +1 -0
- package/dist/lib/parsers/parse-pvr.d.ts.map +1 -0
- package/dist/lib/parsers/parse-pvr.js +250 -0
- package/dist/lib/texture-api/async-deep-map.d.ts +5 -2
- package/dist/lib/texture-api/async-deep-map.d.ts.map +1 -0
- package/dist/lib/texture-api/async-deep-map.js +41 -0
- package/dist/lib/texture-api/deep-load.d.ts +5 -2
- package/dist/lib/texture-api/deep-load.d.ts.map +1 -0
- package/dist/lib/texture-api/deep-load.js +16 -0
- package/dist/lib/texture-api/generate-url.d.ts +3 -1
- package/dist/lib/texture-api/generate-url.d.ts.map +1 -0
- package/dist/lib/texture-api/generate-url.js +17 -0
- package/dist/lib/texture-api/load-image-array.d.ts +4 -2
- package/dist/lib/texture-api/load-image-array.d.ts.map +1 -0
- package/dist/lib/texture-api/load-image-array.js +21 -0
- package/dist/lib/texture-api/load-image-cube.d.ts +12 -2
- package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -0
- package/dist/lib/texture-api/load-image-cube.js +47 -0
- package/dist/lib/texture-api/load-image.d.ts +7 -5
- package/dist/lib/texture-api/load-image.d.ts.map +1 -0
- package/dist/lib/texture-api/load-image.js +43 -0
- package/dist/lib/texture-api/texture-api-types.d.ts +10 -0
- package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -0
- package/dist/lib/texture-api/texture-api-types.js +3 -0
- package/dist/lib/utils/extract-mipmap-images.d.ts +2 -1
- package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -0
- package/dist/lib/utils/extract-mipmap-images.js +50 -0
- package/dist/lib/utils/ktx-format-helper.d.ts +4 -3
- package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -0
- package/dist/lib/utils/ktx-format-helper.js +125 -0
- package/dist/lib/utils/texture-formats.d.ts +1 -0
- package/dist/lib/utils/texture-formats.d.ts.map +1 -0
- package/dist/lib/utils/texture-formats.js +51 -0
- package/dist/lib/utils/version.d.ts +1 -0
- package/dist/lib/utils/version.d.ts.map +1 -0
- package/dist/lib/utils/version.js +8 -0
- package/dist/libs/README.md +2 -2
- package/dist/libs/basis_encoder.js +1 -1
- package/dist/libs/basis_transcoder.js +1 -1
- package/dist/libs/crunch.js +1 -0
- package/dist/npy-loader.d.ts +7 -3
- package/dist/npy-loader.d.ts.map +1 -0
- package/dist/npy-loader.js +34 -0
- package/dist/npy-worker.js +240 -2
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/workers/basis-worker.d.ts +1 -0
- package/dist/workers/basis-worker.d.ts.map +1 -0
- package/dist/workers/basis-worker.js +5 -0
- package/dist/workers/compressed-texture-worker.d.ts +1 -0
- package/dist/workers/compressed-texture-worker.d.ts.map +1 -0
- package/dist/workers/compressed-texture-worker.js +5 -0
- package/dist/workers/crunch-worker.d.ts +1 -0
- package/dist/workers/crunch-worker.d.ts.map +1 -0
- package/dist/workers/crunch-worker.js +14 -0
- package/dist/workers/npy-worker.d.ts +1 -0
- package/dist/workers/npy-worker.d.ts.map +1 -0
- package/dist/workers/npy-worker.js +5 -0
- package/package.json +10 -11
- package/src/index.ts +1 -1
- package/src/lib/{gl-constants.ts → gl-extensions.ts} +1 -1
- package/src/lib/parsers/crunch-module-loader.ts +1 -0
- package/src/lib/parsers/parse-basis.js +32 -8
- package/src/lib/parsers/parse-crunch.ts +4 -4
- package/src/lib/parsers/parse-dds.ts +29 -26
- package/src/lib/parsers/parse-ktx.js +3 -6
- package/src/lib/parsers/parse-ktx.ts +47 -0
- package/src/lib/parsers/parse-npy.js +3 -17
- package/src/lib/parsers/parse-npy.ts +98 -0
- package/src/lib/parsers/parse-pvr.ts +90 -48
- package/src/lib/texture-api/async-deep-map.ts +15 -8
- package/src/lib/texture-api/deep-load.ts +7 -3
- package/src/lib/texture-api/generate-url.ts +10 -8
- package/src/lib/texture-api/load-image-array.ts +8 -2
- package/src/lib/texture-api/load-image-cube.ts +18 -4
- package/src/lib/texture-api/load-image.ts +15 -5
- package/src/lib/texture-api/texture-api-types.ts +12 -0
- package/src/lib/utils/extract-mipmap-images.ts +16 -3
- package/src/lib/utils/ktx-format-helper.ts +71 -71
- package/src/libs/README.md +2 -2
- package/src/libs/basis_encoder.js +1 -1
- package/src/libs/basis_transcoder.js +1 -1
- package/src/libs/crunch.js +1 -0
- package/src/npy-loader.ts +2 -2
- package/dist/basis-worker.js.map +0 -1
- package/dist/compressed-texture-worker.js.map +0 -1
- package/dist/crunch-worker.js.map +0 -1
- package/dist/dist.min.js +0 -2
- package/dist/dist.min.js.map +0 -1
- package/dist/es5/lib/gl-constants.js.map +0 -1
- package/dist/esm/lib/gl-constants.js.map +0 -1
- package/dist/npy-worker.js.map +0 -1
package/dist/basis-worker.js
CHANGED
|
@@ -1,2 +1,675 @@
|
|
|
1
|
-
!function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=18)}([function(t,e,r){t.exports=r(10)},function(t,e){function r(t,e,r,n,o,a,i){try{var s=t[a](i),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,o)}t.exports=function(t){return function(){var e=this,n=arguments;return new Promise((function(o,a){var i=t.apply(e,n);function s(t){r(i,o,a,s,u,"next",t)}function u(t){r(i,o,a,s,u,"throw",t)}s(void 0)}))}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){"use strict";(function(t,n){r.d(e,"a",(function(){return i})),r.d(e,"b",(function(){return s})),r.d(e,"c",(function(){return u}));var o=r(3),a={self:"undefined"!=typeof self&&self,window:"undefined"!=typeof window&&window,global:void 0!==t&&t,document:"undefined"!=typeof document&&document},i=a.global||a.self||a.window||{},s="object"!==(void 0===n?"undefined":r.n(o)()(n))||"[object process]"!==String(n)||n.browser,u="function"==typeof importScripts,c=("undefined"!=typeof window&&window.orientation,void 0!==n&&n.version&&/v([0-9]*)/.exec(n.version));c&&parseFloat(c[1])}).call(this,r(16),r(17))},function(t,e){function r(e){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(t.exports=r=function(t){return typeof t},t.exports.default=t.exports,t.exports.__esModule=!0):(t.exports=r=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.default=t.exports,t.exports.__esModule=!0),r(e)}t.exports=r,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){},function(t,e){t.exports=function(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){var n=r(11),o=r(12),a=r(13),i=r(15);t.exports=function(t,e){return n(t)||o(t,e)||a(t,e)||i()},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){function r(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}t.exports=function(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),t},t.exports.default=t.exports,t.exports.__esModule=!0},,function(t,e,r){var n=function(t){"use strict";var e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function u(t,e,r,n){var o=e&&e.prototype instanceof l?e:l,a=Object.create(o.prototype),i=new g(n||[]);return a._invoke=function(t,e,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return A()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=v(i,r);if(s){if(s===f)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=c(t,e,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===f)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}(t,r,i),a}function c(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=u;var f={};function l(){}function p(){}function _(){}var d={};d[o]=function(){return this};var h=Object.getPrototypeOf,S=h&&h(h(x([])));S&&S!==e&&r.call(S,o)&&(d=S);var m=_.prototype=l.prototype=Object.create(d);function E(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function y(t,e){var n;this._invoke=function(o,a){function i(){return new e((function(n,i){!function n(o,a,i,s){var u=c(t[o],t,a);if("throw"!==u.type){var f=u.arg,l=f.value;return l&&"object"==typeof l&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,i,s)}),(function(t){n("throw",t,i,s)})):e.resolve(l).then((function(t){f.value=t,i(f)}),(function(t){return n("throw",t,i,s)}))}s(u.arg)}(o,a,n,i)}))}return n=n?n.then(i,i):i()}}function v(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,v(t,e),"throw"===e.method))return f;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var n=c(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,f;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,f):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,f)}function b(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function R(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function g(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(b,this),this.reset(!0)}function x(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,a=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return a.next=a}}return{next:A}}function A(){return{value:void 0,done:!0}}return p.prototype=m.constructor=_,_.constructor=p,p.displayName=s(_,i,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===p||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,_):(t.__proto__=_,s(t,i,"GeneratorFunction")),t.prototype=Object.create(m),t},t.awrap=function(t){return{__await:t}},E(y.prototype),y.prototype[a]=function(){return this},t.AsyncIterator=y,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new y(u(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},E(m),s(m,i,"Generator"),m[o]=function(){return this},m.toString=function(){return"[object Generator]"},t.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},t.values=x,g.prototype={constructor:g,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(R),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return i.type="throw",i.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(s&&u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,f):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),f},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),R(r),f}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;R(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:x(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},t}(t.exports);try{regeneratorRuntime=n}catch(t){Function("r","regeneratorRuntime = r")(n)}},function(t,e){t.exports=function(t){if(Array.isArray(t))return t},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t,e){var r=t&&("undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"]);if(null!=r){var n,o,a=[],i=!0,s=!1;try{for(r=r.call(t);!(i=(n=r.next()).done)&&(a.push(n.value),!e||a.length!==e);i=!0);}catch(t){s=!0,o=t}finally{try{i||null==r.return||r.return()}finally{if(s)throw o}}return a}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e,r){var n=r(14);t.exports=function(t,e){if(t){if("string"==typeof t)return n(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){t.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e){var r,n,o=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(t){if(r===setTimeout)return setTimeout(t,0);if((r===a||!r)&&setTimeout)return r=setTimeout,setTimeout(t,0);try{return r(t,0)}catch(e){try{return r.call(null,t,0)}catch(e){return r.call(this,t,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:a}catch(t){r=a}try{n="function"==typeof clearTimeout?clearTimeout:i}catch(t){n=i}}();var u,c=[],f=!1,l=-1;function p(){f&&u&&(f=!1,u.length?c=u.concat(c):l=-1,c.length&&_())}function _(){if(!f){var t=s(p);f=!0;for(var e=c.length;e;){for(u=c,c=[];++l<e;)u&&u[l].run();l=-1,e=c.length}u=null,f=!1,function(t){if(n===clearTimeout)return clearTimeout(t);if((n===i||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(t);try{n(t)}catch(e){try{return n.call(null,t)}catch(e){return n.call(this,t)}}}(t)}}function d(t,e){this.fun=t,this.array=e}function h(){}o.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)e[r-1]=arguments[r];c.push(new d(t,e)),1!==c.length||f||s(_)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=h,o.addListener=h,o.once=h,o.off=h,o.removeListener=h,o.removeAllListeners=h,o.emit=h,o.prependListener=h,o.prependOnceListener=h,o.listeners=function(t){return[]},o.binding=function(t){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(t,e,r){"use strict";r.r(e);var n=r(5),o=r.n(n),a=r(1),i=r.n(a),s=r(0),u=r.n(s),c=r(7),f=r.n(c),l=r(8),p=r.n(l),_=r(3),d=r.n(_);function h(t){return!!t&&(t instanceof ArrayBuffer||("undefined"!=typeof MessagePort&&t instanceof MessagePort||("undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas)))}var S=new Map,m=function(){function t(){f()(this,t)}return p()(t,null,[{key:"onmessage",set:function(t){self.onmessage=function(e){if(E(e)){var r=e.data,n=r.type,o=r.payload;t(n,o)}}}},{key:"addEventListener",value:function(t){var e=S.get(t);e||(e=function(e){if(E(e)){var r=e.data,n=r.type,o=r.payload;t(n,o)}}),self.addEventListener("message",e)}},{key:"removeEventListener",value:function(t){var e=S.get(t);S.delete(t),self.removeEventListener("message",e)}},{key:"postMessage",value:function(t,e){if(self){var r={source:"loaders.gl",type:t,payload:e},n=function t(e){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0,o=n||new Set;if(e){if(h(e))o.add(e);else if(h(e.buffer))o.add(e.buffer);else if(ArrayBuffer.isView(e));else if(r&&"object"===d()(e))for(var a in e)t(e[a],r,o)}else;return void 0===n?Array.from(o):[]}(e);self.postMessage(r,n)}}}]),t}();function E(t){var e=t.type,r=t.data;return"message"===e&&r&&"string"==typeof r.source&&r.source.startsWith("loaders.gl")}function y(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function v(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?y(Object(r),!0).forEach((function(e){o()(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var b=0;function R(t,e){return new Promise((function(r,n){var o=b++;m.addEventListener((function t(e,a){if(a.id===o)switch(e){case"done":m.removeEventListener(t),r(a.result);break;case"error":m.removeEventListener(t),n(a.error)}}));var a={id:o,input:t,options:e};m.postMessage("process",a)}))}function g(t){return x.apply(this,arguments)}function x(){return(x=i()(u.a.mark((function t(e){var r,n,o,a,i,s,c;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.loader,n=e.arrayBuffer,o=e.options,a=e.context,!r.parseSync&&!r.parse){t.next=6;break}i=n,s=r.parseSync||r.parse,t.next=13;break;case 6:if(!r.parseTextSync){t.next=12;break}c=new TextDecoder,i=c.decode(n),s=r.parseTextSync,t.next=13;break;case 12:throw new Error("Could not load data with ".concat(r.name," loader"));case 13:return o=v(v({},o),{},{modules:r&&r.options&&r.options.modules||{},worker:!1}),t.next=16,s(i,v({},o),a,r);case 16:return t.abrupt("return",t.sent);case 17:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var A=r(6),P=r.n(A),C=r(2),w=r(4);var T={};function O(t){return G.apply(this,arguments)}function G(){return(G=i()(u.a.mark((function t(e){var r,n,o=arguments;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=o.length>1&&void 0!==o[1]?o[1]:null,n=o.length>2&&void 0!==o[2]?o[2]:{},r&&(e=B(e,r,n)),T[e]=T[e]||D(e),t.next=6,T[e];case 6:return t.abrupt("return",t.sent);case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function B(t,e,r){if(t.startsWith("http"))return t;var n=r.modules||{};return n[t]?n[t]:C.b?r.CDN?(function(t,e){if(!t)throw new Error(e||"loaders.gl assertion failed.")}(r.CDN.startsWith("http")),"".concat(r.CDN,"/").concat(e,"@").concat("3.1.0-alpha.5","/dist/libs/").concat(t)):C.c?"../src/libs/".concat(t):"modules/".concat(e,"/src/libs/").concat(t):"modules/".concat(e,"/dist/libs/").concat(t)}function D(t){return M.apply(this,arguments)}function M(){return(M=i()(u.a.mark((function t(e){var r,n,o;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!e.endsWith("wasm")){t.next=7;break}return t.next=3,fetch(e);case 3:return r=t.sent,t.next=6,r.arrayBuffer();case 6:return t.abrupt("return",t.sent);case 7:if(C.b){t.next=14;break}if(t.t0=w.requireFromFile,!t.t0){t.next=13;break}return t.next=12,w.requireFromFile(e);case 12:t.t0=t.sent;case 13:return t.abrupt("return",t.t0);case 14:if(!C.c){t.next=16;break}return t.abrupt("return",importScripts(e));case 16:return t.next=18,fetch(e);case 18:return n=t.sent,t.next=21,n.text();case 21:return o=t.sent,t.abrupt("return",L(o,e));case 23:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function L(t,e){if(!C.b)return w.requireFromString&&w.requireFromString(t,e);if(C.c)return eval.call(C.a,t),null;var r=document.createElement("script");r.id=e;try{r.appendChild(document.createTextNode(t))}catch(e){r.text=t}return document.body.appendChild(r),null}var I,H,X="https://unpkg.com/@loaders.gl/textures@".concat("3.1.0-alpha.5","/dist/libs/basis_encoder.wasm"),F="https://unpkg.com/@loaders.gl/textures@".concat("3.1.0-alpha.5","/dist/libs/basis_encoder.js");function j(t){return k.apply(this,arguments)}function k(){return(k=i()(u.a.mark((function t(e){var r;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!(r=e.modules||{}).basis){t.next=3;break}return t.abrupt("return",r.basis);case 3:return I=I||N(e),t.next=6,I;case 6:return t.abrupt("return",t.sent);case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function N(t){return K.apply(this,arguments)}function K(){return(K=i()(u.a.mark((function t(e){var r,n,o,a;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=null,n=null,t.t0=Promise,t.next=5,O("basis_transcoder.js","textures",e);case 5:return t.t1=t.sent,t.next=8,O("basis_transcoder.wasm","textures",e);case 8:return t.t2=t.sent,t.t3=[t.t1,t.t2],t.next=12,t.t0.all.call(t.t0,t.t3);case 12:return o=t.sent,a=P()(o,2),r=a[0],n=a[1],r=r||globalThis.BASIS,t.next=19,U(r,n);case 19:return t.abrupt("return",t.sent);case 20:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function U(t,e){var r={};return e&&(r.wasmBinary=e),new Promise((function(e){t(r).then((function(t){var r=t.BasisFile;(0,t.initializeBasis)(),e({BasisFile:r})}))}))}function W(t){return V.apply(this,arguments)}function V(){return(V=i()(u.a.mark((function t(e){var r;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!(r=e.modules||{}).basisEncoder){t.next=3;break}return t.abrupt("return",r.basisEncoder);case 3:return H=H||Z(e),t.next=6,H;case 6:return t.abrupt("return",t.sent);case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function Z(t){return q.apply(this,arguments)}function q(){return(q=i()(u.a.mark((function t(e){var r,n,o,a;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=null,n=null,t.t0=Promise,t.next=5,O(F,"textures",e);case 5:return t.t1=t.sent,t.next=8,O(X,"textures",e);case 8:return t.t2=t.sent,t.t3=[t.t1,t.t2],t.next=12,t.t0.all.call(t.t0,t.t3);case 12:return o=t.sent,a=P()(o,2),r=a[0],n=a[1],r=r||globalThis.BASIS,t.next=19,z(r,n);case 19:return t.abrupt("return",t.sent);case 20:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function z(t,e){var r={};return e&&(r.wasmBinary=e),new Promise((function(e){t(r).then((function(t){var r=t.BasisFile,n=t.KTX2File,o=t.initializeBasis,a=t.BasisEncoder;o(),e({BasisFile:r,KTX2File:n,BasisEncoder:a})}))}))}var Y={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_RGBA8_ETC2_EAC:37493,COMPRESSED_SRGB8_ETC2:37494,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37495,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37496,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37497,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGB_ATC_WEBGL:35986,COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL:35987,COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL:34798,COMPRESSED_RGBA_ASTC_4X4_KHR:37808,COMPRESSED_RGBA_ASTC_5X4_KHR:37809,COMPRESSED_RGBA_ASTC_5X5_KHR:37810,COMPRESSED_RGBA_ASTC_6X5_KHR:37811,COMPRESSED_RGBA_ASTC_6X6_KHR:37812,COMPRESSED_RGBA_ASTC_8X5_KHR:37813,COMPRESSED_RGBA_ASTC_8X6_KHR:37814,COMPRESSED_RGBA_ASTC_8X8_KHR:37815,COMPRESSED_RGBA_ASTC_10X5_KHR:37816,COMPRESSED_RGBA_ASTC_10X6_KHR:37817,COMPRESSED_RGBA_ASTC_10X8_KHR:37818,COMPRESSED_RGBA_ASTC_10X10_KHR:37819,COMPRESSED_RGBA_ASTC_12X10_KHR:37820,COMPRESSED_RGBA_ASTC_12X12_KHR:37821,COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR:37840,COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR:37841,COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR:37842,COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR:37843,COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR:37844,COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR:37845,COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR:37846,COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR:37847,COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR:37848,COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR:37849,COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR:37850,COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR:37851,COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR:37852,COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR:37853,COMPRESSED_RED_RGTC1_EXT:36283,COMPRESSED_SIGNED_RED_RGTC1_EXT:36284,COMPRESSED_RED_GREEN_RGTC2_EXT:36285,COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT:36286,COMPRESSED_SRGB_S3TC_DXT1_EXT:35916,COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:35917,COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:35918,COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:35919};function $(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return J(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return J(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return i=t.done,t},e:function(t){s=!0,a=t},f:function(){try{i||null==r.return||r.return()}finally{if(s)throw a}}}}function J(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var Q=["","WEBKIT_","MOZ_"],tt={WEBGL_compressed_texture_s3tc:"dxt",WEBGL_compressed_texture_s3tc_srgb:"dxt-srgb",WEBGL_compressed_texture_etc1:"etc1",WEBGL_compressed_texture_etc:"etc2",WEBGL_compressed_texture_pvrtc:"pvrtc",WEBGL_compressed_texture_atc:"atc",WEBGL_compressed_texture_astc:"astc",EXT_texture_compression_rgtc:"rgtc"},et=null;function rt(t){if(!et){t=t||function(){try{return document.createElement("canvas").getContext("webgl")}catch(t){return null}}()||void 0,et=new Set;var e,r=$(Q);try{for(r.s();!(e=r.n()).done;){var n=e.value;for(var o in tt)if(t&&t.getExtension("".concat(n).concat(o))){var a=tt[o];et.add(a)}}}catch(t){r.e(t)}finally{r.f()}}return et}new Uint8Array([0]);var nt,ot,at,it,st,ut,ct,ft;!function(t){t[t.NONE=0]="NONE",t[t.BASISLZ=1]="BASISLZ",t[t.ZSTD=2]="ZSTD",t[t.ZLIB=3]="ZLIB"}(nt||(nt={})),function(t){t[t.BASICFORMAT=0]="BASICFORMAT"}(ot||(ot={})),function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.ETC1S=163]="ETC1S",t[t.UASTC=166]="UASTC"}(at||(at={})),function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.SRGB=1]="SRGB"}(it||(it={})),function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.LINEAR=1]="LINEAR",t[t.SRGB=2]="SRGB",t[t.ITU=3]="ITU",t[t.NTSC=4]="NTSC",t[t.SLOG=5]="SLOG",t[t.SLOG2=6]="SLOG2"}(st||(st={})),function(t){t[t.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",t[t.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(ut||(ut={})),function(t){t[t.RGB=0]="RGB",t[t.RRR=3]="RRR",t[t.GGG=4]="GGG",t[t.AAA=15]="AAA"}(ct||(ct={})),function(t){t[t.RGB=0]="RGB",t[t.RGBA=3]="RGBA",t[t.RRR=4]="RRR",t[t.RRRG=5]="RRRG"}(ft||(ft={}));var lt=[171,75,84,88,32,50,48,187,13,10,26,10];function pt(t){var e=new Uint8Array(t.buffer||t,t.byteOffset||0,lt.length);return!(e[0]!==lt[0]||e[1]!==lt[1]||e[2]!==lt[2]||e[3]!==lt[3]||e[4]!==lt[4]||e[5]!==lt[5]||e[6]!==lt[6]||e[7]!==lt[7]||e[8]!==lt[8]||e[9]!==lt[9]||e[10]!==lt[10]||e[11]!==lt[11])}var _t={etc1:{basisFormat:0,compressed:!0,format:Y.COMPRESSED_RGB_ETC1_WEBGL},etc2:{basisFormat:1,compressed:!0},bc1:{basisFormat:2,compressed:!0,format:Y.COMPRESSED_RGB_S3TC_DXT1_EXT},bc3:{basisFormat:3,compressed:!0,format:Y.COMPRESSED_RGBA_S3TC_DXT5_EXT},bc4:{basisFormat:4,compressed:!0},bc5:{basisFormat:5,compressed:!0},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0},"bc7-m5":{basisFormat:7,compressed:!0},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:Y.COMPRESSED_RGB_PVRTC_4BPPV1_IMG},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:Y.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG},"astc-4x4":{basisFormat:10,compressed:!0,format:Y.COMPRESSED_RGBA_ASTC_4X4_KHR},"atc-rgb":{basisFormat:11,compressed:!0},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0},rgba32:{basisFormat:13,compressed:!1},rgb565:{basisFormat:14,compressed:!1},bgr565:{basisFormat:15,compressed:!1},rgba4444:{basisFormat:16,compressed:!1}};function dt(){return(dt=i()(u.a.mark((function t(e,r){var n,o,a,i,s,c;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("auto"!==r.basis.containerFormat){t.next=11;break}if(!pt(e)){t.next=6;break}return t.next=4,W(r);case 4:return n=t.sent,t.abrupt("return",mt(n.KTX2File,e,r));case 6:return t.next=8,j(r);case 8:return o=t.sent,a=o.BasisFile,t.abrupt("return",ht(a,e,r));case 11:t.t0=r.basis.module,t.next="encoder"===t.t0?14:(t.t0,22);break;case 14:return t.next=16,W(r);case 16:i=t.sent,t.t1=r.basis.containerFormat,t.next="ktx2"===t.t1?20:(t.t1,21);break;case 20:return t.abrupt("return",mt(i.KTX2File,e,r));case 21:return t.abrupt("return",ht(i.BasisFile,e,r));case 22:return t.next=24,j(r);case 24:return s=t.sent,c=s.BasisFile,t.abrupt("return",ht(c,e,r));case 27:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function ht(t,e,r){var n=new t(new Uint8Array(e));try{if(!n.startTranscoding())return null;for(var o=n.getNumImages(),a=[],i=0;i<o;i++){for(var s=n.getNumLevels(i),u=[],c=0;c<s;c++)u.push(St(n,i,c,r));a.push(u)}return a}finally{n.close(),n.delete()}}function St(t,e,r,n){var o=t.getImageWidth(e,r),a=t.getImageHeight(e,r),i=t.getHasAlpha(),s=yt(n,i),u=s.compressed,c=s.format,f=s.basisFormat,l=t.getImageTranscodedSizeInBytes(e,r,f),p=new Uint8Array(l);return t.transcodeImage(p,e,r,f,0,0)?{width:o,height:a,data:p,compressed:u,hasAlpha:i,format:c}:null}function mt(t,e,r){var n=new t(new Uint8Array(e));try{if(!n.startTranscoding())return null;for(var o=n.getLevels(),a=[],i=0;i<o;i++){a.push(Et(n,i,r));break}return a}finally{n.close(),n.delete()}}function Et(t,e,r){var n=t.getImageLevelInfo(e,0,0),o=n.alphaFlag,a=n.height,i=n.width,s=yt(r,o),u=s.compressed,c=s.format,f=s.basisFormat,l=t.getImageTranscodedSizeInBytes(e,0,0,f),p=new Uint8Array(l);return t.transcodeImage(p,e,0,0,f,0,-1,-1)?{width:i,height:a,data:p,compressed:u,alphaFlag:o,format:c}:null}function yt(t,e){var r=t&&t.basis&&t.basis.format;return"auto"===r&&(r=function(){var t=rt();if(t.has("astc"))return"astc-4x4";if(t.has("dxt"))return{alpha:"bc3",noAlpha:"bc1"};if(t.has("pvrtc"))return{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"};if(t.has("etc1"))return"etc1";if(t.has("etc2"))return"etc2";return"rgb565"}()),"object"===d()(r)&&(r=e?r.alpha:r.noAlpha),r=r.toLowerCase(),_t[r]}function vt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function bt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?vt(Object(r),!0).forEach((function(e){o()(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):vt(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var Rt,gt={name:"Basis",id:"basis",module:"textures",version:"3.1.0-alpha.5",worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",libraryPath:"libs/",containerFormat:"auto",module:"transcoder"}}},xt=bt(bt({},gt),{},{parse:function(t,e){return dt.apply(this,arguments)}});Rt=xt,"undefined"!=typeof self&&(m.onmessage=function(){var t=i()(u.a.mark((function t(e,r){var n,o,a,i,s;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:t.t0=e,t.next="process"===t.t0?3:16;break;case 3:return t.prev=3,n=r.input,o=r.options,a=void 0===o?{}:o,t.next=7,g({loader:Rt,arrayBuffer:n,options:a,context:{parse:R}});case 7:i=t.sent,m.postMessage("done",{result:i}),t.next=15;break;case 11:t.prev=11,t.t1=t.catch(3),s=t.t1 instanceof Error?t.t1.message:"",m.postMessage("error",{error:s});case 15:return t.abrupt("break",16);case 16:case"end":return t.stop()}}),t,null,[[3,11]])})));return function(e,r){return t.apply(this,arguments)}}())}]);
|
|
2
|
-
|
|
1
|
+
(() => {
|
|
2
|
+
// ../worker-utils/src/lib/env-utils/version.ts
|
|
3
|
+
var DEFAULT_VERSION = "beta";
|
|
4
|
+
var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : DEFAULT_VERSION;
|
|
5
|
+
if (typeof __VERSION__ === "undefined") {
|
|
6
|
+
console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// ../worker-utils/src/lib/env-utils/assert.ts
|
|
10
|
+
function assert(condition, message) {
|
|
11
|
+
if (!condition) {
|
|
12
|
+
throw new Error(message || "loaders.gl assertion failed.");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// ../worker-utils/src/lib/env-utils/globals.ts
|
|
17
|
+
var globals = {
|
|
18
|
+
self: typeof self !== "undefined" && self,
|
|
19
|
+
window: typeof window !== "undefined" && window,
|
|
20
|
+
global: typeof global !== "undefined" && global,
|
|
21
|
+
document: typeof document !== "undefined" && document
|
|
22
|
+
};
|
|
23
|
+
var self_ = globals.self || globals.window || globals.global || {};
|
|
24
|
+
var window_ = globals.window || globals.self || globals.global || {};
|
|
25
|
+
var global_ = globals.global || globals.self || globals.window || {};
|
|
26
|
+
var document_ = globals.document || {};
|
|
27
|
+
var isBrowser = typeof process !== "object" || String(process) !== "[object process]" || process.browser;
|
|
28
|
+
var isWorker = typeof importScripts === "function";
|
|
29
|
+
var isMobile = typeof window !== "undefined" && typeof window.orientation !== "undefined";
|
|
30
|
+
var matches = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
|
|
31
|
+
var nodeVersion = matches && parseFloat(matches[1]) || 0;
|
|
32
|
+
|
|
33
|
+
// ../worker-utils/src/lib/worker-utils/get-transfer-list.ts
|
|
34
|
+
function getTransferList(object, recursive = true, transfers) {
|
|
35
|
+
const transfersSet = transfers || new Set();
|
|
36
|
+
if (!object) {
|
|
37
|
+
} else if (isTransferable(object)) {
|
|
38
|
+
transfersSet.add(object);
|
|
39
|
+
} else if (isTransferable(object.buffer)) {
|
|
40
|
+
transfersSet.add(object.buffer);
|
|
41
|
+
} else if (ArrayBuffer.isView(object)) {
|
|
42
|
+
} else if (recursive && typeof object === "object") {
|
|
43
|
+
for (const key in object) {
|
|
44
|
+
getTransferList(object[key], recursive, transfersSet);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return transfers === void 0 ? Array.from(transfersSet) : [];
|
|
48
|
+
}
|
|
49
|
+
function isTransferable(object) {
|
|
50
|
+
if (!object) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
if (object instanceof ArrayBuffer) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
if (typeof MessagePort !== "undefined" && object instanceof MessagePort) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
if (typeof ImageBitmap !== "undefined" && object instanceof ImageBitmap) {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
if (typeof OffscreenCanvas !== "undefined" && object instanceof OffscreenCanvas) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// ../worker-utils/src/lib/worker-farm/worker-body.ts
|
|
69
|
+
var onMessageWrapperMap = new Map();
|
|
70
|
+
var WorkerBody = class {
|
|
71
|
+
static set onmessage(onMessage) {
|
|
72
|
+
self.onmessage = (message) => {
|
|
73
|
+
if (!isKnownMessage(message)) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const { type, payload } = message.data;
|
|
77
|
+
onMessage(type, payload);
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
static addEventListener(onMessage) {
|
|
81
|
+
let onMessageWrapper = onMessageWrapperMap.get(onMessage);
|
|
82
|
+
if (!onMessageWrapper) {
|
|
83
|
+
onMessageWrapper = (message) => {
|
|
84
|
+
if (!isKnownMessage(message)) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const { type, payload } = message.data;
|
|
88
|
+
onMessage(type, payload);
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
self.addEventListener("message", onMessageWrapper);
|
|
92
|
+
}
|
|
93
|
+
static removeEventListener(onMessage) {
|
|
94
|
+
const onMessageWrapper = onMessageWrapperMap.get(onMessage);
|
|
95
|
+
onMessageWrapperMap.delete(onMessage);
|
|
96
|
+
self.removeEventListener("message", onMessageWrapper);
|
|
97
|
+
}
|
|
98
|
+
static postMessage(type, payload) {
|
|
99
|
+
if (self) {
|
|
100
|
+
const data = { source: "loaders.gl", type, payload };
|
|
101
|
+
const transferList = getTransferList(payload);
|
|
102
|
+
self.postMessage(data, transferList);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
function isKnownMessage(message) {
|
|
107
|
+
const { type, data } = message;
|
|
108
|
+
return type === "message" && data && typeof data.source === "string" && data.source.startsWith("loaders.gl");
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// ../worker-utils/src/lib/library-utils/library-utils.ts
|
|
112
|
+
var LATEST = "beta";
|
|
113
|
+
var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
|
|
114
|
+
var loadLibraryPromises = {};
|
|
115
|
+
async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
|
|
116
|
+
if (moduleName) {
|
|
117
|
+
libraryUrl = getLibraryUrl(libraryUrl, moduleName, options);
|
|
118
|
+
}
|
|
119
|
+
loadLibraryPromises[libraryUrl] = loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);
|
|
120
|
+
return await loadLibraryPromises[libraryUrl];
|
|
121
|
+
}
|
|
122
|
+
function getLibraryUrl(library, moduleName, options) {
|
|
123
|
+
if (library.startsWith("http")) {
|
|
124
|
+
return library;
|
|
125
|
+
}
|
|
126
|
+
const modules = options.modules || {};
|
|
127
|
+
if (modules[library]) {
|
|
128
|
+
return modules[library];
|
|
129
|
+
}
|
|
130
|
+
if (!isBrowser) {
|
|
131
|
+
return `modules/${moduleName}/dist/libs/${library}`;
|
|
132
|
+
}
|
|
133
|
+
if (options.CDN) {
|
|
134
|
+
assert(options.CDN.startsWith("http"));
|
|
135
|
+
return `${options.CDN}/${moduleName}@${VERSION2}/dist/libs/${library}`;
|
|
136
|
+
}
|
|
137
|
+
if (isWorker) {
|
|
138
|
+
return `../src/libs/${library}`;
|
|
139
|
+
}
|
|
140
|
+
return `modules/${moduleName}/src/libs/${library}`;
|
|
141
|
+
}
|
|
142
|
+
async function loadLibraryFromFile(libraryUrl) {
|
|
143
|
+
if (libraryUrl.endsWith("wasm")) {
|
|
144
|
+
const response2 = await fetch(libraryUrl);
|
|
145
|
+
return await response2.arrayBuffer();
|
|
146
|
+
}
|
|
147
|
+
if (!isBrowser) {
|
|
148
|
+
return node.requireFromFile && await node.requireFromFile(libraryUrl);
|
|
149
|
+
}
|
|
150
|
+
if (isWorker) {
|
|
151
|
+
return importScripts(libraryUrl);
|
|
152
|
+
}
|
|
153
|
+
const response = await fetch(libraryUrl);
|
|
154
|
+
const scriptSource = await response.text();
|
|
155
|
+
return loadLibraryFromString(scriptSource, libraryUrl);
|
|
156
|
+
}
|
|
157
|
+
function loadLibraryFromString(scriptSource, id) {
|
|
158
|
+
if (!isBrowser) {
|
|
159
|
+
return node.requireFromString && node.requireFromString(scriptSource, id);
|
|
160
|
+
}
|
|
161
|
+
if (isWorker) {
|
|
162
|
+
eval.call(global_, scriptSource);
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
const script = document.createElement("script");
|
|
166
|
+
script.id = id;
|
|
167
|
+
try {
|
|
168
|
+
script.appendChild(document.createTextNode(scriptSource));
|
|
169
|
+
} catch (e) {
|
|
170
|
+
script.text = scriptSource;
|
|
171
|
+
}
|
|
172
|
+
document.body.appendChild(script);
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
|
|
177
|
+
var requestId = 0;
|
|
178
|
+
function createLoaderWorker(loader) {
|
|
179
|
+
if (typeof self === "undefined") {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
WorkerBody.onmessage = async (type, payload) => {
|
|
183
|
+
switch (type) {
|
|
184
|
+
case "process":
|
|
185
|
+
try {
|
|
186
|
+
const { input, options = {} } = payload;
|
|
187
|
+
const result = await parseData({
|
|
188
|
+
loader,
|
|
189
|
+
arrayBuffer: input,
|
|
190
|
+
options,
|
|
191
|
+
context: {
|
|
192
|
+
parse: parseOnMainThread
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
WorkerBody.postMessage("done", { result });
|
|
196
|
+
} catch (error) {
|
|
197
|
+
const message = error instanceof Error ? error.message : "";
|
|
198
|
+
WorkerBody.postMessage("error", { error: message });
|
|
199
|
+
}
|
|
200
|
+
break;
|
|
201
|
+
default:
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
function parseOnMainThread(arrayBuffer, options) {
|
|
206
|
+
return new Promise((resolve, reject) => {
|
|
207
|
+
const id = requestId++;
|
|
208
|
+
const onMessage = (type, payload2) => {
|
|
209
|
+
if (payload2.id !== id) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
switch (type) {
|
|
213
|
+
case "done":
|
|
214
|
+
WorkerBody.removeEventListener(onMessage);
|
|
215
|
+
resolve(payload2.result);
|
|
216
|
+
break;
|
|
217
|
+
case "error":
|
|
218
|
+
WorkerBody.removeEventListener(onMessage);
|
|
219
|
+
reject(payload2.error);
|
|
220
|
+
break;
|
|
221
|
+
default:
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
WorkerBody.addEventListener(onMessage);
|
|
225
|
+
const payload = { id, input: arrayBuffer, options };
|
|
226
|
+
WorkerBody.postMessage("process", payload);
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
async function parseData({ loader, arrayBuffer, options, context }) {
|
|
230
|
+
let data;
|
|
231
|
+
let parser;
|
|
232
|
+
if (loader.parseSync || loader.parse) {
|
|
233
|
+
data = arrayBuffer;
|
|
234
|
+
parser = loader.parseSync || loader.parse;
|
|
235
|
+
} else if (loader.parseTextSync) {
|
|
236
|
+
const textDecoder = new TextDecoder();
|
|
237
|
+
data = textDecoder.decode(arrayBuffer);
|
|
238
|
+
parser = loader.parseTextSync;
|
|
239
|
+
} else {
|
|
240
|
+
throw new Error(`Could not load data with ${loader.name} loader`);
|
|
241
|
+
}
|
|
242
|
+
options = {
|
|
243
|
+
...options,
|
|
244
|
+
modules: loader && loader.options && loader.options.modules || {},
|
|
245
|
+
worker: false
|
|
246
|
+
};
|
|
247
|
+
return await parser(data, { ...options }, context, loader);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// src/lib/utils/version.ts
|
|
251
|
+
var VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
252
|
+
|
|
253
|
+
// src/lib/parsers/basis-module-loader.ts
|
|
254
|
+
var VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
|
|
255
|
+
var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.wasm`;
|
|
256
|
+
var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.js`;
|
|
257
|
+
var loadBasisTranscoderPromise;
|
|
258
|
+
async function loadBasisTrascoderModule(options) {
|
|
259
|
+
const modules = options.modules || {};
|
|
260
|
+
if (modules.basis) {
|
|
261
|
+
return modules.basis;
|
|
262
|
+
}
|
|
263
|
+
loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTrascoder(options);
|
|
264
|
+
return await loadBasisTranscoderPromise;
|
|
265
|
+
}
|
|
266
|
+
async function loadBasisTrascoder(options) {
|
|
267
|
+
let BASIS = null;
|
|
268
|
+
let wasmBinary = null;
|
|
269
|
+
[BASIS, wasmBinary] = await Promise.all([
|
|
270
|
+
await loadLibrary("basis_transcoder.js", "textures", options),
|
|
271
|
+
await loadLibrary("basis_transcoder.wasm", "textures", options)
|
|
272
|
+
]);
|
|
273
|
+
BASIS = BASIS || globalThis.BASIS;
|
|
274
|
+
return await initializeBasisTrascoderModule(BASIS, wasmBinary);
|
|
275
|
+
}
|
|
276
|
+
function initializeBasisTrascoderModule(BasisModule, wasmBinary) {
|
|
277
|
+
const options = {};
|
|
278
|
+
if (wasmBinary) {
|
|
279
|
+
options.wasmBinary = wasmBinary;
|
|
280
|
+
}
|
|
281
|
+
return new Promise((resolve) => {
|
|
282
|
+
BasisModule(options).then((module) => {
|
|
283
|
+
const { BasisFile, initializeBasis } = module;
|
|
284
|
+
initializeBasis();
|
|
285
|
+
resolve({ BasisFile });
|
|
286
|
+
});
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
var loadBasisEncoderPromise;
|
|
290
|
+
async function loadBasisEncoderModule(options) {
|
|
291
|
+
const modules = options.modules || {};
|
|
292
|
+
if (modules.basisEncoder) {
|
|
293
|
+
return modules.basisEncoder;
|
|
294
|
+
}
|
|
295
|
+
loadBasisEncoderPromise = loadBasisEncoderPromise || loadBasisEncoder(options);
|
|
296
|
+
return await loadBasisEncoderPromise;
|
|
297
|
+
}
|
|
298
|
+
async function loadBasisEncoder(options) {
|
|
299
|
+
let BASIS_ENCODER = null;
|
|
300
|
+
let wasmBinary = null;
|
|
301
|
+
[BASIS_ENCODER, wasmBinary] = await Promise.all([
|
|
302
|
+
await loadLibrary(BASIS_CDN_ENCODER_JS, "textures", options),
|
|
303
|
+
await loadLibrary(BASIS_CDN_ENCODER_WASM, "textures", options)
|
|
304
|
+
]);
|
|
305
|
+
BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
|
|
306
|
+
return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
|
|
307
|
+
}
|
|
308
|
+
function initializeBasisEncoderModule(BasisEncoderModule, wasmBinary) {
|
|
309
|
+
const options = {};
|
|
310
|
+
if (wasmBinary) {
|
|
311
|
+
options.wasmBinary = wasmBinary;
|
|
312
|
+
}
|
|
313
|
+
return new Promise((resolve) => {
|
|
314
|
+
BasisEncoderModule(options).then((module) => {
|
|
315
|
+
const { BasisFile, KTX2File, initializeBasis, BasisEncoder } = module;
|
|
316
|
+
initializeBasis();
|
|
317
|
+
resolve({ BasisFile, KTX2File, BasisEncoder });
|
|
318
|
+
});
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
// src/lib/gl-extensions.ts
|
|
323
|
+
var GL_EXTENSIONS_CONSTANTS = {
|
|
324
|
+
COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
|
|
325
|
+
COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
|
|
326
|
+
COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
|
|
327
|
+
COMPRESSED_RGBA_S3TC_DXT5_EXT: 33779,
|
|
328
|
+
COMPRESSED_R11_EAC: 37488,
|
|
329
|
+
COMPRESSED_SIGNED_R11_EAC: 37489,
|
|
330
|
+
COMPRESSED_RG11_EAC: 37490,
|
|
331
|
+
COMPRESSED_SIGNED_RG11_EAC: 37491,
|
|
332
|
+
COMPRESSED_RGB8_ETC2: 37492,
|
|
333
|
+
COMPRESSED_RGBA8_ETC2_EAC: 37493,
|
|
334
|
+
COMPRESSED_SRGB8_ETC2: 37494,
|
|
335
|
+
COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 37495,
|
|
336
|
+
COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37496,
|
|
337
|
+
COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37497,
|
|
338
|
+
COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 35840,
|
|
339
|
+
COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 35842,
|
|
340
|
+
COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 35841,
|
|
341
|
+
COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 35843,
|
|
342
|
+
COMPRESSED_RGB_ETC1_WEBGL: 36196,
|
|
343
|
+
COMPRESSED_RGB_ATC_WEBGL: 35986,
|
|
344
|
+
COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: 35987,
|
|
345
|
+
COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: 34798,
|
|
346
|
+
COMPRESSED_RGBA_ASTC_4X4_KHR: 37808,
|
|
347
|
+
COMPRESSED_RGBA_ASTC_5X4_KHR: 37809,
|
|
348
|
+
COMPRESSED_RGBA_ASTC_5X5_KHR: 37810,
|
|
349
|
+
COMPRESSED_RGBA_ASTC_6X5_KHR: 37811,
|
|
350
|
+
COMPRESSED_RGBA_ASTC_6X6_KHR: 37812,
|
|
351
|
+
COMPRESSED_RGBA_ASTC_8X5_KHR: 37813,
|
|
352
|
+
COMPRESSED_RGBA_ASTC_8X6_KHR: 37814,
|
|
353
|
+
COMPRESSED_RGBA_ASTC_8X8_KHR: 37815,
|
|
354
|
+
COMPRESSED_RGBA_ASTC_10X5_KHR: 37816,
|
|
355
|
+
COMPRESSED_RGBA_ASTC_10X6_KHR: 37817,
|
|
356
|
+
COMPRESSED_RGBA_ASTC_10X8_KHR: 37818,
|
|
357
|
+
COMPRESSED_RGBA_ASTC_10X10_KHR: 37819,
|
|
358
|
+
COMPRESSED_RGBA_ASTC_12X10_KHR: 37820,
|
|
359
|
+
COMPRESSED_RGBA_ASTC_12X12_KHR: 37821,
|
|
360
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR: 37840,
|
|
361
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR: 37841,
|
|
362
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR: 37842,
|
|
363
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR: 37843,
|
|
364
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR: 37844,
|
|
365
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR: 37845,
|
|
366
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR: 37846,
|
|
367
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR: 37847,
|
|
368
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR: 37848,
|
|
369
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR: 37849,
|
|
370
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR: 37850,
|
|
371
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: 37851,
|
|
372
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: 37852,
|
|
373
|
+
COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: 37853,
|
|
374
|
+
COMPRESSED_RED_RGTC1_EXT: 36283,
|
|
375
|
+
COMPRESSED_SIGNED_RED_RGTC1_EXT: 36284,
|
|
376
|
+
COMPRESSED_RED_GREEN_RGTC2_EXT: 36285,
|
|
377
|
+
COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 36286,
|
|
378
|
+
COMPRESSED_SRGB_S3TC_DXT1_EXT: 35916,
|
|
379
|
+
COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 35917,
|
|
380
|
+
COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 35918,
|
|
381
|
+
COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 35919
|
|
382
|
+
};
|
|
383
|
+
|
|
384
|
+
// src/lib/utils/texture-formats.ts
|
|
385
|
+
var BROWSER_PREFIXES = ["", "WEBKIT_", "MOZ_"];
|
|
386
|
+
var WEBGL_EXTENSIONS = {
|
|
387
|
+
WEBGL_compressed_texture_s3tc: "dxt",
|
|
388
|
+
WEBGL_compressed_texture_s3tc_srgb: "dxt-srgb",
|
|
389
|
+
WEBGL_compressed_texture_etc1: "etc1",
|
|
390
|
+
WEBGL_compressed_texture_etc: "etc2",
|
|
391
|
+
WEBGL_compressed_texture_pvrtc: "pvrtc",
|
|
392
|
+
WEBGL_compressed_texture_atc: "atc",
|
|
393
|
+
WEBGL_compressed_texture_astc: "astc",
|
|
394
|
+
EXT_texture_compression_rgtc: "rgtc"
|
|
395
|
+
};
|
|
396
|
+
var formats = null;
|
|
397
|
+
function getSupportedGPUTextureFormats(gl) {
|
|
398
|
+
if (!formats) {
|
|
399
|
+
gl = gl || getWebGLContext() || void 0;
|
|
400
|
+
formats = new Set();
|
|
401
|
+
for (const prefix of BROWSER_PREFIXES) {
|
|
402
|
+
for (const extension in WEBGL_EXTENSIONS) {
|
|
403
|
+
if (gl && gl.getExtension(`${prefix}${extension}`)) {
|
|
404
|
+
const gpuTextureFormat = WEBGL_EXTENSIONS[extension];
|
|
405
|
+
formats.add(gpuTextureFormat);
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
return formats;
|
|
411
|
+
}
|
|
412
|
+
function getWebGLContext() {
|
|
413
|
+
try {
|
|
414
|
+
const canvas = document.createElement("canvas");
|
|
415
|
+
return canvas.getContext("webgl");
|
|
416
|
+
} catch (error) {
|
|
417
|
+
return null;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
// ../../node_modules/ktx-parse/dist/ktx-parse.modern.js
|
|
422
|
+
var t = new Uint8Array([0]);
|
|
423
|
+
var n;
|
|
424
|
+
var i;
|
|
425
|
+
var s;
|
|
426
|
+
var a;
|
|
427
|
+
var r;
|
|
428
|
+
var o;
|
|
429
|
+
var l;
|
|
430
|
+
var f;
|
|
431
|
+
!function(t2) {
|
|
432
|
+
t2[t2.NONE = 0] = "NONE", t2[t2.BASISLZ = 1] = "BASISLZ", t2[t2.ZSTD = 2] = "ZSTD", t2[t2.ZLIB = 3] = "ZLIB";
|
|
433
|
+
}(n || (n = {})), function(t2) {
|
|
434
|
+
t2[t2.BASICFORMAT = 0] = "BASICFORMAT";
|
|
435
|
+
}(i || (i = {})), function(t2) {
|
|
436
|
+
t2[t2.UNSPECIFIED = 0] = "UNSPECIFIED", t2[t2.ETC1S = 163] = "ETC1S", t2[t2.UASTC = 166] = "UASTC";
|
|
437
|
+
}(s || (s = {})), function(t2) {
|
|
438
|
+
t2[t2.UNSPECIFIED = 0] = "UNSPECIFIED", t2[t2.SRGB = 1] = "SRGB";
|
|
439
|
+
}(a || (a = {})), function(t2) {
|
|
440
|
+
t2[t2.UNSPECIFIED = 0] = "UNSPECIFIED", t2[t2.LINEAR = 1] = "LINEAR", t2[t2.SRGB = 2] = "SRGB", t2[t2.ITU = 3] = "ITU", t2[t2.NTSC = 4] = "NTSC", t2[t2.SLOG = 5] = "SLOG", t2[t2.SLOG2 = 6] = "SLOG2";
|
|
441
|
+
}(r || (r = {})), function(t2) {
|
|
442
|
+
t2[t2.ALPHA_STRAIGHT = 0] = "ALPHA_STRAIGHT", t2[t2.ALPHA_PREMULTIPLIED = 1] = "ALPHA_PREMULTIPLIED";
|
|
443
|
+
}(o || (o = {})), function(t2) {
|
|
444
|
+
t2[t2.RGB = 0] = "RGB", t2[t2.RRR = 3] = "RRR", t2[t2.GGG = 4] = "GGG", t2[t2.AAA = 15] = "AAA";
|
|
445
|
+
}(l || (l = {})), function(t2) {
|
|
446
|
+
t2[t2.RGB = 0] = "RGB", t2[t2.RGBA = 3] = "RGBA", t2[t2.RRR = 4] = "RRR", t2[t2.RRRG = 5] = "RRRG";
|
|
447
|
+
}(f || (f = {}));
|
|
448
|
+
|
|
449
|
+
// src/lib/parsers/parse-ktx.ts
|
|
450
|
+
var KTX2_ID = [
|
|
451
|
+
171,
|
|
452
|
+
75,
|
|
453
|
+
84,
|
|
454
|
+
88,
|
|
455
|
+
32,
|
|
456
|
+
50,
|
|
457
|
+
48,
|
|
458
|
+
187,
|
|
459
|
+
13,
|
|
460
|
+
10,
|
|
461
|
+
26,
|
|
462
|
+
10
|
|
463
|
+
];
|
|
464
|
+
function isKTX(data) {
|
|
465
|
+
const id = new Uint8Array(data);
|
|
466
|
+
const notKTX = id.byteLength < KTX2_ID.length || id[0] !== KTX2_ID[0] || id[1] !== KTX2_ID[1] || id[2] !== KTX2_ID[2] || id[3] !== KTX2_ID[3] || id[4] !== KTX2_ID[4] || id[5] !== KTX2_ID[5] || id[6] !== KTX2_ID[6] || id[7] !== KTX2_ID[7] || id[8] !== KTX2_ID[8] || id[9] !== KTX2_ID[9] || id[10] !== KTX2_ID[10] || id[11] !== KTX2_ID[11];
|
|
467
|
+
return !notKTX;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
// src/lib/parsers/parse-basis.js
|
|
471
|
+
var OutputFormat = {
|
|
472
|
+
etc1: {
|
|
473
|
+
basisFormat: 0,
|
|
474
|
+
compressed: true,
|
|
475
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
|
|
476
|
+
},
|
|
477
|
+
etc2: { basisFormat: 1, compressed: true },
|
|
478
|
+
bc1: {
|
|
479
|
+
basisFormat: 2,
|
|
480
|
+
compressed: true,
|
|
481
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
|
|
482
|
+
},
|
|
483
|
+
bc3: {
|
|
484
|
+
basisFormat: 3,
|
|
485
|
+
compressed: true,
|
|
486
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
|
|
487
|
+
},
|
|
488
|
+
bc4: { basisFormat: 4, compressed: true },
|
|
489
|
+
bc5: { basisFormat: 5, compressed: true },
|
|
490
|
+
"bc7-m6-opaque-only": { basisFormat: 6, compressed: true },
|
|
491
|
+
"bc7-m5": { basisFormat: 7, compressed: true },
|
|
492
|
+
"pvrtc1-4-rgb": {
|
|
493
|
+
basisFormat: 8,
|
|
494
|
+
compressed: true,
|
|
495
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
|
|
496
|
+
},
|
|
497
|
+
"pvrtc1-4-rgba": {
|
|
498
|
+
basisFormat: 9,
|
|
499
|
+
compressed: true,
|
|
500
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
|
|
501
|
+
},
|
|
502
|
+
"astc-4x4": {
|
|
503
|
+
basisFormat: 10,
|
|
504
|
+
compressed: true,
|
|
505
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
|
|
506
|
+
},
|
|
507
|
+
"atc-rgb": { basisFormat: 11, compressed: true },
|
|
508
|
+
"atc-rgba-interpolated-alpha": { basisFormat: 12, compressed: true },
|
|
509
|
+
rgba32: { basisFormat: 13, compressed: false },
|
|
510
|
+
rgb565: { basisFormat: 14, compressed: false },
|
|
511
|
+
bgr565: { basisFormat: 15, compressed: false },
|
|
512
|
+
rgba4444: { basisFormat: 16, compressed: false }
|
|
513
|
+
};
|
|
514
|
+
async function parseBasis(data, options) {
|
|
515
|
+
if (options.basis.containerFormat === "auto") {
|
|
516
|
+
if (isKTX(data)) {
|
|
517
|
+
const fileConstructors = await loadBasisEncoderModule(options);
|
|
518
|
+
return parseKTX2File(fileConstructors.KTX2File, data, options);
|
|
519
|
+
}
|
|
520
|
+
const { BasisFile } = await loadBasisTrascoderModule(options);
|
|
521
|
+
return parseBasisFile(BasisFile, data, options);
|
|
522
|
+
}
|
|
523
|
+
switch (options.basis.module) {
|
|
524
|
+
case "encoder":
|
|
525
|
+
const fileConstructors = await loadBasisEncoderModule(options);
|
|
526
|
+
switch (options.basis.containerFormat) {
|
|
527
|
+
case "ktx2":
|
|
528
|
+
return parseKTX2File(fileConstructors.KTX2File, data, options);
|
|
529
|
+
case "basis":
|
|
530
|
+
default:
|
|
531
|
+
return parseBasisFile(fileConstructors.BasisFile, data, options);
|
|
532
|
+
}
|
|
533
|
+
case "transcoder":
|
|
534
|
+
default:
|
|
535
|
+
const { BasisFile } = await loadBasisTrascoderModule(options);
|
|
536
|
+
return parseBasisFile(BasisFile, data, options);
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
function parseBasisFile(BasisFile, data, options) {
|
|
540
|
+
const basisFile = new BasisFile(new Uint8Array(data));
|
|
541
|
+
try {
|
|
542
|
+
if (!basisFile.startTranscoding()) {
|
|
543
|
+
return null;
|
|
544
|
+
}
|
|
545
|
+
const imageCount = basisFile.getNumImages();
|
|
546
|
+
const images = [];
|
|
547
|
+
for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {
|
|
548
|
+
const levelsCount = basisFile.getNumLevels(imageIndex);
|
|
549
|
+
const levels = [];
|
|
550
|
+
for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
|
|
551
|
+
levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));
|
|
552
|
+
}
|
|
553
|
+
images.push(levels);
|
|
554
|
+
}
|
|
555
|
+
return images;
|
|
556
|
+
} finally {
|
|
557
|
+
basisFile.close();
|
|
558
|
+
basisFile.delete();
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
function transcodeImage(basisFile, imageIndex, levelIndex, options) {
|
|
562
|
+
const width = basisFile.getImageWidth(imageIndex, levelIndex);
|
|
563
|
+
const height = basisFile.getImageHeight(imageIndex, levelIndex);
|
|
564
|
+
const hasAlpha = basisFile.getHasAlpha();
|
|
565
|
+
const { compressed, format, basisFormat } = getBasisOptions(options, hasAlpha);
|
|
566
|
+
const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
|
|
567
|
+
const decodedData = new Uint8Array(decodedSize);
|
|
568
|
+
if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
|
|
569
|
+
return null;
|
|
570
|
+
}
|
|
571
|
+
return {
|
|
572
|
+
width,
|
|
573
|
+
height,
|
|
574
|
+
data: decodedData,
|
|
575
|
+
compressed,
|
|
576
|
+
hasAlpha,
|
|
577
|
+
format
|
|
578
|
+
};
|
|
579
|
+
}
|
|
580
|
+
function parseKTX2File(KTX2File, data, options) {
|
|
581
|
+
const ktx2File = new KTX2File(new Uint8Array(data));
|
|
582
|
+
try {
|
|
583
|
+
if (!ktx2File.startTranscoding()) {
|
|
584
|
+
return null;
|
|
585
|
+
}
|
|
586
|
+
const levelsCount = ktx2File.getLevels();
|
|
587
|
+
const levels = [];
|
|
588
|
+
for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
|
|
589
|
+
levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
|
|
590
|
+
break;
|
|
591
|
+
}
|
|
592
|
+
return levels;
|
|
593
|
+
} finally {
|
|
594
|
+
ktx2File.close();
|
|
595
|
+
ktx2File.delete();
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
function transcodeKTX2Image(ktx2File, levelIndex, options) {
|
|
599
|
+
const { alphaFlag, height, width } = ktx2File.getImageLevelInfo(levelIndex, 0, 0);
|
|
600
|
+
const { compressed, format, basisFormat } = getBasisOptions(options, alphaFlag);
|
|
601
|
+
const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
|
|
602
|
+
const decodedData = new Uint8Array(decodedSize);
|
|
603
|
+
if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
|
|
604
|
+
return null;
|
|
605
|
+
}
|
|
606
|
+
return {
|
|
607
|
+
width,
|
|
608
|
+
height,
|
|
609
|
+
data: decodedData,
|
|
610
|
+
compressed,
|
|
611
|
+
alphaFlag,
|
|
612
|
+
format
|
|
613
|
+
};
|
|
614
|
+
}
|
|
615
|
+
function getBasisOptions(options, hasAlpha) {
|
|
616
|
+
let format = options && options.basis && options.basis.format;
|
|
617
|
+
if (format === "auto") {
|
|
618
|
+
format = selectSupportedBasisFormat();
|
|
619
|
+
}
|
|
620
|
+
if (typeof format === "object") {
|
|
621
|
+
format = hasAlpha ? format.alpha : format.noAlpha;
|
|
622
|
+
}
|
|
623
|
+
format = format.toLowerCase();
|
|
624
|
+
return OutputFormat[format];
|
|
625
|
+
}
|
|
626
|
+
function selectSupportedBasisFormat() {
|
|
627
|
+
const supportedFormats = getSupportedGPUTextureFormats();
|
|
628
|
+
if (supportedFormats.has("astc")) {
|
|
629
|
+
return "astc-4x4";
|
|
630
|
+
} else if (supportedFormats.has("dxt")) {
|
|
631
|
+
return {
|
|
632
|
+
alpha: "bc3",
|
|
633
|
+
noAlpha: "bc1"
|
|
634
|
+
};
|
|
635
|
+
} else if (supportedFormats.has("pvrtc")) {
|
|
636
|
+
return {
|
|
637
|
+
alpha: "pvrtc1-4-rgba",
|
|
638
|
+
noAlpha: "pvrtc1-4-rgb"
|
|
639
|
+
};
|
|
640
|
+
} else if (supportedFormats.has("etc1")) {
|
|
641
|
+
return "etc1";
|
|
642
|
+
} else if (supportedFormats.has("etc2")) {
|
|
643
|
+
return "etc2";
|
|
644
|
+
}
|
|
645
|
+
return "rgb565";
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
// src/basis-loader.ts
|
|
649
|
+
var BasisWorkerLoader = {
|
|
650
|
+
name: "Basis",
|
|
651
|
+
id: "basis",
|
|
652
|
+
module: "textures",
|
|
653
|
+
version: VERSION3,
|
|
654
|
+
worker: true,
|
|
655
|
+
extensions: ["basis", "ktx2"],
|
|
656
|
+
mimeTypes: ["application/octet-stream", "image/ktx2"],
|
|
657
|
+
tests: ["sB"],
|
|
658
|
+
binary: true,
|
|
659
|
+
options: {
|
|
660
|
+
basis: {
|
|
661
|
+
format: "auto",
|
|
662
|
+
libraryPath: "libs/",
|
|
663
|
+
containerFormat: "auto",
|
|
664
|
+
module: "transcoder"
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
};
|
|
668
|
+
var BasisLoader = {
|
|
669
|
+
...BasisWorkerLoader,
|
|
670
|
+
parse: parseBasis
|
|
671
|
+
};
|
|
672
|
+
|
|
673
|
+
// src/workers/basis-worker.ts
|
|
674
|
+
createLoaderWorker(BasisLoader);
|
|
675
|
+
})();
|