babylonjs-ktx2decoder 5.0.0-beta.8-snapshot
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.
|
@@ -0,0 +1,574 @@
|
|
|
1
|
+
|
|
2
|
+
declare module "babylonjs-ktx2decoder/index" {
|
|
3
|
+
export * from "babylonjs-ktx2decoder/ktx2Decoder";
|
|
4
|
+
export * from "babylonjs-ktx2decoder/ktx2FileReader";
|
|
5
|
+
export * from "babylonjs-ktx2decoder/transcoder";
|
|
6
|
+
export * from "babylonjs-ktx2decoder/transcoderManager";
|
|
7
|
+
export * from "babylonjs-ktx2decoder/wasmMemoryManager";
|
|
8
|
+
export * from "babylonjs-ktx2decoder/zstddec";
|
|
9
|
+
export * from "babylonjs-ktx2decoder/Misc/index";
|
|
10
|
+
export * from "babylonjs-ktx2decoder/Transcoders/index";
|
|
11
|
+
|
|
12
|
+
}
|
|
13
|
+
declare module "babylonjs-ktx2decoder/ktx2Decoder" {
|
|
14
|
+
/**
|
|
15
|
+
* Resources used for the implementation:
|
|
16
|
+
* - 3js KTX2 loader: https://github.com/mrdoob/three.js/blob/dfb5c23ce126ec845e4aa240599915fef5375797/examples/jsm/loaders/KTX2Loader.js
|
|
17
|
+
* - Universal Texture Transcoders: https://github.com/KhronosGroup/Universal-Texture-Transcoders
|
|
18
|
+
* - KTX2 specification: http://github.khronos.org/KTX-Specification/
|
|
19
|
+
* - KTX2 binaries to convert files: https://github.com/KhronosGroup/KTX-Software/releases
|
|
20
|
+
* - KTX specification: https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.html
|
|
21
|
+
* - KTX-Software: https://github.com/KhronosGroup/KTX-Software
|
|
22
|
+
*/
|
|
23
|
+
export interface IDecodedData {
|
|
24
|
+
width: number;
|
|
25
|
+
height: number;
|
|
26
|
+
transcodedFormat: number;
|
|
27
|
+
mipmaps: Array<IMipmap>;
|
|
28
|
+
isInGammaSpace: boolean;
|
|
29
|
+
hasAlpha: boolean;
|
|
30
|
+
errors?: string;
|
|
31
|
+
transcoderName?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface IMipmap {
|
|
34
|
+
data: Uint8Array | null;
|
|
35
|
+
width: number;
|
|
36
|
+
height: number;
|
|
37
|
+
}
|
|
38
|
+
export interface ICompressedFormatCapabilities {
|
|
39
|
+
astc?: boolean;
|
|
40
|
+
bptc?: boolean;
|
|
41
|
+
s3tc?: boolean;
|
|
42
|
+
pvrtc?: boolean;
|
|
43
|
+
etc2?: boolean;
|
|
44
|
+
etc1?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface IKTX2DecoderOptions {
|
|
47
|
+
/** use RGBA format if ASTC and BC7 are not available as transcoded format */
|
|
48
|
+
useRGBAIfASTCBC7NotAvailableWhenUASTC?: boolean;
|
|
49
|
+
/** force to always use RGBA for transcoded format */
|
|
50
|
+
forceRGBA?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* list of transcoders to bypass when looking for a suitable transcoder. The available transcoders are:
|
|
53
|
+
* UniversalTranscoder_UASTC_ASTC
|
|
54
|
+
* UniversalTranscoder_UASTC_BC7
|
|
55
|
+
* UniversalTranscoder_UASTC_RGBA_UNORM
|
|
56
|
+
* UniversalTranscoder_UASTC_RGBA_SRGB
|
|
57
|
+
* MSCTranscoder
|
|
58
|
+
*/
|
|
59
|
+
bypassTranscoders?: string[];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Class for decoding KTX2 files
|
|
63
|
+
*
|
|
64
|
+
*/
|
|
65
|
+
export declare class KTX2Decoder {
|
|
66
|
+
private _transcoderMgr;
|
|
67
|
+
private _zstdDecoder;
|
|
68
|
+
constructor();
|
|
69
|
+
decode(data: Uint8Array, caps: ICompressedFormatCapabilities, options?: IKTX2DecoderOptions): Promise<IDecodedData | null>;
|
|
70
|
+
private _decodeData;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
}
|
|
74
|
+
declare module "babylonjs-ktx2decoder/ktx2FileReader" {
|
|
75
|
+
import { sourceTextureFormat } from 'babylonjs-ktx2decoder/transcoder';
|
|
76
|
+
/** @hidden */
|
|
77
|
+
export declare enum SupercompressionScheme {
|
|
78
|
+
None = 0,
|
|
79
|
+
BasisLZ = 1,
|
|
80
|
+
ZStandard = 2,
|
|
81
|
+
ZLib = 3
|
|
82
|
+
}
|
|
83
|
+
/** @hidden */
|
|
84
|
+
export interface IKTX2_Header {
|
|
85
|
+
vkFormat: number;
|
|
86
|
+
typeSize: number;
|
|
87
|
+
pixelWidth: number;
|
|
88
|
+
pixelHeight: number;
|
|
89
|
+
pixelDepth: number;
|
|
90
|
+
layerCount: number;
|
|
91
|
+
faceCount: number;
|
|
92
|
+
levelCount: number;
|
|
93
|
+
supercompressionScheme: number;
|
|
94
|
+
dfdByteOffset: number;
|
|
95
|
+
dfdByteLength: number;
|
|
96
|
+
kvdByteOffset: number;
|
|
97
|
+
kvdByteLength: number;
|
|
98
|
+
sgdByteOffset: number;
|
|
99
|
+
sgdByteLength: number;
|
|
100
|
+
}
|
|
101
|
+
/** @hidden */
|
|
102
|
+
export interface IKTX2_Level {
|
|
103
|
+
byteOffset: number;
|
|
104
|
+
byteLength: number;
|
|
105
|
+
uncompressedByteLength: number;
|
|
106
|
+
}
|
|
107
|
+
interface IKTX2_Sample {
|
|
108
|
+
bitOffset: number;
|
|
109
|
+
bitLength: number;
|
|
110
|
+
channelType: number;
|
|
111
|
+
channelFlags: number;
|
|
112
|
+
samplePosition: number[];
|
|
113
|
+
sampleLower: number;
|
|
114
|
+
sampleUpper: number;
|
|
115
|
+
}
|
|
116
|
+
/** @hidden */
|
|
117
|
+
export interface IKTX2_DFD {
|
|
118
|
+
vendorId: number;
|
|
119
|
+
descriptorType: number;
|
|
120
|
+
versionNumber: number;
|
|
121
|
+
descriptorBlockSize: number;
|
|
122
|
+
colorModel: number;
|
|
123
|
+
colorPrimaries: number;
|
|
124
|
+
transferFunction: number;
|
|
125
|
+
flags: number;
|
|
126
|
+
texelBlockDimension: {
|
|
127
|
+
x: number;
|
|
128
|
+
y: number;
|
|
129
|
+
z: number;
|
|
130
|
+
w: number;
|
|
131
|
+
};
|
|
132
|
+
bytesPlane: Array<number>;
|
|
133
|
+
numSamples: number;
|
|
134
|
+
samples: Array<IKTX2_Sample>;
|
|
135
|
+
}
|
|
136
|
+
/** @hidden */
|
|
137
|
+
export interface IKTX2_ImageDesc {
|
|
138
|
+
imageFlags: number;
|
|
139
|
+
rgbSliceByteOffset: number;
|
|
140
|
+
rgbSliceByteLength: number;
|
|
141
|
+
alphaSliceByteOffset: number;
|
|
142
|
+
alphaSliceByteLength: number;
|
|
143
|
+
}
|
|
144
|
+
/** @hidden */
|
|
145
|
+
export interface IKTX2_SupercompressionGlobalData {
|
|
146
|
+
endpointCount?: number;
|
|
147
|
+
selectorCount?: number;
|
|
148
|
+
endpointsByteLength?: number;
|
|
149
|
+
selectorsByteLength?: number;
|
|
150
|
+
tablesByteLength?: number;
|
|
151
|
+
extendedByteLength?: number;
|
|
152
|
+
imageDescs?: Array<IKTX2_ImageDesc>;
|
|
153
|
+
endpointsData?: Uint8Array;
|
|
154
|
+
selectorsData?: Uint8Array;
|
|
155
|
+
tablesData?: Uint8Array;
|
|
156
|
+
extendedData?: Uint8Array;
|
|
157
|
+
}
|
|
158
|
+
export declare class KTX2FileReader {
|
|
159
|
+
private _data;
|
|
160
|
+
private _header;
|
|
161
|
+
private _levels;
|
|
162
|
+
private _dfdBlock;
|
|
163
|
+
private _supercompressionGlobalData;
|
|
164
|
+
/**
|
|
165
|
+
* Will throw an exception if the file can't be parsed
|
|
166
|
+
*/
|
|
167
|
+
constructor(data: Uint8Array);
|
|
168
|
+
get data(): Uint8Array;
|
|
169
|
+
get header(): IKTX2_Header;
|
|
170
|
+
get levels(): Array<IKTX2_Level>;
|
|
171
|
+
get dfdBlock(): IKTX2_DFD;
|
|
172
|
+
get supercompressionGlobalData(): IKTX2_SupercompressionGlobalData;
|
|
173
|
+
isValid(): boolean;
|
|
174
|
+
parse(): void;
|
|
175
|
+
private _getImageCount;
|
|
176
|
+
get textureFormat(): sourceTextureFormat;
|
|
177
|
+
get hasAlpha(): boolean;
|
|
178
|
+
get needZSTDDecoder(): boolean;
|
|
179
|
+
get isInGammaSpace(): boolean;
|
|
180
|
+
static IsValid(data: ArrayBufferView): boolean;
|
|
181
|
+
}
|
|
182
|
+
export {};
|
|
183
|
+
|
|
184
|
+
}
|
|
185
|
+
declare module "babylonjs-ktx2decoder/legacy/legacy" {
|
|
186
|
+
export * from "babylonjs-ktx2decoder/index";
|
|
187
|
+
|
|
188
|
+
}
|
|
189
|
+
declare module "babylonjs-ktx2decoder/Misc/dataReader" {
|
|
190
|
+
/**
|
|
191
|
+
* Utility class for reading from a data buffer
|
|
192
|
+
*/
|
|
193
|
+
export declare class DataReader {
|
|
194
|
+
/**
|
|
195
|
+
* The current byte offset from the beginning of the data buffer.
|
|
196
|
+
*/
|
|
197
|
+
get byteOffset(): number;
|
|
198
|
+
private _dataView;
|
|
199
|
+
private _dataByteOffset;
|
|
200
|
+
/**
|
|
201
|
+
* Constructor
|
|
202
|
+
* @param buffer The buffer to set
|
|
203
|
+
* @param byteOffset The starting offset in the buffer
|
|
204
|
+
* @param byteLength The byte length of the buffer
|
|
205
|
+
*/
|
|
206
|
+
constructor(buffer: ArrayBuffer | ArrayBufferView, byteOffset?: number, byteLength?: number);
|
|
207
|
+
/**
|
|
208
|
+
* Read a unsigned 8-bit integer from the currently loaded data range.
|
|
209
|
+
* @returns The 8-bit integer read
|
|
210
|
+
*/
|
|
211
|
+
readUint8(): number;
|
|
212
|
+
/**
|
|
213
|
+
* Read a signed 8-bit integer from the currently loaded data range.
|
|
214
|
+
* @returns The 8-bit integer read
|
|
215
|
+
*/
|
|
216
|
+
readInt8(): number;
|
|
217
|
+
/**
|
|
218
|
+
* Read a unsigned 16-bit integer from the currently loaded data range.
|
|
219
|
+
* @returns The 16-bit integer read
|
|
220
|
+
*/
|
|
221
|
+
readUint16(): number;
|
|
222
|
+
/**
|
|
223
|
+
* Read a signed 16-bit integer from the currently loaded data range.
|
|
224
|
+
* @returns The 16-bit integer read
|
|
225
|
+
*/
|
|
226
|
+
readInt16(): number;
|
|
227
|
+
/**
|
|
228
|
+
* Read a unsigned 32-bit integer from the currently loaded data range.
|
|
229
|
+
* @returns The 32-bit integer read
|
|
230
|
+
*/
|
|
231
|
+
readUint32(): number;
|
|
232
|
+
/**
|
|
233
|
+
* Read a signed 32-bit integer from the currently loaded data range.
|
|
234
|
+
* @returns The 32-bit integer read
|
|
235
|
+
*/
|
|
236
|
+
readInt32(): number;
|
|
237
|
+
/**
|
|
238
|
+
* Read a unsigned 32-bit integer from the currently loaded data range.
|
|
239
|
+
* @returns The 32-bit integer read
|
|
240
|
+
*/
|
|
241
|
+
readUint64(): number;
|
|
242
|
+
/**
|
|
243
|
+
* Read a byte array from the currently loaded data range.
|
|
244
|
+
* @param byteLength The byte length to read
|
|
245
|
+
* @returns The byte array read
|
|
246
|
+
*/
|
|
247
|
+
readUint8Array(byteLength: number): Uint8Array;
|
|
248
|
+
/**
|
|
249
|
+
* Skips the given byte length the currently loaded data range.
|
|
250
|
+
* @param byteLength The byte length to skip
|
|
251
|
+
* @returns This instance
|
|
252
|
+
*/
|
|
253
|
+
skipBytes(byteLength: number): this;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
}
|
|
257
|
+
declare module "babylonjs-ktx2decoder/Misc/index" {
|
|
258
|
+
export * from "babylonjs-ktx2decoder/Misc/dataReader";
|
|
259
|
+
|
|
260
|
+
}
|
|
261
|
+
declare module "babylonjs-ktx2decoder/transcodeDecisionTree" {
|
|
262
|
+
import { sourceTextureFormat } from 'babylonjs-ktx2decoder/transcoder';
|
|
263
|
+
export declare class TranscodeDecisionTree {
|
|
264
|
+
private static _IsLeafNode;
|
|
265
|
+
private _hasAlpha;
|
|
266
|
+
private _isPowerOfTwo;
|
|
267
|
+
private _caps;
|
|
268
|
+
private _options;
|
|
269
|
+
private _transcodeFormat;
|
|
270
|
+
private _engineFormat;
|
|
271
|
+
private _roundToMultiple4;
|
|
272
|
+
get transcodeFormat(): number;
|
|
273
|
+
get engineFormat(): number;
|
|
274
|
+
get roundToMultiple4(): boolean;
|
|
275
|
+
constructor(textureFormat: sourceTextureFormat, hasAlpha: boolean, isPowerOfTwo: boolean, caps: any, options?: any);
|
|
276
|
+
private _parseNode;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
}
|
|
280
|
+
declare module "babylonjs-ktx2decoder/transcoder" {
|
|
281
|
+
import { WASMMemoryManager } from 'babylonjs-ktx2decoder/wasmMemoryManager';
|
|
282
|
+
import { KTX2FileReader, IKTX2_ImageDesc } from 'babylonjs-ktx2decoder/ktx2FileReader';
|
|
283
|
+
/**
|
|
284
|
+
* @hidden
|
|
285
|
+
*/
|
|
286
|
+
export declare enum sourceTextureFormat {
|
|
287
|
+
ETC1S = 0,
|
|
288
|
+
UASTC4x4 = 1
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* @hidden
|
|
292
|
+
*/
|
|
293
|
+
export declare enum transcodeTarget {
|
|
294
|
+
ASTC_4x4_RGBA = 0,
|
|
295
|
+
BC7_RGBA = 1,
|
|
296
|
+
BC3_RGBA = 2,
|
|
297
|
+
BC1_RGB = 3,
|
|
298
|
+
PVRTC1_4_RGBA = 4,
|
|
299
|
+
PVRTC1_4_RGB = 5,
|
|
300
|
+
ETC2_RGBA = 6,
|
|
301
|
+
ETC1_RGB = 7,
|
|
302
|
+
RGBA32 = 8
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* @hidden
|
|
306
|
+
*/
|
|
307
|
+
export declare class Transcoder {
|
|
308
|
+
static CanTranscode(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean): boolean;
|
|
309
|
+
static Name: string;
|
|
310
|
+
getName(): string;
|
|
311
|
+
initialize(): void;
|
|
312
|
+
needMemoryManager(): boolean;
|
|
313
|
+
setMemoryManager(memoryMgr: WASMMemoryManager): void;
|
|
314
|
+
transcode(src: sourceTextureFormat, dst: transcodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
}
|
|
318
|
+
declare module "babylonjs-ktx2decoder/transcoderManager" {
|
|
319
|
+
import { transcodeTarget, sourceTextureFormat, Transcoder } from 'babylonjs-ktx2decoder/transcoder';
|
|
320
|
+
/**
|
|
321
|
+
* @hidden
|
|
322
|
+
*/
|
|
323
|
+
export declare class TranscoderManager {
|
|
324
|
+
static _Transcoders: Array<typeof Transcoder>;
|
|
325
|
+
static RegisterTranscoder(transcoder: typeof Transcoder): void;
|
|
326
|
+
private static _transcoderInstances;
|
|
327
|
+
private _wasmMemoryManager;
|
|
328
|
+
findTranscoder(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean, bypass?: string[]): Transcoder | null;
|
|
329
|
+
private _getExistingTranscoder;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
}
|
|
333
|
+
declare module "babylonjs-ktx2decoder/Transcoders/index" {
|
|
334
|
+
export * from "babylonjs-ktx2decoder/Transcoders/liteTranscoder";
|
|
335
|
+
export * from "babylonjs-ktx2decoder/Transcoders/liteTranscoder_UASTC_ASTC";
|
|
336
|
+
export * from "babylonjs-ktx2decoder/Transcoders/liteTranscoder_UASTC_BC7";
|
|
337
|
+
export * from "babylonjs-ktx2decoder/Transcoders/liteTranscoder_UASTC_RGBA_UNORM";
|
|
338
|
+
export * from "babylonjs-ktx2decoder/Transcoders/liteTranscoder_UASTC_RGBA_SRGB";
|
|
339
|
+
export * from "babylonjs-ktx2decoder/Transcoders/mscTranscoder";
|
|
340
|
+
|
|
341
|
+
}
|
|
342
|
+
declare module "babylonjs-ktx2decoder/Transcoders/liteTranscoder_UASTC_ASTC" {
|
|
343
|
+
import { sourceTextureFormat, transcodeTarget } from 'babylonjs-ktx2decoder/transcoder';
|
|
344
|
+
import { LiteTranscoder } from 'babylonjs-ktx2decoder/Transcoders/liteTranscoder';
|
|
345
|
+
/**
|
|
346
|
+
* @hidden
|
|
347
|
+
*/
|
|
348
|
+
export declare class LiteTranscoder_UASTC_ASTC extends LiteTranscoder {
|
|
349
|
+
/**
|
|
350
|
+
* URL to use when loading the wasm module for the transcoder
|
|
351
|
+
*/
|
|
352
|
+
static WasmModuleURL: string;
|
|
353
|
+
static CanTranscode(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean): boolean;
|
|
354
|
+
static Name: string;
|
|
355
|
+
getName(): string;
|
|
356
|
+
initialize(): void;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
}
|
|
360
|
+
declare module "babylonjs-ktx2decoder/Transcoders/liteTranscoder_UASTC_BC7" {
|
|
361
|
+
import { sourceTextureFormat, transcodeTarget } from 'babylonjs-ktx2decoder/transcoder';
|
|
362
|
+
import { LiteTranscoder } from 'babylonjs-ktx2decoder/Transcoders/liteTranscoder';
|
|
363
|
+
/**
|
|
364
|
+
* @hidden
|
|
365
|
+
*/
|
|
366
|
+
export declare class LiteTranscoder_UASTC_BC7 extends LiteTranscoder {
|
|
367
|
+
/**
|
|
368
|
+
* URL to use when loading the wasm module for the transcoder
|
|
369
|
+
*/
|
|
370
|
+
static WasmModuleURL: string;
|
|
371
|
+
static CanTranscode(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean): boolean;
|
|
372
|
+
static Name: string;
|
|
373
|
+
getName(): string;
|
|
374
|
+
initialize(): void;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
}
|
|
378
|
+
declare module "babylonjs-ktx2decoder/Transcoders/liteTranscoder_UASTC_RGBA_SRGB" {
|
|
379
|
+
import { sourceTextureFormat, transcodeTarget } from 'babylonjs-ktx2decoder/transcoder';
|
|
380
|
+
import { LiteTranscoder } from 'babylonjs-ktx2decoder/Transcoders/liteTranscoder';
|
|
381
|
+
import { KTX2FileReader, IKTX2_ImageDesc } from 'babylonjs-ktx2decoder/ktx2FileReader';
|
|
382
|
+
/**
|
|
383
|
+
* @hidden
|
|
384
|
+
*/
|
|
385
|
+
export declare class LiteTranscoder_UASTC_RGBA_SRGB extends LiteTranscoder {
|
|
386
|
+
/**
|
|
387
|
+
* URL to use when loading the wasm module for the transcoder (srgb)
|
|
388
|
+
*/
|
|
389
|
+
static WasmModuleURL: string;
|
|
390
|
+
static CanTranscode(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean): boolean;
|
|
391
|
+
static Name: string;
|
|
392
|
+
getName(): string;
|
|
393
|
+
initialize(): void;
|
|
394
|
+
transcode(src: sourceTextureFormat, dst: transcodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
}
|
|
398
|
+
declare module "babylonjs-ktx2decoder/Transcoders/liteTranscoder_UASTC_RGBA_UNORM" {
|
|
399
|
+
import { sourceTextureFormat, transcodeTarget } from 'babylonjs-ktx2decoder/transcoder';
|
|
400
|
+
import { LiteTranscoder } from 'babylonjs-ktx2decoder/Transcoders/liteTranscoder';
|
|
401
|
+
import { KTX2FileReader, IKTX2_ImageDesc } from 'babylonjs-ktx2decoder/ktx2FileReader';
|
|
402
|
+
/**
|
|
403
|
+
* @hidden
|
|
404
|
+
*/
|
|
405
|
+
export declare class LiteTranscoder_UASTC_RGBA_UNORM extends LiteTranscoder {
|
|
406
|
+
/**
|
|
407
|
+
* URL to use when loading the wasm module for the transcoder (unorm)
|
|
408
|
+
*/
|
|
409
|
+
static WasmModuleURL: string;
|
|
410
|
+
static CanTranscode(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean): boolean;
|
|
411
|
+
static Name: string;
|
|
412
|
+
getName(): string;
|
|
413
|
+
initialize(): void;
|
|
414
|
+
transcode(src: sourceTextureFormat, dst: transcodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
}
|
|
418
|
+
declare module "babylonjs-ktx2decoder/Transcoders/liteTranscoder" {
|
|
419
|
+
import { Transcoder, sourceTextureFormat, transcodeTarget } from 'babylonjs-ktx2decoder/transcoder';
|
|
420
|
+
import { WASMMemoryManager } from 'babylonjs-ktx2decoder/wasmMemoryManager';
|
|
421
|
+
import { KTX2FileReader, IKTX2_ImageDesc } from 'babylonjs-ktx2decoder/ktx2FileReader';
|
|
422
|
+
/**
|
|
423
|
+
* @hidden
|
|
424
|
+
*/
|
|
425
|
+
export declare class LiteTranscoder extends Transcoder {
|
|
426
|
+
private _modulePath;
|
|
427
|
+
private _modulePromise;
|
|
428
|
+
private _memoryManager;
|
|
429
|
+
protected _transcodeInPlace: boolean;
|
|
430
|
+
protected _loadModule(): Promise<{
|
|
431
|
+
module: any;
|
|
432
|
+
}>;
|
|
433
|
+
protected get memoryManager(): WASMMemoryManager;
|
|
434
|
+
protected setModulePath(modulePath: string): void;
|
|
435
|
+
initialize(): void;
|
|
436
|
+
needMemoryManager(): boolean;
|
|
437
|
+
setMemoryManager(memoryMgr: WASMMemoryManager): void;
|
|
438
|
+
transcode(src: sourceTextureFormat, dst: transcodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
|
|
439
|
+
protected _prepareTranscoding(width: number, height: number, uncompressedByteLength: number, encodedData: Uint8Array, forceRGBA?: boolean): [Uint8Array, Uint8Array | null, number];
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
}
|
|
443
|
+
declare module "babylonjs-ktx2decoder/Transcoders/mscTranscoder" {
|
|
444
|
+
import { Transcoder, sourceTextureFormat, transcodeTarget } from 'babylonjs-ktx2decoder/transcoder';
|
|
445
|
+
import { KTX2FileReader, IKTX2_ImageDesc } from 'babylonjs-ktx2decoder/ktx2FileReader';
|
|
446
|
+
/**
|
|
447
|
+
* @hidden
|
|
448
|
+
*/
|
|
449
|
+
export declare class MSCTranscoder extends Transcoder {
|
|
450
|
+
/**
|
|
451
|
+
* URL to use when loading the MSC transcoder
|
|
452
|
+
*/
|
|
453
|
+
static JSModuleURL: string;
|
|
454
|
+
/**
|
|
455
|
+
* URL to use when loading the wasm module for the transcoder
|
|
456
|
+
*/
|
|
457
|
+
static WasmModuleURL: string;
|
|
458
|
+
static UseFromWorkerThread: boolean;
|
|
459
|
+
static Name: string;
|
|
460
|
+
getName(): string;
|
|
461
|
+
private _mscBasisTranscoderPromise;
|
|
462
|
+
private _mscBasisModule;
|
|
463
|
+
private _getMSCBasisTranscoder;
|
|
464
|
+
static CanTranscode(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean): boolean;
|
|
465
|
+
transcode(src: sourceTextureFormat, dst: transcodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
}
|
|
469
|
+
declare module "babylonjs-ktx2decoder/wasmMemoryManager" {
|
|
470
|
+
/**
|
|
471
|
+
* @hidden
|
|
472
|
+
*/
|
|
473
|
+
export declare class WASMMemoryManager {
|
|
474
|
+
static LoadBinariesFromCurrentThread: boolean;
|
|
475
|
+
static InitialMemoryPages: number;
|
|
476
|
+
private static _RequestId;
|
|
477
|
+
static LoadWASM(path: string): Promise<ArrayBuffer>;
|
|
478
|
+
private _memory;
|
|
479
|
+
private _numPages;
|
|
480
|
+
private _memoryView;
|
|
481
|
+
private _memoryViewByteLength;
|
|
482
|
+
private _memoryViewOffset;
|
|
483
|
+
constructor(initialMemoryPages?: number);
|
|
484
|
+
get wasmMemory(): WebAssembly.Memory;
|
|
485
|
+
getMemoryView(numPages: number, offset?: number, byteLength?: number): Uint8Array;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
}
|
|
489
|
+
declare module "babylonjs-ktx2decoder/zstddec" {
|
|
490
|
+
/**
|
|
491
|
+
* ZSTD (Zstandard) decoder.
|
|
492
|
+
*/
|
|
493
|
+
export declare class ZSTDDecoder {
|
|
494
|
+
static WasmModuleURL: string;
|
|
495
|
+
init(): Promise<void>;
|
|
496
|
+
_init(result: WebAssembly.WebAssemblyInstantiatedSource): void;
|
|
497
|
+
decode(array: Uint8Array, uncompressedSize?: number): Uint8Array;
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* BSD License
|
|
501
|
+
*
|
|
502
|
+
* For Zstandard software
|
|
503
|
+
*
|
|
504
|
+
* Copyright (c) 2016-present, Yann Collet, Facebook, Inc. All rights reserved.
|
|
505
|
+
*
|
|
506
|
+
* Redistribution and use in source and binary forms, with or without modification,
|
|
507
|
+
* are permitted provided that the following conditions are met:
|
|
508
|
+
*
|
|
509
|
+
* * Redistributions of source code must retain the above copyright notice, this
|
|
510
|
+
* list of conditions and the following disclaimer.
|
|
511
|
+
*
|
|
512
|
+
* * Redistributions in binary form must reproduce the above copyright notice,
|
|
513
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
514
|
+
* and/or other materials provided with the distribution.
|
|
515
|
+
*
|
|
516
|
+
* * Neither the name Facebook nor the names of its contributors may be used to
|
|
517
|
+
* endorse or promote products derived from this software without specific
|
|
518
|
+
* prior written permission.
|
|
519
|
+
*
|
|
520
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
521
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
522
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
523
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
524
|
+
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
525
|
+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
526
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
527
|
+
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
528
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
529
|
+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
530
|
+
*/
|
|
531
|
+
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
declare module "babylonjs-ktx2decoder" {
|
|
535
|
+
export * from "babylonjs-ktx2decoder/legacy/legacy";
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
declare module KTX2DECODER {
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
/**
|
|
542
|
* Resources used for the implementation:
|
|
1
543
|
* - 3js KTX2 loader: https://github.com/mrdoob/three.js/blob/dfb5c23ce126ec845e4aa240599915fef5375797/examples/jsm/loaders/KTX2Loader.js
|
|
2
544
|
* - Universal Texture Transcoders: https://github.com/KhronosGroup/Universal-Texture-Transcoders
|
|
3
545
|
* - KTX2 specification: http://github.khronos.org/KTX-Specification/
|
|
4
546
|
* - KTX2 binaries to convert files: https://github.com/KhronosGroup/KTX-Software/releases
|
|
5
547
|
* - KTX specification: https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.html
|
|
6
548
|
* - KTX-Software: https://github.com/KhronosGroup/KTX-Software
|
|
7
549
|
*/
|
|
8
550
|
export interface IDecodedData {
|
|
9
551
|
width: number;
|
|
10
552
|
height: number;
|
|
11
553
|
transcodedFormat: number;
|
|
12
554
|
mipmaps: Array<IMipmap>;
|
|
13
555
|
isInGammaSpace: boolean;
|
|
14
556
|
hasAlpha: boolean;
|
|
15
557
|
errors?: string;
|
|
16
558
|
transcoderName?: string;
|
|
17
559
|
}
|
|
18
560
|
export interface IMipmap {
|
|
19
561
|
data: Uint8Array | null;
|
|
20
562
|
width: number;
|
|
21
563
|
height: number;
|
|
22
564
|
}
|
|
23
565
|
export interface ICompressedFormatCapabilities {
|
|
24
566
|
astc?: boolean;
|
|
25
567
|
bptc?: boolean;
|
|
26
568
|
s3tc?: boolean;
|
|
27
569
|
pvrtc?: boolean;
|
|
28
570
|
etc2?: boolean;
|
|
29
571
|
etc1?: boolean;
|
|
30
572
|
}
|
|
31
573
|
export interface IKTX2DecoderOptions {
|
|
32
574
|
/** use RGBA format if ASTC and BC7 are not available as transcoded format */
|
|
33
575
|
useRGBAIfASTCBC7NotAvailableWhenUASTC?: boolean;
|
|
34
576
|
/** force to always use RGBA for transcoded format */
|
|
35
577
|
forceRGBA?: boolean;
|
|
36
578
|
/**
|
|
37
579
|
* list of transcoders to bypass when looking for a suitable transcoder. The available transcoders are:
|
|
38
580
|
* UniversalTranscoder_UASTC_ASTC
|
|
39
581
|
* UniversalTranscoder_UASTC_BC7
|
|
40
582
|
* UniversalTranscoder_UASTC_RGBA_UNORM
|
|
41
583
|
* UniversalTranscoder_UASTC_RGBA_SRGB
|
|
42
584
|
* MSCTranscoder
|
|
43
585
|
*/
|
|
44
586
|
bypassTranscoders?: string[];
|
|
45
587
|
}
|
|
46
588
|
/**
|
|
47
589
|
* Class for decoding KTX2 files
|
|
48
590
|
*
|
|
49
591
|
*/
|
|
50
592
|
export class KTX2Decoder {
|
|
51
593
|
private _transcoderMgr;
|
|
52
594
|
private _zstdDecoder;
|
|
53
595
|
constructor();
|
|
54
596
|
decode(data: Uint8Array, caps: ICompressedFormatCapabilities, options?: IKTX2DecoderOptions): Promise<IDecodedData | null>;
|
|
55
597
|
private _decodeData;
|
|
56
598
|
}
|
|
599
|
+
|
|
600
|
+
/** @hidden */
|
|
57
601
|
export enum SupercompressionScheme {
|
|
58
602
|
None = 0,
|
|
59
603
|
BasisLZ = 1,
|
|
60
604
|
ZStandard = 2,
|
|
61
605
|
ZLib = 3
|
|
62
606
|
}
|
|
63
607
|
/** @hidden */
|
|
64
608
|
export interface IKTX2_Header {
|
|
65
609
|
vkFormat: number;
|
|
66
610
|
typeSize: number;
|
|
67
611
|
pixelWidth: number;
|
|
68
612
|
pixelHeight: number;
|
|
69
613
|
pixelDepth: number;
|
|
70
614
|
layerCount: number;
|
|
71
615
|
faceCount: number;
|
|
72
616
|
levelCount: number;
|
|
73
617
|
supercompressionScheme: number;
|
|
74
618
|
dfdByteOffset: number;
|
|
75
619
|
dfdByteLength: number;
|
|
76
620
|
kvdByteOffset: number;
|
|
77
621
|
kvdByteLength: number;
|
|
78
622
|
sgdByteOffset: number;
|
|
79
623
|
sgdByteLength: number;
|
|
80
624
|
}
|
|
81
625
|
/** @hidden */
|
|
82
626
|
export interface IKTX2_Level {
|
|
83
627
|
byteOffset: number;
|
|
84
628
|
byteLength: number;
|
|
85
629
|
uncompressedByteLength: number;
|
|
86
630
|
}
|
|
87
631
|
interface IKTX2_Sample {
|
|
88
632
|
bitOffset: number;
|
|
89
633
|
bitLength: number;
|
|
90
634
|
channelType: number;
|
|
91
635
|
channelFlags: number;
|
|
92
636
|
samplePosition: number[];
|
|
93
637
|
sampleLower: number;
|
|
94
638
|
sampleUpper: number;
|
|
95
639
|
}
|
|
96
640
|
/** @hidden */
|
|
97
641
|
export interface IKTX2_DFD {
|
|
98
642
|
vendorId: number;
|
|
99
643
|
descriptorType: number;
|
|
100
644
|
versionNumber: number;
|
|
101
645
|
descriptorBlockSize: number;
|
|
102
646
|
colorModel: number;
|
|
103
647
|
colorPrimaries: number;
|
|
104
648
|
transferFunction: number;
|
|
105
649
|
flags: number;
|
|
106
650
|
texelBlockDimension: {
|
|
107
651
|
x: number;
|
|
108
652
|
y: number;
|
|
109
653
|
z: number;
|
|
110
654
|
w: number;
|
|
111
655
|
};
|
|
112
656
|
bytesPlane: Array<number>;
|
|
113
657
|
numSamples: number;
|
|
114
658
|
samples: Array<IKTX2_Sample>;
|
|
115
659
|
}
|
|
116
660
|
/** @hidden */
|
|
117
661
|
export interface IKTX2_ImageDesc {
|
|
118
662
|
imageFlags: number;
|
|
119
663
|
rgbSliceByteOffset: number;
|
|
120
664
|
rgbSliceByteLength: number;
|
|
121
665
|
alphaSliceByteOffset: number;
|
|
122
666
|
alphaSliceByteLength: number;
|
|
123
667
|
}
|
|
124
668
|
/** @hidden */
|
|
125
669
|
export interface IKTX2_SupercompressionGlobalData {
|
|
126
670
|
endpointCount?: number;
|
|
127
671
|
selectorCount?: number;
|
|
128
672
|
endpointsByteLength?: number;
|
|
129
673
|
selectorsByteLength?: number;
|
|
130
674
|
tablesByteLength?: number;
|
|
131
675
|
extendedByteLength?: number;
|
|
132
676
|
imageDescs?: Array<IKTX2_ImageDesc>;
|
|
133
677
|
endpointsData?: Uint8Array;
|
|
134
678
|
selectorsData?: Uint8Array;
|
|
135
679
|
tablesData?: Uint8Array;
|
|
136
680
|
extendedData?: Uint8Array;
|
|
137
681
|
}
|
|
138
682
|
export class KTX2FileReader {
|
|
139
683
|
private _data;
|
|
140
684
|
private _header;
|
|
141
685
|
private _levels;
|
|
142
686
|
private _dfdBlock;
|
|
143
687
|
private _supercompressionGlobalData;
|
|
144
688
|
/**
|
|
145
689
|
* Will throw an exception if the file can't be parsed
|
|
146
690
|
*/
|
|
147
691
|
constructor(data: Uint8Array);
|
|
148
692
|
get data(): Uint8Array;
|
|
149
693
|
get header(): IKTX2_Header;
|
|
150
694
|
get levels(): Array<IKTX2_Level>;
|
|
151
695
|
get dfdBlock(): IKTX2_DFD;
|
|
152
696
|
get supercompressionGlobalData(): IKTX2_SupercompressionGlobalData;
|
|
153
697
|
isValid(): boolean;
|
|
154
698
|
parse(): void;
|
|
155
699
|
private _getImageCount;
|
|
156
700
|
get textureFormat(): sourceTextureFormat;
|
|
157
701
|
get hasAlpha(): boolean;
|
|
158
702
|
get needZSTDDecoder(): boolean;
|
|
159
703
|
get isInGammaSpace(): boolean;
|
|
160
704
|
static IsValid(data: ArrayBufferView): boolean;
|
|
161
705
|
}
|
|
706
|
+
|
|
707
|
+
/**
|
|
162
708
|
* Utility class for reading from a data buffer
|
|
163
709
|
*/
|
|
164
710
|
export class DataReader {
|
|
165
711
|
/**
|
|
166
712
|
* The current byte offset from the beginning of the data buffer.
|
|
167
713
|
*/
|
|
168
714
|
get byteOffset(): number;
|
|
169
715
|
private _dataView;
|
|
170
716
|
private _dataByteOffset;
|
|
171
717
|
/**
|
|
172
718
|
* Constructor
|
|
173
719
|
* @param buffer The buffer to set
|
|
174
720
|
* @param byteOffset The starting offset in the buffer
|
|
175
721
|
* @param byteLength The byte length of the buffer
|
|
176
722
|
*/
|
|
177
723
|
constructor(buffer: ArrayBuffer | ArrayBufferView, byteOffset?: number, byteLength?: number);
|
|
178
724
|
/**
|
|
179
725
|
* Read a unsigned 8-bit integer from the currently loaded data range.
|
|
180
726
|
* @returns The 8-bit integer read
|
|
181
727
|
*/
|
|
182
728
|
readUint8(): number;
|
|
183
729
|
/**
|
|
184
730
|
* Read a signed 8-bit integer from the currently loaded data range.
|
|
185
731
|
* @returns The 8-bit integer read
|
|
186
732
|
*/
|
|
187
733
|
readInt8(): number;
|
|
188
734
|
/**
|
|
189
735
|
* Read a unsigned 16-bit integer from the currently loaded data range.
|
|
190
736
|
* @returns The 16-bit integer read
|
|
191
737
|
*/
|
|
192
738
|
readUint16(): number;
|
|
193
739
|
/**
|
|
194
740
|
* Read a signed 16-bit integer from the currently loaded data range.
|
|
195
741
|
* @returns The 16-bit integer read
|
|
196
742
|
*/
|
|
197
743
|
readInt16(): number;
|
|
198
744
|
/**
|
|
199
745
|
* Read a unsigned 32-bit integer from the currently loaded data range.
|
|
200
746
|
* @returns The 32-bit integer read
|
|
201
747
|
*/
|
|
202
748
|
readUint32(): number;
|
|
203
749
|
/**
|
|
204
750
|
* Read a signed 32-bit integer from the currently loaded data range.
|
|
205
751
|
* @returns The 32-bit integer read
|
|
206
752
|
*/
|
|
207
753
|
readInt32(): number;
|
|
208
754
|
/**
|
|
209
755
|
* Read a unsigned 32-bit integer from the currently loaded data range.
|
|
210
756
|
* @returns The 32-bit integer read
|
|
211
757
|
*/
|
|
212
758
|
readUint64(): number;
|
|
213
759
|
/**
|
|
214
760
|
* Read a byte array from the currently loaded data range.
|
|
215
761
|
* @param byteLength The byte length to read
|
|
216
762
|
* @returns The byte array read
|
|
217
763
|
*/
|
|
218
764
|
readUint8Array(byteLength: number): Uint8Array;
|
|
219
765
|
/**
|
|
220
766
|
* Skips the given byte length the currently loaded data range.
|
|
221
767
|
* @param byteLength The byte length to skip
|
|
222
768
|
* @returns This instance
|
|
223
769
|
*/
|
|
224
770
|
skipBytes(byteLength: number): this;
|
|
225
771
|
}
|
|
772
|
+
|
|
773
|
+
|
|
774
|
+
|
|
775
|
+
export class TranscodeDecisionTree {
|
|
226
776
|
private static _IsLeafNode;
|
|
227
777
|
private _hasAlpha;
|
|
228
778
|
private _isPowerOfTwo;
|
|
229
779
|
private _caps;
|
|
230
780
|
private _options;
|
|
231
781
|
private _transcodeFormat;
|
|
232
782
|
private _engineFormat;
|
|
233
783
|
private _roundToMultiple4;
|
|
234
784
|
get transcodeFormat(): number;
|
|
235
785
|
get engineFormat(): number;
|
|
236
786
|
get roundToMultiple4(): boolean;
|
|
237
787
|
constructor(textureFormat: sourceTextureFormat, hasAlpha: boolean, isPowerOfTwo: boolean, caps: any, options?: any);
|
|
238
788
|
private _parseNode;
|
|
239
789
|
}
|
|
790
|
+
|
|
791
|
+
/**
|
|
240
792
|
* @hidden
|
|
241
793
|
*/
|
|
242
794
|
export enum sourceTextureFormat {
|
|
243
795
|
ETC1S = 0,
|
|
244
796
|
UASTC4x4 = 1
|
|
245
797
|
}
|
|
246
798
|
/**
|
|
247
799
|
* @hidden
|
|
248
800
|
*/
|
|
249
801
|
export enum transcodeTarget {
|
|
250
802
|
ASTC_4x4_RGBA = 0,
|
|
251
803
|
BC7_RGBA = 1,
|
|
252
804
|
BC3_RGBA = 2,
|
|
253
805
|
BC1_RGB = 3,
|
|
254
806
|
PVRTC1_4_RGBA = 4,
|
|
255
807
|
PVRTC1_4_RGB = 5,
|
|
256
808
|
ETC2_RGBA = 6,
|
|
257
809
|
ETC1_RGB = 7,
|
|
258
810
|
RGBA32 = 8
|
|
259
811
|
}
|
|
260
812
|
/**
|
|
261
813
|
* @hidden
|
|
262
814
|
*/
|
|
263
815
|
export class Transcoder {
|
|
264
816
|
static CanTranscode(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean): boolean;
|
|
265
817
|
static Name: string;
|
|
266
818
|
getName(): string;
|
|
267
819
|
initialize(): void;
|
|
268
820
|
needMemoryManager(): boolean;
|
|
269
821
|
setMemoryManager(memoryMgr: WASMMemoryManager): void;
|
|
270
822
|
transcode(src: sourceTextureFormat, dst: transcodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
|
|
271
823
|
}
|
|
824
|
+
|
|
825
|
+
/**
|
|
272
826
|
* @hidden
|
|
273
827
|
*/
|
|
274
828
|
export class TranscoderManager {
|
|
275
829
|
static _Transcoders: Array<typeof Transcoder>;
|
|
276
830
|
static RegisterTranscoder(transcoder: typeof Transcoder): void;
|
|
277
831
|
private static _transcoderInstances;
|
|
278
832
|
private _wasmMemoryManager;
|
|
279
833
|
findTranscoder(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean, bypass?: string[]): Transcoder | null;
|
|
280
834
|
private _getExistingTranscoder;
|
|
281
835
|
}
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
|
|
839
|
+
/**
|
|
282
840
|
* @hidden
|
|
283
841
|
*/
|
|
284
842
|
export class LiteTranscoder_UASTC_ASTC extends LiteTranscoder {
|
|
285
843
|
/**
|
|
286
844
|
* URL to use when loading the wasm module for the transcoder
|
|
287
845
|
*/
|
|
288
846
|
static WasmModuleURL: string;
|
|
289
847
|
static CanTranscode(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean): boolean;
|
|
290
848
|
static Name: string;
|
|
291
849
|
getName(): string;
|
|
292
850
|
initialize(): void;
|
|
293
851
|
}
|
|
852
|
+
|
|
853
|
+
/**
|
|
294
854
|
* @hidden
|
|
295
855
|
*/
|
|
296
856
|
export class LiteTranscoder_UASTC_BC7 extends LiteTranscoder {
|
|
297
857
|
/**
|
|
298
858
|
* URL to use when loading the wasm module for the transcoder
|
|
299
859
|
*/
|
|
300
860
|
static WasmModuleURL: string;
|
|
301
861
|
static CanTranscode(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean): boolean;
|
|
302
862
|
static Name: string;
|
|
303
863
|
getName(): string;
|
|
304
864
|
initialize(): void;
|
|
305
865
|
}
|
|
866
|
+
|
|
867
|
+
/**
|
|
306
868
|
* @hidden
|
|
307
869
|
*/
|
|
308
870
|
export class LiteTranscoder_UASTC_RGBA_SRGB extends LiteTranscoder {
|
|
309
871
|
/**
|
|
310
872
|
* URL to use when loading the wasm module for the transcoder (srgb)
|
|
311
873
|
*/
|
|
312
874
|
static WasmModuleURL: string;
|
|
313
875
|
static CanTranscode(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean): boolean;
|
|
314
876
|
static Name: string;
|
|
315
877
|
getName(): string;
|
|
316
878
|
initialize(): void;
|
|
317
879
|
transcode(src: sourceTextureFormat, dst: transcodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
|
|
318
880
|
}
|
|
881
|
+
|
|
882
|
+
/**
|
|
319
883
|
* @hidden
|
|
320
884
|
*/
|
|
321
885
|
export class LiteTranscoder_UASTC_RGBA_UNORM extends LiteTranscoder {
|
|
322
886
|
/**
|
|
323
887
|
* URL to use when loading the wasm module for the transcoder (unorm)
|
|
324
888
|
*/
|
|
325
889
|
static WasmModuleURL: string;
|
|
326
890
|
static CanTranscode(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean): boolean;
|
|
327
891
|
static Name: string;
|
|
328
892
|
getName(): string;
|
|
329
893
|
initialize(): void;
|
|
330
894
|
transcode(src: sourceTextureFormat, dst: transcodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
|
|
331
895
|
}
|
|
896
|
+
|
|
897
|
+
/**
|
|
332
898
|
* @hidden
|
|
333
899
|
*/
|
|
334
900
|
export class LiteTranscoder extends Transcoder {
|
|
335
901
|
private _modulePath;
|
|
336
902
|
private _modulePromise;
|
|
337
903
|
private _memoryManager;
|
|
338
904
|
protected _transcodeInPlace: boolean;
|
|
339
905
|
protected _loadModule(): Promise<{
|
|
340
906
|
module: any;
|
|
341
907
|
}>;
|
|
342
908
|
protected get memoryManager(): WASMMemoryManager;
|
|
343
909
|
protected setModulePath(modulePath: string): void;
|
|
344
910
|
initialize(): void;
|
|
345
911
|
needMemoryManager(): boolean;
|
|
346
912
|
setMemoryManager(memoryMgr: WASMMemoryManager): void;
|
|
347
913
|
transcode(src: sourceTextureFormat, dst: transcodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
|
|
348
914
|
protected _prepareTranscoding(width: number, height: number, uncompressedByteLength: number, encodedData: Uint8Array, forceRGBA?: boolean): [Uint8Array, Uint8Array | null, number];
|
|
349
915
|
}
|
|
916
|
+
|
|
917
|
+
/**
|
|
350
918
|
* @hidden
|
|
351
919
|
*/
|
|
352
920
|
export class MSCTranscoder extends Transcoder {
|
|
353
921
|
/**
|
|
354
922
|
* URL to use when loading the MSC transcoder
|
|
355
923
|
*/
|
|
356
924
|
static JSModuleURL: string;
|
|
357
925
|
/**
|
|
358
926
|
* URL to use when loading the wasm module for the transcoder
|
|
359
927
|
*/
|
|
360
928
|
static WasmModuleURL: string;
|
|
361
929
|
static UseFromWorkerThread: boolean;
|
|
362
930
|
static Name: string;
|
|
363
931
|
getName(): string;
|
|
364
932
|
private _mscBasisTranscoderPromise;
|
|
365
933
|
private _mscBasisModule;
|
|
366
934
|
private _getMSCBasisTranscoder;
|
|
367
935
|
static CanTranscode(src: sourceTextureFormat, dst: transcodeTarget, isInGammaSpace: boolean): boolean;
|
|
368
936
|
transcode(src: sourceTextureFormat, dst: transcodeTarget, level: number, width: number, height: number, uncompressedByteLength: number, ktx2Reader: KTX2FileReader, imageDesc: IKTX2_ImageDesc | null, encodedData: Uint8Array): Promise<Uint8Array | null>;
|
|
369
937
|
}
|
|
938
|
+
|
|
939
|
+
/**
|
|
370
940
|
* @hidden
|
|
371
941
|
*/
|
|
372
942
|
export class WASMMemoryManager {
|
|
373
943
|
static LoadBinariesFromCurrentThread: boolean;
|
|
374
944
|
static InitialMemoryPages: number;
|
|
375
945
|
private static _RequestId;
|
|
376
946
|
static LoadWASM(path: string): Promise<ArrayBuffer>;
|
|
377
947
|
private _memory;
|
|
378
948
|
private _numPages;
|
|
379
949
|
private _memoryView;
|
|
380
950
|
private _memoryViewByteLength;
|
|
381
951
|
private _memoryViewOffset;
|
|
382
952
|
constructor(initialMemoryPages?: number);
|
|
383
953
|
get wasmMemory(): WebAssembly.Memory;
|
|
384
954
|
getMemoryView(numPages: number, offset?: number, byteLength?: number): Uint8Array;
|
|
385
955
|
}
|
|
956
|
+
|
|
957
|
+
/**
|
|
386
958
|
* ZSTD (Zstandard) decoder.
|
|
387
959
|
*/
|
|
388
960
|
export class ZSTDDecoder {
|
|
389
961
|
static WasmModuleURL: string;
|
|
390
962
|
init(): Promise<void>;
|
|
391
963
|
_init(result: WebAssembly.WebAssemblyInstantiatedSource): void;
|
|
392
964
|
decode(array: Uint8Array, uncompressedSize?: number): Uint8Array;
|
|
393
965
|
}
|
|
394
966
|
/**
|
|
395
967
|
* BSD License
|
|
396
968
|
*
|
|
397
969
|
* For Zstandard software
|
|
398
970
|
*
|
|
399
971
|
* Copyright (c) 2016-present, Yann Collet, Facebook, Inc. All rights reserved.
|
|
400
972
|
*
|
|
401
973
|
* Redistribution and use in source and binary forms, with or without modification,
|
|
402
974
|
* are permitted provided that the following conditions are met:
|
|
403
975
|
*
|
|
404
976
|
* * Redistributions of source code must retain the above copyright notice, this
|
|
405
977
|
* list of conditions and the following disclaimer.
|
|
406
978
|
*
|
|
407
979
|
* * Redistributions in binary form must reproduce the above copyright notice,
|
|
408
980
|
* this list of conditions and the following disclaimer in the documentation
|
|
409
981
|
* and/or other materials provided with the distribution.
|
|
410
982
|
*
|
|
411
983
|
* * Neither the name Facebook nor the names of its contributors may be used to
|
|
412
984
|
* endorse or promote products derived from this software without specific
|
|
413
985
|
* prior written permission.
|
|
414
986
|
*
|
|
415
987
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
416
988
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
417
989
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
418
990
|
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
419
991
|
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
420
992
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
421
993
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
422
994
|
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
423
995
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
424
996
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
425
997
|
*/
|
|
998
|
+
|
|
999
|
+
|
|
1000
|
+
}
|