@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.
- package/Misc/dataReader.d.ts +65 -0
- package/Misc/dataReader.js +116 -0
- package/Misc/dataReader.js.map +1 -0
- package/Misc/index.d.ts +1 -0
- package/Misc/index.js +2 -0
- package/Misc/index.js.map +1 -0
- package/Transcoders/index.d.ts +8 -0
- package/Transcoders/index.js +9 -0
- package/Transcoders/index.js.map +1 -0
- package/Transcoders/liteTranscoder.d.ts +25 -0
- package/Transcoders/liteTranscoder.js +63 -0
- package/Transcoders/liteTranscoder.js.map +1 -0
- package/Transcoders/liteTranscoder_UASTC_ASTC.d.ts +19 -0
- package/Transcoders/liteTranscoder_UASTC_ASTC.js +29 -0
- package/Transcoders/liteTranscoder_UASTC_ASTC.js.map +1 -0
- package/Transcoders/liteTranscoder_UASTC_BC7.d.ts +19 -0
- package/Transcoders/liteTranscoder_UASTC_BC7.js +29 -0
- package/Transcoders/liteTranscoder_UASTC_BC7.js.map +1 -0
- package/Transcoders/liteTranscoder_UASTC_R8_UNORM.d.ts +21 -0
- package/Transcoders/liteTranscoder_UASTC_R8_UNORM.js +36 -0
- package/Transcoders/liteTranscoder_UASTC_R8_UNORM.js.map +1 -0
- package/Transcoders/liteTranscoder_UASTC_RG8_UNORM.d.ts +21 -0
- package/Transcoders/liteTranscoder_UASTC_RG8_UNORM.js +36 -0
- package/Transcoders/liteTranscoder_UASTC_RG8_UNORM.js.map +1 -0
- package/Transcoders/liteTranscoder_UASTC_RGBA_SRGB.d.ts +21 -0
- package/Transcoders/liteTranscoder_UASTC_RGBA_SRGB.js +36 -0
- package/Transcoders/liteTranscoder_UASTC_RGBA_SRGB.js.map +1 -0
- package/Transcoders/liteTranscoder_UASTC_RGBA_UNORM.d.ts +21 -0
- package/Transcoders/liteTranscoder_UASTC_RGBA_UNORM.js +36 -0
- package/Transcoders/liteTranscoder_UASTC_RGBA_UNORM.js.map +1 -0
- package/Transcoders/mscTranscoder.d.ts +32 -0
- package/Transcoders/mscTranscoder.js +128 -0
- package/Transcoders/mscTranscoder.js.map +1 -0
- package/index.d.ts +8 -0
- package/index.js +10 -0
- package/index.js.map +1 -0
- package/ktx2Decoder.d.ts +22 -0
- package/ktx2Decoder.js +144 -0
- package/ktx2Decoder.js.map +1 -0
- package/ktx2FileReader.d.ts +109 -0
- package/ktx2FileReader.js +219 -0
- package/ktx2FileReader.js.map +1 -0
- package/legacy/legacy.d.ts +1 -0
- package/legacy/legacy.js +8 -0
- package/legacy/legacy.js.map +1 -0
- package/license.md +71 -0
- package/package.json +49 -0
- package/readme.md +1 -0
- package/transcodeDecisionTree.d.ts +18 -0
- package/transcodeDecisionTree.js +240 -0
- package/transcodeDecisionTree.js.map +1 -0
- package/transcoder.d.ts +17 -0
- package/transcoder.js +28 -0
- package/transcoder.js.map +1 -0
- package/transcoderManager.d.ts +13 -0
- package/transcoderManager.js +50 -0
- package/transcoderManager.js.map +1 -0
- package/wasm/license.md +361 -0
- package/wasm/msc_basis_transcoder.js +21 -0
- package/wasm/msc_basis_transcoder.wasm +0 -0
- package/wasm/uastc_astc.wasm +0 -0
- package/wasm/uastc_bc7.wasm +0 -0
- package/wasm/uastc_r8_unorm.wasm +0 -0
- package/wasm/uastc_rg8_unorm.wasm +0 -0
- package/wasm/uastc_rgba8_srgb_v2.wasm +0 -0
- package/wasm/uastc_rgba8_unorm_v2.wasm +0 -0
- package/wasmMemoryManager.d.ts +17 -0
- package/wasmMemoryManager.js +63 -0
- package/wasmMemoryManager.js.map +1 -0
- package/zstddec.d.ts +41 -0
- package/zstddec.js +95 -0
- 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":"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","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"]}
|
package/Misc/index.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export * from "./dataReader";
|
package/Misc/index.js
ADDED
@@ -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
|
+
}
|