@loaders.gl/textures 3.0.13 → 3.0.14

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.
Files changed (71) hide show
  1. package/dist/basis-worker.js +1 -1
  2. package/dist/basis-worker.js.map +1 -1
  3. package/dist/compressed-texture-worker.js +1 -1
  4. package/dist/compressed-texture-worker.js.map +1 -1
  5. package/dist/crunch-worker.js +1 -1
  6. package/dist/crunch-worker.js.map +1 -1
  7. package/dist/dist.es5.min.js +1 -1
  8. package/dist/dist.es5.min.js.map +1 -1
  9. package/dist/dist.min.js +1 -1
  10. package/dist/dist.min.js.map +1 -1
  11. package/dist/es5/basis-loader.js +13 -5
  12. package/dist/es5/basis-loader.js.map +1 -1
  13. package/dist/es5/bundle.js +2 -2
  14. package/dist/es5/bundle.js.map +1 -1
  15. package/dist/es5/compressed-texture-loader.js +41 -6
  16. package/dist/es5/compressed-texture-loader.js.map +1 -1
  17. package/dist/es5/compressed-texture-writer.js +2 -2
  18. package/dist/es5/compressed-texture-writer.js.map +1 -1
  19. package/dist/es5/crunch-loader.js +2 -2
  20. package/dist/es5/crunch-loader.js.map +1 -1
  21. package/dist/es5/index.js +14 -14
  22. package/dist/es5/lib/encoders/encode-ktx.js +1 -1
  23. package/dist/es5/lib/encoders/encode-ktx.js.map +1 -1
  24. package/dist/es5/lib/encoders/encode-texture.js +41 -13
  25. package/dist/es5/lib/encoders/encode-texture.js.map +1 -1
  26. package/dist/es5/lib/gl-constants.js +1 -1
  27. package/dist/es5/lib/gl-constants.js.map +1 -1
  28. package/dist/es5/lib/parsers/basis-module-loader.js +98 -22
  29. package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -1
  30. package/dist/es5/lib/parsers/crunch-module-loader.js +71 -15
  31. package/dist/es5/lib/parsers/crunch-module-loader.js.map +1 -1
  32. package/dist/es5/lib/parsers/parse-basis.js +84 -46
  33. package/dist/es5/lib/parsers/parse-basis.js.map +1 -1
  34. package/dist/es5/lib/parsers/parse-crunch.js +76 -55
  35. package/dist/es5/lib/parsers/parse-crunch.js.map +1 -1
  36. package/dist/es5/lib/parsers/parse-dds.js +21 -21
  37. package/dist/es5/lib/parsers/parse-dds.js.map +1 -1
  38. package/dist/es5/lib/parsers/parse-ktx.js +16 -14
  39. package/dist/es5/lib/parsers/parse-ktx.js.map +1 -1
  40. package/dist/es5/lib/parsers/parse-npy.js +28 -25
  41. package/dist/es5/lib/parsers/parse-npy.js.map +1 -1
  42. package/dist/es5/lib/parsers/parse-pvr.js +21 -21
  43. package/dist/es5/lib/parsers/parse-pvr.js.map +1 -1
  44. package/dist/es5/lib/texture-api/async-deep-map.js +156 -27
  45. package/dist/es5/lib/texture-api/async-deep-map.js.map +1 -1
  46. package/dist/es5/lib/texture-api/deep-load.js +67 -6
  47. package/dist/es5/lib/texture-api/deep-load.js.map +1 -1
  48. package/dist/es5/lib/texture-api/generate-url.js +11 -7
  49. package/dist/es5/lib/texture-api/generate-url.js.map +1 -1
  50. package/dist/es5/lib/texture-api/load-image-array.js +76 -12
  51. package/dist/es5/lib/texture-api/load-image-array.js.map +1 -1
  52. package/dist/es5/lib/texture-api/load-image-cube.js +96 -27
  53. package/dist/es5/lib/texture-api/load-image-cube.js.map +1 -1
  54. package/dist/es5/lib/texture-api/load-image.js +145 -39
  55. package/dist/es5/lib/texture-api/load-image.js.map +1 -1
  56. package/dist/es5/lib/utils/extract-mipmap-images.js +9 -9
  57. package/dist/es5/lib/utils/extract-mipmap-images.js.map +1 -1
  58. package/dist/es5/lib/utils/ktx-format-helper.js +1 -1
  59. package/dist/es5/lib/utils/ktx-format-helper.js.map +1 -1
  60. package/dist/es5/lib/utils/texture-formats.js +27 -9
  61. package/dist/es5/lib/utils/texture-formats.js.map +1 -1
  62. package/dist/es5/lib/utils/version.js +1 -1
  63. package/dist/es5/lib/utils/version.js.map +1 -1
  64. package/dist/es5/npy-loader.js +42 -7
  65. package/dist/es5/npy-loader.js.map +1 -1
  66. package/dist/es5/workers/crunch-worker.js +11 -2
  67. package/dist/es5/workers/crunch-worker.js.map +1 -1
  68. package/dist/esm/lib/utils/version.js +1 -1
  69. package/dist/npy-worker.js +1 -1
  70. package/dist/npy-worker.js.map +1 -1
  71. package/package.json +5 -5
@@ -12,27 +12,29 @@ var _extractMipmapImages = require("../utils/extract-mipmap-images");
12
12
 
13
13
  var _ktxFormatHelper = require("../utils/ktx-format-helper");
14
14
 
15
- const KTX2_ID = [0xab, 0x4b, 0x54, 0x58, 0x20, 0x32, 0x30, 0xbb, 0x0d, 0x0a, 0x1a, 0x0a];
15
+ var KTX2_ID = [0xab, 0x4b, 0x54, 0x58, 0x20, 0x32, 0x30, 0xbb, 0x0d, 0x0a, 0x1a, 0x0a];
16
16
 
17
17
  function isKTX(data) {
18
- const id = new Uint8Array(data.buffer || data, data.byteOffset || 0, KTX2_ID.length);
19
- const notKTX = 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];
18
+ var id = new Uint8Array(data.buffer || data, data.byteOffset || 0, KTX2_ID.length);
19
+ var notKTX = 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];
20
20
  return !notKTX;
21
21
  }
22
22
 
23
23
  function parseKTX(arrayBuffer) {
24
- const uint8Array = new Uint8Array(arrayBuffer);
25
- const ktx = (0, _ktxParse.read)(uint8Array);
26
- const mipMapLevels = Math.max(1, ktx.levels.length);
27
- const width = ktx.pixelWidth;
28
- const height = ktx.pixelHeight;
29
- const internalFormat = (0, _ktxFormatHelper.mapVkFormatToWebGL)(ktx.vkFormat);
24
+ var uint8Array = new Uint8Array(arrayBuffer);
25
+ var ktx = (0, _ktxParse.read)(uint8Array);
26
+ var mipMapLevels = Math.max(1, ktx.levels.length);
27
+ var width = ktx.pixelWidth;
28
+ var height = ktx.pixelHeight;
29
+ var internalFormat = (0, _ktxFormatHelper.mapVkFormatToWebGL)(ktx.vkFormat);
30
30
  return (0, _extractMipmapImages.extractMipmapImages)(ktx.levels, {
31
- mipMapLevels,
32
- width,
33
- height,
34
- sizeFunction: level => level.uncompressedByteLength,
35
- internalFormat
31
+ mipMapLevels: mipMapLevels,
32
+ width: width,
33
+ height: height,
34
+ sizeFunction: function sizeFunction(level) {
35
+ return level.uncompressedByteLength;
36
+ },
37
+ internalFormat: internalFormat
36
38
  });
37
39
  }
38
40
  //# sourceMappingURL=parse-ktx.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/parsers/parse-ktx.js"],"names":["KTX2_ID","isKTX","data","id","Uint8Array","buffer","byteOffset","length","notKTX","parseKTX","arrayBuffer","uint8Array","ktx","mipMapLevels","Math","max","levels","width","pixelWidth","height","pixelHeight","internalFormat","vkFormat","sizeFunction","level","uncompressedByteLength"],"mappings":";;;;;;;;AAAA;;AACA;;AACA;;AAEA,MAAMA,OAAO,GAAG,CAEd,IAFc,EAER,IAFQ,EAEF,IAFE,EAEI,IAFJ,EAEU,IAFV,EAEgB,IAFhB,EAEsB,IAFtB,EAE4B,IAF5B,EAEkC,IAFlC,EAEwC,IAFxC,EAE8C,IAF9C,EAEoD,IAFpD,CAAhB;;AAMO,SAASC,KAAT,CAAeC,IAAf,EAAqB;AAC1B,QAAMC,EAAE,GAAG,IAAIC,UAAJ,CAAeF,IAAI,CAACG,MAAL,IAAeH,IAA9B,EAAoCA,IAAI,CAACI,UAAL,IAAmB,CAAvD,EAA0DN,OAAO,CAACO,MAAlE,CAAX;AACA,QAAMC,MAAM,GACVL,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CAAjB,IACAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CADjB,IAEAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CAFjB,IAGAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CAHjB,IAIAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CAJjB,IAKAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CALjB,IAMAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CANjB,IAOAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CAPjB,IAQAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CARjB,IASAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CATjB,IAUAG,EAAE,CAAC,EAAD,CAAF,KAAWH,OAAO,CAAC,EAAD,CAVlB,IAWAG,EAAE,CAAC,EAAD,CAAF,KAAWH,OAAO,CAAC,EAAD,CAZpB;AAcA,SAAO,CAACQ,MAAR;AACD;;AAEM,SAASC,QAAT,CAAkBC,WAAlB,EAA+B;AACpC,QAAMC,UAAU,GAAG,IAAIP,UAAJ,CAAeM,WAAf,CAAnB;AACA,QAAME,GAAG,GAAG,oBAAKD,UAAL,CAAZ;AACA,QAAME,YAAY,GAAGC,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYH,GAAG,CAACI,MAAJ,CAAWT,MAAvB,CAArB;AACA,QAAMU,KAAK,GAAGL,GAAG,CAACM,UAAlB;AACA,QAAMC,MAAM,GAAGP,GAAG,CAACQ,WAAnB;AACA,QAAMC,cAAc,GAAG,yCAAmBT,GAAG,CAACU,QAAvB,CAAvB;AAEA,SAAO,8CAAoBV,GAAG,CAACI,MAAxB,EAAgC;AACrCH,IAAAA,YADqC;AAErCI,IAAAA,KAFqC;AAGrCE,IAAAA,MAHqC;AAIrCI,IAAAA,YAAY,EAAGC,KAAD,IAAWA,KAAK,CAACC,sBAJM;AAKrCJ,IAAAA;AALqC,GAAhC,CAAP;AAOD","sourcesContent":["import {read} from 'ktx-parse';\nimport {extractMipmapImages} from '../utils/extract-mipmap-images';\nimport {mapVkFormatToWebGL} from '../utils/ktx-format-helper';\n\nconst KTX2_ID = [\n // '´', 'K', 'T', 'X', '2', '0', 'ª', '\\r', '\\n', '\\x1A', '\\n'\n 0xab, 0x4b, 0x54, 0x58, 0x20, 0x32, 0x30, 0xbb, 0x0d, 0x0a, 0x1a, 0x0a\n];\n\n// eslint-disable-next-line complexity\nexport function isKTX(data) {\n const id = new Uint8Array(data.buffer || data, data.byteOffset || 0, KTX2_ID.length);\n const notKTX =\n id[0] !== KTX2_ID[0] || // '´'\n id[1] !== KTX2_ID[1] || // 'K'\n id[2] !== KTX2_ID[2] || // 'T'\n id[3] !== KTX2_ID[3] || // 'X'\n id[4] !== KTX2_ID[4] || // ' '\n id[5] !== KTX2_ID[5] || // '2'\n id[6] !== KTX2_ID[6] || // '0'\n id[7] !== KTX2_ID[7] || // 'ª'\n id[8] !== KTX2_ID[8] || // '\\r'\n id[9] !== KTX2_ID[9] || // '\\n'\n id[10] !== KTX2_ID[10] || // '\\x1A'\n id[11] !== KTX2_ID[11]; // '\\n'\n\n return !notKTX;\n}\n\nexport function parseKTX(arrayBuffer) {\n const uint8Array = new Uint8Array(arrayBuffer);\n const ktx = read(uint8Array);\n const mipMapLevels = Math.max(1, ktx.levels.length);\n const width = ktx.pixelWidth;\n const height = ktx.pixelHeight;\n const internalFormat = mapVkFormatToWebGL(ktx.vkFormat);\n\n return extractMipmapImages(ktx.levels, {\n mipMapLevels,\n width,\n height,\n sizeFunction: (level) => level.uncompressedByteLength,\n internalFormat\n });\n}\n"],"file":"parse-ktx.js"}
1
+ {"version":3,"sources":["../../../../src/lib/parsers/parse-ktx.js"],"names":["KTX2_ID","isKTX","data","id","Uint8Array","buffer","byteOffset","length","notKTX","parseKTX","arrayBuffer","uint8Array","ktx","mipMapLevels","Math","max","levels","width","pixelWidth","height","pixelHeight","internalFormat","vkFormat","sizeFunction","level","uncompressedByteLength"],"mappings":";;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,OAAO,GAAG,CAEd,IAFc,EAER,IAFQ,EAEF,IAFE,EAEI,IAFJ,EAEU,IAFV,EAEgB,IAFhB,EAEsB,IAFtB,EAE4B,IAF5B,EAEkC,IAFlC,EAEwC,IAFxC,EAE8C,IAF9C,EAEoD,IAFpD,CAAhB;;AAMO,SAASC,KAAT,CAAeC,IAAf,EAAqB;AAC1B,MAAMC,EAAE,GAAG,IAAIC,UAAJ,CAAeF,IAAI,CAACG,MAAL,IAAeH,IAA9B,EAAoCA,IAAI,CAACI,UAAL,IAAmB,CAAvD,EAA0DN,OAAO,CAACO,MAAlE,CAAX;AACA,MAAMC,MAAM,GACVL,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CAAjB,IACAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CADjB,IAEAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CAFjB,IAGAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CAHjB,IAIAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CAJjB,IAKAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CALjB,IAMAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CANjB,IAOAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CAPjB,IAQAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CARjB,IASAG,EAAE,CAAC,CAAD,CAAF,KAAUH,OAAO,CAAC,CAAD,CATjB,IAUAG,EAAE,CAAC,EAAD,CAAF,KAAWH,OAAO,CAAC,EAAD,CAVlB,IAWAG,EAAE,CAAC,EAAD,CAAF,KAAWH,OAAO,CAAC,EAAD,CAZpB;AAcA,SAAO,CAACQ,MAAR;AACD;;AAEM,SAASC,QAAT,CAAkBC,WAAlB,EAA+B;AACpC,MAAMC,UAAU,GAAG,IAAIP,UAAJ,CAAeM,WAAf,CAAnB;AACA,MAAME,GAAG,GAAG,oBAAKD,UAAL,CAAZ;AACA,MAAME,YAAY,GAAGC,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYH,GAAG,CAACI,MAAJ,CAAWT,MAAvB,CAArB;AACA,MAAMU,KAAK,GAAGL,GAAG,CAACM,UAAlB;AACA,MAAMC,MAAM,GAAGP,GAAG,CAACQ,WAAnB;AACA,MAAMC,cAAc,GAAG,yCAAmBT,GAAG,CAACU,QAAvB,CAAvB;AAEA,SAAO,8CAAoBV,GAAG,CAACI,MAAxB,EAAgC;AACrCH,IAAAA,YAAY,EAAZA,YADqC;AAErCI,IAAAA,KAAK,EAALA,KAFqC;AAGrCE,IAAAA,MAAM,EAANA,MAHqC;AAIrCI,IAAAA,YAAY,EAAE,sBAACC,KAAD;AAAA,aAAWA,KAAK,CAACC,sBAAjB;AAAA,KAJuB;AAKrCJ,IAAAA,cAAc,EAAdA;AALqC,GAAhC,CAAP;AAOD","sourcesContent":["import {read} from 'ktx-parse';\nimport {extractMipmapImages} from '../utils/extract-mipmap-images';\nimport {mapVkFormatToWebGL} from '../utils/ktx-format-helper';\n\nconst KTX2_ID = [\n // '´', 'K', 'T', 'X', '2', '0', 'ª', '\\r', '\\n', '\\x1A', '\\n'\n 0xab, 0x4b, 0x54, 0x58, 0x20, 0x32, 0x30, 0xbb, 0x0d, 0x0a, 0x1a, 0x0a\n];\n\n// eslint-disable-next-line complexity\nexport function isKTX(data) {\n const id = new Uint8Array(data.buffer || data, data.byteOffset || 0, KTX2_ID.length);\n const notKTX =\n id[0] !== KTX2_ID[0] || // '´'\n id[1] !== KTX2_ID[1] || // 'K'\n id[2] !== KTX2_ID[2] || // 'T'\n id[3] !== KTX2_ID[3] || // 'X'\n id[4] !== KTX2_ID[4] || // ' '\n id[5] !== KTX2_ID[5] || // '2'\n id[6] !== KTX2_ID[6] || // '0'\n id[7] !== KTX2_ID[7] || // 'ª'\n id[8] !== KTX2_ID[8] || // '\\r'\n id[9] !== KTX2_ID[9] || // '\\n'\n id[10] !== KTX2_ID[10] || // '\\x1A'\n id[11] !== KTX2_ID[11]; // '\\n'\n\n return !notKTX;\n}\n\nexport function parseKTX(arrayBuffer) {\n const uint8Array = new Uint8Array(arrayBuffer);\n const ktx = read(uint8Array);\n const mipMapLevels = Math.max(1, ktx.levels.length);\n const width = ktx.pixelWidth;\n const height = ktx.pixelHeight;\n const internalFormat = mapVkFormatToWebGL(ktx.vkFormat);\n\n return extractMipmapImages(ktx.levels, {\n mipMapLevels,\n width,\n height,\n sizeFunction: (level) => level.uncompressedByteLength,\n internalFormat\n });\n}\n"],"file":"parse-ktx.js"}
@@ -6,13 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.parseNPY = parseNPY;
7
7
 
8
8
  function systemIsLittleEndian() {
9
- const a = new Uint32Array([0x12345678]);
10
- const b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
9
+ var a = new Uint32Array([0x12345678]);
10
+ var b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
11
11
  return !(b[0] === 0x12);
12
12
  }
13
13
 
14
- const LITTLE_ENDIAN_OS = systemIsLittleEndian();
15
- const DTYPES = {
14
+ var LITTLE_ENDIAN_OS = systemIsLittleEndian();
15
+ var DTYPES = {
16
16
  u1: Uint8Array,
17
17
  i1: Int8Array,
18
18
  u2: Uint16Array,
@@ -28,37 +28,40 @@ function parseNPY(arrayBuffer, options) {
28
28
  return null;
29
29
  }
30
30
 
31
- const view = new DataView(arrayBuffer);
32
- const {
33
- header,
34
- headerEndOffset
35
- } = parseHeader(view);
36
- const numpyType = header.descr;
37
- const ArrayType = DTYPES[numpyType.slice(1, 3)];
31
+ var view = new DataView(arrayBuffer);
32
+
33
+ var _parseHeader = parseHeader(view),
34
+ header = _parseHeader.header,
35
+ headerEndOffset = _parseHeader.headerEndOffset;
36
+
37
+ var numpyType = header.descr;
38
+ var ArrayType = DTYPES[numpyType.slice(1, 3)];
38
39
 
39
40
  if (!ArrayType) {
40
41
  console.warn("Decoding of npy dtype not implemented: ".concat(numpyType));
41
42
  return null;
42
43
  }
43
44
 
44
- const nArrayElements = header.shape.reduce((a, b) => a * b);
45
- const arrayByteLength = nArrayElements * ArrayType.BYTES_PER_ELEMENT;
46
- const data = new ArrayType(arrayBuffer.slice(headerEndOffset, headerEndOffset + arrayByteLength));
45
+ var nArrayElements = header.shape.reduce(function (a, b) {
46
+ return a * b;
47
+ });
48
+ var arrayByteLength = nArrayElements * ArrayType.BYTES_PER_ELEMENT;
49
+ var data = new ArrayType(arrayBuffer.slice(headerEndOffset, headerEndOffset + arrayByteLength));
47
50
 
48
51
  if (numpyType[0] === '>' && LITTLE_ENDIAN_OS || numpyType[0] === '<' && !LITTLE_ENDIAN_OS) {
49
52
  console.warn('Data is wrong endianness, byte swapping not yet implemented.');
50
53
  }
51
54
 
52
55
  return {
53
- data,
54
- header
56
+ data: data,
57
+ header: header
55
58
  };
56
59
  }
57
60
 
58
61
  function parseHeader(view) {
59
- const majorVersion = view.getUint8(6);
60
- let offset = 8;
61
- let headerLength;
62
+ var majorVersion = view.getUint8(6);
63
+ var offset = 8;
64
+ var headerLength;
62
65
 
63
66
  if (majorVersion >= 2) {
64
67
  headerLength = view.getUint32(8, true);
@@ -68,14 +71,14 @@ function parseHeader(view) {
68
71
  offset += 2;
69
72
  }
70
73
 
71
- const encoding = majorVersion <= 2 ? 'latin1' : 'utf-8';
72
- const decoder = new TextDecoder(encoding);
73
- const headerArray = new Uint8Array(view.buffer, offset, headerLength);
74
- const headerText = decoder.decode(headerArray);
74
+ var encoding = majorVersion <= 2 ? 'latin1' : 'utf-8';
75
+ var decoder = new TextDecoder(encoding);
76
+ var headerArray = new Uint8Array(view.buffer, offset, headerLength);
77
+ var headerText = decoder.decode(headerArray);
75
78
  offset += headerLength;
76
- const header = JSON.parse(headerText.replace(/'/g, '"').replace('False', 'false').replace('(', '[').replace(/,*\),*/g, ']'));
79
+ var header = JSON.parse(headerText.replace(/'/g, '"').replace('False', 'false').replace('(', '[').replace(/,*\),*/g, ']'));
77
80
  return {
78
- header,
81
+ header: header,
79
82
  headerEndOffset: offset
80
83
  };
81
84
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/parsers/parse-npy.js"],"names":["systemIsLittleEndian","a","Uint32Array","b","Uint8Array","buffer","byteOffset","byteLength","LITTLE_ENDIAN_OS","DTYPES","u1","i1","Int8Array","u2","Uint16Array","i2","Int16Array","u4","i4","Int32Array","f4","Float32Array","f8","Float64Array","parseNPY","arrayBuffer","options","view","DataView","header","headerEndOffset","parseHeader","numpyType","descr","ArrayType","slice","console","warn","nArrayElements","shape","reduce","arrayByteLength","BYTES_PER_ELEMENT","data","majorVersion","getUint8","offset","headerLength","getUint32","getUint16","encoding","decoder","TextDecoder","headerArray","headerText","decode","JSON","parse","replace"],"mappings":"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","sourcesContent":["function systemIsLittleEndian() {\n const a = new Uint32Array([0x12345678]);\n const b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n return !(b[0] === 0x12);\n}\n\nconst LITTLE_ENDIAN_OS = systemIsLittleEndian();\n\n// The basic string format consists of 3 characters:\n// 1. a character describing the byteorder of the data (<: little-endian, >: big-endian, |: not-relevant)\n// 2. a character code giving the basic type of the array\n// 3. an integer providing the number of bytes the type uses.\n// https://numpy.org/doc/stable/reference/arrays.interface.html\n//\n// Here I only include the second and third characters, and check endianness\n// separately\nconst DTYPES = {\n u1: Uint8Array,\n i1: Int8Array,\n u2: Uint16Array,\n i2: Int16Array,\n u4: Uint32Array,\n i4: Int32Array,\n f4: Float32Array,\n f8: Float64Array\n};\n\nexport function parseNPY(arrayBuffer, options) {\n if (!arrayBuffer) {\n return null;\n }\n\n const view = new DataView(arrayBuffer);\n const {header, headerEndOffset} = parseHeader(view);\n\n const numpyType = header.descr;\n const ArrayType = DTYPES[numpyType.slice(1, 3)];\n if (!ArrayType) {\n // eslint-disable-next-line no-console, no-undef\n console.warn(`Decoding of npy dtype not implemented: ${numpyType}`);\n return null;\n }\n\n const nArrayElements = header.shape.reduce((a, b) => a * b);\n const arrayByteLength = nArrayElements * ArrayType.BYTES_PER_ELEMENT;\n\n const data = new ArrayType(arrayBuffer.slice(headerEndOffset, headerEndOffset + arrayByteLength));\n\n // Swap endianness if needed\n if ((numpyType[0] === '>' && LITTLE_ENDIAN_OS) || (numpyType[0] === '<' && !LITTLE_ENDIAN_OS)) {\n // eslint-disable-next-line no-console, no-undef\n console.warn('Data is wrong endianness, byte swapping not yet implemented.');\n }\n\n return {\n data,\n header\n };\n}\n\n/**\n * Parse NPY header\n *\n * @param {DataView} view\n * @return {Object}\n */\nfunction parseHeader(view) {\n const majorVersion = view.getUint8(6);\n // const minorVersion = view.getUint8(7);\n\n let offset = 8;\n let headerLength;\n if (majorVersion >= 2) {\n headerLength = view.getUint32(8, true);\n offset += 4;\n } else {\n headerLength = view.getUint16(8, true);\n offset += 2;\n }\n\n const encoding = majorVersion <= 2 ? 'latin1' : 'utf-8';\n const decoder = new TextDecoder(encoding);\n const headerArray = new Uint8Array(view.buffer, offset, headerLength);\n const headerText = decoder.decode(headerArray);\n offset += headerLength;\n\n const header = JSON.parse(\n headerText\n .replace(/'/g, '\"')\n .replace('False', 'false')\n .replace('(', '[')\n .replace(/,*\\),*/g, ']')\n );\n\n return {header, headerEndOffset: offset};\n}\n"],"file":"parse-npy.js"}
1
+ {"version":3,"sources":["../../../../src/lib/parsers/parse-npy.js"],"names":["systemIsLittleEndian","a","Uint32Array","b","Uint8Array","buffer","byteOffset","byteLength","LITTLE_ENDIAN_OS","DTYPES","u1","i1","Int8Array","u2","Uint16Array","i2","Int16Array","u4","i4","Int32Array","f4","Float32Array","f8","Float64Array","parseNPY","arrayBuffer","options","view","DataView","parseHeader","header","headerEndOffset","numpyType","descr","ArrayType","slice","console","warn","nArrayElements","shape","reduce","arrayByteLength","BYTES_PER_ELEMENT","data","majorVersion","getUint8","offset","headerLength","getUint32","getUint16","encoding","decoder","TextDecoder","headerArray","headerText","decode","JSON","parse","replace"],"mappings":";;;;;;;AAAA,SAASA,oBAAT,GAAgC;AAC9B,MAAMC,CAAC,GAAG,IAAIC,WAAJ,CAAgB,CAAC,UAAD,CAAhB,CAAV;AACA,MAAMC,CAAC,GAAG,IAAIC,UAAJ,CAAeH,CAAC,CAACI,MAAjB,EAAyBJ,CAAC,CAACK,UAA3B,EAAuCL,CAAC,CAACM,UAAzC,CAAV;AACA,SAAO,EAAEJ,CAAC,CAAC,CAAD,CAAD,KAAS,IAAX,CAAP;AACD;;AAED,IAAMK,gBAAgB,GAAGR,oBAAoB,EAA7C;AAUA,IAAMS,MAAM,GAAG;AACbC,EAAAA,EAAE,EAAEN,UADS;AAEbO,EAAAA,EAAE,EAAEC,SAFS;AAGbC,EAAAA,EAAE,EAAEC,WAHS;AAIbC,EAAAA,EAAE,EAAEC,UAJS;AAKbC,EAAAA,EAAE,EAAEf,WALS;AAMbgB,EAAAA,EAAE,EAAEC,UANS;AAObC,EAAAA,EAAE,EAAEC,YAPS;AAQbC,EAAAA,EAAE,EAAEC;AARS,CAAf;;AAWO,SAASC,QAAT,CAAkBC,WAAlB,EAA+BC,OAA/B,EAAwC;AAC7C,MAAI,CAACD,WAAL,EAAkB;AAChB,WAAO,IAAP;AACD;;AAED,MAAME,IAAI,GAAG,IAAIC,QAAJ,CAAaH,WAAb,CAAb;;AACA,qBAAkCI,WAAW,CAACF,IAAD,CAA7C;AAAA,MAAOG,MAAP,gBAAOA,MAAP;AAAA,MAAeC,eAAf,gBAAeA,eAAf;;AAEA,MAAMC,SAAS,GAAGF,MAAM,CAACG,KAAzB;AACA,MAAMC,SAAS,GAAGzB,MAAM,CAACuB,SAAS,CAACG,KAAV,CAAgB,CAAhB,EAAmB,CAAnB,CAAD,CAAxB;;AACA,MAAI,CAACD,SAAL,EAAgB;AAEdE,IAAAA,OAAO,CAACC,IAAR,kDAAuDL,SAAvD;AACA,WAAO,IAAP;AACD;;AAED,MAAMM,cAAc,GAAGR,MAAM,CAACS,KAAP,CAAaC,MAAb,CAAoB,UAACvC,CAAD,EAAIE,CAAJ;AAAA,WAAUF,CAAC,GAAGE,CAAd;AAAA,GAApB,CAAvB;AACA,MAAMsC,eAAe,GAAGH,cAAc,GAAGJ,SAAS,CAACQ,iBAAnD;AAEA,MAAMC,IAAI,GAAG,IAAIT,SAAJ,CAAcT,WAAW,CAACU,KAAZ,CAAkBJ,eAAlB,EAAmCA,eAAe,GAAGU,eAArD,CAAd,CAAb;;AAGA,MAAKT,SAAS,CAAC,CAAD,CAAT,KAAiB,GAAjB,IAAwBxB,gBAAzB,IAA+CwB,SAAS,CAAC,CAAD,CAAT,KAAiB,GAAjB,IAAwB,CAACxB,gBAA5E,EAA+F;AAE7F4B,IAAAA,OAAO,CAACC,IAAR,CAAa,8DAAb;AACD;;AAED,SAAO;AACLM,IAAAA,IAAI,EAAJA,IADK;AAELb,IAAAA,MAAM,EAANA;AAFK,GAAP;AAID;;AAQD,SAASD,WAAT,CAAqBF,IAArB,EAA2B;AACzB,MAAMiB,YAAY,GAAGjB,IAAI,CAACkB,QAAL,CAAc,CAAd,CAArB;AAGA,MAAIC,MAAM,GAAG,CAAb;AACA,MAAIC,YAAJ;;AACA,MAAIH,YAAY,IAAI,CAApB,EAAuB;AACrBG,IAAAA,YAAY,GAAGpB,IAAI,CAACqB,SAAL,CAAe,CAAf,EAAkB,IAAlB,CAAf;AACAF,IAAAA,MAAM,IAAI,CAAV;AACD,GAHD,MAGO;AACLC,IAAAA,YAAY,GAAGpB,IAAI,CAACsB,SAAL,CAAe,CAAf,EAAkB,IAAlB,CAAf;AACAH,IAAAA,MAAM,IAAI,CAAV;AACD;;AAED,MAAMI,QAAQ,GAAGN,YAAY,IAAI,CAAhB,GAAoB,QAApB,GAA+B,OAAhD;AACA,MAAMO,OAAO,GAAG,IAAIC,WAAJ,CAAgBF,QAAhB,CAAhB;AACA,MAAMG,WAAW,GAAG,IAAIjD,UAAJ,CAAeuB,IAAI,CAACtB,MAApB,EAA4ByC,MAA5B,EAAoCC,YAApC,CAApB;AACA,MAAMO,UAAU,GAAGH,OAAO,CAACI,MAAR,CAAeF,WAAf,CAAnB;AACAP,EAAAA,MAAM,IAAIC,YAAV;AAEA,MAAMjB,MAAM,GAAG0B,IAAI,CAACC,KAAL,CACbH,UAAU,CACPI,OADH,CACW,IADX,EACiB,GADjB,EAEGA,OAFH,CAEW,OAFX,EAEoB,OAFpB,EAGGA,OAHH,CAGW,GAHX,EAGgB,GAHhB,EAIGA,OAJH,CAIW,SAJX,EAIsB,GAJtB,CADa,CAAf;AAQA,SAAO;AAAC5B,IAAAA,MAAM,EAANA,MAAD;AAASC,IAAAA,eAAe,EAAEe;AAA1B,GAAP;AACD","sourcesContent":["function systemIsLittleEndian() {\n const a = new Uint32Array([0x12345678]);\n const b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n return !(b[0] === 0x12);\n}\n\nconst LITTLE_ENDIAN_OS = systemIsLittleEndian();\n\n// The basic string format consists of 3 characters:\n// 1. a character describing the byteorder of the data (<: little-endian, >: big-endian, |: not-relevant)\n// 2. a character code giving the basic type of the array\n// 3. an integer providing the number of bytes the type uses.\n// https://numpy.org/doc/stable/reference/arrays.interface.html\n//\n// Here I only include the second and third characters, and check endianness\n// separately\nconst DTYPES = {\n u1: Uint8Array,\n i1: Int8Array,\n u2: Uint16Array,\n i2: Int16Array,\n u4: Uint32Array,\n i4: Int32Array,\n f4: Float32Array,\n f8: Float64Array\n};\n\nexport function parseNPY(arrayBuffer, options) {\n if (!arrayBuffer) {\n return null;\n }\n\n const view = new DataView(arrayBuffer);\n const {header, headerEndOffset} = parseHeader(view);\n\n const numpyType = header.descr;\n const ArrayType = DTYPES[numpyType.slice(1, 3)];\n if (!ArrayType) {\n // eslint-disable-next-line no-console, no-undef\n console.warn(`Decoding of npy dtype not implemented: ${numpyType}`);\n return null;\n }\n\n const nArrayElements = header.shape.reduce((a, b) => a * b);\n const arrayByteLength = nArrayElements * ArrayType.BYTES_PER_ELEMENT;\n\n const data = new ArrayType(arrayBuffer.slice(headerEndOffset, headerEndOffset + arrayByteLength));\n\n // Swap endianness if needed\n if ((numpyType[0] === '>' && LITTLE_ENDIAN_OS) || (numpyType[0] === '<' && !LITTLE_ENDIAN_OS)) {\n // eslint-disable-next-line no-console, no-undef\n console.warn('Data is wrong endianness, byte swapping not yet implemented.');\n }\n\n return {\n data,\n header\n };\n}\n\n/**\n * Parse NPY header\n *\n * @param {DataView} view\n * @return {Object}\n */\nfunction parseHeader(view) {\n const majorVersion = view.getUint8(6);\n // const minorVersion = view.getUint8(7);\n\n let offset = 8;\n let headerLength;\n if (majorVersion >= 2) {\n headerLength = view.getUint32(8, true);\n offset += 4;\n } else {\n headerLength = view.getUint16(8, true);\n offset += 2;\n }\n\n const encoding = majorVersion <= 2 ? 'latin1' : 'utf-8';\n const decoder = new TextDecoder(encoding);\n const headerArray = new Uint8Array(view.buffer, offset, headerLength);\n const headerText = decoder.decode(headerArray);\n offset += headerLength;\n\n const header = JSON.parse(\n headerText\n .replace(/'/g, '\"')\n .replace('False', 'false')\n .replace('(', '[')\n .replace(/,*\\),*/g, ']')\n );\n\n return {header, headerEndOffset: offset};\n}\n"],"file":"parse-npy.js"}
@@ -10,7 +10,7 @@ var _glConstants = require("../gl-constants");
10
10
 
11
11
  var _extractMipmapImages = require("../utils/extract-mipmap-images");
12
12
 
13
- const PVR_CONSTANTS = {
13
+ var PVR_CONSTANTS = {
14
14
  MAGIC_NUMBER: 0x03525650,
15
15
  MAGIC_NUMBER_EXTRA: 0x50565203,
16
16
  HEADER_LENGTH: 13,
@@ -23,7 +23,7 @@ const PVR_CONSTANTS = {
23
23
  MIPMAPCOUNT_INDEX: 11,
24
24
  METADATA_SIZE_INDEX: 12
25
25
  };
26
- const PVR_PIXEL_FORMATS = {
26
+ var PVR_PIXEL_FORMATS = {
27
27
  0: [_glConstants.GL.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],
28
28
  1: [_glConstants.GL.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],
29
29
  2: [_glConstants.GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],
@@ -52,7 +52,7 @@ const PVR_PIXEL_FORMATS = {
52
52
  39: [_glConstants.GL.COMPRESSED_RGBA_ASTC_12X10_KHR, _glConstants.GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR],
53
53
  40: [_glConstants.GL.COMPRESSED_RGBA_ASTC_12X12_KHR, _glConstants.GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR]
54
54
  };
55
- const PVR_SIZE_FUNCTIONS = {
55
+ var PVR_SIZE_FUNCTIONS = {
56
56
  0: pvrtc2bppSize,
57
57
  1: pvrtc2bppSize,
58
58
  2: pvrtc4bppSize,
@@ -83,29 +83,29 @@ const PVR_SIZE_FUNCTIONS = {
83
83
  };
84
84
 
85
85
  function isPVR(data) {
86
- const header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);
87
- const version = header[PVR_CONSTANTS.MAGIC_NUMBER_INDEX];
86
+ var header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);
87
+ var version = header[PVR_CONSTANTS.MAGIC_NUMBER_INDEX];
88
88
  return version === PVR_CONSTANTS.MAGIC_NUMBER || version === PVR_CONSTANTS.MAGIC_NUMBER_EXTRA;
89
89
  }
90
90
 
91
91
  function parsePVR(data) {
92
- const header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);
93
- const pvrFormat = header[PVR_CONSTANTS.PIXEL_FORMAT_INDEX];
94
- const colourSpace = header[PVR_CONSTANTS.COLOUR_SPACE_INDEX];
95
- const pixelFormats = PVR_PIXEL_FORMATS[pvrFormat] || [];
96
- const internalFormat = pixelFormats.length > 1 && colourSpace ? pixelFormats[1] : pixelFormats[0];
97
- const sizeFunction = PVR_SIZE_FUNCTIONS[pvrFormat];
98
- const mipMapLevels = header[PVR_CONSTANTS.MIPMAPCOUNT_INDEX];
99
- const width = header[PVR_CONSTANTS.WIDTH_INDEX];
100
- const height = header[PVR_CONSTANTS.HEIGHT_INDEX];
101
- const dataOffset = PVR_CONSTANTS.HEADER_SIZE + header[PVR_CONSTANTS.METADATA_SIZE_INDEX];
102
- const image = new Uint8Array(data, dataOffset);
92
+ var header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);
93
+ var pvrFormat = header[PVR_CONSTANTS.PIXEL_FORMAT_INDEX];
94
+ var colourSpace = header[PVR_CONSTANTS.COLOUR_SPACE_INDEX];
95
+ var pixelFormats = PVR_PIXEL_FORMATS[pvrFormat] || [];
96
+ var internalFormat = pixelFormats.length > 1 && colourSpace ? pixelFormats[1] : pixelFormats[0];
97
+ var sizeFunction = PVR_SIZE_FUNCTIONS[pvrFormat];
98
+ var mipMapLevels = header[PVR_CONSTANTS.MIPMAPCOUNT_INDEX];
99
+ var width = header[PVR_CONSTANTS.WIDTH_INDEX];
100
+ var height = header[PVR_CONSTANTS.HEIGHT_INDEX];
101
+ var dataOffset = PVR_CONSTANTS.HEADER_SIZE + header[PVR_CONSTANTS.METADATA_SIZE_INDEX];
102
+ var image = new Uint8Array(data, dataOffset);
103
103
  return (0, _extractMipmapImages.extractMipmapImages)(image, {
104
- mipMapLevels,
105
- width,
106
- height,
107
- sizeFunction,
108
- internalFormat
104
+ mipMapLevels: mipMapLevels,
105
+ width: width,
106
+ height: height,
107
+ sizeFunction: sizeFunction,
108
+ internalFormat: internalFormat
109
109
  });
110
110
  }
111
111
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/parsers/parse-pvr.ts"],"names":["PVR_CONSTANTS","MAGIC_NUMBER","MAGIC_NUMBER_EXTRA","HEADER_LENGTH","HEADER_SIZE","MAGIC_NUMBER_INDEX","PIXEL_FORMAT_INDEX","COLOUR_SPACE_INDEX","HEIGHT_INDEX","WIDTH_INDEX","MIPMAPCOUNT_INDEX","METADATA_SIZE_INDEX","PVR_PIXEL_FORMATS","GL","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB8_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_R11_EAC","COMPRESSED_RG11_EAC","COMPRESSED_RGBA_ASTC_4X4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR","COMPRESSED_RGBA_ASTC_5X4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR","COMPRESSED_RGBA_ASTC_5X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR","COMPRESSED_RGBA_ASTC_6X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR","COMPRESSED_RGBA_ASTC_6X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR","COMPRESSED_RGBA_ASTC_8X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR","COMPRESSED_RGBA_ASTC_8X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR","COMPRESSED_RGBA_ASTC_8X8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR","COMPRESSED_RGBA_ASTC_10X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR","COMPRESSED_RGBA_ASTC_10X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR","COMPRESSED_RGBA_ASTC_10X8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR","COMPRESSED_RGBA_ASTC_10X10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR","COMPRESSED_RGBA_ASTC_12X10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR","COMPRESSED_RGBA_ASTC_12X12_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR","PVR_SIZE_FUNCTIONS","pvrtc2bppSize","pvrtc4bppSize","dxtEtcSmallSize","dxtEtcAstcBigSize","atc5x4Size","atc5x5Size","atc6x5Size","atc6x6Size","atc8x5Size","atc8x6Size","atc8x8Size","atc10x5Size","atc10x6Size","atc10x8Size","atc10x10Size","atc12x10Size","atc12x12Size","isPVR","data","header","Uint32Array","version","parsePVR","pvrFormat","colourSpace","pixelFormats","internalFormat","length","sizeFunction","mipMapLevels","width","height","dataOffset","image","Uint8Array","Math","max","floor"],"mappings":"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","sourcesContent":["import {TextureLevel} from '../../types';\n/* eslint-disable camelcase */\n// Forked from PicoGL: https://github.com/tsherif/picogl.js/blob/master/examples/utils/utils.js\n// Copyright (c) 2017 Tarek Sherif, The MIT License (MIT)\nimport {GL} from '../gl-constants';\nimport {extractMipmapImages} from '../utils/extract-mipmap-images';\n\nconst PVR_CONSTANTS = {\n MAGIC_NUMBER: 0x03525650,\n MAGIC_NUMBER_EXTRA: 0x50565203,\n HEADER_LENGTH: 13,\n HEADER_SIZE: 52,\n MAGIC_NUMBER_INDEX: 0,\n PIXEL_FORMAT_INDEX: 2,\n COLOUR_SPACE_INDEX: 4,\n HEIGHT_INDEX: 6,\n WIDTH_INDEX: 7,\n MIPMAPCOUNT_INDEX: 11,\n METADATA_SIZE_INDEX: 12\n};\n\nconst PVR_PIXEL_FORMATS = {\n 0: [GL.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],\n 1: [GL.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],\n 2: [GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],\n 3: [GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],\n 6: [GL.COMPRESSED_RGB_ETC1_WEBGL],\n 7: [GL.COMPRESSED_RGB_S3TC_DXT1_EXT],\n 9: [GL.COMPRESSED_RGBA_S3TC_DXT3_EXT],\n 11: [GL.COMPRESSED_RGBA_S3TC_DXT5_EXT],\n 22: [GL.COMPRESSED_RGB8_ETC2],\n 23: [GL.COMPRESSED_RGBA8_ETC2_EAC],\n 24: [GL.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],\n 25: [GL.COMPRESSED_R11_EAC],\n 26: [GL.COMPRESSED_RG11_EAC],\n 27: [GL.COMPRESSED_RGBA_ASTC_4X4_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR],\n 28: [GL.COMPRESSED_RGBA_ASTC_5X4_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR],\n 29: [GL.COMPRESSED_RGBA_ASTC_5X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR],\n 30: [GL.COMPRESSED_RGBA_ASTC_6X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR],\n 31: [GL.COMPRESSED_RGBA_ASTC_6X6_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR],\n 32: [GL.COMPRESSED_RGBA_ASTC_8X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR],\n 33: [GL.COMPRESSED_RGBA_ASTC_8X6_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR],\n 34: [GL.COMPRESSED_RGBA_ASTC_8X8_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR],\n 35: [GL.COMPRESSED_RGBA_ASTC_10X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR],\n 36: [GL.COMPRESSED_RGBA_ASTC_10X6_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR],\n 37: [GL.COMPRESSED_RGBA_ASTC_10X8_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR],\n 38: [GL.COMPRESSED_RGBA_ASTC_10X10_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR],\n 39: [GL.COMPRESSED_RGBA_ASTC_12X10_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR],\n 40: [GL.COMPRESSED_RGBA_ASTC_12X12_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR]\n};\n\nconst PVR_SIZE_FUNCTIONS = {\n 0: pvrtc2bppSize,\n 1: pvrtc2bppSize,\n 2: pvrtc4bppSize,\n 3: pvrtc4bppSize,\n 6: dxtEtcSmallSize,\n 7: dxtEtcSmallSize,\n 9: dxtEtcAstcBigSize,\n 11: dxtEtcAstcBigSize,\n 22: dxtEtcSmallSize,\n 23: dxtEtcAstcBigSize,\n 24: dxtEtcSmallSize,\n 25: dxtEtcSmallSize,\n 26: dxtEtcAstcBigSize,\n 27: dxtEtcAstcBigSize,\n 28: atc5x4Size,\n 29: atc5x5Size,\n 30: atc6x5Size,\n 31: atc6x6Size,\n 32: atc8x5Size,\n 33: atc8x6Size,\n 34: atc8x8Size,\n 35: atc10x5Size,\n 36: atc10x6Size,\n 37: atc10x8Size,\n 38: atc10x10Size,\n 39: atc12x10Size,\n 40: atc12x12Size\n};\n\n/**\n * Check if data is in \"PVR\" format by its magic number\n * @param data - binary data of compressed texture\n * @returns true - data in \"PVR\" format, else - false\n */\nexport function isPVR(data: ArrayBuffer): boolean {\n const header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);\n const version = header[PVR_CONSTANTS.MAGIC_NUMBER_INDEX];\n\n return version === PVR_CONSTANTS.MAGIC_NUMBER || version === PVR_CONSTANTS.MAGIC_NUMBER_EXTRA;\n}\n\n/**\n * Parse texture data as \"PVR\" format\n * @param data - binary data of compressed texture\n * @returns Array of the texture levels\n * @see http://cdn.imgtec.com/sdk-documentation/PVR+File+Format.Specification.pdf\n */\nexport function parsePVR(data: ArrayBuffer): TextureLevel[] {\n const header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);\n\n const pvrFormat = header[PVR_CONSTANTS.PIXEL_FORMAT_INDEX];\n const colourSpace = header[PVR_CONSTANTS.COLOUR_SPACE_INDEX];\n const pixelFormats = PVR_PIXEL_FORMATS[pvrFormat] || [];\n const internalFormat = pixelFormats.length > 1 && colourSpace ? pixelFormats[1] : pixelFormats[0];\n\n const sizeFunction = PVR_SIZE_FUNCTIONS[pvrFormat];\n\n const mipMapLevels = header[PVR_CONSTANTS.MIPMAPCOUNT_INDEX];\n\n const width = header[PVR_CONSTANTS.WIDTH_INDEX];\n const height = header[PVR_CONSTANTS.HEIGHT_INDEX];\n\n const dataOffset = PVR_CONSTANTS.HEADER_SIZE + header[PVR_CONSTANTS.METADATA_SIZE_INDEX];\n\n const image = new Uint8Array(data, dataOffset);\n\n return extractMipmapImages(image, {\n mipMapLevels,\n width,\n height,\n sizeFunction,\n internalFormat\n });\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/\nfunction pvrtc2bppSize(width, height) {\n width = Math.max(width, 16);\n height = Math.max(height, 8);\n\n return (width * height) / 4;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/\nfunction pvrtc4bppSize(width, height) {\n width = Math.max(width, 8);\n height = Math.max(height, 8);\n\n return (width * height) / 2;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc/\n// Size for:\n// COMPRESSED_RGB_S3TC_DXT1_EXT\n// COMPRESSED_R11_EAC\n// COMPRESSED_SIGNED_R11_EAC\n// COMPRESSED_RGB8_ETC2\n// COMPRESSED_SRGB8_ETC2\n// COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2\n// COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2\nfunction dxtEtcSmallSize(width, height) {\n return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc/\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\n// Size for:\n// COMPRESSED_RGBA_S3TC_DXT3_EXT\n// COMPRESSED_RGBA_S3TC_DXT5_EXT\n// COMPRESSED_RG11_EAC\n// COMPRESSED_SIGNED_RG11_EAC\n// COMPRESSED_RGBA8_ETC2_EAC\n// COMPRESSED_SRGB8_ALPHA8_ETC2_EAC\n// COMPRESSED_RGBA_ASTC_4x4_KHR\nfunction dxtEtcAstcBigSize(width, height) {\n return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc5x4Size(width, height) {\n return Math.floor((width + 4) / 5) * Math.floor((height + 3) / 4) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc5x5Size(width, height) {\n return Math.floor((width + 4) / 5) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc6x5Size(width, height) {\n return Math.floor((width + 5) / 6) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc6x6Size(width, height) {\n return Math.floor((width + 5) / 6) * Math.floor((height + 5) / 6) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc8x5Size(width, height) {\n return Math.floor((width + 7) / 8) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc8x6Size(width, height) {\n return Math.floor((width + 7) / 8) * Math.floor((height + 5) / 6) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc8x8Size(width, height) {\n return Math.floor((width + 7) / 8) * Math.floor((height + 7) / 8) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x5Size(width, height) {\n return Math.floor((width + 9) / 10) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x6Size(width, height) {\n return Math.floor((width + 9) / 10) * Math.floor((height + 5) / 6) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x8Size(width, height) {\n return Math.floor((width + 9) / 10) * Math.floor((height + 7) / 8) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x10Size(width, height) {\n return Math.floor((width + 9) / 10) * Math.floor((height + 9) / 10) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc12x10Size(width, height) {\n return Math.floor((width + 11) / 12) * Math.floor((height + 9) / 10) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc12x12Size(width, height) {\n return Math.floor((width + 11) / 12) * Math.floor((height + 11) / 12) * 16;\n}\n"],"file":"parse-pvr.js"}
1
+ {"version":3,"sources":["../../../../src/lib/parsers/parse-pvr.ts"],"names":["PVR_CONSTANTS","MAGIC_NUMBER","MAGIC_NUMBER_EXTRA","HEADER_LENGTH","HEADER_SIZE","MAGIC_NUMBER_INDEX","PIXEL_FORMAT_INDEX","COLOUR_SPACE_INDEX","HEIGHT_INDEX","WIDTH_INDEX","MIPMAPCOUNT_INDEX","METADATA_SIZE_INDEX","PVR_PIXEL_FORMATS","GL","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB8_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_R11_EAC","COMPRESSED_RG11_EAC","COMPRESSED_RGBA_ASTC_4X4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR","COMPRESSED_RGBA_ASTC_5X4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR","COMPRESSED_RGBA_ASTC_5X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR","COMPRESSED_RGBA_ASTC_6X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR","COMPRESSED_RGBA_ASTC_6X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR","COMPRESSED_RGBA_ASTC_8X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR","COMPRESSED_RGBA_ASTC_8X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR","COMPRESSED_RGBA_ASTC_8X8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR","COMPRESSED_RGBA_ASTC_10X5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR","COMPRESSED_RGBA_ASTC_10X6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR","COMPRESSED_RGBA_ASTC_10X8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR","COMPRESSED_RGBA_ASTC_10X10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR","COMPRESSED_RGBA_ASTC_12X10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR","COMPRESSED_RGBA_ASTC_12X12_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR","PVR_SIZE_FUNCTIONS","pvrtc2bppSize","pvrtc4bppSize","dxtEtcSmallSize","dxtEtcAstcBigSize","atc5x4Size","atc5x5Size","atc6x5Size","atc6x6Size","atc8x5Size","atc8x6Size","atc8x8Size","atc10x5Size","atc10x6Size","atc10x8Size","atc10x10Size","atc12x10Size","atc12x12Size","isPVR","data","header","Uint32Array","version","parsePVR","pvrFormat","colourSpace","pixelFormats","internalFormat","length","sizeFunction","mipMapLevels","width","height","dataOffset","image","Uint8Array","Math","max","floor"],"mappings":"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","sourcesContent":["import {TextureLevel} from '../../types';\n/* eslint-disable camelcase */\n// Forked from PicoGL: https://github.com/tsherif/picogl.js/blob/master/examples/utils/utils.js\n// Copyright (c) 2017 Tarek Sherif, The MIT License (MIT)\nimport {GL} from '../gl-constants';\nimport {extractMipmapImages} from '../utils/extract-mipmap-images';\n\nconst PVR_CONSTANTS = {\n MAGIC_NUMBER: 0x03525650,\n MAGIC_NUMBER_EXTRA: 0x50565203,\n HEADER_LENGTH: 13,\n HEADER_SIZE: 52,\n MAGIC_NUMBER_INDEX: 0,\n PIXEL_FORMAT_INDEX: 2,\n COLOUR_SPACE_INDEX: 4,\n HEIGHT_INDEX: 6,\n WIDTH_INDEX: 7,\n MIPMAPCOUNT_INDEX: 11,\n METADATA_SIZE_INDEX: 12\n};\n\nconst PVR_PIXEL_FORMATS = {\n 0: [GL.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],\n 1: [GL.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],\n 2: [GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],\n 3: [GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],\n 6: [GL.COMPRESSED_RGB_ETC1_WEBGL],\n 7: [GL.COMPRESSED_RGB_S3TC_DXT1_EXT],\n 9: [GL.COMPRESSED_RGBA_S3TC_DXT3_EXT],\n 11: [GL.COMPRESSED_RGBA_S3TC_DXT5_EXT],\n 22: [GL.COMPRESSED_RGB8_ETC2],\n 23: [GL.COMPRESSED_RGBA8_ETC2_EAC],\n 24: [GL.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],\n 25: [GL.COMPRESSED_R11_EAC],\n 26: [GL.COMPRESSED_RG11_EAC],\n 27: [GL.COMPRESSED_RGBA_ASTC_4X4_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR],\n 28: [GL.COMPRESSED_RGBA_ASTC_5X4_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR],\n 29: [GL.COMPRESSED_RGBA_ASTC_5X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR],\n 30: [GL.COMPRESSED_RGBA_ASTC_6X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR],\n 31: [GL.COMPRESSED_RGBA_ASTC_6X6_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR],\n 32: [GL.COMPRESSED_RGBA_ASTC_8X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR],\n 33: [GL.COMPRESSED_RGBA_ASTC_8X6_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR],\n 34: [GL.COMPRESSED_RGBA_ASTC_8X8_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR],\n 35: [GL.COMPRESSED_RGBA_ASTC_10X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR],\n 36: [GL.COMPRESSED_RGBA_ASTC_10X6_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR],\n 37: [GL.COMPRESSED_RGBA_ASTC_10X8_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR],\n 38: [GL.COMPRESSED_RGBA_ASTC_10X10_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR],\n 39: [GL.COMPRESSED_RGBA_ASTC_12X10_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR],\n 40: [GL.COMPRESSED_RGBA_ASTC_12X12_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR]\n};\n\nconst PVR_SIZE_FUNCTIONS = {\n 0: pvrtc2bppSize,\n 1: pvrtc2bppSize,\n 2: pvrtc4bppSize,\n 3: pvrtc4bppSize,\n 6: dxtEtcSmallSize,\n 7: dxtEtcSmallSize,\n 9: dxtEtcAstcBigSize,\n 11: dxtEtcAstcBigSize,\n 22: dxtEtcSmallSize,\n 23: dxtEtcAstcBigSize,\n 24: dxtEtcSmallSize,\n 25: dxtEtcSmallSize,\n 26: dxtEtcAstcBigSize,\n 27: dxtEtcAstcBigSize,\n 28: atc5x4Size,\n 29: atc5x5Size,\n 30: atc6x5Size,\n 31: atc6x6Size,\n 32: atc8x5Size,\n 33: atc8x6Size,\n 34: atc8x8Size,\n 35: atc10x5Size,\n 36: atc10x6Size,\n 37: atc10x8Size,\n 38: atc10x10Size,\n 39: atc12x10Size,\n 40: atc12x12Size\n};\n\n/**\n * Check if data is in \"PVR\" format by its magic number\n * @param data - binary data of compressed texture\n * @returns true - data in \"PVR\" format, else - false\n */\nexport function isPVR(data: ArrayBuffer): boolean {\n const header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);\n const version = header[PVR_CONSTANTS.MAGIC_NUMBER_INDEX];\n\n return version === PVR_CONSTANTS.MAGIC_NUMBER || version === PVR_CONSTANTS.MAGIC_NUMBER_EXTRA;\n}\n\n/**\n * Parse texture data as \"PVR\" format\n * @param data - binary data of compressed texture\n * @returns Array of the texture levels\n * @see http://cdn.imgtec.com/sdk-documentation/PVR+File+Format.Specification.pdf\n */\nexport function parsePVR(data: ArrayBuffer): TextureLevel[] {\n const header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);\n\n const pvrFormat = header[PVR_CONSTANTS.PIXEL_FORMAT_INDEX];\n const colourSpace = header[PVR_CONSTANTS.COLOUR_SPACE_INDEX];\n const pixelFormats = PVR_PIXEL_FORMATS[pvrFormat] || [];\n const internalFormat = pixelFormats.length > 1 && colourSpace ? pixelFormats[1] : pixelFormats[0];\n\n const sizeFunction = PVR_SIZE_FUNCTIONS[pvrFormat];\n\n const mipMapLevels = header[PVR_CONSTANTS.MIPMAPCOUNT_INDEX];\n\n const width = header[PVR_CONSTANTS.WIDTH_INDEX];\n const height = header[PVR_CONSTANTS.HEIGHT_INDEX];\n\n const dataOffset = PVR_CONSTANTS.HEADER_SIZE + header[PVR_CONSTANTS.METADATA_SIZE_INDEX];\n\n const image = new Uint8Array(data, dataOffset);\n\n return extractMipmapImages(image, {\n mipMapLevels,\n width,\n height,\n sizeFunction,\n internalFormat\n });\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/\nfunction pvrtc2bppSize(width, height) {\n width = Math.max(width, 16);\n height = Math.max(height, 8);\n\n return (width * height) / 4;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/\nfunction pvrtc4bppSize(width, height) {\n width = Math.max(width, 8);\n height = Math.max(height, 8);\n\n return (width * height) / 2;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc/\n// Size for:\n// COMPRESSED_RGB_S3TC_DXT1_EXT\n// COMPRESSED_R11_EAC\n// COMPRESSED_SIGNED_R11_EAC\n// COMPRESSED_RGB8_ETC2\n// COMPRESSED_SRGB8_ETC2\n// COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2\n// COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2\nfunction dxtEtcSmallSize(width, height) {\n return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc/\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\n// Size for:\n// COMPRESSED_RGBA_S3TC_DXT3_EXT\n// COMPRESSED_RGBA_S3TC_DXT5_EXT\n// COMPRESSED_RG11_EAC\n// COMPRESSED_SIGNED_RG11_EAC\n// COMPRESSED_RGBA8_ETC2_EAC\n// COMPRESSED_SRGB8_ALPHA8_ETC2_EAC\n// COMPRESSED_RGBA_ASTC_4x4_KHR\nfunction dxtEtcAstcBigSize(width, height) {\n return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc5x4Size(width, height) {\n return Math.floor((width + 4) / 5) * Math.floor((height + 3) / 4) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc5x5Size(width, height) {\n return Math.floor((width + 4) / 5) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc6x5Size(width, height) {\n return Math.floor((width + 5) / 6) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc6x6Size(width, height) {\n return Math.floor((width + 5) / 6) * Math.floor((height + 5) / 6) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc8x5Size(width, height) {\n return Math.floor((width + 7) / 8) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc8x6Size(width, height) {\n return Math.floor((width + 7) / 8) * Math.floor((height + 5) / 6) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc8x8Size(width, height) {\n return Math.floor((width + 7) / 8) * Math.floor((height + 7) / 8) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x5Size(width, height) {\n return Math.floor((width + 9) / 10) * Math.floor((height + 4) / 5) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x6Size(width, height) {\n return Math.floor((width + 9) / 10) * Math.floor((height + 5) / 6) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x8Size(width, height) {\n return Math.floor((width + 9) / 10) * Math.floor((height + 7) / 8) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc10x10Size(width, height) {\n return Math.floor((width + 9) / 10) * Math.floor((height + 9) / 10) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc12x10Size(width, height) {\n return Math.floor((width + 11) / 12) * Math.floor((height + 9) / 10) * 16;\n}\n\n// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/\nfunction atc12x12Size(width, height) {\n return Math.floor((width + 11) / 12) * Math.floor((height + 11) / 12) * 16;\n}\n"],"file":"parse-pvr.js"}
@@ -1,48 +1,177 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.asyncDeepMap = asyncDeepMap;
7
9
  exports.mapSubtree = mapSubtree;
8
10
 
9
- const isObject = value => value && typeof value === 'object';
11
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
+
13
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
+
15
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
16
+
17
+ var isObject = function isObject(value) {
18
+ return value && (0, _typeof2.default)(value) === 'object';
19
+ };
10
20
 
11
- async function asyncDeepMap(tree, func, options = {}) {
12
- return await mapSubtree(tree, func, options);
21
+ function asyncDeepMap(_x, _x2) {
22
+ return _asyncDeepMap.apply(this, arguments);
13
23
  }
14
24
 
15
- async function mapSubtree(object, func, options) {
16
- if (Array.isArray(object)) {
17
- return await mapArray(object, func, options);
18
- }
25
+ function _asyncDeepMap() {
26
+ _asyncDeepMap = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tree, func) {
27
+ var options,
28
+ _args = arguments;
29
+ return _regenerator.default.wrap(function _callee$(_context) {
30
+ while (1) {
31
+ switch (_context.prev = _context.next) {
32
+ case 0:
33
+ options = _args.length > 2 && _args[2] !== undefined ? _args[2] : {};
34
+ _context.next = 3;
35
+ return mapSubtree(tree, func, options);
36
+
37
+ case 3:
38
+ return _context.abrupt("return", _context.sent);
39
+
40
+ case 4:
41
+ case "end":
42
+ return _context.stop();
43
+ }
44
+ }
45
+ }, _callee);
46
+ }));
47
+ return _asyncDeepMap.apply(this, arguments);
48
+ }
49
+
50
+ function mapSubtree(_x3, _x4, _x5) {
51
+ return _mapSubtree.apply(this, arguments);
52
+ }
53
+
54
+ function _mapSubtree() {
55
+ _mapSubtree = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(object, func, options) {
56
+ var url;
57
+ return _regenerator.default.wrap(function _callee2$(_context2) {
58
+ while (1) {
59
+ switch (_context2.prev = _context2.next) {
60
+ case 0:
61
+ if (!Array.isArray(object)) {
62
+ _context2.next = 4;
63
+ break;
64
+ }
65
+
66
+ _context2.next = 3;
67
+ return mapArray(object, func, options);
68
+
69
+ case 3:
70
+ return _context2.abrupt("return", _context2.sent);
71
+
72
+ case 4:
73
+ if (!isObject(object)) {
74
+ _context2.next = 8;
75
+ break;
76
+ }
19
77
 
20
- if (isObject(object)) {
21
- return await mapObject(object, func, options);
22
- }
78
+ _context2.next = 7;
79
+ return mapObject(object, func, options);
23
80
 
24
- const url = object;
25
- return await func(url, options);
81
+ case 7:
82
+ return _context2.abrupt("return", _context2.sent);
83
+
84
+ case 8:
85
+ url = object;
86
+ _context2.next = 11;
87
+ return func(url, options);
88
+
89
+ case 11:
90
+ return _context2.abrupt("return", _context2.sent);
91
+
92
+ case 12:
93
+ case "end":
94
+ return _context2.stop();
95
+ }
96
+ }
97
+ }, _callee2);
98
+ }));
99
+ return _mapSubtree.apply(this, arguments);
26
100
  }
27
101
 
28
- async function mapObject(object, func, options) {
29
- const promises = [];
30
- const values = {};
102
+ function mapObject(_x6, _x7, _x8) {
103
+ return _mapObject.apply(this, arguments);
104
+ }
105
+
106
+ function _mapObject() {
107
+ _mapObject = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(object, func, options) {
108
+ var promises, values, _loop, key;
109
+
110
+ return _regenerator.default.wrap(function _callee3$(_context3) {
111
+ while (1) {
112
+ switch (_context3.prev = _context3.next) {
113
+ case 0:
114
+ promises = [];
115
+ values = {};
116
+
117
+ _loop = function _loop(key) {
118
+ var url = object[key];
119
+ var promise = mapSubtree(url, func, options).then(function (value) {
120
+ values[key] = value;
121
+ });
122
+ promises.push(promise);
123
+ };
31
124
 
32
- for (const key in object) {
33
- const url = object[key];
34
- const promise = mapSubtree(url, func, options).then(value => {
35
- values[key] = value;
36
- });
37
- promises.push(promise);
38
- }
125
+ for (key in object) {
126
+ _loop(key);
127
+ }
39
128
 
40
- await Promise.all(promises);
41
- return values;
129
+ _context3.next = 6;
130
+ return Promise.all(promises);
131
+
132
+ case 6:
133
+ return _context3.abrupt("return", values);
134
+
135
+ case 7:
136
+ case "end":
137
+ return _context3.stop();
138
+ }
139
+ }
140
+ }, _callee3);
141
+ }));
142
+ return _mapObject.apply(this, arguments);
143
+ }
144
+
145
+ function mapArray(_x9, _x10) {
146
+ return _mapArray.apply(this, arguments);
42
147
  }
43
148
 
44
- async function mapArray(urlArray, func, options = {}) {
45
- const promises = urlArray.map(url => mapSubtree(url, func, options));
46
- return await Promise.all(promises);
149
+ function _mapArray() {
150
+ _mapArray = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(urlArray, func) {
151
+ var options,
152
+ promises,
153
+ _args4 = arguments;
154
+ return _regenerator.default.wrap(function _callee4$(_context4) {
155
+ while (1) {
156
+ switch (_context4.prev = _context4.next) {
157
+ case 0:
158
+ options = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : {};
159
+ promises = urlArray.map(function (url) {
160
+ return mapSubtree(url, func, options);
161
+ });
162
+ _context4.next = 4;
163
+ return Promise.all(promises);
164
+
165
+ case 4:
166
+ return _context4.abrupt("return", _context4.sent);
167
+
168
+ case 5:
169
+ case "end":
170
+ return _context4.stop();
171
+ }
172
+ }
173
+ }, _callee4);
174
+ }));
175
+ return _mapArray.apply(this, arguments);
47
176
  }
48
177
  //# sourceMappingURL=async-deep-map.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/texture-api/async-deep-map.ts"],"names":["isObject","value","asyncDeepMap","tree","func","options","mapSubtree","object","Array","isArray","mapArray","mapObject","url","promises","values","key","promise","then","push","Promise","all","urlArray","map"],"mappings":";;;;;;;;AAgBA,MAAMA,QAAQ,GAAIC,KAAD,IAAWA,KAAK,IAAI,OAAOA,KAAP,KAAiB,QAAtD;;AAKO,eAAeC,YAAf,CAA4BC,IAA5B,EAAkCC,IAAlC,EAAwCC,OAAO,GAAG,EAAlD,EAAsD;AAC3D,SAAO,MAAMC,UAAU,CAACH,IAAD,EAAOC,IAAP,EAAaC,OAAb,CAAvB;AACD;;AAEM,eAAeC,UAAf,CAA0BC,MAA1B,EAAkCH,IAAlC,EAAwCC,OAAxC,EAAiD;AACtD,MAAIG,KAAK,CAACC,OAAN,CAAcF,MAAd,CAAJ,EAA2B;AACzB,WAAO,MAAMG,QAAQ,CAACH,MAAD,EAASH,IAAT,EAAeC,OAAf,CAArB;AACD;;AAED,MAAIL,QAAQ,CAACO,MAAD,CAAZ,EAAsB;AACpB,WAAO,MAAMI,SAAS,CAACJ,MAAD,EAASH,IAAT,EAAeC,OAAf,CAAtB;AACD;;AAGD,QAAMO,GAAG,GAAGL,MAAZ;AACA,SAAO,MAAMH,IAAI,CAACQ,GAAD,EAAMP,OAAN,CAAjB;AACD;;AAID,eAAeM,SAAf,CAAyBJ,MAAzB,EAAiCH,IAAjC,EAAuCC,OAAvC,EAAgD;AAC9C,QAAMQ,QAAwB,GAAG,EAAjC;AACA,QAAMC,MAAM,GAAG,EAAf;;AAEA,OAAK,MAAMC,GAAX,IAAkBR,MAAlB,EAA0B;AACxB,UAAMK,GAAG,GAAGL,MAAM,CAACQ,GAAD,CAAlB;AACA,UAAMC,OAAO,GAAGV,UAAU,CAACM,GAAD,EAAMR,IAAN,EAAYC,OAAZ,CAAV,CAA+BY,IAA/B,CAAqChB,KAAD,IAAW;AAC7Da,MAAAA,MAAM,CAACC,GAAD,CAAN,GAAcd,KAAd;AACD,KAFe,CAAhB;AAGAY,IAAAA,QAAQ,CAACK,IAAT,CAAcF,OAAd;AACD;;AAED,QAAMG,OAAO,CAACC,GAAR,CAAYP,QAAZ,CAAN;AAEA,SAAOC,MAAP;AACD;;AAED,eAAeJ,QAAf,CAAwBW,QAAxB,EAAkCjB,IAAlC,EAAwCC,OAAO,GAAG,EAAlD,EAAsD;AACpD,QAAMQ,QAAQ,GAAGQ,QAAQ,CAACC,GAAT,CAAcV,GAAD,IAASN,UAAU,CAACM,GAAD,EAAMR,IAAN,EAAYC,OAAZ,CAAhC,CAAjB;AACA,SAAO,MAAMc,OAAO,CAACC,GAAR,CAAYP,QAAZ,CAAb;AACD","sourcesContent":["/*\nAsynchronously maps a deep structure of values (e.g. objects and arrays of urls).\n\nE.g. a mipmapped cubemap\n{\n [CUBE_FACE_FRONT]: [\n \"image-front-0.jpg\",\n \"image-front-1.jpg\",\n \"image-front-2.jpg\",\n ],\n [CUBE_MAP_BACK]: [\n ...\n ]\n}\n*/\n\nconst isObject = (value) => value && typeof value === 'object';\n\n// Loads a deep structure of urls (objects and arrays of urls)\n// Returns an object with six key-value pairs containing the images (or image mip arrays)\n// for each cube face\nexport async function asyncDeepMap(tree, func, options = {}) {\n return await mapSubtree(tree, func, options);\n}\n\nexport async function mapSubtree(object, func, options) {\n if (Array.isArray(object)) {\n return await mapArray(object, func, options);\n }\n\n if (isObject(object)) {\n return await mapObject(object, func, options);\n }\n\n // TODO - ignore non-urls, non-arraybuffers?\n const url = object;\n return await func(url, options);\n}\n\n// HELPERS\n\nasync function mapObject(object, func, options) {\n const promises: Promise<any>[] = [];\n const values = {};\n\n for (const key in object) {\n const url = object[key];\n const promise = mapSubtree(url, func, options).then((value) => {\n values[key] = value;\n });\n promises.push(promise);\n }\n\n await Promise.all(promises);\n\n return values;\n}\n\nasync function mapArray(urlArray, func, options = {}) {\n const promises = urlArray.map((url) => mapSubtree(url, func, options));\n return await Promise.all(promises);\n}\n"],"file":"async-deep-map.js"}
1
+ {"version":3,"sources":["../../../../src/lib/texture-api/async-deep-map.ts"],"names":["isObject","value","asyncDeepMap","tree","func","options","mapSubtree","object","Array","isArray","mapArray","mapObject","url","promises","values","key","promise","then","push","Promise","all","urlArray","map"],"mappings":";;;;;;;;;;;;;;;;AAgBA,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD;AAAA,SAAWA,KAAK,IAAI,sBAAOA,KAAP,MAAiB,QAArC;AAAA,CAAjB;;SAKsBC,Y;;;;;4EAAf,iBAA4BC,IAA5B,EAAkCC,IAAlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwCC,YAAAA,OAAxC,2DAAkD,EAAlD;AAAA;AAAA,mBACQC,UAAU,CAACH,IAAD,EAAOC,IAAP,EAAaC,OAAb,CADlB;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAIeC,U;;;;;0EAAf,kBAA0BC,MAA1B,EAAkCH,IAAlC,EAAwCC,OAAxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBACDG,KAAK,CAACC,OAAN,CAAcF,MAAd,CADC;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAEUG,QAAQ,CAACH,MAAD,EAASH,IAAT,EAAeC,OAAf,CAFlB;;AAAA;AAAA;;AAAA;AAAA,iBAKDL,QAAQ,CAACO,MAAD,CALP;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAMUI,SAAS,CAACJ,MAAD,EAASH,IAAT,EAAeC,OAAf,CANnB;;AAAA;AAAA;;AAAA;AAUCO,YAAAA,GAVD,GAUOL,MAVP;AAAA;AAAA,mBAWQH,IAAI,CAACQ,GAAD,EAAMP,OAAN,CAXZ;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAgBQM,S;;;;;yEAAf,kBAAyBJ,MAAzB,EAAiCH,IAAjC,EAAuCC,OAAvC;AAAA;;AAAA;AAAA;AAAA;AAAA;AACQQ,YAAAA,QADR,GACmC,EADnC;AAEQC,YAAAA,MAFR,GAEiB,EAFjB;;AAAA,mCAIaC,GAJb;AAKI,kBAAMH,GAAG,GAAGL,MAAM,CAACQ,GAAD,CAAlB;AACA,kBAAMC,OAAO,GAAGV,UAAU,CAACM,GAAD,EAAMR,IAAN,EAAYC,OAAZ,CAAV,CAA+BY,IAA/B,CAAoC,UAAChB,KAAD,EAAW;AAC7Da,gBAAAA,MAAM,CAACC,GAAD,CAAN,GAAcd,KAAd;AACD,eAFe,CAAhB;AAGAY,cAAAA,QAAQ,CAACK,IAAT,CAAcF,OAAd;AATJ;;AAIE,iBAAWD,GAAX,IAAkBR,MAAlB,EAA0B;AAAA,oBAAfQ,GAAe;AAMzB;;AAVH;AAAA,mBAYQI,OAAO,CAACC,GAAR,CAAYP,QAAZ,CAZR;;AAAA;AAAA,8CAcSC,MAdT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAiBeJ,Q;;;;;wEAAf,kBAAwBW,QAAxB,EAAkCjB,IAAlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwCC,YAAAA,OAAxC,8DAAkD,EAAlD;AACQQ,YAAAA,QADR,GACmBQ,QAAQ,CAACC,GAAT,CAAa,UAACV,GAAD;AAAA,qBAASN,UAAU,CAACM,GAAD,EAAMR,IAAN,EAAYC,OAAZ,CAAnB;AAAA,aAAb,CADnB;AAAA;AAAA,mBAEec,OAAO,CAACC,GAAR,CAAYP,QAAZ,CAFf;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["/*\nAsynchronously maps a deep structure of values (e.g. objects and arrays of urls).\n\nE.g. a mipmapped cubemap\n{\n [CUBE_FACE_FRONT]: [\n \"image-front-0.jpg\",\n \"image-front-1.jpg\",\n \"image-front-2.jpg\",\n ],\n [CUBE_MAP_BACK]: [\n ...\n ]\n}\n*/\n\nconst isObject = (value) => value && typeof value === 'object';\n\n// Loads a deep structure of urls (objects and arrays of urls)\n// Returns an object with six key-value pairs containing the images (or image mip arrays)\n// for each cube face\nexport async function asyncDeepMap(tree, func, options = {}) {\n return await mapSubtree(tree, func, options);\n}\n\nexport async function mapSubtree(object, func, options) {\n if (Array.isArray(object)) {\n return await mapArray(object, func, options);\n }\n\n if (isObject(object)) {\n return await mapObject(object, func, options);\n }\n\n // TODO - ignore non-urls, non-arraybuffers?\n const url = object;\n return await func(url, options);\n}\n\n// HELPERS\n\nasync function mapObject(object, func, options) {\n const promises: Promise<any>[] = [];\n const values = {};\n\n for (const key in object) {\n const url = object[key];\n const promise = mapSubtree(url, func, options).then((value) => {\n values[key] = value;\n });\n promises.push(promise);\n }\n\n await Promise.all(promises);\n\n return values;\n}\n\nasync function mapArray(urlArray, func, options = {}) {\n const promises = urlArray.map((url) => mapSubtree(url, func, options));\n return await Promise.all(promises);\n}\n"],"file":"async-deep-map.js"}