@babylonjs/ktx2decoder 6.45.1

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 (72) hide show
  1. package/Misc/dataReader.d.ts +65 -0
  2. package/Misc/dataReader.js +116 -0
  3. package/Misc/dataReader.js.map +1 -0
  4. package/Misc/index.d.ts +1 -0
  5. package/Misc/index.js +2 -0
  6. package/Misc/index.js.map +1 -0
  7. package/Transcoders/index.d.ts +8 -0
  8. package/Transcoders/index.js +9 -0
  9. package/Transcoders/index.js.map +1 -0
  10. package/Transcoders/liteTranscoder.d.ts +25 -0
  11. package/Transcoders/liteTranscoder.js +63 -0
  12. package/Transcoders/liteTranscoder.js.map +1 -0
  13. package/Transcoders/liteTranscoder_UASTC_ASTC.d.ts +19 -0
  14. package/Transcoders/liteTranscoder_UASTC_ASTC.js +29 -0
  15. package/Transcoders/liteTranscoder_UASTC_ASTC.js.map +1 -0
  16. package/Transcoders/liteTranscoder_UASTC_BC7.d.ts +19 -0
  17. package/Transcoders/liteTranscoder_UASTC_BC7.js +29 -0
  18. package/Transcoders/liteTranscoder_UASTC_BC7.js.map +1 -0
  19. package/Transcoders/liteTranscoder_UASTC_R8_UNORM.d.ts +21 -0
  20. package/Transcoders/liteTranscoder_UASTC_R8_UNORM.js +36 -0
  21. package/Transcoders/liteTranscoder_UASTC_R8_UNORM.js.map +1 -0
  22. package/Transcoders/liteTranscoder_UASTC_RG8_UNORM.d.ts +21 -0
  23. package/Transcoders/liteTranscoder_UASTC_RG8_UNORM.js +36 -0
  24. package/Transcoders/liteTranscoder_UASTC_RG8_UNORM.js.map +1 -0
  25. package/Transcoders/liteTranscoder_UASTC_RGBA_SRGB.d.ts +21 -0
  26. package/Transcoders/liteTranscoder_UASTC_RGBA_SRGB.js +36 -0
  27. package/Transcoders/liteTranscoder_UASTC_RGBA_SRGB.js.map +1 -0
  28. package/Transcoders/liteTranscoder_UASTC_RGBA_UNORM.d.ts +21 -0
  29. package/Transcoders/liteTranscoder_UASTC_RGBA_UNORM.js +36 -0
  30. package/Transcoders/liteTranscoder_UASTC_RGBA_UNORM.js.map +1 -0
  31. package/Transcoders/mscTranscoder.d.ts +32 -0
  32. package/Transcoders/mscTranscoder.js +128 -0
  33. package/Transcoders/mscTranscoder.js.map +1 -0
  34. package/index.d.ts +8 -0
  35. package/index.js +10 -0
  36. package/index.js.map +1 -0
  37. package/ktx2Decoder.d.ts +22 -0
  38. package/ktx2Decoder.js +144 -0
  39. package/ktx2Decoder.js.map +1 -0
  40. package/ktx2FileReader.d.ts +109 -0
  41. package/ktx2FileReader.js +219 -0
  42. package/ktx2FileReader.js.map +1 -0
  43. package/legacy/legacy.d.ts +1 -0
  44. package/legacy/legacy.js +8 -0
  45. package/legacy/legacy.js.map +1 -0
  46. package/license.md +71 -0
  47. package/package.json +49 -0
  48. package/readme.md +1 -0
  49. package/transcodeDecisionTree.d.ts +18 -0
  50. package/transcodeDecisionTree.js +240 -0
  51. package/transcodeDecisionTree.js.map +1 -0
  52. package/transcoder.d.ts +17 -0
  53. package/transcoder.js +28 -0
  54. package/transcoder.js.map +1 -0
  55. package/transcoderManager.d.ts +13 -0
  56. package/transcoderManager.js +50 -0
  57. package/transcoderManager.js.map +1 -0
  58. package/wasm/license.md +361 -0
  59. package/wasm/msc_basis_transcoder.js +21 -0
  60. package/wasm/msc_basis_transcoder.wasm +0 -0
  61. package/wasm/uastc_astc.wasm +0 -0
  62. package/wasm/uastc_bc7.wasm +0 -0
  63. package/wasm/uastc_r8_unorm.wasm +0 -0
  64. package/wasm/uastc_rg8_unorm.wasm +0 -0
  65. package/wasm/uastc_rgba8_srgb_v2.wasm +0 -0
  66. package/wasm/uastc_rgba8_unorm_v2.wasm +0 -0
  67. package/wasmMemoryManager.d.ts +17 -0
  68. package/wasmMemoryManager.js +63 -0
  69. package/wasmMemoryManager.js.map +1 -0
  70. package/zstddec.d.ts +41 -0
  71. package/zstddec.js +95 -0
  72. package/zstddec.js.map +1 -0
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Utility class for reading from a data buffer
3
+ */
4
+ export declare class DataReader {
5
+ /**
6
+ * The current byte offset from the beginning of the data buffer.
7
+ */
8
+ get byteOffset(): number;
9
+ private _dataView;
10
+ private _dataByteOffset;
11
+ /**
12
+ * Constructor
13
+ * @param buffer The buffer to set
14
+ * @param byteOffset The starting offset in the buffer
15
+ * @param byteLength The byte length of the buffer
16
+ */
17
+ constructor(buffer: ArrayBuffer | ArrayBufferView, byteOffset?: number, byteLength?: number);
18
+ /**
19
+ * Read a unsigned 8-bit integer from the currently loaded data range.
20
+ * @returns The 8-bit integer read
21
+ */
22
+ readUint8(): number;
23
+ /**
24
+ * Read a signed 8-bit integer from the currently loaded data range.
25
+ * @returns The 8-bit integer read
26
+ */
27
+ readInt8(): number;
28
+ /**
29
+ * Read a unsigned 16-bit integer from the currently loaded data range.
30
+ * @returns The 16-bit integer read
31
+ */
32
+ readUint16(): number;
33
+ /**
34
+ * Read a signed 16-bit integer from the currently loaded data range.
35
+ * @returns The 16-bit integer read
36
+ */
37
+ readInt16(): number;
38
+ /**
39
+ * Read a unsigned 32-bit integer from the currently loaded data range.
40
+ * @returns The 32-bit integer read
41
+ */
42
+ readUint32(): number;
43
+ /**
44
+ * Read a signed 32-bit integer from the currently loaded data range.
45
+ * @returns The 32-bit integer read
46
+ */
47
+ readInt32(): number;
48
+ /**
49
+ * Read a unsigned 32-bit integer from the currently loaded data range.
50
+ * @returns The 32-bit integer read
51
+ */
52
+ readUint64(): number;
53
+ /**
54
+ * Read a byte array from the currently loaded data range.
55
+ * @param byteLength The byte length to read
56
+ * @returns The byte array read
57
+ */
58
+ readUint8Array(byteLength: number): Uint8Array;
59
+ /**
60
+ * Skips the given byte length the currently loaded data range.
61
+ * @param byteLength The byte length to skip
62
+ * @returns This instance
63
+ */
64
+ skipBytes(byteLength: number): this;
65
+ }
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Utility class for reading from a data buffer
3
+ */
4
+ export class DataReader {
5
+ /**
6
+ * The current byte offset from the beginning of the data buffer.
7
+ */
8
+ get byteOffset() {
9
+ return this._dataByteOffset;
10
+ }
11
+ /**
12
+ * Constructor
13
+ * @param buffer The buffer to set
14
+ * @param byteOffset The starting offset in the buffer
15
+ * @param byteLength The byte length of the buffer
16
+ */
17
+ constructor(buffer, byteOffset, byteLength) {
18
+ if (buffer.buffer) {
19
+ this._dataView = new DataView(buffer.buffer, buffer.byteOffset + (byteOffset ?? 0), byteLength ?? buffer.byteLength);
20
+ }
21
+ else {
22
+ this._dataView = new DataView(buffer, byteOffset ?? 0, byteLength ?? buffer.byteLength);
23
+ }
24
+ this._dataByteOffset = 0;
25
+ }
26
+ /**
27
+ * Read a unsigned 8-bit integer from the currently loaded data range.
28
+ * @returns The 8-bit integer read
29
+ */
30
+ readUint8() {
31
+ const value = this._dataView.getUint8(this._dataByteOffset);
32
+ this._dataByteOffset += 1;
33
+ return value;
34
+ }
35
+ /**
36
+ * Read a signed 8-bit integer from the currently loaded data range.
37
+ * @returns The 8-bit integer read
38
+ */
39
+ readInt8() {
40
+ const value = this._dataView.getInt8(this._dataByteOffset);
41
+ this._dataByteOffset += 1;
42
+ return value;
43
+ }
44
+ /**
45
+ * Read a unsigned 16-bit integer from the currently loaded data range.
46
+ * @returns The 16-bit integer read
47
+ */
48
+ readUint16() {
49
+ const value = this._dataView.getUint16(this._dataByteOffset, true);
50
+ this._dataByteOffset += 2;
51
+ return value;
52
+ }
53
+ /**
54
+ * Read a signed 16-bit integer from the currently loaded data range.
55
+ * @returns The 16-bit integer read
56
+ */
57
+ readInt16() {
58
+ const value = this._dataView.getInt16(this._dataByteOffset, true);
59
+ this._dataByteOffset += 2;
60
+ return value;
61
+ }
62
+ /**
63
+ * Read a unsigned 32-bit integer from the currently loaded data range.
64
+ * @returns The 32-bit integer read
65
+ */
66
+ readUint32() {
67
+ const value = this._dataView.getUint32(this._dataByteOffset, true);
68
+ this._dataByteOffset += 4;
69
+ return value;
70
+ }
71
+ /**
72
+ * Read a signed 32-bit integer from the currently loaded data range.
73
+ * @returns The 32-bit integer read
74
+ */
75
+ readInt32() {
76
+ const value = this._dataView.getInt32(this._dataByteOffset, true);
77
+ this._dataByteOffset += 4;
78
+ return value;
79
+ }
80
+ /**
81
+ * Read a unsigned 32-bit integer from the currently loaded data range.
82
+ * @returns The 32-bit integer read
83
+ */
84
+ readUint64() {
85
+ // split 64-bit number into two 32-bit (4-byte) parts
86
+ const left = this._dataView.getUint32(this._dataByteOffset, true);
87
+ const right = this._dataView.getUint32(this._dataByteOffset + 4, true);
88
+ // combine the two 32-bit values
89
+ const combined = left + 2 ** 32 * right; // That was weird..Keeping it for posterity: true ? left + 2 ** 32 * right : 2 ** 32 * left + right;
90
+ /*if (!Number.isSafeInteger(combined)) {
91
+ console.warn('DataReader: ' + combined + ' exceeds MAX_SAFE_INTEGER. Precision may be lost.');
92
+ }*/
93
+ this._dataByteOffset += 8;
94
+ return combined;
95
+ }
96
+ /**
97
+ * Read a byte array from the currently loaded data range.
98
+ * @param byteLength The byte length to read
99
+ * @returns The byte array read
100
+ */
101
+ readUint8Array(byteLength) {
102
+ const value = new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + this._dataByteOffset, byteLength);
103
+ this._dataByteOffset += byteLength;
104
+ return value;
105
+ }
106
+ /**
107
+ * Skips the given byte length the currently loaded data range.
108
+ * @param byteLength The byte length to skip
109
+ * @returns This instance
110
+ */
111
+ skipBytes(byteLength) {
112
+ this._dataByteOffset += byteLength;
113
+ return this;
114
+ }
115
+ }
116
+ //# sourceMappingURL=dataReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataReader.js","sourceRoot":"","sources":["../../../../tools/ktx2Decoder/src/Misc/dataReader.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,UAAU;IACnB;;OAEG;IACH,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAKD;;;;;OAKG;IACH,YAAY,MAAqC,EAAE,UAAmB,EAAE,UAAmB;QACvF,IAAK,MAA0B,CAAC,MAAM,EAAE;YACpC,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,CACxB,MAA0B,CAAC,MAAM,EACjC,MAA0B,CAAC,UAAU,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,EAC1D,UAAU,IAAK,MAA0B,CAAC,UAAU,CACvD,CAAC;SACL;aAAM;YACH,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,CAAC,MAAqB,EAAE,UAAU,IAAI,CAAC,EAAE,UAAU,IAAK,MAAsB,CAAC,UAAU,CAAC,CAAC;SAC3H;QAED,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,SAAS;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,QAAQ;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3D,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,UAAU;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,SAAS;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,UAAU;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,SAAS;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,UAAU;QACb,qDAAqD;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAEvE,gCAAgC;QAChC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,oGAAoG;QAE7I;;WAEG;QAEH,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,UAAkB;QACpC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAClH,IAAI,CAAC,eAAe,IAAI,UAAU,CAAC;QACnC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,UAAkB;QAC/B,IAAI,CAAC,eAAe,IAAI,UAAU,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ","sourcesContent":["/**\r\n * Utility class for reading from a data buffer\r\n */\r\nexport class DataReader {\r\n /**\r\n * The current byte offset from the beginning of the data buffer.\r\n */\r\n public get byteOffset() {\r\n return this._dataByteOffset;\r\n }\r\n\r\n private _dataView: DataView;\r\n private _dataByteOffset: number;\r\n\r\n /**\r\n * Constructor\r\n * @param buffer The buffer to set\r\n * @param byteOffset The starting offset in the buffer\r\n * @param byteLength The byte length of the buffer\r\n */\r\n constructor(buffer: ArrayBuffer | ArrayBufferView, byteOffset?: number, byteLength?: number) {\r\n if ((buffer as ArrayBufferView).buffer) {\r\n this._dataView = new DataView(\r\n (buffer as ArrayBufferView).buffer,\r\n (buffer as ArrayBufferView).byteOffset + (byteOffset ?? 0),\r\n byteLength ?? (buffer as ArrayBufferView).byteLength\r\n );\r\n } else {\r\n this._dataView = new DataView(buffer as ArrayBuffer, byteOffset ?? 0, byteLength ?? (buffer as ArrayBuffer).byteLength);\r\n }\r\n\r\n this._dataByteOffset = 0;\r\n }\r\n\r\n /**\r\n * Read a unsigned 8-bit integer from the currently loaded data range.\r\n * @returns The 8-bit integer read\r\n */\r\n public readUint8(): number {\r\n const value = this._dataView.getUint8(this._dataByteOffset);\r\n this._dataByteOffset += 1;\r\n return value;\r\n }\r\n\r\n /**\r\n * Read a signed 8-bit integer from the currently loaded data range.\r\n * @returns The 8-bit integer read\r\n */\r\n public readInt8(): number {\r\n const value = this._dataView.getInt8(this._dataByteOffset);\r\n this._dataByteOffset += 1;\r\n return value;\r\n }\r\n\r\n /**\r\n * Read a unsigned 16-bit integer from the currently loaded data range.\r\n * @returns The 16-bit integer read\r\n */\r\n public readUint16(): number {\r\n const value = this._dataView.getUint16(this._dataByteOffset, true);\r\n this._dataByteOffset += 2;\r\n return value;\r\n }\r\n\r\n /**\r\n * Read a signed 16-bit integer from the currently loaded data range.\r\n * @returns The 16-bit integer read\r\n */\r\n public readInt16(): number {\r\n const value = this._dataView.getInt16(this._dataByteOffset, true);\r\n this._dataByteOffset += 2;\r\n return value;\r\n }\r\n\r\n /**\r\n * Read a unsigned 32-bit integer from the currently loaded data range.\r\n * @returns The 32-bit integer read\r\n */\r\n public readUint32(): number {\r\n const value = this._dataView.getUint32(this._dataByteOffset, true);\r\n this._dataByteOffset += 4;\r\n return value;\r\n }\r\n\r\n /**\r\n * Read a signed 32-bit integer from the currently loaded data range.\r\n * @returns The 32-bit integer read\r\n */\r\n public readInt32(): number {\r\n const value = this._dataView.getInt32(this._dataByteOffset, true);\r\n this._dataByteOffset += 4;\r\n return value;\r\n }\r\n\r\n /**\r\n * Read a unsigned 32-bit integer from the currently loaded data range.\r\n * @returns The 32-bit integer read\r\n */\r\n public readUint64(): number {\r\n // split 64-bit number into two 32-bit (4-byte) parts\r\n const left = this._dataView.getUint32(this._dataByteOffset, true);\r\n const right = this._dataView.getUint32(this._dataByteOffset + 4, true);\r\n\r\n // combine the two 32-bit values\r\n const combined = left + 2 ** 32 * right; // That was weird..Keeping it for posterity: true ? left + 2 ** 32 * right : 2 ** 32 * left + right;\r\n\r\n /*if (!Number.isSafeInteger(combined)) {\r\n console.warn('DataReader: ' + combined + ' exceeds MAX_SAFE_INTEGER. Precision may be lost.');\r\n }*/\r\n\r\n this._dataByteOffset += 8;\r\n return combined;\r\n }\r\n\r\n /**\r\n * Read a byte array from the currently loaded data range.\r\n * @param byteLength The byte length to read\r\n * @returns The byte array read\r\n */\r\n public readUint8Array(byteLength: number): Uint8Array {\r\n const value = new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + this._dataByteOffset, byteLength);\r\n this._dataByteOffset += byteLength;\r\n return value;\r\n }\r\n\r\n /**\r\n * Skips the given byte length the currently loaded data range.\r\n * @param byteLength The byte length to skip\r\n * @returns This instance\r\n */\r\n public skipBytes(byteLength: number) {\r\n this._dataByteOffset += byteLength;\r\n return this;\r\n }\r\n}\r\n"]}
@@ -0,0 +1 @@
1
+ export * from "./dataReader";
package/Misc/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from "./dataReader.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../tools/ktx2Decoder/src/Misc/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./dataReader\";\r\n"]}
@@ -0,0 +1,8 @@
1
+ export * from "./liteTranscoder";
2
+ export * from "./liteTranscoder_UASTC_ASTC";
3
+ export * from "./liteTranscoder_UASTC_BC7";
4
+ export * from "./liteTranscoder_UASTC_R8_UNORM";
5
+ export * from "./liteTranscoder_UASTC_RG8_UNORM";
6
+ export * from "./liteTranscoder_UASTC_RGBA_UNORM";
7
+ export * from "./liteTranscoder_UASTC_RGBA_SRGB";
8
+ export * from "./mscTranscoder";
@@ -0,0 +1,9 @@
1
+ export * from "./liteTranscoder.js";
2
+ export * from "./liteTranscoder_UASTC_ASTC.js";
3
+ export * from "./liteTranscoder_UASTC_BC7.js";
4
+ export * from "./liteTranscoder_UASTC_R8_UNORM.js";
5
+ export * from "./liteTranscoder_UASTC_RG8_UNORM.js";
6
+ export * from "./liteTranscoder_UASTC_RGBA_UNORM.js";
7
+ export * from "./liteTranscoder_UASTC_RGBA_SRGB.js";
8
+ export * from "./mscTranscoder.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../tools/ktx2Decoder/src/Transcoders/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC","sourcesContent":["export * from \"./liteTranscoder\";\r\nexport * from \"./liteTranscoder_UASTC_ASTC\";\r\nexport * from \"./liteTranscoder_UASTC_BC7\";\r\nexport * from \"./liteTranscoder_UASTC_R8_UNORM\";\r\nexport * from \"./liteTranscoder_UASTC_RG8_UNORM\";\r\nexport * from \"./liteTranscoder_UASTC_RGBA_UNORM\";\r\nexport * from \"./liteTranscoder_UASTC_RGBA_SRGB\";\r\nexport * from \"./mscTranscoder\";\r\n"]}
@@ -0,0 +1,25 @@
1
+ import type * as KTX2 from "@babylonjs/core/Materials/Textures/ktx2decoderTypes.js";
2
+ import { Transcoder } from "../transcoder";
3
+ import { WASMMemoryManager } from "../wasmMemoryManager";
4
+ import type { KTX2FileReader, IKTX2_ImageDesc } from "../ktx2FileReader";
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare class LiteTranscoder extends Transcoder {
9
+ private _modulePath;
10
+ private _wasmBinary;
11
+ private _modulePromise;
12
+ private _memoryManager;
13
+ protected _transcodeInPlace: boolean;
14
+ private _instantiateWebAssembly;
15
+ protected _loadModule(wasmBinary?: ArrayBuffer | null): Promise<{
16
+ module: any;
17
+ }>;
18
+ protected get memoryManager(): WASMMemoryManager;
19
+ protected setModulePath(modulePath: string, wasmBinary: ArrayBuffer | null): void;
20
+ initialize(): void;
21
+ needMemoryManager(): boolean;
22
+ setMemoryManager(memoryMgr: WASMMemoryManager): void;
23
+ transcode(src: KTX2.SourceTextureFormat, dst: KTX2.TranscodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
24
+ protected _prepareTranscoding(width: number, height: number, uncompressedByteLength: number, encodedData: Uint8Array, uncompressedNumComponents?: number): [Uint8Array, Uint8Array | null, number];
25
+ }
@@ -0,0 +1,63 @@
1
+ import { Transcoder } from "../transcoder.js";
2
+ import { WASMMemoryManager } from "../wasmMemoryManager.js";
3
+ /**
4
+ * @internal
5
+ */
6
+ export class LiteTranscoder extends Transcoder {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._wasmBinary = null;
10
+ }
11
+ _instantiateWebAssembly(wasmBinary) {
12
+ return WebAssembly.instantiate(wasmBinary, { env: { memory: this._memoryManager.wasmMemory } }).then((moduleWrapper) => {
13
+ return { module: moduleWrapper.instance.exports };
14
+ });
15
+ }
16
+ _loadModule(wasmBinary = this._wasmBinary) {
17
+ this._modulePromise =
18
+ this._modulePromise ||
19
+ (wasmBinary ? Promise.resolve(wasmBinary) : WASMMemoryManager.LoadWASM(this._modulePath)).then((wasmBinary) => {
20
+ return this._instantiateWebAssembly(wasmBinary);
21
+ });
22
+ return this._modulePromise;
23
+ }
24
+ // eslint-disable-next-line @typescript-eslint/naming-convention
25
+ get memoryManager() {
26
+ return this._memoryManager;
27
+ }
28
+ // eslint-disable-next-line @typescript-eslint/naming-convention
29
+ setModulePath(modulePath, wasmBinary) {
30
+ this._modulePath = Transcoder.GetWasmUrl(modulePath);
31
+ this._wasmBinary = wasmBinary;
32
+ }
33
+ initialize() {
34
+ this._transcodeInPlace = true;
35
+ }
36
+ needMemoryManager() {
37
+ return true;
38
+ }
39
+ setMemoryManager(memoryMgr) {
40
+ this._memoryManager = memoryMgr;
41
+ }
42
+ transcode(src, dst, level, width, height, uncompressedByteLength, ktx2Reader, imageDesc, encodedData) {
43
+ return this._loadModule().then((moduleWrapper) => {
44
+ const transcoder = moduleWrapper.module;
45
+ const [textureView, uncompressedTextureView, nBlocks] = this._prepareTranscoding(width, height, uncompressedByteLength, encodedData);
46
+ return transcoder.transcode(nBlocks) === 0 ? (this._transcodeInPlace ? textureView.slice() : uncompressedTextureView.slice()) : null;
47
+ });
48
+ }
49
+ _prepareTranscoding(width, height, uncompressedByteLength, encodedData, uncompressedNumComponents) {
50
+ const nBlocks = ((width + 3) >> 2) * ((height + 3) >> 2);
51
+ if (uncompressedNumComponents !== undefined) {
52
+ uncompressedByteLength = width * ((height + 3) >> 2) * 4 * uncompressedNumComponents;
53
+ }
54
+ const texMemoryPages = ((nBlocks * 16 + 65535 + (this._transcodeInPlace ? 0 : uncompressedByteLength)) >> 16) + 1;
55
+ const textureView = this.memoryManager.getMemoryView(texMemoryPages, 65536, nBlocks * 16);
56
+ const uncompressedTextureView = this._transcodeInPlace
57
+ ? null
58
+ : new Uint8Array(this._memoryManager.wasmMemory.buffer, 65536 + nBlocks * 16, uncompressedNumComponents !== undefined ? width * height * uncompressedNumComponents : uncompressedByteLength);
59
+ textureView.set(encodedData);
60
+ return [textureView, uncompressedTextureView, nBlocks];
61
+ }
62
+ }
63
+ //# sourceMappingURL=liteTranscoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liteTranscoder.js","sourceRoot":"","sources":["../../../../tools/ktx2Decoder/src/Transcoders/liteTranscoder.ts"],"names":[],"mappings":"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","sourcesContent":["import type * as KTX2 from \"core/Materials/Textures/ktx2decoderTypes\";\r\n\r\nimport { Transcoder } from \"../transcoder\";\r\nimport { WASMMemoryManager } from \"../wasmMemoryManager\";\r\nimport type { KTX2FileReader, IKTX2_ImageDesc } from \"../ktx2FileReader\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class LiteTranscoder extends Transcoder {\r\n private _modulePath: string;\r\n private _wasmBinary: ArrayBuffer | null = null;\r\n private _modulePromise: Promise<{ module: any }>;\r\n private _memoryManager: WASMMemoryManager;\r\n protected _transcodeInPlace: boolean;\r\n\r\n private _instantiateWebAssembly(wasmBinary: ArrayBuffer): Promise<{ module: any }> {\r\n return WebAssembly.instantiate(wasmBinary as ArrayBuffer, { env: { memory: this._memoryManager.wasmMemory } }).then((moduleWrapper) => {\r\n return { module: moduleWrapper.instance.exports };\r\n });\r\n }\r\n\r\n protected _loadModule(wasmBinary: ArrayBuffer | null = this._wasmBinary): Promise<{ module: any }> {\r\n this._modulePromise =\r\n this._modulePromise ||\r\n (wasmBinary ? Promise.resolve(wasmBinary) : WASMMemoryManager.LoadWASM(this._modulePath)).then((wasmBinary) => {\r\n return this._instantiateWebAssembly(wasmBinary);\r\n });\r\n return this._modulePromise;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected get memoryManager(): WASMMemoryManager {\r\n return this._memoryManager;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected setModulePath(modulePath: string, wasmBinary: ArrayBuffer | null): void {\r\n this._modulePath = Transcoder.GetWasmUrl(modulePath);\r\n this._wasmBinary = wasmBinary;\r\n }\r\n\r\n public initialize(): void {\r\n this._transcodeInPlace = true;\r\n }\r\n\r\n public needMemoryManager(): boolean {\r\n return true;\r\n }\r\n\r\n public setMemoryManager(memoryMgr: WASMMemoryManager): void {\r\n this._memoryManager = memoryMgr;\r\n }\r\n\r\n public transcode(\r\n src: KTX2.SourceTextureFormat,\r\n dst: KTX2.TranscodeTarget,\r\n level: number,\r\n width: number,\r\n height: number,\r\n uncompressedByteLength: number,\r\n ktx2Reader: KTX2FileReader,\r\n imageDesc: IKTX2_ImageDesc | null,\r\n encodedData: Uint8Array\r\n ): Promise<Uint8Array | null> {\r\n return this._loadModule().then((moduleWrapper: any) => {\r\n const transcoder: any = moduleWrapper.module;\r\n const [textureView, uncompressedTextureView, nBlocks] = this._prepareTranscoding(width, height, uncompressedByteLength, encodedData);\r\n\r\n return transcoder.transcode(nBlocks) === 0 ? (this._transcodeInPlace ? textureView.slice() : uncompressedTextureView!.slice()) : null;\r\n });\r\n }\r\n\r\n protected _prepareTranscoding(\r\n width: number,\r\n height: number,\r\n uncompressedByteLength: number,\r\n encodedData: Uint8Array,\r\n uncompressedNumComponents?: number\r\n ): [Uint8Array, Uint8Array | null, number] {\r\n const nBlocks = ((width + 3) >> 2) * ((height + 3) >> 2);\r\n\r\n if (uncompressedNumComponents !== undefined) {\r\n uncompressedByteLength = width * ((height + 3) >> 2) * 4 * uncompressedNumComponents;\r\n }\r\n\r\n const texMemoryPages = ((nBlocks * 16 + 65535 + (this._transcodeInPlace ? 0 : uncompressedByteLength)) >> 16) + 1;\r\n\r\n const textureView = this.memoryManager.getMemoryView(texMemoryPages, 65536, nBlocks * 16);\r\n\r\n const uncompressedTextureView = this._transcodeInPlace\r\n ? null\r\n : new Uint8Array(\r\n this._memoryManager.wasmMemory.buffer,\r\n 65536 + nBlocks * 16,\r\n uncompressedNumComponents !== undefined ? width * height * uncompressedNumComponents : uncompressedByteLength\r\n );\r\n\r\n textureView.set(encodedData);\r\n\r\n return [textureView, uncompressedTextureView, nBlocks];\r\n }\r\n}\r\n"]}
@@ -0,0 +1,19 @@
1
+ import * as KTX2 from "@babylonjs/core/Materials/Textures/ktx2decoderTypes.js";
2
+ import { LiteTranscoder } from "./liteTranscoder";
3
+ /**
4
+ * @internal
5
+ */
6
+ export declare class LiteTranscoder_UASTC_ASTC extends LiteTranscoder {
7
+ /**
8
+ * URL to use when loading the wasm module for the transcoder
9
+ */
10
+ static WasmModuleURL: string;
11
+ /**
12
+ * Binary data of the wasm module
13
+ */
14
+ static WasmBinary: ArrayBuffer | null;
15
+ static CanTranscode(src: KTX2.SourceTextureFormat, dst: KTX2.TranscodeTarget, isInGammaSpace: boolean): boolean;
16
+ static Name: string;
17
+ getName(): string;
18
+ initialize(): void;
19
+ }
@@ -0,0 +1,29 @@
1
+ import * as KTX2 from "@babylonjs/core/Materials/Textures/ktx2decoderTypes.js";
2
+ import { LiteTranscoder } from "./liteTranscoder.js";
3
+ /**
4
+ * @internal
5
+ */
6
+ // eslint-disable-next-line @typescript-eslint/naming-convention
7
+ export class LiteTranscoder_UASTC_ASTC extends LiteTranscoder {
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
+ static CanTranscode(src, dst, isInGammaSpace) {
10
+ return src === KTX2.SourceTextureFormat.UASTC4x4 && dst === KTX2.TranscodeTarget.ASTC_4X4_RGBA;
11
+ }
12
+ getName() {
13
+ return LiteTranscoder_UASTC_ASTC.Name;
14
+ }
15
+ initialize() {
16
+ super.initialize();
17
+ this.setModulePath(LiteTranscoder_UASTC_ASTC.WasmModuleURL, LiteTranscoder_UASTC_ASTC.WasmBinary);
18
+ }
19
+ }
20
+ /**
21
+ * URL to use when loading the wasm module for the transcoder
22
+ */
23
+ LiteTranscoder_UASTC_ASTC.WasmModuleURL = "https://cdn.babylonjs.com/ktx2Transcoders/1/uastc_astc.wasm";
24
+ /**
25
+ * Binary data of the wasm module
26
+ */
27
+ LiteTranscoder_UASTC_ASTC.WasmBinary = null;
28
+ LiteTranscoder_UASTC_ASTC.Name = "UniversalTranscoder_UASTC_ASTC";
29
+ //# sourceMappingURL=liteTranscoder_UASTC_ASTC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liteTranscoder_UASTC_ASTC.js","sourceRoot":"","sources":["../../../../tools/ktx2Decoder/src/Transcoders/liteTranscoder_UASTC_ASTC.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,+DAAiD;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,gEAAgE;AAChE,MAAM,OAAO,yBAA0B,SAAQ,cAAc;IAWzD,6DAA6D;IACtD,MAAM,CAAC,YAAY,CAAC,GAA6B,EAAE,GAAyB,EAAE,cAAuB;QACxG,OAAO,GAAG,KAAK,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;IACnG,CAAC;IAIM,OAAO;QACV,OAAO,yBAAyB,CAAC,IAAI,CAAC;IAC1C,CAAC;IAEM,UAAU;QACb,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,aAAa,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACtG,CAAC;;AAxBD;;GAEG;AACW,uCAAa,GAAG,6DAA6D,CAAC;AAE5F;;GAEG;AACW,oCAAU,GAAuB,IAAI,CAAC;AAOtC,8BAAI,GAAG,gCAAgC,CAAC","sourcesContent":["import * as KTX2 from \"core/Materials/Textures/ktx2decoderTypes\";\r\n\r\nimport { LiteTranscoder } from \"./liteTranscoder\";\r\n\r\n/**\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class LiteTranscoder_UASTC_ASTC extends LiteTranscoder {\r\n /**\r\n * URL to use when loading the wasm module for the transcoder\r\n */\r\n public static WasmModuleURL = \"https://cdn.babylonjs.com/ktx2Transcoders/1/uastc_astc.wasm\";\r\n\r\n /**\r\n * Binary data of the wasm module\r\n */\r\n public static WasmBinary: ArrayBuffer | null = null;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n public static CanTranscode(src: KTX2.SourceTextureFormat, dst: KTX2.TranscodeTarget, isInGammaSpace: boolean): boolean {\r\n return src === KTX2.SourceTextureFormat.UASTC4x4 && dst === KTX2.TranscodeTarget.ASTC_4X4_RGBA;\r\n }\r\n\r\n public static Name = \"UniversalTranscoder_UASTC_ASTC\";\r\n\r\n public getName(): string {\r\n return LiteTranscoder_UASTC_ASTC.Name;\r\n }\r\n\r\n public initialize(): void {\r\n super.initialize();\r\n this.setModulePath(LiteTranscoder_UASTC_ASTC.WasmModuleURL, LiteTranscoder_UASTC_ASTC.WasmBinary);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,19 @@
1
+ import * as KTX2 from "@babylonjs/core/Materials/Textures/ktx2decoderTypes.js";
2
+ import { LiteTranscoder } from "./liteTranscoder";
3
+ /**
4
+ * @internal
5
+ */
6
+ export declare class LiteTranscoder_UASTC_BC7 extends LiteTranscoder {
7
+ /**
8
+ * URL to use when loading the wasm module for the transcoder
9
+ */
10
+ static WasmModuleURL: string;
11
+ /**
12
+ * Binary data of the wasm module
13
+ */
14
+ static WasmBinary: ArrayBuffer | null;
15
+ static CanTranscode(src: KTX2.SourceTextureFormat, dst: KTX2.TranscodeTarget, isInGammaSpace: boolean): boolean;
16
+ static Name: string;
17
+ getName(): string;
18
+ initialize(): void;
19
+ }
@@ -0,0 +1,29 @@
1
+ import * as KTX2 from "@babylonjs/core/Materials/Textures/ktx2decoderTypes.js";
2
+ import { LiteTranscoder } from "./liteTranscoder.js";
3
+ /**
4
+ * @internal
5
+ */
6
+ // eslint-disable-next-line @typescript-eslint/naming-convention
7
+ export class LiteTranscoder_UASTC_BC7 extends LiteTranscoder {
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
+ static CanTranscode(src, dst, isInGammaSpace) {
10
+ return src === KTX2.SourceTextureFormat.UASTC4x4 && dst === KTX2.TranscodeTarget.BC7_RGBA;
11
+ }
12
+ getName() {
13
+ return LiteTranscoder_UASTC_BC7.Name;
14
+ }
15
+ initialize() {
16
+ super.initialize();
17
+ this.setModulePath(LiteTranscoder_UASTC_BC7.WasmModuleURL, LiteTranscoder_UASTC_BC7.WasmBinary);
18
+ }
19
+ }
20
+ /**
21
+ * URL to use when loading the wasm module for the transcoder
22
+ */
23
+ LiteTranscoder_UASTC_BC7.WasmModuleURL = "https://cdn.babylonjs.com/ktx2Transcoders/1/uastc_bc7.wasm";
24
+ /**
25
+ * Binary data of the wasm module
26
+ */
27
+ LiteTranscoder_UASTC_BC7.WasmBinary = null;
28
+ LiteTranscoder_UASTC_BC7.Name = "UniversalTranscoder_UASTC_BC7";
29
+ //# sourceMappingURL=liteTranscoder_UASTC_BC7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liteTranscoder_UASTC_BC7.js","sourceRoot":"","sources":["../../../../tools/ktx2Decoder/src/Transcoders/liteTranscoder_UASTC_BC7.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,+DAAiD;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,gEAAgE;AAChE,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IAWxD,6DAA6D;IACtD,MAAM,CAAC,YAAY,CAAC,GAA6B,EAAE,GAAyB,EAAE,cAAuB;QACxG,OAAO,GAAG,KAAK,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;IAC9F,CAAC;IAIM,OAAO;QACV,OAAO,wBAAwB,CAAC,IAAI,CAAC;IACzC,CAAC;IAEM,UAAU;QACb,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,aAAa,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACpG,CAAC;;AAxBD;;GAEG;AACW,sCAAa,GAAG,4DAA4D,CAAC;AAE3F;;GAEG;AACW,mCAAU,GAAuB,IAAI,CAAC;AAOtC,6BAAI,GAAG,+BAA+B,CAAC","sourcesContent":["import * as KTX2 from \"core/Materials/Textures/ktx2decoderTypes\";\r\n\r\nimport { LiteTranscoder } from \"./liteTranscoder\";\r\n\r\n/**\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class LiteTranscoder_UASTC_BC7 extends LiteTranscoder {\r\n /**\r\n * URL to use when loading the wasm module for the transcoder\r\n */\r\n public static WasmModuleURL = \"https://cdn.babylonjs.com/ktx2Transcoders/1/uastc_bc7.wasm\";\r\n\r\n /**\r\n * Binary data of the wasm module\r\n */\r\n public static WasmBinary: ArrayBuffer | null = null;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n public static CanTranscode(src: KTX2.SourceTextureFormat, dst: KTX2.TranscodeTarget, isInGammaSpace: boolean): boolean {\r\n return src === KTX2.SourceTextureFormat.UASTC4x4 && dst === KTX2.TranscodeTarget.BC7_RGBA;\r\n }\r\n\r\n public static Name = \"UniversalTranscoder_UASTC_BC7\";\r\n\r\n public getName(): string {\r\n return LiteTranscoder_UASTC_BC7.Name;\r\n }\r\n\r\n public initialize(): void {\r\n super.initialize();\r\n this.setModulePath(LiteTranscoder_UASTC_BC7.WasmModuleURL, LiteTranscoder_UASTC_BC7.WasmBinary);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,21 @@
1
+ import * as KTX2 from "@babylonjs/core/Materials/Textures/ktx2decoderTypes.js";
2
+ import { LiteTranscoder } from "./liteTranscoder";
3
+ import type { KTX2FileReader, IKTX2_ImageDesc } from "../ktx2FileReader";
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare class LiteTranscoder_UASTC_R8_UNORM extends LiteTranscoder {
8
+ /**
9
+ * URL to use when loading the wasm module for the transcoder (unorm)
10
+ */
11
+ static WasmModuleURL: string;
12
+ /**
13
+ * Binary data of the wasm module
14
+ */
15
+ static WasmBinary: ArrayBuffer | null;
16
+ static CanTranscode(src: KTX2.SourceTextureFormat, dst: KTX2.TranscodeTarget, isInGammaSpace: boolean): boolean;
17
+ static Name: string;
18
+ getName(): string;
19
+ initialize(): void;
20
+ transcode(src: KTX2.SourceTextureFormat, dst: KTX2.TranscodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
21
+ }
@@ -0,0 +1,36 @@
1
+ import * as KTX2 from "@babylonjs/core/Materials/Textures/ktx2decoderTypes.js";
2
+ import { LiteTranscoder } from "./liteTranscoder.js";
3
+ /**
4
+ * @internal
5
+ */
6
+ // eslint-disable-next-line @typescript-eslint/naming-convention
7
+ export class LiteTranscoder_UASTC_R8_UNORM extends LiteTranscoder {
8
+ static CanTranscode(src, dst, isInGammaSpace) {
9
+ return src === KTX2.SourceTextureFormat.UASTC4x4 && dst === KTX2.TranscodeTarget.R8;
10
+ }
11
+ getName() {
12
+ return LiteTranscoder_UASTC_R8_UNORM.Name;
13
+ }
14
+ initialize() {
15
+ super.initialize();
16
+ this._transcodeInPlace = false;
17
+ this.setModulePath(LiteTranscoder_UASTC_R8_UNORM.WasmModuleURL, LiteTranscoder_UASTC_R8_UNORM.WasmBinary);
18
+ }
19
+ transcode(src, dst, level, width, height, uncompressedByteLength, ktx2Reader, imageDesc, encodedData) {
20
+ return this._loadModule().then((moduleWrapper) => {
21
+ const transcoder = moduleWrapper.module;
22
+ const [, uncompressedTextureView] = this._prepareTranscoding(width, height, uncompressedByteLength, encodedData, 1);
23
+ return transcoder.decode(width, height) === 0 ? uncompressedTextureView.slice() : null;
24
+ });
25
+ }
26
+ }
27
+ /**
28
+ * URL to use when loading the wasm module for the transcoder (unorm)
29
+ */
30
+ LiteTranscoder_UASTC_R8_UNORM.WasmModuleURL = "https://cdn.babylonjs.com/ktx2Transcoders/1/uastc_r8_unorm.wasm";
31
+ /**
32
+ * Binary data of the wasm module
33
+ */
34
+ LiteTranscoder_UASTC_R8_UNORM.WasmBinary = null;
35
+ LiteTranscoder_UASTC_R8_UNORM.Name = "UniversalTranscoder_UASTC_R8_UNORM";
36
+ //# sourceMappingURL=liteTranscoder_UASTC_R8_UNORM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liteTranscoder_UASTC_R8_UNORM.js","sourceRoot":"","sources":["../../../../tools/ktx2Decoder/src/Transcoders/liteTranscoder_UASTC_R8_UNORM.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,+DAAiD;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;GAEG;AACH,gEAAgE;AAChE,MAAM,OAAO,6BAA8B,SAAQ,cAAc;IAWtD,MAAM,CAAC,YAAY,CAAC,GAA6B,EAAE,GAAyB,EAAE,cAAuB;QACxG,OAAO,GAAG,KAAK,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;IACxF,CAAC;IAIM,OAAO;QACV,OAAO,6BAA6B,CAAC,IAAI,CAAC;IAC9C,CAAC;IAEM,UAAU;QACb,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,aAAa,EAAE,6BAA6B,CAAC,UAAU,CAAC,CAAC;IAC9G,CAAC;IAEM,SAAS,CACZ,GAA6B,EAC7B,GAAyB,EACzB,KAAa,EACb,KAAa,EACb,MAAc,EACd,sBAA8B,EAC9B,UAA0B,EAC1B,SAAiC,EACjC,WAAuB;QAEvB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,aAAkB,EAAE,EAAE;YAClD,MAAM,UAAU,GAAQ,aAAa,CAAC,MAAM,CAAC;YAC7C,MAAM,CAAC,EAAE,uBAAuB,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YAEpH,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAwB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5F,CAAC,CAAC,CAAC;IACP,CAAC;;AA3CD;;GAEG;AACW,2CAAa,GAAG,iEAAiE,CAAC;AAEhG;;GAEG;AACW,wCAAU,GAAuB,IAAI,CAAC;AAMtC,kCAAI,GAAG,oCAAoC,CAAC","sourcesContent":["import * as KTX2 from \"core/Materials/Textures/ktx2decoderTypes\";\r\n\r\nimport { LiteTranscoder } from \"./liteTranscoder\";\r\nimport type { KTX2FileReader, IKTX2_ImageDesc } from \"../ktx2FileReader\";\r\n\r\n/**\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class LiteTranscoder_UASTC_R8_UNORM extends LiteTranscoder {\r\n /**\r\n * URL to use when loading the wasm module for the transcoder (unorm)\r\n */\r\n public static WasmModuleURL = \"https://cdn.babylonjs.com/ktx2Transcoders/1/uastc_r8_unorm.wasm\";\r\n\r\n /**\r\n * Binary data of the wasm module\r\n */\r\n public static WasmBinary: ArrayBuffer | null = null;\r\n\r\n public static CanTranscode(src: KTX2.SourceTextureFormat, dst: KTX2.TranscodeTarget, isInGammaSpace: boolean): boolean {\r\n return src === KTX2.SourceTextureFormat.UASTC4x4 && dst === KTX2.TranscodeTarget.R8;\r\n }\r\n\r\n public static Name = \"UniversalTranscoder_UASTC_R8_UNORM\";\r\n\r\n public getName(): string {\r\n return LiteTranscoder_UASTC_R8_UNORM.Name;\r\n }\r\n\r\n public initialize(): void {\r\n super.initialize();\r\n this._transcodeInPlace = false;\r\n this.setModulePath(LiteTranscoder_UASTC_R8_UNORM.WasmModuleURL, LiteTranscoder_UASTC_R8_UNORM.WasmBinary);\r\n }\r\n\r\n public transcode(\r\n src: KTX2.SourceTextureFormat,\r\n dst: KTX2.TranscodeTarget,\r\n level: number,\r\n width: number,\r\n height: number,\r\n uncompressedByteLength: number,\r\n ktx2Reader: KTX2FileReader,\r\n imageDesc: IKTX2_ImageDesc | null,\r\n encodedData: Uint8Array\r\n ): Promise<Uint8Array | null> {\r\n return this._loadModule().then((moduleWrapper: any) => {\r\n const transcoder: any = moduleWrapper.module;\r\n const [, uncompressedTextureView] = this._prepareTranscoding(width, height, uncompressedByteLength, encodedData, 1);\r\n\r\n return transcoder.decode(width, height) === 0 ? uncompressedTextureView!.slice() : null;\r\n });\r\n }\r\n}\r\n"]}
@@ -0,0 +1,21 @@
1
+ import * as KTX2 from "@babylonjs/core/Materials/Textures/ktx2decoderTypes.js";
2
+ import { LiteTranscoder } from "./liteTranscoder";
3
+ import type { KTX2FileReader, IKTX2_ImageDesc } from "../ktx2FileReader";
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare class LiteTranscoder_UASTC_RG8_UNORM extends LiteTranscoder {
8
+ /**
9
+ * URL to use when loading the wasm module for the transcoder (unorm)
10
+ */
11
+ static WasmModuleURL: string;
12
+ /**
13
+ * Binary data of the wasm module
14
+ */
15
+ static WasmBinary: ArrayBuffer | null;
16
+ static CanTranscode(src: KTX2.SourceTextureFormat, dst: KTX2.TranscodeTarget, isInGammaSpace: boolean): boolean;
17
+ static Name: string;
18
+ getName(): string;
19
+ initialize(): void;
20
+ transcode(src: KTX2.SourceTextureFormat, dst: KTX2.TranscodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
21
+ }
@@ -0,0 +1,36 @@
1
+ import * as KTX2 from "@babylonjs/core/Materials/Textures/ktx2decoderTypes.js";
2
+ import { LiteTranscoder } from "./liteTranscoder.js";
3
+ /**
4
+ * @internal
5
+ */
6
+ // eslint-disable-next-line @typescript-eslint/naming-convention
7
+ export class LiteTranscoder_UASTC_RG8_UNORM extends LiteTranscoder {
8
+ static CanTranscode(src, dst, isInGammaSpace) {
9
+ return src === KTX2.SourceTextureFormat.UASTC4x4 && dst === KTX2.TranscodeTarget.RG8;
10
+ }
11
+ getName() {
12
+ return LiteTranscoder_UASTC_RG8_UNORM.Name;
13
+ }
14
+ initialize() {
15
+ super.initialize();
16
+ this._transcodeInPlace = false;
17
+ this.setModulePath(LiteTranscoder_UASTC_RG8_UNORM.WasmModuleURL, LiteTranscoder_UASTC_RG8_UNORM.WasmBinary);
18
+ }
19
+ transcode(src, dst, level, width, height, uncompressedByteLength, ktx2Reader, imageDesc, encodedData) {
20
+ return this._loadModule().then((moduleWrapper) => {
21
+ const transcoder = moduleWrapper.module;
22
+ const [, uncompressedTextureView] = this._prepareTranscoding(width, height, uncompressedByteLength, encodedData, 2);
23
+ return transcoder.decode(width, height) === 0 ? uncompressedTextureView.slice() : null;
24
+ });
25
+ }
26
+ }
27
+ /**
28
+ * URL to use when loading the wasm module for the transcoder (unorm)
29
+ */
30
+ LiteTranscoder_UASTC_RG8_UNORM.WasmModuleURL = "https://cdn.babylonjs.com/ktx2Transcoders/1/uastc_rg8_unorm.wasm";
31
+ /**
32
+ * Binary data of the wasm module
33
+ */
34
+ LiteTranscoder_UASTC_RG8_UNORM.WasmBinary = null;
35
+ LiteTranscoder_UASTC_RG8_UNORM.Name = "UniversalTranscoder_UASTC_RG8_UNORM";
36
+ //# sourceMappingURL=liteTranscoder_UASTC_RG8_UNORM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liteTranscoder_UASTC_RG8_UNORM.js","sourceRoot":"","sources":["../../../../tools/ktx2Decoder/src/Transcoders/liteTranscoder_UASTC_RG8_UNORM.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,+DAAiD;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;GAEG;AACH,gEAAgE;AAChE,MAAM,OAAO,8BAA+B,SAAQ,cAAc;IAWvD,MAAM,CAAC,YAAY,CAAC,GAA6B,EAAE,GAAyB,EAAE,cAAuB;QACxG,OAAO,GAAG,KAAK,IAAI,CAAC,mBAAmB,CAAC,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;IACzF,CAAC;IAIM,OAAO;QACV,OAAO,8BAA8B,CAAC,IAAI,CAAC;IAC/C,CAAC;IAEM,UAAU;QACb,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,8BAA8B,CAAC,aAAa,EAAE,8BAA8B,CAAC,UAAU,CAAC,CAAC;IAChH,CAAC;IAEM,SAAS,CACZ,GAA6B,EAC7B,GAAyB,EACzB,KAAa,EACb,KAAa,EACb,MAAc,EACd,sBAA8B,EAC9B,UAA0B,EAC1B,SAAiC,EACjC,WAAuB;QAEvB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,aAAkB,EAAE,EAAE;YAClD,MAAM,UAAU,GAAQ,aAAa,CAAC,MAAM,CAAC;YAC7C,MAAM,CAAC,EAAE,uBAAuB,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YAEpH,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAwB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5F,CAAC,CAAC,CAAC;IACP,CAAC;;AA3CD;;GAEG;AACW,4CAAa,GAAG,kEAAkE,CAAC;AAEjG;;GAEG;AACW,yCAAU,GAAuB,IAAI,CAAC;AAMtC,mCAAI,GAAG,qCAAqC,CAAC","sourcesContent":["import * as KTX2 from \"core/Materials/Textures/ktx2decoderTypes\";\r\n\r\nimport { LiteTranscoder } from \"./liteTranscoder\";\r\nimport type { KTX2FileReader, IKTX2_ImageDesc } from \"../ktx2FileReader\";\r\n\r\n/**\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class LiteTranscoder_UASTC_RG8_UNORM extends LiteTranscoder {\r\n /**\r\n * URL to use when loading the wasm module for the transcoder (unorm)\r\n */\r\n public static WasmModuleURL = \"https://cdn.babylonjs.com/ktx2Transcoders/1/uastc_rg8_unorm.wasm\";\r\n\r\n /**\r\n * Binary data of the wasm module\r\n */\r\n public static WasmBinary: ArrayBuffer | null = null;\r\n\r\n public static CanTranscode(src: KTX2.SourceTextureFormat, dst: KTX2.TranscodeTarget, isInGammaSpace: boolean): boolean {\r\n return src === KTX2.SourceTextureFormat.UASTC4x4 && dst === KTX2.TranscodeTarget.RG8;\r\n }\r\n\r\n public static Name = \"UniversalTranscoder_UASTC_RG8_UNORM\";\r\n\r\n public getName(): string {\r\n return LiteTranscoder_UASTC_RG8_UNORM.Name;\r\n }\r\n\r\n public initialize(): void {\r\n super.initialize();\r\n this._transcodeInPlace = false;\r\n this.setModulePath(LiteTranscoder_UASTC_RG8_UNORM.WasmModuleURL, LiteTranscoder_UASTC_RG8_UNORM.WasmBinary);\r\n }\r\n\r\n public transcode(\r\n src: KTX2.SourceTextureFormat,\r\n dst: KTX2.TranscodeTarget,\r\n level: number,\r\n width: number,\r\n height: number,\r\n uncompressedByteLength: number,\r\n ktx2Reader: KTX2FileReader,\r\n imageDesc: IKTX2_ImageDesc | null,\r\n encodedData: Uint8Array\r\n ): Promise<Uint8Array | null> {\r\n return this._loadModule().then((moduleWrapper: any) => {\r\n const transcoder: any = moduleWrapper.module;\r\n const [, uncompressedTextureView] = this._prepareTranscoding(width, height, uncompressedByteLength, encodedData, 2);\r\n\r\n return transcoder.decode(width, height) === 0 ? uncompressedTextureView!.slice() : null;\r\n });\r\n }\r\n}\r\n"]}
@@ -0,0 +1,21 @@
1
+ import * as KTX2 from "@babylonjs/core/Materials/Textures/ktx2decoderTypes.js";
2
+ import { LiteTranscoder } from "./liteTranscoder";
3
+ import type { KTX2FileReader, IKTX2_ImageDesc } from "../ktx2FileReader";
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare class LiteTranscoder_UASTC_RGBA_SRGB extends LiteTranscoder {
8
+ /**
9
+ * URL to use when loading the wasm module for the transcoder (srgb)
10
+ */
11
+ static WasmModuleURL: string;
12
+ /**
13
+ * Binary data of the wasm module
14
+ */
15
+ static WasmBinary: ArrayBuffer | null;
16
+ static CanTranscode(src: KTX2.SourceTextureFormat, dst: KTX2.TranscodeTarget, isInGammaSpace: boolean): boolean;
17
+ static Name: string;
18
+ getName(): string;
19
+ initialize(): void;
20
+ transcode(src: KTX2.SourceTextureFormat, dst: KTX2.TranscodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
21
+ }