babylon.ktx2Decoder.js 81 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700
  1. (function webpackUniversalModuleDefinition(root, factory) {
  2. if(typeof exports === 'object' && typeof module === 'object')
  3. module.exports = factory();
  4. else if(typeof define === 'function' && define.amd)
  5. define([], factory);
  6. else if(typeof exports === 'object')
  7. exports["KTX2DECODER"] = factory();
  8. else
  9. root["KTX2DECODER"] = factory();
  10. })((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this), function() {
  11. return /******/ (function(modules) { // webpackBootstrap
  12. /******/ // The module cache
  13. /******/ var installedModules = {};
  14. /******/
  15. /******/ // The require function
  16. /******/ function __webpack_require__(moduleId) {
  17. /******/
  18. /******/ // Check if module is in cache
  19. /******/ if(installedModules[moduleId]) {
  20. /******/ return installedModules[moduleId].exports;
  21. /******/ }
  22. /******/ // Create a new module (and put it into the cache)
  23. /******/ var module = installedModules[moduleId] = {
  24. /******/ i: moduleId,
  25. /******/ l: false,
  26. /******/ exports: {}
  27. /******/ };
  28. /******/
  29. /******/ // Execute the module function
  30. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  31. /******/
  32. /******/ // Flag the module as loaded
  33. /******/ module.l = true;
  34. /******/
  35. /******/ // Return the exports of the module
  36. /******/ return module.exports;
  37. /******/ }
  38. /******/
  39. /******/
  40. /******/ // expose the modules object (__webpack_modules__)
  41. /******/ __webpack_require__.m = modules;
  42. /******/
  43. /******/ // expose the module cache
  44. /******/ __webpack_require__.c = installedModules;
  45. /******/
  46. /******/ // define getter function for harmony exports
  47. /******/ __webpack_require__.d = function(exports, name, getter) {
  48. /******/ if(!__webpack_require__.o(exports, name)) {
  49. /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
  50. /******/ }
  51. /******/ };
  52. /******/
  53. /******/ // define __esModule on exports
  54. /******/ __webpack_require__.r = function(exports) {
  55. /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  56. /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  57. /******/ }
  58. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  59. /******/ };
  60. /******/
  61. /******/ // create a fake namespace object
  62. /******/ // mode & 1: value is a module id, require it
  63. /******/ // mode & 2: merge all properties of value into the ns
  64. /******/ // mode & 4: return value when already ns object
  65. /******/ // mode & 8|1: behave like require
  66. /******/ __webpack_require__.t = function(value, mode) {
  67. /******/ if(mode & 1) value = __webpack_require__(value);
  68. /******/ if(mode & 8) return value;
  69. /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  70. /******/ var ns = Object.create(null);
  71. /******/ __webpack_require__.r(ns);
  72. /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  73. /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  74. /******/ return ns;
  75. /******/ };
  76. /******/
  77. /******/ // getDefaultExport function for compatibility with non-harmony modules
  78. /******/ __webpack_require__.n = function(module) {
  79. /******/ var getter = module && module.__esModule ?
  80. /******/ function getDefault() { return module['default']; } :
  81. /******/ function getModuleExports() { return module; };
  82. /******/ __webpack_require__.d(getter, 'a', getter);
  83. /******/ return getter;
  84. /******/ };
  85. /******/
  86. /******/ // Object.prototype.hasOwnProperty.call
  87. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  88. /******/
  89. /******/ // __webpack_public_path__
  90. /******/ __webpack_require__.p = "/dist/";
  91. /******/
  92. /******/
  93. /******/ // Load entry module and return exports
  94. /******/ return __webpack_require__(__webpack_require__.s = "./legacy/legacy.ts");
  95. /******/ })
  96. /************************************************************************/
  97. /******/ ({
  98. /***/ "../../node_modules/tslib/tslib.es6.js":
  99. /*!***********************************************************!*\
  100. !*** D:/Repos/Babylon.js/node_modules/tslib/tslib.es6.js ***!
  101. \***********************************************************/
  102. /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __createBinding, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet */
  103. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  104. "use strict";
  105. __webpack_require__.r(__webpack_exports__);
  106. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; });
  107. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; });
  108. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; });
  109. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; });
  110. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; });
  111. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; });
  112. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; });
  113. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; });
  114. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__createBinding", function() { return __createBinding; });
  115. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; });
  116. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; });
  117. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; });
  118. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; });
  119. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spreadArrays", function() { return __spreadArrays; });
  120. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; });
  121. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; });
  122. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; });
  123. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; });
  124. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; });
  125. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; });
  126. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; });
  127. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldGet", function() { return __classPrivateFieldGet; });
  128. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldSet", function() { return __classPrivateFieldSet; });
  129. /*! *****************************************************************************
  130. Copyright (c) Microsoft Corporation.
  131. Permission to use, copy, modify, and/or distribute this software for any
  132. purpose with or without fee is hereby granted.
  133. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
  134. REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  135. AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
  136. INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  137. LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  138. OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  139. PERFORMANCE OF THIS SOFTWARE.
  140. ***************************************************************************** */
  141. /* global Reflect, Promise */
  142. var extendStatics = function(d, b) {
  143. extendStatics = Object.setPrototypeOf ||
  144. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  145. function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
  146. return extendStatics(d, b);
  147. };
  148. function __extends(d, b) {
  149. extendStatics(d, b);
  150. function __() { this.constructor = d; }
  151. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  152. }
  153. var __assign = function() {
  154. __assign = Object.assign || function __assign(t) {
  155. for (var s, i = 1, n = arguments.length; i < n; i++) {
  156. s = arguments[i];
  157. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
  158. }
  159. return t;
  160. }
  161. return __assign.apply(this, arguments);
  162. }
  163. function __rest(s, e) {
  164. var t = {};
  165. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
  166. t[p] = s[p];
  167. if (s != null && typeof Object.getOwnPropertySymbols === "function")
  168. for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
  169. if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
  170. t[p[i]] = s[p[i]];
  171. }
  172. return t;
  173. }
  174. function __decorate(decorators, target, key, desc) {
  175. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  176. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  177. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  178. return c > 3 && r && Object.defineProperty(target, key, r), r;
  179. }
  180. function __param(paramIndex, decorator) {
  181. return function (target, key) { decorator(target, key, paramIndex); }
  182. }
  183. function __metadata(metadataKey, metadataValue) {
  184. if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
  185. }
  186. function __awaiter(thisArg, _arguments, P, generator) {
  187. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  188. return new (P || (P = Promise))(function (resolve, reject) {
  189. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  190. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  191. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  192. step((generator = generator.apply(thisArg, _arguments || [])).next());
  193. });
  194. }
  195. function __generator(thisArg, body) {
  196. var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
  197. return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
  198. function verb(n) { return function (v) { return step([n, v]); }; }
  199. function step(op) {
  200. if (f) throw new TypeError("Generator is already executing.");
  201. while (_) try {
  202. if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
  203. if (y = 0, t) op = [op[0] & 2, t.value];
  204. switch (op[0]) {
  205. case 0: case 1: t = op; break;
  206. case 4: _.label++; return { value: op[1], done: false };
  207. case 5: _.label++; y = op[1]; op = [0]; continue;
  208. case 7: op = _.ops.pop(); _.trys.pop(); continue;
  209. default:
  210. if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
  211. if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
  212. if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
  213. if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
  214. if (t[2]) _.ops.pop();
  215. _.trys.pop(); continue;
  216. }
  217. op = body.call(thisArg, _);
  218. } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
  219. if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
  220. }
  221. }
  222. var __createBinding = Object.create ? (function(o, m, k, k2) {
  223. if (k2 === undefined) k2 = k;
  224. Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
  225. }) : (function(o, m, k, k2) {
  226. if (k2 === undefined) k2 = k;
  227. o[k2] = m[k];
  228. });
  229. function __exportStar(m, exports) {
  230. for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
  231. }
  232. function __values(o) {
  233. var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
  234. if (m) return m.call(o);
  235. if (o && typeof o.length === "number") return {
  236. next: function () {
  237. if (o && i >= o.length) o = void 0;
  238. return { value: o && o[i++], done: !o };
  239. }
  240. };
  241. throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
  242. }
  243. function __read(o, n) {
  244. var m = typeof Symbol === "function" && o[Symbol.iterator];
  245. if (!m) return o;
  246. var i = m.call(o), r, ar = [], e;
  247. try {
  248. while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
  249. }
  250. catch (error) { e = { error: error }; }
  251. finally {
  252. try {
  253. if (r && !r.done && (m = i["return"])) m.call(i);
  254. }
  255. finally { if (e) throw e.error; }
  256. }
  257. return ar;
  258. }
  259. function __spread() {
  260. for (var ar = [], i = 0; i < arguments.length; i++)
  261. ar = ar.concat(__read(arguments[i]));
  262. return ar;
  263. }
  264. function __spreadArrays() {
  265. for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
  266. for (var r = Array(s), k = 0, i = 0; i < il; i++)
  267. for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
  268. r[k] = a[j];
  269. return r;
  270. };
  271. function __await(v) {
  272. return this instanceof __await ? (this.v = v, this) : new __await(v);
  273. }
  274. function __asyncGenerator(thisArg, _arguments, generator) {
  275. if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
  276. var g = generator.apply(thisArg, _arguments || []), i, q = [];
  277. return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
  278. function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
  279. function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
  280. function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
  281. function fulfill(value) { resume("next", value); }
  282. function reject(value) { resume("throw", value); }
  283. function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
  284. }
  285. function __asyncDelegator(o) {
  286. var i, p;
  287. return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
  288. function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
  289. }
  290. function __asyncValues(o) {
  291. if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
  292. var m = o[Symbol.asyncIterator], i;
  293. return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
  294. function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
  295. function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
  296. }
  297. function __makeTemplateObject(cooked, raw) {
  298. if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
  299. return cooked;
  300. };
  301. var __setModuleDefault = Object.create ? (function(o, v) {
  302. Object.defineProperty(o, "default", { enumerable: true, value: v });
  303. }) : function(o, v) {
  304. o["default"] = v;
  305. };
  306. function __importStar(mod) {
  307. if (mod && mod.__esModule) return mod;
  308. var result = {};
  309. if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
  310. __setModuleDefault(result, mod);
  311. return result;
  312. }
  313. function __importDefault(mod) {
  314. return (mod && mod.__esModule) ? mod : { default: mod };
  315. }
  316. function __classPrivateFieldGet(receiver, privateMap) {
  317. if (!privateMap.has(receiver)) {
  318. throw new TypeError("attempted to get private field on non-instance");
  319. }
  320. return privateMap.get(receiver);
  321. }
  322. function __classPrivateFieldSet(receiver, privateMap, value) {
  323. if (!privateMap.has(receiver)) {
  324. throw new TypeError("attempted to set private field on non-instance");
  325. }
  326. privateMap.set(receiver, value);
  327. return value;
  328. }
  329. /***/ }),
  330. /***/ "../../node_modules/webpack/buildin/global.js":
  331. /*!***********************************!*\
  332. !*** (webpack)/buildin/global.js ***!
  333. \***********************************/
  334. /*! no static exports found */
  335. /***/ (function(module, exports) {
  336. var g;
  337. // This works in non-strict mode
  338. g = (function() {
  339. return this;
  340. })();
  341. try {
  342. // This works if eval is allowed (see CSP)
  343. g = g || new Function("return this")();
  344. } catch (e) {
  345. // This works if the window reference is available
  346. if (typeof window === "object") g = window;
  347. }
  348. // g can still be undefined, but nothing to do about it...
  349. // We return undefined, instead of nothing here, so it's
  350. // easier to handle this case. if(!global) { ...}
  351. module.exports = g;
  352. /***/ }),
  353. /***/ "./Misc/dataReader.ts":
  354. /*!****************************!*\
  355. !*** ./Misc/dataReader.ts ***!
  356. \****************************/
  357. /*! exports provided: DataReader */
  358. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  359. "use strict";
  360. __webpack_require__.r(__webpack_exports__);
  361. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DataReader", function() { return DataReader; });
  362. /**
  363. * Utility class for reading from a data buffer
  364. */
  365. var DataReader = /** @class */ (function () {
  366. /**
  367. * Constructor
  368. * @param buffer The buffer to set
  369. * @param byteOffset The starting offset in the buffer
  370. * @param byteLength The byte length of the buffer
  371. */
  372. function DataReader(buffer, byteOffset, byteLength) {
  373. if (buffer.buffer) {
  374. this._dataView = new DataView(buffer.buffer, buffer.byteOffset + (byteOffset !== null && byteOffset !== void 0 ? byteOffset : 0), byteLength !== null && byteLength !== void 0 ? byteLength : buffer.byteLength);
  375. }
  376. else {
  377. this._dataView = new DataView(buffer, byteOffset !== null && byteOffset !== void 0 ? byteOffset : 0, byteLength !== null && byteLength !== void 0 ? byteLength : buffer.byteLength);
  378. }
  379. this._dataByteOffset = 0;
  380. }
  381. Object.defineProperty(DataReader.prototype, "byteOffset", {
  382. /**
  383. * The current byte offset from the beginning of the data buffer.
  384. */
  385. get: function () {
  386. return this._dataByteOffset;
  387. },
  388. enumerable: false,
  389. configurable: true
  390. });
  391. /**
  392. * Read a unsigned 8-bit integer from the currently loaded data range.
  393. * @returns The 8-bit integer read
  394. */
  395. DataReader.prototype.readUint8 = function () {
  396. var value = this._dataView.getUint8(this._dataByteOffset);
  397. this._dataByteOffset += 1;
  398. return value;
  399. };
  400. /**
  401. * Read a signed 8-bit integer from the currently loaded data range.
  402. * @returns The 8-bit integer read
  403. */
  404. DataReader.prototype.readInt8 = function () {
  405. var value = this._dataView.getInt8(this._dataByteOffset);
  406. this._dataByteOffset += 1;
  407. return value;
  408. };
  409. /**
  410. * Read a unsigned 16-bit integer from the currently loaded data range.
  411. * @returns The 16-bit integer read
  412. */
  413. DataReader.prototype.readUint16 = function () {
  414. var value = this._dataView.getUint16(this._dataByteOffset, true);
  415. this._dataByteOffset += 2;
  416. return value;
  417. };
  418. /**
  419. * Read a signed 16-bit integer from the currently loaded data range.
  420. * @returns The 16-bit integer read
  421. */
  422. DataReader.prototype.readInt16 = function () {
  423. var value = this._dataView.getInt16(this._dataByteOffset, true);
  424. this._dataByteOffset += 2;
  425. return value;
  426. };
  427. /**
  428. * Read a unsigned 32-bit integer from the currently loaded data range.
  429. * @returns The 32-bit integer read
  430. */
  431. DataReader.prototype.readUint32 = function () {
  432. var value = this._dataView.getUint32(this._dataByteOffset, true);
  433. this._dataByteOffset += 4;
  434. return value;
  435. };
  436. /**
  437. * Read a signed 32-bit integer from the currently loaded data range.
  438. * @returns The 32-bit integer read
  439. */
  440. DataReader.prototype.readInt32 = function () {
  441. var value = this._dataView.getInt32(this._dataByteOffset, true);
  442. this._dataByteOffset += 4;
  443. return value;
  444. };
  445. /**
  446. * Read a unsigned 32-bit integer from the currently loaded data range.
  447. * @returns The 32-bit integer read
  448. */
  449. DataReader.prototype.readUint64 = function () {
  450. // split 64-bit number into two 32-bit (4-byte) parts
  451. var left = this._dataView.getUint32(this._dataByteOffset, true);
  452. var right = this._dataView.getUint32(this._dataByteOffset + 4, true);
  453. // combine the two 32-bit values
  454. var combined = true ? left + (Math.pow(2, 32) * right) : undefined;
  455. /*if (!Number.isSafeInteger(combined)) {
  456. console.warn('DataReader: ' + combined + ' exceeds MAX_SAFE_INTEGER. Precision may be lost.');
  457. }*/
  458. this._dataByteOffset += 8;
  459. return combined;
  460. };
  461. /**
  462. * Read a byte array from the currently loaded data range.
  463. * @param byteLength The byte length to read
  464. * @returns The byte array read
  465. */
  466. DataReader.prototype.readUint8Array = function (byteLength) {
  467. var value = new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + this._dataByteOffset, byteLength);
  468. this._dataByteOffset += byteLength;
  469. return value;
  470. };
  471. /**
  472. * Skips the given byte length the currently loaded data range.
  473. * @param byteLength The byte length to skip
  474. * @returns This instance
  475. */
  476. DataReader.prototype.skipBytes = function (byteLength) {
  477. this._dataByteOffset += byteLength;
  478. return this;
  479. };
  480. return DataReader;
  481. }());
  482. /***/ }),
  483. /***/ "./Misc/index.ts":
  484. /*!***********************!*\
  485. !*** ./Misc/index.ts ***!
  486. \***********************/
  487. /*! exports provided: DataReader */
  488. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  489. "use strict";
  490. __webpack_require__.r(__webpack_exports__);
  491. /* harmony import */ var _dataReader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dataReader */ "./Misc/dataReader.ts");
  492. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DataReader", function() { return _dataReader__WEBPACK_IMPORTED_MODULE_0__["DataReader"]; });
  493. /***/ }),
  494. /***/ "./Transcoders/index.ts":
  495. /*!******************************!*\
  496. !*** ./Transcoders/index.ts ***!
  497. \******************************/
  498. /*! exports provided: LiteTranscoder, LiteTranscoder_UASTC_ASTC, LiteTranscoder_UASTC_BC7, MSCTranscoder */
  499. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  500. "use strict";
  501. __webpack_require__.r(__webpack_exports__);
  502. /* harmony import */ var _liteTranscoder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./liteTranscoder */ "./Transcoders/liteTranscoder.ts");
  503. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LiteTranscoder", function() { return _liteTranscoder__WEBPACK_IMPORTED_MODULE_0__["LiteTranscoder"]; });
  504. /* harmony import */ var _liteTranscoder_UASTC_ASTC__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./liteTranscoder_UASTC_ASTC */ "./Transcoders/liteTranscoder_UASTC_ASTC.ts");
  505. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LiteTranscoder_UASTC_ASTC", function() { return _liteTranscoder_UASTC_ASTC__WEBPACK_IMPORTED_MODULE_1__["LiteTranscoder_UASTC_ASTC"]; });
  506. /* harmony import */ var _liteTranscoder_UASTC_BC7__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./liteTranscoder_UASTC_BC7 */ "./Transcoders/liteTranscoder_UASTC_BC7.ts");
  507. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LiteTranscoder_UASTC_BC7", function() { return _liteTranscoder_UASTC_BC7__WEBPACK_IMPORTED_MODULE_2__["LiteTranscoder_UASTC_BC7"]; });
  508. /* harmony import */ var _mscTranscoder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mscTranscoder */ "./Transcoders/mscTranscoder.ts");
  509. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MSCTranscoder", function() { return _mscTranscoder__WEBPACK_IMPORTED_MODULE_3__["MSCTranscoder"]; });
  510. /***/ }),
  511. /***/ "./Transcoders/liteTranscoder.ts":
  512. /*!***************************************!*\
  513. !*** ./Transcoders/liteTranscoder.ts ***!
  514. \***************************************/
  515. /*! exports provided: LiteTranscoder */
  516. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  517. "use strict";
  518. __webpack_require__.r(__webpack_exports__);
  519. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LiteTranscoder", function() { return LiteTranscoder; });
  520. /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
  521. /* harmony import */ var _transcoder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../transcoder */ "./transcoder.ts");
  522. /* harmony import */ var _wasmMemoryManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../wasmMemoryManager */ "./wasmMemoryManager.ts");
  523. /**
  524. * @hidden
  525. */
  526. var LiteTranscoder = /** @class */ (function (_super) {
  527. Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LiteTranscoder, _super);
  528. function LiteTranscoder() {
  529. return _super !== null && _super.apply(this, arguments) || this;
  530. }
  531. LiteTranscoder.prototype._loadModule = function () {
  532. var _this = this;
  533. if (this._modulePromise) {
  534. return this._modulePromise;
  535. }
  536. this._modulePromise = _wasmMemoryManager__WEBPACK_IMPORTED_MODULE_2__["WASMMemoryManager"].LoadWASM(this._modulePath).then(function (wasmBinary) {
  537. return new Promise(function (resolve) {
  538. WebAssembly.instantiate(wasmBinary, { env: { memory: _this._memoryManager.wasmMemory } }).then(function (moduleWrapper) {
  539. resolve({ module: moduleWrapper.instance.exports });
  540. });
  541. });
  542. });
  543. return this._modulePromise;
  544. };
  545. Object.defineProperty(LiteTranscoder.prototype, "memoryManager", {
  546. get: function () {
  547. return this._memoryManager;
  548. },
  549. enumerable: false,
  550. configurable: true
  551. });
  552. LiteTranscoder.prototype.setModulePath = function (modulePath) {
  553. this._modulePath = modulePath;
  554. };
  555. LiteTranscoder.prototype.needMemoryManager = function () {
  556. return true;
  557. };
  558. LiteTranscoder.prototype.setMemoryManager = function (memoryMgr) {
  559. this._memoryManager = memoryMgr;
  560. };
  561. LiteTranscoder.prototype.transcode = function (src, dst, level, width, height, uncompressedByteLength, ktx2Reader, imageDesc, encodedData) {
  562. var _this = this;
  563. return this._loadModule().then(function (moduleWrapper) {
  564. var transcoder = moduleWrapper.module;
  565. var nBlocks = ((width + 3) >> 2) * ((height + 3) >> 2);
  566. var texMemoryPages = ((nBlocks * 16 + 65535) >> 16) + 1;
  567. var textureView = _this.memoryManager.getMemoryView(texMemoryPages, 65536, nBlocks * 16);
  568. textureView.set(encodedData);
  569. return transcoder.transcode(nBlocks) === 0 ? textureView.slice() : null;
  570. });
  571. };
  572. return LiteTranscoder;
  573. }(_transcoder__WEBPACK_IMPORTED_MODULE_1__["Transcoder"]));
  574. /***/ }),
  575. /***/ "./Transcoders/liteTranscoder_UASTC_ASTC.ts":
  576. /*!**************************************************!*\
  577. !*** ./Transcoders/liteTranscoder_UASTC_ASTC.ts ***!
  578. \**************************************************/
  579. /*! exports provided: LiteTranscoder_UASTC_ASTC */
  580. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  581. "use strict";
  582. __webpack_require__.r(__webpack_exports__);
  583. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LiteTranscoder_UASTC_ASTC", function() { return LiteTranscoder_UASTC_ASTC; });
  584. /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
  585. /* harmony import */ var _transcoder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../transcoder */ "./transcoder.ts");
  586. /* harmony import */ var _liteTranscoder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./liteTranscoder */ "./Transcoders/liteTranscoder.ts");
  587. /**
  588. * @hidden
  589. */
  590. var LiteTranscoder_UASTC_ASTC = /** @class */ (function (_super) {
  591. Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LiteTranscoder_UASTC_ASTC, _super);
  592. function LiteTranscoder_UASTC_ASTC() {
  593. return _super !== null && _super.apply(this, arguments) || this;
  594. }
  595. LiteTranscoder_UASTC_ASTC.CanTranscode = function (src, dst) {
  596. return src === _transcoder__WEBPACK_IMPORTED_MODULE_1__["sourceTextureFormat"].UASTC4x4 && dst === _transcoder__WEBPACK_IMPORTED_MODULE_1__["transcodeTarget"].ASTC_4x4_RGBA;
  597. };
  598. LiteTranscoder_UASTC_ASTC.prototype.initialize = function () {
  599. this.setModulePath(LiteTranscoder_UASTC_ASTC.WasmModuleURL);
  600. };
  601. /**
  602. * URL to use when loading the wasm module for the transcoder
  603. */
  604. LiteTranscoder_UASTC_ASTC.WasmModuleURL = "https://preview.babylonjs.com/ktx2Transcoders/uastc_astc.wasm";
  605. return LiteTranscoder_UASTC_ASTC;
  606. }(_liteTranscoder__WEBPACK_IMPORTED_MODULE_2__["LiteTranscoder"]));
  607. /***/ }),
  608. /***/ "./Transcoders/liteTranscoder_UASTC_BC7.ts":
  609. /*!*************************************************!*\
  610. !*** ./Transcoders/liteTranscoder_UASTC_BC7.ts ***!
  611. \*************************************************/
  612. /*! exports provided: LiteTranscoder_UASTC_BC7 */
  613. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  614. "use strict";
  615. __webpack_require__.r(__webpack_exports__);
  616. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LiteTranscoder_UASTC_BC7", function() { return LiteTranscoder_UASTC_BC7; });
  617. /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
  618. /* harmony import */ var _transcoder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../transcoder */ "./transcoder.ts");
  619. /* harmony import */ var _liteTranscoder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./liteTranscoder */ "./Transcoders/liteTranscoder.ts");
  620. /**
  621. * @hidden
  622. */
  623. var LiteTranscoder_UASTC_BC7 = /** @class */ (function (_super) {
  624. Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LiteTranscoder_UASTC_BC7, _super);
  625. function LiteTranscoder_UASTC_BC7() {
  626. return _super !== null && _super.apply(this, arguments) || this;
  627. }
  628. LiteTranscoder_UASTC_BC7.CanTranscode = function (src, dst) {
  629. return src === _transcoder__WEBPACK_IMPORTED_MODULE_1__["sourceTextureFormat"].UASTC4x4 && dst === _transcoder__WEBPACK_IMPORTED_MODULE_1__["transcodeTarget"].BC7_RGBA;
  630. };
  631. LiteTranscoder_UASTC_BC7.prototype.initialize = function () {
  632. this.setModulePath(LiteTranscoder_UASTC_BC7.WasmModuleURL);
  633. };
  634. /**
  635. * URL to use when loading the wasm module for the transcoder
  636. */
  637. LiteTranscoder_UASTC_BC7.WasmModuleURL = "https://preview.babylonjs.com/ktx2Transcoders/uastc_bc7.wasm";
  638. return LiteTranscoder_UASTC_BC7;
  639. }(_liteTranscoder__WEBPACK_IMPORTED_MODULE_2__["LiteTranscoder"]));
  640. /***/ }),
  641. /***/ "./Transcoders/mscTranscoder.ts":
  642. /*!**************************************!*\
  643. !*** ./Transcoders/mscTranscoder.ts ***!
  644. \**************************************/
  645. /*! exports provided: MSCTranscoder */
  646. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  647. "use strict";
  648. __webpack_require__.r(__webpack_exports__);
  649. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MSCTranscoder", function() { return MSCTranscoder; });
  650. /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
  651. /* harmony import */ var _transcoder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../transcoder */ "./transcoder.ts");
  652. /* harmony import */ var _wasmMemoryManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../wasmMemoryManager */ "./wasmMemoryManager.ts");
  653. /**
  654. * @hidden
  655. */
  656. var MSCTranscoder = /** @class */ (function (_super) {
  657. Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(MSCTranscoder, _super);
  658. function MSCTranscoder() {
  659. return _super !== null && _super.apply(this, arguments) || this;
  660. }
  661. MSCTranscoder.prototype._getMSCBasisTranscoder = function () {
  662. var _this = this;
  663. if (this._mscBasisTranscoderPromise) {
  664. return this._mscBasisTranscoderPromise;
  665. }
  666. this._mscBasisTranscoderPromise = _wasmMemoryManager__WEBPACK_IMPORTED_MODULE_2__["WASMMemoryManager"].LoadWASM(MSCTranscoder.WasmModuleURL).then(function (wasmBinary) {
  667. if (MSCTranscoder.UseFromWorkerThread) {
  668. importScripts(MSCTranscoder.JSModuleURL);
  669. }
  670. return new Promise(function (resolve) {
  671. MSC_TRANSCODER({ wasmBinary: wasmBinary }).then(function (basisModule) {
  672. basisModule.initTranscoders();
  673. _this._mscBasisModule = basisModule;
  674. resolve();
  675. });
  676. });
  677. });
  678. return this._mscBasisTranscoderPromise;
  679. };
  680. MSCTranscoder.CanTranscode = function (src, dst) {
  681. return true;
  682. };
  683. MSCTranscoder.prototype.transcode = function (src, dst, level, width, height, uncompressedByteLength, ktx2Reader, imageDesc, encodedData) {
  684. var _this = this;
  685. var isVideo = false;
  686. return this._getMSCBasisTranscoder().then(function () {
  687. var basisModule = _this._mscBasisModule;
  688. var transcoder = src === _transcoder__WEBPACK_IMPORTED_MODULE_1__["sourceTextureFormat"].UASTC4x4 ? new basisModule.UastcImageTranscoder() : new basisModule.BasisLzEtc1sImageTranscoder();
  689. var texFormat = src === _transcoder__WEBPACK_IMPORTED_MODULE_1__["sourceTextureFormat"].UASTC4x4 ? basisModule.TextureFormat.UASTC4x4 : basisModule.TextureFormat.ETC1S;
  690. var imageInfo = new basisModule.ImageInfo(texFormat, width, height, level);
  691. var targetFormat = basisModule.TranscodeTarget[_transcoder__WEBPACK_IMPORTED_MODULE_1__["transcodeTarget"][dst]]; // works because the labels of the sourceTextureFormat enum are the same than the property names used in TranscodeTarget!
  692. if (!basisModule.isFormatSupported(targetFormat, texFormat)) {
  693. throw new Error("MSCTranscoder: Transcoding from \"" + _transcoder__WEBPACK_IMPORTED_MODULE_1__["sourceTextureFormat"][src] + "\" to \"" + _transcoder__WEBPACK_IMPORTED_MODULE_1__["transcodeTarget"][dst] + "\" not supported by current transcoder build.");
  694. }
  695. var result;
  696. if (src === _transcoder__WEBPACK_IMPORTED_MODULE_1__["sourceTextureFormat"].ETC1S) {
  697. var sgd = ktx2Reader.supercompressionGlobalData;
  698. transcoder.decodePalettes(sgd.endpointCount, sgd.endpointsData, sgd.selectorCount, sgd.selectorsData);
  699. transcoder.decodeTables(sgd.tablesData);
  700. imageInfo.flags = imageDesc.imageFlags;
  701. imageInfo.rgbByteOffset = 0;
  702. imageInfo.rgbByteLength = imageDesc.rgbSliceByteLength;
  703. imageInfo.alphaByteOffset = imageDesc.alphaSliceByteOffset > 0 ? imageDesc.rgbSliceByteLength : 0;
  704. imageInfo.alphaByteLength = imageDesc.alphaSliceByteLength;
  705. result = transcoder.transcodeImage(targetFormat, encodedData, imageInfo, 0, isVideo);
  706. }
  707. else {
  708. imageInfo.flags = 0;
  709. imageInfo.rgbByteOffset = 0;
  710. imageInfo.rgbByteLength = uncompressedByteLength;
  711. imageInfo.alphaByteOffset = 0;
  712. imageInfo.alphaByteLength = 0;
  713. result = transcoder.transcodeImage(targetFormat, encodedData, imageInfo, 0, ktx2Reader.hasAlpha, isVideo);
  714. }
  715. if (result && result.transcodedImage !== undefined) {
  716. var textureData = result.transcodedImage.get_typed_memory_view().slice();
  717. result.transcodedImage.delete();
  718. return textureData;
  719. }
  720. return null;
  721. });
  722. };
  723. /**
  724. * URL to use when loading the MSC transcoder
  725. */
  726. MSCTranscoder.JSModuleURL = "https://preview.babylonjs.com/ktx2Transcoders/msc_basis_transcoder.js";
  727. /**
  728. * URL to use when loading the wasm module for the transcoder
  729. */
  730. MSCTranscoder.WasmModuleURL = "https://preview.babylonjs.com/ktx2Transcoders/msc_basis_transcoder.wasm";
  731. MSCTranscoder.UseFromWorkerThread = true;
  732. return MSCTranscoder;
  733. }(_transcoder__WEBPACK_IMPORTED_MODULE_1__["Transcoder"]));
  734. /***/ }),
  735. /***/ "./index.ts":
  736. /*!******************!*\
  737. !*** ./index.ts ***!
  738. \******************/
  739. /*! exports provided: KTX2Decoder, SupercompressionScheme, KTX2FileReader, sourceTextureFormat, transcodeTarget, Transcoder, TranscoderManager, WASMMemoryManager, ZSTDDecoder, DataReader, LiteTranscoder, LiteTranscoder_UASTC_ASTC, LiteTranscoder_UASTC_BC7, MSCTranscoder */
  740. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  741. "use strict";
  742. __webpack_require__.r(__webpack_exports__);
  743. /* harmony import */ var _ktx2Decoder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ktx2Decoder */ "./ktx2Decoder.ts");
  744. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KTX2Decoder", function() { return _ktx2Decoder__WEBPACK_IMPORTED_MODULE_0__["KTX2Decoder"]; });
  745. /* harmony import */ var _ktx2FileReader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ktx2FileReader */ "./ktx2FileReader.ts");
  746. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SupercompressionScheme", function() { return _ktx2FileReader__WEBPACK_IMPORTED_MODULE_1__["SupercompressionScheme"]; });
  747. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KTX2FileReader", function() { return _ktx2FileReader__WEBPACK_IMPORTED_MODULE_1__["KTX2FileReader"]; });
  748. /* harmony import */ var _transcoder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transcoder */ "./transcoder.ts");
  749. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sourceTextureFormat", function() { return _transcoder__WEBPACK_IMPORTED_MODULE_2__["sourceTextureFormat"]; });
  750. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transcodeTarget", function() { return _transcoder__WEBPACK_IMPORTED_MODULE_2__["transcodeTarget"]; });
  751. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Transcoder", function() { return _transcoder__WEBPACK_IMPORTED_MODULE_2__["Transcoder"]; });
  752. /* harmony import */ var _transcoderManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./transcoderManager */ "./transcoderManager.ts");
  753. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TranscoderManager", function() { return _transcoderManager__WEBPACK_IMPORTED_MODULE_3__["TranscoderManager"]; });
  754. /* harmony import */ var _wasmMemoryManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./wasmMemoryManager */ "./wasmMemoryManager.ts");
  755. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WASMMemoryManager", function() { return _wasmMemoryManager__WEBPACK_IMPORTED_MODULE_4__["WASMMemoryManager"]; });
  756. /* harmony import */ var _zstddec__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./zstddec */ "./zstddec.ts");
  757. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZSTDDecoder", function() { return _zstddec__WEBPACK_IMPORTED_MODULE_5__["ZSTDDecoder"]; });
  758. /* harmony import */ var _Misc_index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Misc/index */ "./Misc/index.ts");
  759. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DataReader", function() { return _Misc_index__WEBPACK_IMPORTED_MODULE_6__["DataReader"]; });
  760. /* harmony import */ var _Transcoders_index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Transcoders/index */ "./Transcoders/index.ts");
  761. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LiteTranscoder", function() { return _Transcoders_index__WEBPACK_IMPORTED_MODULE_7__["LiteTranscoder"]; });
  762. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LiteTranscoder_UASTC_ASTC", function() { return _Transcoders_index__WEBPACK_IMPORTED_MODULE_7__["LiteTranscoder_UASTC_ASTC"]; });
  763. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LiteTranscoder_UASTC_BC7", function() { return _Transcoders_index__WEBPACK_IMPORTED_MODULE_7__["LiteTranscoder_UASTC_BC7"]; });
  764. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MSCTranscoder", function() { return _Transcoders_index__WEBPACK_IMPORTED_MODULE_7__["MSCTranscoder"]; });
  765. /***/ }),
  766. /***/ "./ktx2Decoder.ts":
  767. /*!************************!*\
  768. !*** ./ktx2Decoder.ts ***!
  769. \************************/
  770. /*! exports provided: KTX2Decoder */
  771. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  772. "use strict";
  773. __webpack_require__.r(__webpack_exports__);
  774. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KTX2Decoder", function() { return KTX2Decoder; });
  775. /* harmony import */ var _ktx2FileReader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ktx2FileReader */ "./ktx2FileReader.ts");
  776. /* harmony import */ var _transcoderManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transcoderManager */ "./transcoderManager.ts");
  777. /* harmony import */ var _Transcoders_liteTranscoder_UASTC_ASTC__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Transcoders/liteTranscoder_UASTC_ASTC */ "./Transcoders/liteTranscoder_UASTC_ASTC.ts");
  778. /* harmony import */ var _Transcoders_liteTranscoder_UASTC_BC7__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Transcoders/liteTranscoder_UASTC_BC7 */ "./Transcoders/liteTranscoder_UASTC_BC7.ts");
  779. /* harmony import */ var _Transcoders_mscTranscoder__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Transcoders/mscTranscoder */ "./Transcoders/mscTranscoder.ts");
  780. /* harmony import */ var _transcoder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./transcoder */ "./transcoder.ts");
  781. /* harmony import */ var _zstddec__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./zstddec */ "./zstddec.ts");
  782. /**
  783. * Resources used for the implementation:
  784. * - 3js KTX2 loader: https://github.com/mrdoob/three.js/blob/dfb5c23ce126ec845e4aa240599915fef5375797/examples/jsm/loaders/KTX2Loader.js
  785. * - Universal Texture Transcoders: https://github.com/KhronosGroup/Universal-Texture-Transcoders
  786. * - KTX2 specification: http://github.khronos.org/KTX-Specification/
  787. * - KTX2 binaries to convert files: https://github.com/KhronosGroup/KTX-Software/releases
  788. * - KTX specification: https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.html
  789. * - KTX-Software: https://github.com/KhronosGroup/KTX-Software
  790. */
  791. var COMPRESSED_RGBA_BPTC_UNORM_EXT = 0x8E8C;
  792. var COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0;
  793. var COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0;
  794. var COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3;
  795. var COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02;
  796. var COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00;
  797. var COMPRESSED_RGBA8_ETC2_EAC = 0x9278;
  798. var COMPRESSED_RGB8_ETC2 = 0x9274;
  799. var COMPRESSED_RGB_ETC1_WEBGL = 0x8D64;
  800. var RGBA8Format = 0x8058;
  801. var isPowerOfTwo = function (value) {
  802. return (value & (value - 1)) === 0 && value !== 0;
  803. };
  804. /**
  805. * Class for decoding KTX2 files
  806. *
  807. */
  808. var KTX2Decoder = /** @class */ (function () {
  809. function KTX2Decoder() {
  810. this._transcoderMgr = new _transcoderManager__WEBPACK_IMPORTED_MODULE_1__["TranscoderManager"]();
  811. }
  812. KTX2Decoder.prototype.decode = function (data, caps) {
  813. var _this = this;
  814. return Promise.resolve().then(function () {
  815. var kfr = new _ktx2FileReader__WEBPACK_IMPORTED_MODULE_0__["KTX2FileReader"](data);
  816. if (!kfr.isValid()) {
  817. throw new Error("Invalid KT2 file: wrong signature");
  818. }
  819. kfr.parse();
  820. if (kfr.needZSTDDecoder) {
  821. if (!_this._zstdDecoder) {
  822. _this._zstdDecoder = new _zstddec__WEBPACK_IMPORTED_MODULE_6__["ZSTDDecoder"]();
  823. }
  824. return _this._zstdDecoder.init().then(function () {
  825. return _this._decodeData(kfr, caps);
  826. });
  827. }
  828. return _this._decodeData(kfr, caps);
  829. });
  830. };
  831. KTX2Decoder.prototype._decodeData = function (kfr, caps) {
  832. var width = kfr.header.pixelWidth;
  833. var height = kfr.header.pixelHeight;
  834. var srcTexFormat = kfr.textureFormat;
  835. // PVRTC1 transcoders (from both ETC1S and UASTC) only support power of 2 dimensions.
  836. var pvrtcTranscodable = isPowerOfTwo(width) && isPowerOfTwo(height);
  837. var targetFormat = -1;
  838. var transcodedFormat = -1;
  839. if (caps.astc) {
  840. targetFormat = _transcoder__WEBPACK_IMPORTED_MODULE_5__["transcodeTarget"].ASTC_4x4_RGBA;
  841. transcodedFormat = COMPRESSED_RGBA_ASTC_4x4_KHR;
  842. }
  843. else if (caps.bptc) {
  844. targetFormat = _transcoder__WEBPACK_IMPORTED_MODULE_5__["transcodeTarget"].BC7_RGBA;
  845. transcodedFormat = COMPRESSED_RGBA_BPTC_UNORM_EXT;
  846. }
  847. else if (caps.s3tc) {
  848. targetFormat = kfr.hasAlpha ? _transcoder__WEBPACK_IMPORTED_MODULE_5__["transcodeTarget"].BC3_RGBA : _transcoder__WEBPACK_IMPORTED_MODULE_5__["transcodeTarget"].BC1_RGB;
  849. transcodedFormat = kfr.hasAlpha ? COMPRESSED_RGBA_S3TC_DXT5_EXT : COMPRESSED_RGB_S3TC_DXT1_EXT;
  850. }
  851. else if (caps.pvrtc && pvrtcTranscodable) {
  852. targetFormat = kfr.hasAlpha ? _transcoder__WEBPACK_IMPORTED_MODULE_5__["transcodeTarget"].PVRTC1_4_RGBA : _transcoder__WEBPACK_IMPORTED_MODULE_5__["transcodeTarget"].PVRTC1_4_RGB;
  853. transcodedFormat = kfr.hasAlpha ? COMPRESSED_RGBA_PVRTC_4BPPV1_IMG : COMPRESSED_RGB_PVRTC_4BPPV1_IMG;
  854. }
  855. else if (caps.etc2) {
  856. targetFormat = kfr.hasAlpha ? _transcoder__WEBPACK_IMPORTED_MODULE_5__["transcodeTarget"].ETC2_RGBA : _transcoder__WEBPACK_IMPORTED_MODULE_5__["transcodeTarget"].ETC1_RGB /* subset of ETC2 */;
  857. transcodedFormat = kfr.hasAlpha ? COMPRESSED_RGBA8_ETC2_EAC : COMPRESSED_RGB8_ETC2;
  858. }
  859. else if (caps.etc1) {
  860. targetFormat = _transcoder__WEBPACK_IMPORTED_MODULE_5__["transcodeTarget"].ETC1_RGB;
  861. transcodedFormat = COMPRESSED_RGB_ETC1_WEBGL;
  862. }
  863. else {
  864. targetFormat = _transcoder__WEBPACK_IMPORTED_MODULE_5__["transcodeTarget"].RGBA32;
  865. transcodedFormat = RGBA8Format;
  866. }
  867. var transcoder = this._transcoderMgr.findTranscoder(srcTexFormat, targetFormat);
  868. if (transcoder === null) {
  869. throw new Error("no transcoder found to transcode source texture format \"" + _transcoder__WEBPACK_IMPORTED_MODULE_5__["sourceTextureFormat"][srcTexFormat] + "\" to format \"" + _transcoder__WEBPACK_IMPORTED_MODULE_5__["transcodeTarget"][targetFormat] + "\"");
  870. }
  871. var mipmaps = [];
  872. var dataPromises = [];
  873. var mipmapBuffers = [];
  874. var decodedData = { width: 0, height: 0, transcodedFormat: transcodedFormat, mipmaps: mipmaps, isInGammaSpace: kfr.isInGammaSpace };
  875. var firstImageDescIndex = 0;
  876. for (var level = 0; level < kfr.header.levelCount; level++) {
  877. if (level > 0) {
  878. firstImageDescIndex += Math.max(kfr.header.layerCount, 1) * kfr.header.faceCount * Math.max(kfr.header.pixelDepth >> (level - 1), 1);
  879. }
  880. var levelWidth = Math.ceil(width / (1 << level));
  881. var levelHeight = Math.ceil(height / (1 << level));
  882. var numImagesInLevel = kfr.header.faceCount; // note that cubemap are not supported yet (see KTX2FileReader), so faceCount == 1
  883. var levelImageByteLength = ((levelWidth + 3) >> 2) * ((levelHeight + 3) >> 2) * kfr.dfdBlock.bytesPlane[0];
  884. var levelUncompressedByteLength = kfr.levels[level].uncompressedByteLength;
  885. var levelDataBuffer = kfr.data.buffer;
  886. var levelDataOffset = kfr.levels[level].byteOffset + kfr.data.byteOffset;
  887. var imageOffsetInLevel = 0;
  888. if (kfr.header.supercompressionScheme === _ktx2FileReader__WEBPACK_IMPORTED_MODULE_0__["SupercompressionScheme"].ZStandard) {
  889. levelDataBuffer = this._zstdDecoder.decode(new Uint8Array(levelDataBuffer, levelDataOffset, kfr.levels[level].byteLength), levelUncompressedByteLength);
  890. levelDataOffset = 0;
  891. }
  892. if (level === 0) {
  893. decodedData.width = levelWidth;
  894. decodedData.height = levelHeight;
  895. }
  896. var _loop_1 = function (imageIndex) {
  897. var encodedData = void 0;
  898. var imageDesc = null;
  899. if (kfr.header.supercompressionScheme === _ktx2FileReader__WEBPACK_IMPORTED_MODULE_0__["SupercompressionScheme"].BasisLZ) {
  900. imageDesc = kfr.supercompressionGlobalData.imageDescs[firstImageDescIndex + imageIndex];
  901. encodedData = new Uint8Array(levelDataBuffer, levelDataOffset + imageDesc.rgbSliceByteOffset, imageDesc.rgbSliceByteLength + imageDesc.alphaSliceByteLength);
  902. }
  903. else {
  904. encodedData = new Uint8Array(levelDataBuffer, levelDataOffset + imageOffsetInLevel, levelImageByteLength);
  905. imageOffsetInLevel += levelImageByteLength;
  906. }
  907. var mipmap = {
  908. data: null,
  909. width: levelWidth,
  910. height: levelHeight,
  911. };
  912. var transcodedData = transcoder.transcode(srcTexFormat, targetFormat, level, levelWidth, levelHeight, levelUncompressedByteLength, kfr, imageDesc, encodedData)
  913. .then(function (data) {
  914. mipmap.data = data;
  915. if (data) {
  916. mipmapBuffers.push(data.buffer);
  917. }
  918. return data;
  919. })
  920. .catch(function (reason) {
  921. var _a;
  922. decodedData.errors = (_a = decodedData.errors) !== null && _a !== void 0 ? _a : "";
  923. decodedData.errors += reason + "\n";
  924. return null;
  925. });
  926. dataPromises.push(transcodedData);
  927. mipmaps.push(mipmap);
  928. };
  929. for (var imageIndex = 0; imageIndex < numImagesInLevel; imageIndex++) {
  930. _loop_1(imageIndex);
  931. }
  932. }
  933. return Promise.all(dataPromises).then(function () {
  934. return decodedData;
  935. });
  936. };
  937. return KTX2Decoder;
  938. }());
  939. // Put in the order you want the transcoders to be used in priority
  940. _transcoderManager__WEBPACK_IMPORTED_MODULE_1__["TranscoderManager"].RegisterTranscoder(_Transcoders_liteTranscoder_UASTC_ASTC__WEBPACK_IMPORTED_MODULE_2__["LiteTranscoder_UASTC_ASTC"]);
  941. _transcoderManager__WEBPACK_IMPORTED_MODULE_1__["TranscoderManager"].RegisterTranscoder(_Transcoders_liteTranscoder_UASTC_BC7__WEBPACK_IMPORTED_MODULE_3__["LiteTranscoder_UASTC_BC7"]);
  942. _transcoderManager__WEBPACK_IMPORTED_MODULE_1__["TranscoderManager"].RegisterTranscoder(_Transcoders_mscTranscoder__WEBPACK_IMPORTED_MODULE_4__["MSCTranscoder"]); // catch all transcoder - will throw an error if the format can't be transcoded
  943. /***/ }),
  944. /***/ "./ktx2FileReader.ts":
  945. /*!***************************!*\
  946. !*** ./ktx2FileReader.ts ***!
  947. \***************************/
  948. /*! exports provided: SupercompressionScheme, KTX2FileReader */
  949. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  950. "use strict";
  951. __webpack_require__.r(__webpack_exports__);
  952. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SupercompressionScheme", function() { return SupercompressionScheme; });
  953. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KTX2FileReader", function() { return KTX2FileReader; });
  954. /* harmony import */ var _Misc_dataReader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Misc/dataReader */ "./Misc/dataReader.ts");
  955. /* harmony import */ var _transcoder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transcoder */ "./transcoder.ts");
  956. /** @hidden */
  957. var SupercompressionScheme;
  958. (function (SupercompressionScheme) {
  959. SupercompressionScheme[SupercompressionScheme["None"] = 0] = "None";
  960. SupercompressionScheme[SupercompressionScheme["BasisLZ"] = 1] = "BasisLZ";
  961. SupercompressionScheme[SupercompressionScheme["ZStandard"] = 2] = "ZStandard";
  962. SupercompressionScheme[SupercompressionScheme["ZLib"] = 3] = "ZLib";
  963. })(SupercompressionScheme || (SupercompressionScheme = {}));
  964. var KTX2FileReader = /** @class */ (function () {
  965. /**
  966. * Will throw an exception if the file can't be parsed
  967. */
  968. function KTX2FileReader(data) {
  969. this._data = data;
  970. }
  971. Object.defineProperty(KTX2FileReader.prototype, "data", {
  972. get: function () {
  973. return this._data;
  974. },
  975. enumerable: false,
  976. configurable: true
  977. });
  978. Object.defineProperty(KTX2FileReader.prototype, "header", {
  979. get: function () {
  980. return this._header;
  981. },
  982. enumerable: false,
  983. configurable: true
  984. });
  985. Object.defineProperty(KTX2FileReader.prototype, "levels", {
  986. get: function () {
  987. return this._levels;
  988. },
  989. enumerable: false,
  990. configurable: true
  991. });
  992. Object.defineProperty(KTX2FileReader.prototype, "dfdBlock", {
  993. get: function () {
  994. return this._dfdBlock;
  995. },
  996. enumerable: false,
  997. configurable: true
  998. });
  999. Object.defineProperty(KTX2FileReader.prototype, "supercompressionGlobalData", {
  1000. get: function () {
  1001. return this._supercompressionGlobalData;
  1002. },
  1003. enumerable: false,
  1004. configurable: true
  1005. });
  1006. KTX2FileReader.prototype.isValid = function () {
  1007. return KTX2FileReader.IsValid(this._data);
  1008. };
  1009. KTX2FileReader.prototype.parse = function () {
  1010. var offsetInFile = 12; // skip the header
  1011. /**
  1012. * Get the header
  1013. */
  1014. var hdrReader = new _Misc_dataReader__WEBPACK_IMPORTED_MODULE_0__["DataReader"](this._data, offsetInFile, 17 * 4);
  1015. var header = this._header = {
  1016. vkFormat: hdrReader.readUint32(),
  1017. typeSize: hdrReader.readUint32(),
  1018. pixelWidth: hdrReader.readUint32(),
  1019. pixelHeight: hdrReader.readUint32(),
  1020. pixelDepth: hdrReader.readUint32(),
  1021. layerCount: hdrReader.readUint32(),
  1022. faceCount: hdrReader.readUint32(),
  1023. levelCount: hdrReader.readUint32(),
  1024. supercompressionScheme: hdrReader.readUint32(),
  1025. dfdByteOffset: hdrReader.readUint32(),
  1026. dfdByteLength: hdrReader.readUint32(),
  1027. kvdByteOffset: hdrReader.readUint32(),
  1028. kvdByteLength: hdrReader.readUint32(),
  1029. sgdByteOffset: hdrReader.readUint64(),
  1030. sgdByteLength: hdrReader.readUint64(),
  1031. };
  1032. if (header.pixelDepth > 0) {
  1033. throw new Error("Failed to parse KTX2 file - Only 2D textures are currently supported.");
  1034. }
  1035. if (header.layerCount > 1) {
  1036. throw new Error("Failed to parse KTX2 file - Array textures are not currently supported.");
  1037. }
  1038. if (header.faceCount > 1) {
  1039. throw new Error("Failed to parse KTX2 file - Cube textures are not currently supported.");
  1040. }
  1041. offsetInFile += hdrReader.byteOffset;
  1042. /**
  1043. * Get the levels
  1044. */
  1045. var levelCount = Math.max(1, header.levelCount);
  1046. var levelReader = new _Misc_dataReader__WEBPACK_IMPORTED_MODULE_0__["DataReader"](this._data, offsetInFile, levelCount * 3 * (2 * 4));
  1047. var levels = this._levels = [];
  1048. while (levelCount--) {
  1049. levels.push({
  1050. byteOffset: levelReader.readUint64(),
  1051. byteLength: levelReader.readUint64(),
  1052. uncompressedByteLength: levelReader.readUint64(),
  1053. });
  1054. }
  1055. offsetInFile += levelReader.byteOffset;
  1056. /**
  1057. * Get the data format descriptor (DFD) blocks
  1058. */
  1059. var dfdReader = new _Misc_dataReader__WEBPACK_IMPORTED_MODULE_0__["DataReader"](this._data, header.dfdByteOffset, header.dfdByteLength);
  1060. var dfdBlock = this._dfdBlock = {
  1061. vendorId: dfdReader.skipBytes(4 /* skip totalSize */).readUint16(),
  1062. descriptorType: dfdReader.readUint16(),
  1063. versionNumber: dfdReader.readUint16(),
  1064. descriptorBlockSize: dfdReader.readUint16(),
  1065. colorModel: dfdReader.readUint8(),
  1066. colorPrimaries: dfdReader.readUint8(),
  1067. transferFunction: dfdReader.readUint8(),
  1068. flags: dfdReader.readUint8(),
  1069. texelBlockDimension: {
  1070. x: dfdReader.readUint8() + 1,
  1071. y: dfdReader.readUint8() + 1,
  1072. z: dfdReader.readUint8() + 1,
  1073. w: dfdReader.readUint8() + 1,
  1074. },
  1075. bytesPlane: [
  1076. dfdReader.readUint8(),
  1077. dfdReader.readUint8(),
  1078. dfdReader.readUint8(),
  1079. dfdReader.readUint8(),
  1080. dfdReader.readUint8(),
  1081. dfdReader.readUint8(),
  1082. dfdReader.readUint8(),
  1083. dfdReader.readUint8(),
  1084. ],
  1085. numSamples: 0,
  1086. samples: new Array(),
  1087. };
  1088. dfdBlock.numSamples = (dfdBlock.descriptorBlockSize - 24) / 16;
  1089. for (var i = 0; i < dfdBlock.numSamples; i++) {
  1090. var sample = {
  1091. bitOffset: dfdReader.readUint16(),
  1092. bitLength: dfdReader.readUint8() + 1,
  1093. channelType: dfdReader.readUint8(),
  1094. channelFlags: 0,
  1095. samplePosition: [
  1096. dfdReader.readUint8(),
  1097. dfdReader.readUint8(),
  1098. dfdReader.readUint8(),
  1099. dfdReader.readUint8(),
  1100. ],
  1101. sampleLower: dfdReader.readUint32(),
  1102. sampleUpper: dfdReader.readUint32(),
  1103. };
  1104. sample.channelFlags = (sample.channelType & 0xF0) >> 4;
  1105. sample.channelType = sample.channelType & 0x0F;
  1106. dfdBlock.samples.push(sample);
  1107. }
  1108. /**
  1109. * Get the Supercompression Global Data (sgd)
  1110. */
  1111. var sgd = this._supercompressionGlobalData = {};
  1112. if (header.sgdByteLength > 0) {
  1113. var sgdReader = new _Misc_dataReader__WEBPACK_IMPORTED_MODULE_0__["DataReader"](this._data, header.sgdByteOffset, header.sgdByteLength);
  1114. sgd.endpointCount = sgdReader.readUint16();
  1115. sgd.selectorCount = sgdReader.readUint16();
  1116. sgd.endpointsByteLength = sgdReader.readUint32();
  1117. sgd.selectorsByteLength = sgdReader.readUint32();
  1118. sgd.tablesByteLength = sgdReader.readUint32();
  1119. sgd.extendedByteLength = sgdReader.readUint32();
  1120. sgd.imageDescs = [];
  1121. var imageCount = this._getImageCount();
  1122. for (var i = 0; i < imageCount; i++) {
  1123. sgd.imageDescs.push({
  1124. imageFlags: sgdReader.readUint32(),
  1125. rgbSliceByteOffset: sgdReader.readUint32(),
  1126. rgbSliceByteLength: sgdReader.readUint32(),
  1127. alphaSliceByteOffset: sgdReader.readUint32(),
  1128. alphaSliceByteLength: sgdReader.readUint32(),
  1129. });
  1130. }
  1131. var endpointsByteOffset = header.sgdByteOffset + sgdReader.byteOffset;
  1132. var selectorsByteOffset = endpointsByteOffset + sgd.endpointsByteLength;
  1133. var tablesByteOffset = selectorsByteOffset + sgd.selectorsByteLength;
  1134. var extendedByteOffset = tablesByteOffset + sgd.tablesByteLength;
  1135. sgd.endpointsData = new Uint8Array(this._data.buffer, this._data.byteOffset + endpointsByteOffset, sgd.endpointsByteLength);
  1136. sgd.selectorsData = new Uint8Array(this._data.buffer, this._data.byteOffset + selectorsByteOffset, sgd.selectorsByteLength);
  1137. sgd.tablesData = new Uint8Array(this._data.buffer, this._data.byteOffset + tablesByteOffset, sgd.tablesByteLength);
  1138. sgd.extendedData = new Uint8Array(this._data.buffer, this._data.byteOffset + extendedByteOffset, sgd.extendedByteLength);
  1139. }
  1140. };
  1141. KTX2FileReader.prototype._getImageCount = function () {
  1142. var layerPixelDepth = Math.max(this._header.pixelDepth, 1);
  1143. for (var i = 1; i < this._header.levelCount; i++) {
  1144. layerPixelDepth += Math.max(this._header.pixelDepth >> i, 1);
  1145. }
  1146. return Math.max(this._header.layerCount, 1) * this._header.faceCount * layerPixelDepth;
  1147. };
  1148. Object.defineProperty(KTX2FileReader.prototype, "textureFormat", {
  1149. get: function () {
  1150. return this._dfdBlock.colorModel === 166 /* UASTC */ ? _transcoder__WEBPACK_IMPORTED_MODULE_1__["sourceTextureFormat"].UASTC4x4 : _transcoder__WEBPACK_IMPORTED_MODULE_1__["sourceTextureFormat"].ETC1S;
  1151. },
  1152. enumerable: false,
  1153. configurable: true
  1154. });
  1155. Object.defineProperty(KTX2FileReader.prototype, "hasAlpha", {
  1156. get: function () {
  1157. var tformat = this.textureFormat;
  1158. switch (tformat) {
  1159. case _transcoder__WEBPACK_IMPORTED_MODULE_1__["sourceTextureFormat"].ETC1S:
  1160. return this._dfdBlock.numSamples === 2 && (this._dfdBlock.samples[0].channelType === 15 /* AAA */ || this._dfdBlock.samples[1].channelType === 15 /* AAA */);
  1161. case _transcoder__WEBPACK_IMPORTED_MODULE_1__["sourceTextureFormat"].UASTC4x4:
  1162. return this._dfdBlock.samples[0].channelType === 3 /* RGBA */;
  1163. }
  1164. return false;
  1165. },
  1166. enumerable: false,
  1167. configurable: true
  1168. });
  1169. Object.defineProperty(KTX2FileReader.prototype, "needZSTDDecoder", {
  1170. get: function () {
  1171. return this._header.supercompressionScheme === SupercompressionScheme.ZStandard;
  1172. },
  1173. enumerable: false,
  1174. configurable: true
  1175. });
  1176. Object.defineProperty(KTX2FileReader.prototype, "isInGammaSpace", {
  1177. get: function () {
  1178. return this._dfdBlock.transferFunction === 2 /* sRGB */;
  1179. },
  1180. enumerable: false,
  1181. configurable: true
  1182. });
  1183. KTX2FileReader.IsValid = function (data) {
  1184. if (data.byteLength >= 12) {
  1185. // '«', 'K', 'T', 'X', ' ', '2', '0', '»', '\r', '\n', '\x1A', '\n'
  1186. var identifier = new Uint8Array(data.buffer, data.byteOffset, 12);
  1187. if (identifier[0] === 0xAB && identifier[1] === 0x4B && identifier[2] === 0x54 && identifier[3] === 0x58 && identifier[4] === 0x20 && identifier[5] === 0x32 &&
  1188. identifier[6] === 0x30 && identifier[7] === 0xBB && identifier[8] === 0x0D && identifier[9] === 0x0A && identifier[10] === 0x1A && identifier[11] === 0x0A) {
  1189. return true;
  1190. }
  1191. }
  1192. return false;
  1193. };
  1194. return KTX2FileReader;
  1195. }());
  1196. /***/ }),
  1197. /***/ "./legacy/legacy.ts":
  1198. /*!**************************!*\
  1199. !*** ./legacy/legacy.ts ***!
  1200. \**************************/
  1201. /*! exports provided: KTX2Decoder, SupercompressionScheme, KTX2FileReader, sourceTextureFormat, transcodeTarget, Transcoder, TranscoderManager, WASMMemoryManager, ZSTDDecoder, DataReader, LiteTranscoder, LiteTranscoder_UASTC_ASTC, LiteTranscoder_UASTC_BC7, MSCTranscoder */
  1202. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1203. "use strict";
  1204. __webpack_require__.r(__webpack_exports__);
  1205. /* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../index */ "./index.ts");
  1206. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KTX2Decoder", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["KTX2Decoder"]; });
  1207. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SupercompressionScheme", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["SupercompressionScheme"]; });
  1208. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KTX2FileReader", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["KTX2FileReader"]; });
  1209. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sourceTextureFormat", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["sourceTextureFormat"]; });
  1210. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transcodeTarget", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["transcodeTarget"]; });
  1211. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Transcoder", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["Transcoder"]; });
  1212. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TranscoderManager", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["TranscoderManager"]; });
  1213. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WASMMemoryManager", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["WASMMemoryManager"]; });
  1214. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZSTDDecoder", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["ZSTDDecoder"]; });
  1215. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DataReader", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["DataReader"]; });
  1216. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LiteTranscoder", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["LiteTranscoder"]; });
  1217. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LiteTranscoder_UASTC_ASTC", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["LiteTranscoder_UASTC_ASTC"]; });
  1218. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LiteTranscoder_UASTC_BC7", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["LiteTranscoder_UASTC_BC7"]; });
  1219. /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MSCTranscoder", function() { return _index__WEBPACK_IMPORTED_MODULE_0__["MSCTranscoder"]; });
  1220. var globalObject = (typeof global !== 'undefined') ? global : ((typeof window !== 'undefined') ? window : undefined);
  1221. if (typeof globalObject !== "undefined") {
  1222. globalObject.KTX2DECODER = _index__WEBPACK_IMPORTED_MODULE_0__["KTX2Decoder"];
  1223. }
  1224. /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/webpack/buildin/global.js */ "../../node_modules/webpack/buildin/global.js")))
  1225. /***/ }),
  1226. /***/ "./transcoder.ts":
  1227. /*!***********************!*\
  1228. !*** ./transcoder.ts ***!
  1229. \***********************/
  1230. /*! exports provided: sourceTextureFormat, transcodeTarget, Transcoder */
  1231. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1232. "use strict";
  1233. __webpack_require__.r(__webpack_exports__);
  1234. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sourceTextureFormat", function() { return sourceTextureFormat; });
  1235. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transcodeTarget", function() { return transcodeTarget; });
  1236. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Transcoder", function() { return Transcoder; });
  1237. /**
  1238. * @hidden
  1239. */
  1240. var sourceTextureFormat;
  1241. (function (sourceTextureFormat) {
  1242. sourceTextureFormat[sourceTextureFormat["ETC1S"] = 0] = "ETC1S";
  1243. sourceTextureFormat[sourceTextureFormat["UASTC4x4"] = 1] = "UASTC4x4";
  1244. })(sourceTextureFormat || (sourceTextureFormat = {}));
  1245. /**
  1246. * @hidden
  1247. */
  1248. var transcodeTarget;
  1249. (function (transcodeTarget) {
  1250. transcodeTarget[transcodeTarget["ASTC_4x4_RGBA"] = 0] = "ASTC_4x4_RGBA";
  1251. transcodeTarget[transcodeTarget["BC7_RGBA"] = 1] = "BC7_RGBA";
  1252. transcodeTarget[transcodeTarget["BC3_RGBA"] = 2] = "BC3_RGBA";
  1253. transcodeTarget[transcodeTarget["BC1_RGB"] = 3] = "BC1_RGB";
  1254. transcodeTarget[transcodeTarget["PVRTC1_4_RGBA"] = 4] = "PVRTC1_4_RGBA";
  1255. transcodeTarget[transcodeTarget["PVRTC1_4_RGB"] = 5] = "PVRTC1_4_RGB";
  1256. transcodeTarget[transcodeTarget["ETC2_RGBA"] = 6] = "ETC2_RGBA";
  1257. transcodeTarget[transcodeTarget["ETC1_RGB"] = 7] = "ETC1_RGB";
  1258. transcodeTarget[transcodeTarget["RGBA32"] = 8] = "RGBA32";
  1259. })(transcodeTarget || (transcodeTarget = {}));
  1260. /**
  1261. * @hidden
  1262. */
  1263. var Transcoder = /** @class */ (function () {
  1264. function Transcoder() {
  1265. }
  1266. Transcoder.CanTranscode = function (src, dst) {
  1267. return false;
  1268. };
  1269. Transcoder.prototype.initialize = function () {
  1270. };
  1271. Transcoder.prototype.needMemoryManager = function () {
  1272. return false;
  1273. };
  1274. Transcoder.prototype.setMemoryManager = function (memoryMgr) {
  1275. };
  1276. Transcoder.prototype.transcode = function (src, dst, level, width, height, uncompressedByteLength, ktx2Reader, imageDesc, encodedData) {
  1277. return Promise.resolve(null);
  1278. };
  1279. return Transcoder;
  1280. }());
  1281. /***/ }),
  1282. /***/ "./transcoderManager.ts":
  1283. /*!******************************!*\
  1284. !*** ./transcoderManager.ts ***!
  1285. \******************************/
  1286. /*! exports provided: TranscoderManager */
  1287. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1288. "use strict";
  1289. __webpack_require__.r(__webpack_exports__);
  1290. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TranscoderManager", function() { return TranscoderManager; });
  1291. /* harmony import */ var _transcoder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transcoder */ "./transcoder.ts");
  1292. /* harmony import */ var _wasmMemoryManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./wasmMemoryManager */ "./wasmMemoryManager.ts");
  1293. /**
  1294. * @hidden
  1295. */
  1296. var TranscoderManager = /** @class */ (function () {
  1297. function TranscoderManager() {
  1298. }
  1299. TranscoderManager.RegisterTranscoder = function (transcoder) {
  1300. TranscoderManager._Transcoders.push(transcoder);
  1301. };
  1302. TranscoderManager.prototype.findTranscoder = function (src, dst) {
  1303. var transcoder = null;
  1304. for (var i = 0; i < TranscoderManager._Transcoders.length; ++i) {
  1305. if (TranscoderManager._Transcoders[i].CanTranscode(src, dst)) {
  1306. var key = _transcoder__WEBPACK_IMPORTED_MODULE_0__["sourceTextureFormat"][src] + "_" + _transcoder__WEBPACK_IMPORTED_MODULE_0__["transcodeTarget"][dst];
  1307. transcoder = TranscoderManager._transcoderInstances[key];
  1308. if (!transcoder) {
  1309. transcoder = new TranscoderManager._Transcoders[i]();
  1310. transcoder.initialize();
  1311. if (transcoder.needMemoryManager()) {
  1312. if (!this._wasmMemoryManager) {
  1313. this._wasmMemoryManager = new _wasmMemoryManager__WEBPACK_IMPORTED_MODULE_1__["WASMMemoryManager"]();
  1314. }
  1315. transcoder.setMemoryManager(this._wasmMemoryManager);
  1316. }
  1317. TranscoderManager._transcoderInstances[key] = transcoder;
  1318. }
  1319. break;
  1320. }
  1321. }
  1322. return transcoder;
  1323. };
  1324. TranscoderManager._Transcoders = [];
  1325. TranscoderManager._transcoderInstances = {};
  1326. return TranscoderManager;
  1327. }());
  1328. /***/ }),
  1329. /***/ "./wasmMemoryManager.ts":
  1330. /*!******************************!*\
  1331. !*** ./wasmMemoryManager.ts ***!
  1332. \******************************/
  1333. /*! exports provided: WASMMemoryManager */
  1334. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1335. "use strict";
  1336. __webpack_require__.r(__webpack_exports__);
  1337. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WASMMemoryManager", function() { return WASMMemoryManager; });
  1338. /**
  1339. * @hidden
  1340. */
  1341. var WASMMemoryManager = /** @class */ (function () {
  1342. function WASMMemoryManager(initialMemoryPages) {
  1343. if (initialMemoryPages === void 0) { initialMemoryPages = WASMMemoryManager.InitialMemoryPages; }
  1344. this._numPages = initialMemoryPages;
  1345. this._memory = new WebAssembly.Memory({ initial: this._numPages });
  1346. this._memoryViewByteLength = this._numPages << 16;
  1347. this._memoryViewOffset = 0;
  1348. this._memoryView = new Uint8Array(this._memory.buffer, this._memoryViewOffset, this._memoryViewByteLength);
  1349. }
  1350. WASMMemoryManager.LoadWASM = function (path) {
  1351. if (this.LoadBinariesFromCurrentThread) {
  1352. return new Promise(function (resolve, reject) {
  1353. fetch(path)
  1354. .then(function (response) {
  1355. if (response.ok) {
  1356. return response.arrayBuffer();
  1357. }
  1358. throw new Error("Could not fetch the wasm component from \"" + path + "\": " + response.status + " - " + response.statusText);
  1359. })
  1360. .then(function (wasmBinary) { return resolve(wasmBinary); })
  1361. .catch(function (reason) {
  1362. reject(reason);
  1363. });
  1364. });
  1365. }
  1366. var id = this._RequestId++;
  1367. return new Promise(function (resolve) {
  1368. var wasmLoadedHandler = function (msg) {
  1369. if (msg.data.action === "wasmLoaded" && msg.data.id === id) {
  1370. self.removeEventListener("message", wasmLoadedHandler);
  1371. resolve(msg.data.wasmBinary);
  1372. }
  1373. };
  1374. self.addEventListener("message", wasmLoadedHandler);
  1375. postMessage({ action: "loadWASM", path: path, id: id });
  1376. });
  1377. };
  1378. Object.defineProperty(WASMMemoryManager.prototype, "wasmMemory", {
  1379. get: function () {
  1380. return this._memory;
  1381. },
  1382. enumerable: false,
  1383. configurable: true
  1384. });
  1385. WASMMemoryManager.prototype.getMemoryView = function (numPages, offset, byteLength) {
  1386. if (offset === void 0) { offset = 0; }
  1387. byteLength = byteLength !== null && byteLength !== void 0 ? byteLength : numPages << 16;
  1388. if (this._numPages < numPages) {
  1389. this._memory.grow(numPages - this._numPages);
  1390. this._numPages = numPages;
  1391. this._memoryView = new Uint8Array(this._memory.buffer, offset, byteLength);
  1392. this._memoryViewByteLength = byteLength;
  1393. this._memoryViewOffset = offset;
  1394. }
  1395. else {
  1396. this._memoryView = new Uint8Array(this._memory.buffer, offset, byteLength);
  1397. this._memoryViewByteLength = byteLength;
  1398. this._memoryViewOffset = offset;
  1399. }
  1400. return this._memoryView;
  1401. };
  1402. WASMMemoryManager.LoadBinariesFromCurrentThread = true;
  1403. WASMMemoryManager.InitialMemoryPages = (1 * 1024 * 1024) >> 16; // 1 Mbytes
  1404. WASMMemoryManager._RequestId = 0;
  1405. return WASMMemoryManager;
  1406. }());
  1407. /***/ }),
  1408. /***/ "./zstddec.ts":
  1409. /*!********************!*\
  1410. !*** ./zstddec.ts ***!
  1411. \********************/
  1412. /*! exports provided: ZSTDDecoder */
  1413. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1414. "use strict";
  1415. __webpack_require__.r(__webpack_exports__);
  1416. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZSTDDecoder", function() { return ZSTDDecoder; });
  1417. var init;
  1418. var instance;
  1419. var heap;
  1420. var IMPORT_OBJECT = {
  1421. env: {
  1422. emscripten_notify_memory_growth: function (index) {
  1423. heap = new Uint8Array(instance.exports.memory.buffer);
  1424. }
  1425. }
  1426. };
  1427. /**
  1428. * ZSTD (Zstandard) decoder.
  1429. */
  1430. var ZSTDDecoder = /** @class */ (function () {
  1431. function ZSTDDecoder() {
  1432. }
  1433. ZSTDDecoder.prototype.init = function () {
  1434. if (init) {
  1435. return init;
  1436. }
  1437. if (typeof fetch !== 'undefined') {
  1438. // Web.
  1439. init = fetch(ZSTDDecoder.WasmModuleURL)
  1440. .then(function (response) {
  1441. if (response.ok) {
  1442. return response.arrayBuffer();
  1443. }
  1444. throw new Error("Could not fetch the wasm component for the Zstandard decompression lib: " + response.status + " - " + response.statusText);
  1445. })
  1446. .then(function (arrayBuffer) { return WebAssembly.instantiate(arrayBuffer, IMPORT_OBJECT); })
  1447. .then(this._init);
  1448. }
  1449. else {
  1450. // Node.js.
  1451. init = WebAssembly
  1452. .instantiateStreaming(fetch(ZSTDDecoder.WasmModuleURL), IMPORT_OBJECT)
  1453. .then(this._init);
  1454. }
  1455. return init;
  1456. };
  1457. ZSTDDecoder.prototype._init = function (result) {
  1458. instance = result.instance;
  1459. IMPORT_OBJECT.env.emscripten_notify_memory_growth(0); // initialize heap.
  1460. };
  1461. ZSTDDecoder.prototype.decode = function (array, uncompressedSize) {
  1462. if (uncompressedSize === void 0) { uncompressedSize = 0; }
  1463. if (!instance) {
  1464. throw new Error("ZSTDDecoder: Await .init() before decoding.");
  1465. }
  1466. // Write compressed data into WASM memory.
  1467. var compressedSize = array.byteLength;
  1468. var compressedPtr = instance.exports.malloc(compressedSize);
  1469. heap.set(array, compressedPtr);
  1470. // Decompress into WASM memory.
  1471. uncompressedSize = uncompressedSize || Number(instance.exports.ZSTD_findDecompressedSize(compressedPtr, compressedSize));
  1472. var uncompressedPtr = instance.exports.malloc(uncompressedSize);
  1473. var actualSize = instance.exports.ZSTD_decompress(uncompressedPtr, uncompressedSize, compressedPtr, compressedSize);
  1474. // Read decompressed data and free WASM memory.
  1475. var dec = heap.slice(uncompressedPtr, uncompressedPtr + actualSize);
  1476. instance.exports.free(compressedPtr);
  1477. instance.exports.free(uncompressedPtr);
  1478. return dec;
  1479. };
  1480. ZSTDDecoder.WasmModuleURL = "https://preview.babylonjs.com/zstddec.wasm";
  1481. return ZSTDDecoder;
  1482. }());
  1483. /**
  1484. * BSD License
  1485. *
  1486. * For Zstandard software
  1487. *
  1488. * Copyright (c) 2016-present, Yann Collet, Facebook, Inc. All rights reserved.
  1489. *
  1490. * Redistribution and use in source and binary forms, with or without modification,
  1491. * are permitted provided that the following conditions are met:
  1492. *
  1493. * * Redistributions of source code must retain the above copyright notice, this
  1494. * list of conditions and the following disclaimer.
  1495. *
  1496. * * Redistributions in binary form must reproduce the above copyright notice,
  1497. * this list of conditions and the following disclaimer in the documentation
  1498. * and/or other materials provided with the distribution.
  1499. *
  1500. * * Neither the name Facebook nor the names of its contributors may be used to
  1501. * endorse or promote products derived from this software without specific
  1502. * prior written permission.
  1503. *
  1504. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  1505. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  1506. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  1507. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
  1508. * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  1509. * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  1510. * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  1511. * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  1512. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  1513. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  1514. */
  1515. /***/ })
  1516. /******/ });
  1517. });
  1518. //# sourceMappingURL=babylon.ktx2Decoder.js.map