This commit is contained in:
Akko
2025-08-04 18:57:35 +02:00
parent 8cf6e78a79
commit 9495868c2e
5030 changed files with 518594 additions and 17609 deletions

View File

@@ -0,0 +1,2 @@
import type { FormatDetectionParser } from '../../assets/detections/types';
export declare const detectBasis: FormatDetectionParser;

View File

@@ -0,0 +1,25 @@
'use strict';
var Extensions = require('../../extensions/Extensions.js');
var isWebGLSupported = require('../../utils/browser/isWebGLSupported.js');
var isWebGPUSupported = require('../../utils/browser/isWebGPUSupported.js');
"use strict";
const detectBasis = {
extension: {
type: Extensions.ExtensionType.DetectionParser,
priority: 3
},
test: async () => {
if (await isWebGPUSupported.isWebGPUSupported())
return true;
if (isWebGLSupported.isWebGLSupported())
return true;
return false;
},
add: async (formats) => [...formats, "basis"],
remove: async (formats) => formats.filter((f) => f !== "basis")
};
exports.detectBasis = detectBasis;
//# sourceMappingURL=detectBasis.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"detectBasis.js","sources":["../../../src/compressed-textures/basis/detectBasis.ts"],"sourcesContent":["import { ExtensionType } from '../../extensions/Extensions';\nimport { isWebGLSupported } from '../../utils/browser/isWebGLSupported';\nimport { isWebGPUSupported } from '../../utils/browser/isWebGPUSupported';\n\nimport type { FormatDetectionParser } from '../../assets/detections/types';\n\nexport const detectBasis = {\n extension: {\n type: ExtensionType.DetectionParser,\n priority: 3,\n },\n test: async (): Promise<boolean> =>\n {\n if (await isWebGPUSupported()) return true;\n if (isWebGLSupported()) return true;\n\n return false;\n },\n add: async (formats) => [...formats, 'basis'],\n remove: async (formats) => formats.filter((f) => f !== 'basis'),\n} as FormatDetectionParser;\n"],"names":["ExtensionType","isWebGPUSupported","isWebGLSupported"],"mappings":";;;;;;;AAMO,MAAM,WAAc,GAAA;AAAA,EACvB,SAAW,EAAA;AAAA,IACP,MAAMA,wBAAc,CAAA,eAAA;AAAA,IACpB,QAAU,EAAA,CAAA;AAAA,GACd;AAAA,EACA,MAAM,YACN;AACI,IAAA,IAAI,MAAMC,mCAAkB,EAAA;AAAG,MAAO,OAAA,IAAA,CAAA;AACtC,IAAA,IAAIC,iCAAiB,EAAA;AAAG,MAAO,OAAA,IAAA,CAAA;AAE/B,IAAO,OAAA,KAAA,CAAA;AAAA,GACX;AAAA,EACA,KAAK,OAAO,OAAA,KAAY,CAAC,GAAG,SAAS,OAAO,CAAA;AAAA,EAC5C,MAAA,EAAQ,OAAO,OAAY,KAAA,OAAA,CAAQ,OAAO,CAAC,CAAA,KAAM,MAAM,OAAO,CAAA;AAClE;;;;"}

View File

@@ -0,0 +1,23 @@
import { ExtensionType } from '../../extensions/Extensions.mjs';
import { isWebGLSupported } from '../../utils/browser/isWebGLSupported.mjs';
import { isWebGPUSupported } from '../../utils/browser/isWebGPUSupported.mjs';
"use strict";
const detectBasis = {
extension: {
type: ExtensionType.DetectionParser,
priority: 3
},
test: async () => {
if (await isWebGPUSupported())
return true;
if (isWebGLSupported())
return true;
return false;
},
add: async (formats) => [...formats, "basis"],
remove: async (formats) => formats.filter((f) => f !== "basis")
};
export { detectBasis };
//# sourceMappingURL=detectBasis.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"detectBasis.mjs","sources":["../../../src/compressed-textures/basis/detectBasis.ts"],"sourcesContent":["import { ExtensionType } from '../../extensions/Extensions';\nimport { isWebGLSupported } from '../../utils/browser/isWebGLSupported';\nimport { isWebGPUSupported } from '../../utils/browser/isWebGPUSupported';\n\nimport type { FormatDetectionParser } from '../../assets/detections/types';\n\nexport const detectBasis = {\n extension: {\n type: ExtensionType.DetectionParser,\n priority: 3,\n },\n test: async (): Promise<boolean> =>\n {\n if (await isWebGPUSupported()) return true;\n if (isWebGLSupported()) return true;\n\n return false;\n },\n add: async (formats) => [...formats, 'basis'],\n remove: async (formats) => formats.filter((f) => f !== 'basis'),\n} as FormatDetectionParser;\n"],"names":[],"mappings":";;;;;AAMO,MAAM,WAAc,GAAA;AAAA,EACvB,SAAW,EAAA;AAAA,IACP,MAAM,aAAc,CAAA,eAAA;AAAA,IACpB,QAAU,EAAA,CAAA;AAAA,GACd;AAAA,EACA,MAAM,YACN;AACI,IAAA,IAAI,MAAM,iBAAkB,EAAA;AAAG,MAAO,OAAA,IAAA,CAAA;AACtC,IAAA,IAAI,gBAAiB,EAAA;AAAG,MAAO,OAAA,IAAA,CAAA;AAE/B,IAAO,OAAA,KAAA,CAAA;AAAA,GACX;AAAA,EACA,KAAK,OAAO,OAAA,KAAY,CAAC,GAAG,SAAS,OAAO,CAAA;AAAA,EAC5C,MAAA,EAAQ,OAAO,OAAY,KAAA,OAAA,CAAQ,OAAO,CAAC,CAAA,KAAM,MAAM,OAAO,CAAA;AAClE;;;;"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,9 @@
'use strict';
var Extensions = require('../../extensions/Extensions.js');
var detectBasis = require('./detectBasis.js');
var loadBasis = require('./loadBasis.js');
"use strict";
Extensions.extensions.add(loadBasis.loadBasis, detectBasis.detectBasis);
//# sourceMappingURL=init.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"init.js","sources":["../../../src/compressed-textures/basis/init.ts"],"sourcesContent":["import { extensions } from '../../extensions/Extensions';\nimport { detectBasis } from './detectBasis';\nimport { loadBasis } from './loadBasis';\n\nextensions.add(loadBasis, detectBasis);\n\n"],"names":["extensions","loadBasis","detectBasis"],"mappings":";;;;;;;AAIAA,qBAAW,CAAA,GAAA,CAAIC,qBAAWC,uBAAW,CAAA;;"}

View File

@@ -0,0 +1,7 @@
import { extensions } from '../../extensions/Extensions.mjs';
import { detectBasis } from './detectBasis.mjs';
import { loadBasis } from './loadBasis.mjs';
"use strict";
extensions.add(loadBasis, detectBasis);
//# sourceMappingURL=init.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"init.mjs","sources":["../../../src/compressed-textures/basis/init.ts"],"sourcesContent":["import { extensions } from '../../extensions/Extensions';\nimport { detectBasis } from './detectBasis';\nimport { loadBasis } from './loadBasis';\n\nextensions.add(loadBasis, detectBasis);\n\n"],"names":[],"mappings":";;;;;AAIA,UAAW,CAAA,GAAA,CAAI,WAAW,WAAW,CAAA"}

View File

@@ -0,0 +1,17 @@
import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser';
import { ExtensionType } from '../../extensions/Extensions';
import type { Loader } from '../../assets/loader/Loader';
import type { ResolvedAsset } from '../../assets/types';
import type { Texture } from '../../rendering/renderers/shared/texture/Texture';
/** Loads KTX textures! */
export declare const loadBasis: {
extension: {
type: ExtensionType.LoadParser;
priority: LoaderParserPriority;
name: string;
};
name: string;
test(url: string): boolean;
load<T>(url: string, _asset: ResolvedAsset, loader: Loader): Promise<Texture | Texture[]>;
unload(texture: Texture | Texture[]): void;
};

View File

@@ -0,0 +1,38 @@
'use strict';
var LoaderParser = require('../../assets/loader/parsers/LoaderParser.js');
var createTexture = require('../../assets/loader/parsers/textures/utils/createTexture.js');
var checkExtension = require('../../assets/utils/checkExtension.js');
var Extensions = require('../../extensions/Extensions.js');
var CompressedSource = require('../../rendering/renderers/shared/texture/sources/CompressedSource.js');
var getSupportedTextureFormats = require('../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats.js');
var loadBasisOnWorker = require('./worker/loadBasisOnWorker.js');
"use strict";
const loadBasis = {
extension: {
type: Extensions.ExtensionType.LoadParser,
priority: LoaderParser.LoaderParserPriority.High,
name: "loadBasis"
},
name: "loadBasis",
test(url) {
return checkExtension.checkExtension(url, [".basis"]);
},
async load(url, _asset, loader) {
const supportedTextures = await getSupportedTextureFormats.getSupportedTextureFormats();
const textureOptions = await loadBasisOnWorker.loadBasisOnWorker(url, supportedTextures);
const compressedTextureSource = new CompressedSource.CompressedSource(textureOptions);
return createTexture.createTexture(compressedTextureSource, loader, url);
},
unload(texture) {
if (Array.isArray(texture)) {
texture.forEach((t) => t.destroy(true));
} else {
texture.destroy(true);
}
}
};
exports.loadBasis = loadBasis;
//# sourceMappingURL=loadBasis.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"loadBasis.js","sources":["../../../src/compressed-textures/basis/loadBasis.ts"],"sourcesContent":["import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser';\nimport { createTexture } from '../../assets/loader/parsers/textures/utils/createTexture';\nimport { checkExtension } from '../../assets/utils/checkExtension';\nimport { ExtensionType } from '../../extensions/Extensions';\nimport { CompressedSource } from '../../rendering/renderers/shared/texture/sources/CompressedSource';\nimport { getSupportedTextureFormats } from '../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats';\nimport { loadBasisOnWorker } from './worker/loadBasisOnWorker';\n\nimport type { Loader } from '../../assets/loader/Loader';\nimport type { LoaderParser } from '../../assets/loader/parsers/LoaderParser';\nimport type { ResolvedAsset } from '../../assets/types';\nimport type { TextureSourceOptions } from '../../rendering/renderers/shared/texture/sources/TextureSource';\nimport type { Texture } from '../../rendering/renderers/shared/texture/Texture';\n\n/** Loads KTX textures! */\nexport const loadBasis = {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.High,\n name: 'loadBasis',\n },\n\n name: 'loadBasis',\n\n test(url: string): boolean\n {\n return checkExtension(url, ['.basis']);\n },\n\n async load(url: string, _asset: ResolvedAsset, loader: Loader): Promise<Texture | Texture[]>\n {\n const supportedTextures = await getSupportedTextureFormats();\n\n const textureOptions = await loadBasisOnWorker(url, supportedTextures);\n\n const compressedTextureSource = new CompressedSource(textureOptions);\n\n return createTexture(compressedTextureSource, loader, url);\n },\n\n unload(texture: Texture | Texture[]): void\n {\n if (Array.isArray(texture))\n {\n texture.forEach((t) => t.destroy(true));\n }\n else\n {\n texture.destroy(true);\n }\n }\n\n} satisfies LoaderParser<Texture | Texture[], TextureSourceOptions>;\n"],"names":["ExtensionType","LoaderParserPriority","checkExtension","getSupportedTextureFormats","loadBasisOnWorker","CompressedSource","createTexture"],"mappings":";;;;;;;;;;;AAeO,MAAM,SAAY,GAAA;AAAA,EACrB,SAAW,EAAA;AAAA,IACP,MAAMA,wBAAc,CAAA,UAAA;AAAA,IACpB,UAAUC,iCAAqB,CAAA,IAAA;AAAA,IAC/B,IAAM,EAAA,WAAA;AAAA,GACV;AAAA,EAEA,IAAM,EAAA,WAAA;AAAA,EAEN,KAAK,GACL,EAAA;AACI,IAAA,OAAOC,6BAAe,CAAA,GAAA,EAAK,CAAC,QAAQ,CAAC,CAAA,CAAA;AAAA,GACzC;AAAA,EAEA,MAAM,IAAA,CAAK,GAAa,EAAA,MAAA,EAAuB,MAC/C,EAAA;AACI,IAAM,MAAA,iBAAA,GAAoB,MAAMC,qDAA2B,EAAA,CAAA;AAE3D,IAAA,MAAM,cAAiB,GAAA,MAAMC,mCAAkB,CAAA,GAAA,EAAK,iBAAiB,CAAA,CAAA;AAErE,IAAM,MAAA,uBAAA,GAA0B,IAAIC,iCAAA,CAAiB,cAAc,CAAA,CAAA;AAEnE,IAAO,OAAAC,2BAAA,CAAc,uBAAyB,EAAA,MAAA,EAAQ,GAAG,CAAA,CAAA;AAAA,GAC7D;AAAA,EAEA,OAAO,OACP,EAAA;AACI,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,OAAO,CACzB,EAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,CAAC,CAAA,KAAM,CAAE,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA;AAAA,KAG1C,MAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,KACxB;AAAA,GACJ;AAEJ;;;;"}

View File

@@ -0,0 +1,36 @@
import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser.mjs';
import { createTexture } from '../../assets/loader/parsers/textures/utils/createTexture.mjs';
import { checkExtension } from '../../assets/utils/checkExtension.mjs';
import { ExtensionType } from '../../extensions/Extensions.mjs';
import { CompressedSource } from '../../rendering/renderers/shared/texture/sources/CompressedSource.mjs';
import { getSupportedTextureFormats } from '../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats.mjs';
import { loadBasisOnWorker } from './worker/loadBasisOnWorker.mjs';
"use strict";
const loadBasis = {
extension: {
type: ExtensionType.LoadParser,
priority: LoaderParserPriority.High,
name: "loadBasis"
},
name: "loadBasis",
test(url) {
return checkExtension(url, [".basis"]);
},
async load(url, _asset, loader) {
const supportedTextures = await getSupportedTextureFormats();
const textureOptions = await loadBasisOnWorker(url, supportedTextures);
const compressedTextureSource = new CompressedSource(textureOptions);
return createTexture(compressedTextureSource, loader, url);
},
unload(texture) {
if (Array.isArray(texture)) {
texture.forEach((t) => t.destroy(true));
} else {
texture.destroy(true);
}
}
};
export { loadBasis };
//# sourceMappingURL=loadBasis.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"loadBasis.mjs","sources":["../../../src/compressed-textures/basis/loadBasis.ts"],"sourcesContent":["import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser';\nimport { createTexture } from '../../assets/loader/parsers/textures/utils/createTexture';\nimport { checkExtension } from '../../assets/utils/checkExtension';\nimport { ExtensionType } from '../../extensions/Extensions';\nimport { CompressedSource } from '../../rendering/renderers/shared/texture/sources/CompressedSource';\nimport { getSupportedTextureFormats } from '../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats';\nimport { loadBasisOnWorker } from './worker/loadBasisOnWorker';\n\nimport type { Loader } from '../../assets/loader/Loader';\nimport type { LoaderParser } from '../../assets/loader/parsers/LoaderParser';\nimport type { ResolvedAsset } from '../../assets/types';\nimport type { TextureSourceOptions } from '../../rendering/renderers/shared/texture/sources/TextureSource';\nimport type { Texture } from '../../rendering/renderers/shared/texture/Texture';\n\n/** Loads KTX textures! */\nexport const loadBasis = {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.High,\n name: 'loadBasis',\n },\n\n name: 'loadBasis',\n\n test(url: string): boolean\n {\n return checkExtension(url, ['.basis']);\n },\n\n async load(url: string, _asset: ResolvedAsset, loader: Loader): Promise<Texture | Texture[]>\n {\n const supportedTextures = await getSupportedTextureFormats();\n\n const textureOptions = await loadBasisOnWorker(url, supportedTextures);\n\n const compressedTextureSource = new CompressedSource(textureOptions);\n\n return createTexture(compressedTextureSource, loader, url);\n },\n\n unload(texture: Texture | Texture[]): void\n {\n if (Array.isArray(texture))\n {\n texture.forEach((t) => t.destroy(true));\n }\n else\n {\n texture.destroy(true);\n }\n }\n\n} satisfies LoaderParser<Texture | Texture[], TextureSourceOptions>;\n"],"names":[],"mappings":";;;;;;;;;AAeO,MAAM,SAAY,GAAA;AAAA,EACrB,SAAW,EAAA;AAAA,IACP,MAAM,aAAc,CAAA,UAAA;AAAA,IACpB,UAAU,oBAAqB,CAAA,IAAA;AAAA,IAC/B,IAAM,EAAA,WAAA;AAAA,GACV;AAAA,EAEA,IAAM,EAAA,WAAA;AAAA,EAEN,KAAK,GACL,EAAA;AACI,IAAA,OAAO,cAAe,CAAA,GAAA,EAAK,CAAC,QAAQ,CAAC,CAAA,CAAA;AAAA,GACzC;AAAA,EAEA,MAAM,IAAA,CAAK,GAAa,EAAA,MAAA,EAAuB,MAC/C,EAAA;AACI,IAAM,MAAA,iBAAA,GAAoB,MAAM,0BAA2B,EAAA,CAAA;AAE3D,IAAA,MAAM,cAAiB,GAAA,MAAM,iBAAkB,CAAA,GAAA,EAAK,iBAAiB,CAAA,CAAA;AAErE,IAAM,MAAA,uBAAA,GAA0B,IAAI,gBAAA,CAAiB,cAAc,CAAA,CAAA;AAEnE,IAAO,OAAA,aAAA,CAAc,uBAAyB,EAAA,MAAA,EAAQ,GAAG,CAAA,CAAA;AAAA,GAC7D;AAAA,EAEA,OAAO,OACP,EAAA;AACI,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,OAAO,CACzB,EAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,CAAC,CAAA,KAAM,CAAE,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA;AAAA,KAG1C,MAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,KACxB;AAAA,GACJ;AAEJ;;;;"}

View File

@@ -0,0 +1,19 @@
export type BASISModuleCreator = (config: {
locateFile: (file: string) => string;
}) => {
then: (result: (libktx: BASISModule) => void) => void;
};
export type BasisTextureConstructor = new (data: Uint8Array) => BasisTexture;
export interface BASISModule {
initializeBasis(): void;
BasisFile: BasisTextureConstructor;
}
export interface BasisTexture {
getNumImages(): number;
getNumLevels(imageIndex: number): number;
startTranscoding(): boolean;
getImageWidth(imageIndex: number, levelIndex: number): number;
getImageHeight(imageIndex: number, levelIndex: number): number;
getImageTranscodedSizeInBytes(imageIndex: number, levelIndex: number, format: number): number;
transcodeImage(buffer: Uint8Array, imageIndex: number, levelIndex: number, format: number, unused: number, getAlphaForOpaqueFormats: number): boolean;
}

View File

@@ -0,0 +1,4 @@
'use strict';
"use strict";
//# sourceMappingURL=types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}

View File

@@ -0,0 +1,2 @@
"use strict";
//# sourceMappingURL=types.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@@ -0,0 +1,2 @@
import type { BasisTexture } from '../types';
export declare function createLevelBuffers(basisTexture: BasisTexture, basisTranscoderFormat: number): Uint8Array[];

View File

@@ -0,0 +1,27 @@
'use strict';
"use strict";
function createLevelBuffers(basisTexture, basisTranscoderFormat) {
const images = basisTexture.getNumImages();
const levels = basisTexture.getNumLevels(0);
const success = basisTexture.startTranscoding();
if (!success) {
throw new Error("startTranscoding failed");
}
const levelBuffers = [];
for (let levelIndex = 0; levelIndex < levels; ++levelIndex) {
for (let sliceIndex = 0; sliceIndex < images; ++sliceIndex) {
const transcodeSize = basisTexture.getImageTranscodedSizeInBytes(sliceIndex, levelIndex, basisTranscoderFormat);
const levelBuffer = new Uint8Array(transcodeSize);
const success2 = basisTexture.transcodeImage(levelBuffer, sliceIndex, levelIndex, basisTranscoderFormat, 1, 0);
if (!success2) {
throw new Error("transcodeImage failed");
}
levelBuffers.push(levelBuffer);
}
}
return levelBuffers;
}
exports.createLevelBuffers = createLevelBuffers;
//# sourceMappingURL=createLevelBuffers.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"createLevelBuffers.js","sources":["../../../../src/compressed-textures/basis/utils/createLevelBuffers.ts"],"sourcesContent":["import type { BasisTexture } from '../types';\n\nexport function createLevelBuffers(basisTexture: BasisTexture, basisTranscoderFormat: number): Uint8Array[]\n{\n const images = basisTexture.getNumImages();\n const levels = basisTexture.getNumLevels(0);\n\n const success = basisTexture.startTranscoding();\n\n if (!success)\n {\n throw new Error('startTranscoding failed');\n }\n\n const levelBuffers = [];\n\n for (let levelIndex = 0; levelIndex < levels; ++levelIndex)\n {\n for (let sliceIndex = 0; sliceIndex < images; ++sliceIndex)\n {\n const transcodeSize = basisTexture.getImageTranscodedSizeInBytes(sliceIndex, levelIndex, basisTranscoderFormat);\n const levelBuffer = new Uint8Array(transcodeSize);\n\n const success = basisTexture.transcodeImage(levelBuffer, sliceIndex, levelIndex, basisTranscoderFormat, 1, 0);\n\n if (!success)\n {\n throw new Error('transcodeImage failed');\n }\n\n levelBuffers.push(levelBuffer);\n }\n }\n\n return levelBuffers;\n}\n"],"names":["success"],"mappings":";;;AAEgB,SAAA,kBAAA,CAAmB,cAA4B,qBAC/D,EAAA;AACI,EAAM,MAAA,MAAA,GAAS,aAAa,YAAa,EAAA,CAAA;AACzC,EAAM,MAAA,MAAA,GAAS,YAAa,CAAA,YAAA,CAAa,CAAC,CAAA,CAAA;AAE1C,EAAM,MAAA,OAAA,GAAU,aAAa,gBAAiB,EAAA,CAAA;AAE9C,EAAA,IAAI,CAAC,OACL,EAAA;AACI,IAAM,MAAA,IAAI,MAAM,yBAAyB,CAAA,CAAA;AAAA,GAC7C;AAEA,EAAA,MAAM,eAAe,EAAC,CAAA;AAEtB,EAAA,KAAA,IAAS,UAAa,GAAA,CAAA,EAAG,UAAa,GAAA,MAAA,EAAQ,EAAE,UAChD,EAAA;AACI,IAAA,KAAA,IAAS,UAAa,GAAA,CAAA,EAAG,UAAa,GAAA,MAAA,EAAQ,EAAE,UAChD,EAAA;AACI,MAAA,MAAM,aAAgB,GAAA,YAAA,CAAa,6BAA8B,CAAA,UAAA,EAAY,YAAY,qBAAqB,CAAA,CAAA;AAC9G,MAAM,MAAA,WAAA,GAAc,IAAI,UAAA,CAAW,aAAa,CAAA,CAAA;AAEhD,MAAMA,MAAAA,QAAAA,GAAU,aAAa,cAAe,CAAA,WAAA,EAAa,YAAY,UAAY,EAAA,qBAAA,EAAuB,GAAG,CAAC,CAAA,CAAA;AAE5G,MAAA,IAAI,CAACA,QACL,EAAA;AACI,QAAM,MAAA,IAAI,MAAM,uBAAuB,CAAA,CAAA;AAAA,OAC3C;AAEA,MAAA,YAAA,CAAa,KAAK,WAAW,CAAA,CAAA;AAAA,KACjC;AAAA,GACJ;AAEA,EAAO,OAAA,YAAA,CAAA;AACX;;;;"}

View File

@@ -0,0 +1,25 @@
"use strict";
function createLevelBuffers(basisTexture, basisTranscoderFormat) {
const images = basisTexture.getNumImages();
const levels = basisTexture.getNumLevels(0);
const success = basisTexture.startTranscoding();
if (!success) {
throw new Error("startTranscoding failed");
}
const levelBuffers = [];
for (let levelIndex = 0; levelIndex < levels; ++levelIndex) {
for (let sliceIndex = 0; sliceIndex < images; ++sliceIndex) {
const transcodeSize = basisTexture.getImageTranscodedSizeInBytes(sliceIndex, levelIndex, basisTranscoderFormat);
const levelBuffer = new Uint8Array(transcodeSize);
const success2 = basisTexture.transcodeImage(levelBuffer, sliceIndex, levelIndex, basisTranscoderFormat, 1, 0);
if (!success2) {
throw new Error("transcodeImage failed");
}
levelBuffers.push(levelBuffer);
}
}
return levelBuffers;
}
export { createLevelBuffers };
//# sourceMappingURL=createLevelBuffers.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"createLevelBuffers.mjs","sources":["../../../../src/compressed-textures/basis/utils/createLevelBuffers.ts"],"sourcesContent":["import type { BasisTexture } from '../types';\n\nexport function createLevelBuffers(basisTexture: BasisTexture, basisTranscoderFormat: number): Uint8Array[]\n{\n const images = basisTexture.getNumImages();\n const levels = basisTexture.getNumLevels(0);\n\n const success = basisTexture.startTranscoding();\n\n if (!success)\n {\n throw new Error('startTranscoding failed');\n }\n\n const levelBuffers = [];\n\n for (let levelIndex = 0; levelIndex < levels; ++levelIndex)\n {\n for (let sliceIndex = 0; sliceIndex < images; ++sliceIndex)\n {\n const transcodeSize = basisTexture.getImageTranscodedSizeInBytes(sliceIndex, levelIndex, basisTranscoderFormat);\n const levelBuffer = new Uint8Array(transcodeSize);\n\n const success = basisTexture.transcodeImage(levelBuffer, sliceIndex, levelIndex, basisTranscoderFormat, 1, 0);\n\n if (!success)\n {\n throw new Error('transcodeImage failed');\n }\n\n levelBuffers.push(levelBuffer);\n }\n }\n\n return levelBuffers;\n}\n"],"names":["success"],"mappings":";AAEgB,SAAA,kBAAA,CAAmB,cAA4B,qBAC/D,EAAA;AACI,EAAM,MAAA,MAAA,GAAS,aAAa,YAAa,EAAA,CAAA;AACzC,EAAM,MAAA,MAAA,GAAS,YAAa,CAAA,YAAA,CAAa,CAAC,CAAA,CAAA;AAE1C,EAAM,MAAA,OAAA,GAAU,aAAa,gBAAiB,EAAA,CAAA;AAE9C,EAAA,IAAI,CAAC,OACL,EAAA;AACI,IAAM,MAAA,IAAI,MAAM,yBAAyB,CAAA,CAAA;AAAA,GAC7C;AAEA,EAAA,MAAM,eAAe,EAAC,CAAA;AAEtB,EAAA,KAAA,IAAS,UAAa,GAAA,CAAA,EAAG,UAAa,GAAA,MAAA,EAAQ,EAAE,UAChD,EAAA;AACI,IAAA,KAAA,IAAS,UAAa,GAAA,CAAA,EAAG,UAAa,GAAA,MAAA,EAAQ,EAAE,UAChD,EAAA;AACI,MAAA,MAAM,aAAgB,GAAA,YAAA,CAAa,6BAA8B,CAAA,UAAA,EAAY,YAAY,qBAAqB,CAAA,CAAA;AAC9G,MAAM,MAAA,WAAA,GAAc,IAAI,UAAA,CAAW,aAAa,CAAA,CAAA;AAEhD,MAAMA,MAAAA,QAAAA,GAAU,aAAa,cAAe,CAAA,WAAA,EAAa,YAAY,UAAY,EAAA,qBAAA,EAAuB,GAAG,CAAC,CAAA,CAAA;AAE5G,MAAA,IAAI,CAACA,QACL,EAAA;AACI,QAAM,MAAA,IAAI,MAAM,uBAAuB,CAAA,CAAA;AAAA,OAC3C;AAEA,MAAA,YAAA,CAAa,KAAK,WAAW,CAAA,CAAA;AAAA,KACjC;AAAA,GACJ;AAEA,EAAO,OAAA,YAAA,CAAA;AACX;;;;"}

View File

@@ -0,0 +1 @@
export declare function gpuFormatToBasisTranscoderFormat(transcoderFormat: string): number;

View File

@@ -0,0 +1,28 @@
'use strict';
"use strict";
const gpuFormatToBasisTranscoderFormatMap = {
"bc3-rgba-unorm": 3,
// cTFBC3_RGBA
"bc7-rgba-unorm": 6,
// cTFBC7_RGBA,
"etc2-rgba8unorm": 1,
// cTFETC2_RGBA,
"astc-4x4-unorm": 10,
// cTFASTC_4x4_RGBA,
// Uncompressed
rgba8unorm: 13,
// cTFRGBA32,
rgba4unorm: 16
// cTFRGBA4444,
};
function gpuFormatToBasisTranscoderFormat(transcoderFormat) {
const format = gpuFormatToBasisTranscoderFormatMap[transcoderFormat];
if (format) {
return format;
}
throw new Error(`Unsupported transcoderFormat: ${transcoderFormat}`);
}
exports.gpuFormatToBasisTranscoderFormat = gpuFormatToBasisTranscoderFormat;
//# sourceMappingURL=gpuFormatToBasisTranscoderFormat.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"gpuFormatToBasisTranscoderFormat.js","sources":["../../../../src/compressed-textures/basis/utils/gpuFormatToBasisTranscoderFormat.ts"],"sourcesContent":["const gpuFormatToBasisTranscoderFormatMap: Record<string, number> = {\n 'bc3-rgba-unorm': 3, // cTFBC3_RGBA\n 'bc7-rgba-unorm': 6, // cTFBC7_RGBA,\n 'etc2-rgba8unorm': 1, // cTFETC2_RGBA,\n 'astc-4x4-unorm': 10, // cTFASTC_4x4_RGBA,\n // Uncompressed\n rgba8unorm: 13, // cTFRGBA32,\n rgba4unorm: 16, // cTFRGBA4444,\n};\n\nexport function gpuFormatToBasisTranscoderFormat(transcoderFormat: string): number\n{\n const format = gpuFormatToBasisTranscoderFormatMap[transcoderFormat];\n\n if (format)\n {\n return format;\n }\n\n throw new Error(`Unsupported transcoderFormat: ${transcoderFormat}`);\n}\n"],"names":[],"mappings":";;;AAAA,MAAM,mCAA8D,GAAA;AAAA,EAChE,gBAAkB,EAAA,CAAA;AAAA;AAAA,EAClB,gBAAkB,EAAA,CAAA;AAAA;AAAA,EAClB,iBAAmB,EAAA,CAAA;AAAA;AAAA,EACnB,gBAAkB,EAAA,EAAA;AAAA;AAAA;AAAA,EAElB,UAAY,EAAA,EAAA;AAAA;AAAA,EACZ,UAAY,EAAA,EAAA;AAAA;AAChB,CAAA,CAAA;AAEO,SAAS,iCAAiC,gBACjD,EAAA;AACI,EAAM,MAAA,MAAA,GAAS,oCAAoC,gBAAgB,CAAA,CAAA;AAEnE,EAAA,IAAI,MACJ,EAAA;AACI,IAAO,OAAA,MAAA,CAAA;AAAA,GACX;AAEA,EAAA,MAAM,IAAI,KAAA,CAAM,CAAiC,8BAAA,EAAA,gBAAgB,CAAE,CAAA,CAAA,CAAA;AACvE;;;;"}

View File

@@ -0,0 +1,26 @@
"use strict";
const gpuFormatToBasisTranscoderFormatMap = {
"bc3-rgba-unorm": 3,
// cTFBC3_RGBA
"bc7-rgba-unorm": 6,
// cTFBC7_RGBA,
"etc2-rgba8unorm": 1,
// cTFETC2_RGBA,
"astc-4x4-unorm": 10,
// cTFASTC_4x4_RGBA,
// Uncompressed
rgba8unorm: 13,
// cTFRGBA32,
rgba4unorm: 16
// cTFRGBA4444,
};
function gpuFormatToBasisTranscoderFormat(transcoderFormat) {
const format = gpuFormatToBasisTranscoderFormatMap[transcoderFormat];
if (format) {
return format;
}
throw new Error(`Unsupported transcoderFormat: ${transcoderFormat}`);
}
export { gpuFormatToBasisTranscoderFormat };
//# sourceMappingURL=gpuFormatToBasisTranscoderFormat.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"gpuFormatToBasisTranscoderFormat.mjs","sources":["../../../../src/compressed-textures/basis/utils/gpuFormatToBasisTranscoderFormat.ts"],"sourcesContent":["const gpuFormatToBasisTranscoderFormatMap: Record<string, number> = {\n 'bc3-rgba-unorm': 3, // cTFBC3_RGBA\n 'bc7-rgba-unorm': 6, // cTFBC7_RGBA,\n 'etc2-rgba8unorm': 1, // cTFETC2_RGBA,\n 'astc-4x4-unorm': 10, // cTFASTC_4x4_RGBA,\n // Uncompressed\n rgba8unorm: 13, // cTFRGBA32,\n rgba4unorm: 16, // cTFRGBA4444,\n};\n\nexport function gpuFormatToBasisTranscoderFormat(transcoderFormat: string): number\n{\n const format = gpuFormatToBasisTranscoderFormatMap[transcoderFormat];\n\n if (format)\n {\n return format;\n }\n\n throw new Error(`Unsupported transcoderFormat: ${transcoderFormat}`);\n}\n"],"names":[],"mappings":";AAAA,MAAM,mCAA8D,GAAA;AAAA,EAChE,gBAAkB,EAAA,CAAA;AAAA;AAAA,EAClB,gBAAkB,EAAA,CAAA;AAAA;AAAA,EAClB,iBAAmB,EAAA,CAAA;AAAA;AAAA,EACnB,gBAAkB,EAAA,EAAA;AAAA;AAAA;AAAA,EAElB,UAAY,EAAA,EAAA;AAAA;AAAA,EACZ,UAAY,EAAA,EAAA;AAAA;AAChB,CAAA,CAAA;AAEO,SAAS,iCAAiC,gBACjD,EAAA;AACI,EAAM,MAAA,MAAA,GAAS,oCAAoC,gBAAgB,CAAA,CAAA;AAEnE,EAAA,IAAI,MACJ,EAAA;AACI,IAAO,OAAA,MAAA,CAAA;AAAA,GACX;AAEA,EAAA,MAAM,IAAI,KAAA,CAAM,CAAiC,8BAAA,EAAA,gBAAgB,CAAE,CAAA,CAAA,CAAA;AACvE;;;;"}

View File

@@ -0,0 +1,5 @@
export declare const basisTranscoderUrls: {
jsUrl: string;
wasmUrl: string;
};
export declare function setBasisTranscoderPath(config: Partial<typeof basisTranscoderUrls>): void;

View File

@@ -0,0 +1,14 @@
'use strict';
"use strict";
const basisTranscoderUrls = {
jsUrl: "https://files.pixijs.download/transcoders/basis/basis_transcoder.js",
wasmUrl: "https://files.pixijs.download/transcoders/basis/basis_transcoder.wasm"
};
function setBasisTranscoderPath(config) {
Object.assign(basisTranscoderUrls, config);
}
exports.basisTranscoderUrls = basisTranscoderUrls;
exports.setBasisTranscoderPath = setBasisTranscoderPath;
//# sourceMappingURL=setBasisTranscoderPath.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"setBasisTranscoderPath.js","sources":["../../../../src/compressed-textures/basis/utils/setBasisTranscoderPath.ts"],"sourcesContent":["export const basisTranscoderUrls = {\n jsUrl: 'https://files.pixijs.download/transcoders/basis/basis_transcoder.js',\n wasmUrl: 'https://files.pixijs.download/transcoders/basis/basis_transcoder.wasm',\n};\n\nexport function setBasisTranscoderPath(config: Partial<typeof basisTranscoderUrls>)\n{\n Object.assign(basisTranscoderUrls, config);\n}\n"],"names":[],"mappings":";;;AAAO,MAAM,mBAAsB,GAAA;AAAA,EAC/B,KAAO,EAAA,qEAAA;AAAA,EACP,OAAS,EAAA,uEAAA;AACb,EAAA;AAEO,SAAS,uBAAuB,MACvC,EAAA;AACI,EAAO,MAAA,CAAA,MAAA,CAAO,qBAAqB,MAAM,CAAA,CAAA;AAC7C;;;;;"}

View File

@@ -0,0 +1,11 @@
"use strict";
const basisTranscoderUrls = {
jsUrl: "https://files.pixijs.download/transcoders/basis/basis_transcoder.js",
wasmUrl: "https://files.pixijs.download/transcoders/basis/basis_transcoder.wasm"
};
function setBasisTranscoderPath(config) {
Object.assign(basisTranscoderUrls, config);
}
export { basisTranscoderUrls, setBasisTranscoderPath };
//# sourceMappingURL=setBasisTranscoderPath.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"setBasisTranscoderPath.mjs","sources":["../../../../src/compressed-textures/basis/utils/setBasisTranscoderPath.ts"],"sourcesContent":["export const basisTranscoderUrls = {\n jsUrl: 'https://files.pixijs.download/transcoders/basis/basis_transcoder.js',\n wasmUrl: 'https://files.pixijs.download/transcoders/basis/basis_transcoder.wasm',\n};\n\nexport function setBasisTranscoderPath(config: Partial<typeof basisTranscoderUrls>)\n{\n Object.assign(basisTranscoderUrls, config);\n}\n"],"names":[],"mappings":";AAAO,MAAM,mBAAsB,GAAA;AAAA,EAC/B,KAAO,EAAA,qEAAA;AAAA,EACP,OAAS,EAAA,uEAAA;AACb,EAAA;AAEO,SAAS,uBAAuB,MACvC,EAAA;AACI,EAAO,MAAA,CAAA,MAAA,CAAO,qBAAqB,MAAM,CAAA,CAAA;AAC7C;;;;"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,3 @@
import type { TEXTURE_FORMATS } from '../../../rendering/renderers/shared/texture/const';
import type { TextureSourceOptions } from '../../../rendering/renderers/shared/texture/sources/TextureSource';
export declare function loadBasisOnWorker(url: string, supportedTextures: TEXTURE_FORMATS[]): Promise<TextureSourceOptions>;

View File

@@ -0,0 +1,37 @@
'use strict';
var basis_worker = require('../../../_virtual/basis.worker.js');
var setBasisTranscoderPath = require('../utils/setBasisTranscoderPath.js');
"use strict";
let basisWorker;
const urlHash = {};
function getBasisWorker(supportedTextures) {
if (!basisWorker) {
basisWorker = new basis_worker.default().worker;
basisWorker.onmessage = (messageEvent) => {
const { success, url, textureOptions } = messageEvent.data;
if (!success) {
console.warn("Failed to load Basis texture", url);
}
urlHash[url](textureOptions);
};
basisWorker.postMessage({
type: "init",
jsUrl: setBasisTranscoderPath.basisTranscoderUrls.jsUrl,
wasmUrl: setBasisTranscoderPath.basisTranscoderUrls.wasmUrl,
supportedTextures
});
}
return basisWorker;
}
function loadBasisOnWorker(url, supportedTextures) {
const ktxWorker = getBasisWorker(supportedTextures);
return new Promise((resolve) => {
urlHash[url] = resolve;
ktxWorker.postMessage({ type: "load", url });
});
}
exports.loadBasisOnWorker = loadBasisOnWorker;
//# sourceMappingURL=loadBasisOnWorker.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"loadBasisOnWorker.js","sources":["../../../../src/compressed-textures/basis/worker/loadBasisOnWorker.ts"],"sourcesContent":["import BasisWorker from 'worker:./basis.worker.ts';\nimport { basisTranscoderUrls } from '../utils/setBasisTranscoderPath';\n\nimport type { TEXTURE_FORMATS } from '../../../rendering/renderers/shared/texture/const';\nimport type { TextureSourceOptions } from '../../../rendering/renderers/shared/texture/sources/TextureSource';\n\nlet basisWorker: Worker;\nconst urlHash: Record<string, (value: any) => void> = {};\n\nfunction getBasisWorker(supportedTextures: TEXTURE_FORMATS[]): Worker\n{\n if (!basisWorker)\n {\n basisWorker = new BasisWorker().worker;\n\n basisWorker.onmessage = (messageEvent) =>\n {\n const { success, url, textureOptions } = messageEvent.data;\n\n if (!success)\n {\n console.warn('Failed to load Basis texture', url);\n }\n\n urlHash[url](textureOptions);\n };\n\n basisWorker.postMessage({\n type: 'init',\n jsUrl: basisTranscoderUrls.jsUrl,\n wasmUrl: basisTranscoderUrls.wasmUrl,\n supportedTextures\n });\n }\n\n return basisWorker;\n}\n\nexport function loadBasisOnWorker(\n url: string,\n supportedTextures: TEXTURE_FORMATS[]\n): Promise<TextureSourceOptions>\n{\n const ktxWorker = getBasisWorker(supportedTextures);\n\n return new Promise((resolve) =>\n {\n urlHash[url] = resolve;\n\n ktxWorker.postMessage({ type: 'load', url });\n });\n}\n"],"names":["BasisWorker","basisTranscoderUrls"],"mappings":";;;;;;AAMA,IAAI,WAAA,CAAA;AACJ,MAAM,UAAgD,EAAC,CAAA;AAEvD,SAAS,eAAe,iBACxB,EAAA;AACI,EAAA,IAAI,CAAC,WACL,EAAA;AACI,IAAc,WAAA,GAAA,IAAIA,sBAAc,CAAA,MAAA,CAAA;AAEhC,IAAY,WAAA,CAAA,SAAA,GAAY,CAAC,YACzB,KAAA;AACI,MAAA,MAAM,EAAE,OAAA,EAAS,GAAK,EAAA,cAAA,KAAmB,YAAa,CAAA,IAAA,CAAA;AAEtD,MAAA,IAAI,CAAC,OACL,EAAA;AACI,QAAQ,OAAA,CAAA,IAAA,CAAK,gCAAgC,GAAG,CAAA,CAAA;AAAA,OACpD;AAEA,MAAQ,OAAA,CAAA,GAAG,EAAE,cAAc,CAAA,CAAA;AAAA,KAC/B,CAAA;AAEA,IAAA,WAAA,CAAY,WAAY,CAAA;AAAA,MACpB,IAAM,EAAA,MAAA;AAAA,MACN,OAAOC,0CAAoB,CAAA,KAAA;AAAA,MAC3B,SAASA,0CAAoB,CAAA,OAAA;AAAA,MAC7B,iBAAA;AAAA,KACH,CAAA,CAAA;AAAA,GACL;AAEA,EAAO,OAAA,WAAA,CAAA;AACX,CAAA;AAEgB,SAAA,iBAAA,CACZ,KACA,iBAEJ,EAAA;AACI,EAAM,MAAA,SAAA,GAAY,eAAe,iBAAiB,CAAA,CAAA;AAElD,EAAO,OAAA,IAAI,OAAQ,CAAA,CAAC,OACpB,KAAA;AACI,IAAA,OAAA,CAAQ,GAAG,CAAI,GAAA,OAAA,CAAA;AAEf,IAAA,SAAA,CAAU,WAAY,CAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,KAAK,CAAA,CAAA;AAAA,GAC9C,CAAA,CAAA;AACL;;;;"}

View File

@@ -0,0 +1,35 @@
import WorkerInstance from '../../../_virtual/basis.worker.mjs';
import { basisTranscoderUrls } from '../utils/setBasisTranscoderPath.mjs';
"use strict";
let basisWorker;
const urlHash = {};
function getBasisWorker(supportedTextures) {
if (!basisWorker) {
basisWorker = new WorkerInstance().worker;
basisWorker.onmessage = (messageEvent) => {
const { success, url, textureOptions } = messageEvent.data;
if (!success) {
console.warn("Failed to load Basis texture", url);
}
urlHash[url](textureOptions);
};
basisWorker.postMessage({
type: "init",
jsUrl: basisTranscoderUrls.jsUrl,
wasmUrl: basisTranscoderUrls.wasmUrl,
supportedTextures
});
}
return basisWorker;
}
function loadBasisOnWorker(url, supportedTextures) {
const ktxWorker = getBasisWorker(supportedTextures);
return new Promise((resolve) => {
urlHash[url] = resolve;
ktxWorker.postMessage({ type: "load", url });
});
}
export { loadBasisOnWorker };
//# sourceMappingURL=loadBasisOnWorker.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"loadBasisOnWorker.mjs","sources":["../../../../src/compressed-textures/basis/worker/loadBasisOnWorker.ts"],"sourcesContent":["import BasisWorker from 'worker:./basis.worker.ts';\nimport { basisTranscoderUrls } from '../utils/setBasisTranscoderPath';\n\nimport type { TEXTURE_FORMATS } from '../../../rendering/renderers/shared/texture/const';\nimport type { TextureSourceOptions } from '../../../rendering/renderers/shared/texture/sources/TextureSource';\n\nlet basisWorker: Worker;\nconst urlHash: Record<string, (value: any) => void> = {};\n\nfunction getBasisWorker(supportedTextures: TEXTURE_FORMATS[]): Worker\n{\n if (!basisWorker)\n {\n basisWorker = new BasisWorker().worker;\n\n basisWorker.onmessage = (messageEvent) =>\n {\n const { success, url, textureOptions } = messageEvent.data;\n\n if (!success)\n {\n console.warn('Failed to load Basis texture', url);\n }\n\n urlHash[url](textureOptions);\n };\n\n basisWorker.postMessage({\n type: 'init',\n jsUrl: basisTranscoderUrls.jsUrl,\n wasmUrl: basisTranscoderUrls.wasmUrl,\n supportedTextures\n });\n }\n\n return basisWorker;\n}\n\nexport function loadBasisOnWorker(\n url: string,\n supportedTextures: TEXTURE_FORMATS[]\n): Promise<TextureSourceOptions>\n{\n const ktxWorker = getBasisWorker(supportedTextures);\n\n return new Promise((resolve) =>\n {\n urlHash[url] = resolve;\n\n ktxWorker.postMessage({ type: 'load', url });\n });\n}\n"],"names":["BasisWorker"],"mappings":";;;;AAMA,IAAI,WAAA,CAAA;AACJ,MAAM,UAAgD,EAAC,CAAA;AAEvD,SAAS,eAAe,iBACxB,EAAA;AACI,EAAA,IAAI,CAAC,WACL,EAAA;AACI,IAAc,WAAA,GAAA,IAAIA,gBAAc,CAAA,MAAA,CAAA;AAEhC,IAAY,WAAA,CAAA,SAAA,GAAY,CAAC,YACzB,KAAA;AACI,MAAA,MAAM,EAAE,OAAA,EAAS,GAAK,EAAA,cAAA,KAAmB,YAAa,CAAA,IAAA,CAAA;AAEtD,MAAA,IAAI,CAAC,OACL,EAAA;AACI,QAAQ,OAAA,CAAA,IAAA,CAAK,gCAAgC,GAAG,CAAA,CAAA;AAAA,OACpD;AAEA,MAAQ,OAAA,CAAA,GAAG,EAAE,cAAc,CAAA,CAAA;AAAA,KAC/B,CAAA;AAEA,IAAA,WAAA,CAAY,WAAY,CAAA;AAAA,MACpB,IAAM,EAAA,MAAA;AAAA,MACN,OAAO,mBAAoB,CAAA,KAAA;AAAA,MAC3B,SAAS,mBAAoB,CAAA,OAAA;AAAA,MAC7B,iBAAA;AAAA,KACH,CAAA,CAAA;AAAA,GACL;AAEA,EAAO,OAAA,WAAA,CAAA;AACX,CAAA;AAEgB,SAAA,iBAAA,CACZ,KACA,iBAEJ,EAAA;AACI,EAAM,MAAA,SAAA,GAAY,eAAe,iBAAiB,CAAA,CAAA;AAElD,EAAO,OAAA,IAAI,OAAQ,CAAA,CAAC,OACpB,KAAA;AACI,IAAA,OAAA,CAAQ,GAAG,CAAI,GAAA,OAAA,CAAA;AAEf,IAAA,SAAA,CAAU,WAAY,CAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,KAAK,CAAA,CAAA;AAAA,GAC9C,CAAA,CAAA;AACL;;;;"}

View File

@@ -0,0 +1,256 @@
import type { TEXTURE_FORMATS } from '../../rendering/renderers/shared/texture/const';
/**
* @see https://docs.microsoft.com/en-us/windows/win32/api/dxgiformat/ne-dxgiformat-dxgi_format
* This is way over-blown for us! Lend us a hand, and remove the ones that aren't used (but set the remaining
* ones to their correct value)
* @ignore
*/
export declare enum DXGI_FORMAT {
DXGI_FORMAT_UNKNOWN = 0,
DXGI_FORMAT_R32G32B32A32_TYPELESS = 1,
DXGI_FORMAT_R32G32B32A32_FLOAT = 2,
DXGI_FORMAT_R32G32B32A32_UINT = 3,
DXGI_FORMAT_R32G32B32A32_SINT = 4,
DXGI_FORMAT_R32G32B32_TYPELESS = 5,
DXGI_FORMAT_R32G32B32_FLOAT = 6,
DXGI_FORMAT_R32G32B32_UINT = 7,
DXGI_FORMAT_R32G32B32_SINT = 8,
DXGI_FORMAT_R16G16B16A16_TYPELESS = 9,
DXGI_FORMAT_R16G16B16A16_FLOAT = 10,
DXGI_FORMAT_R16G16B16A16_UNORM = 11,
DXGI_FORMAT_R16G16B16A16_UINT = 12,
DXGI_FORMAT_R16G16B16A16_SNORM = 13,
DXGI_FORMAT_R16G16B16A16_SINT = 14,
DXGI_FORMAT_R32G32_TYPELESS = 15,
DXGI_FORMAT_R32G32_FLOAT = 16,
DXGI_FORMAT_R32G32_UINT = 17,
DXGI_FORMAT_R32G32_SINT = 18,
DXGI_FORMAT_R32G8X24_TYPELESS = 19,
DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20,
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21,
DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22,
DXGI_FORMAT_R10G10B10A2_TYPELESS = 23,
DXGI_FORMAT_R10G10B10A2_UNORM = 24,
DXGI_FORMAT_R10G10B10A2_UINT = 25,
DXGI_FORMAT_R11G11B10_FLOAT = 26,
DXGI_FORMAT_R8G8B8A8_TYPELESS = 27,
DXGI_FORMAT_R8G8B8A8_UNORM = 28,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29,
DXGI_FORMAT_R8G8B8A8_UINT = 30,
DXGI_FORMAT_R8G8B8A8_SNORM = 31,
DXGI_FORMAT_R8G8B8A8_SINT = 32,
DXGI_FORMAT_R16G16_TYPELESS = 33,
DXGI_FORMAT_R16G16_FLOAT = 34,
DXGI_FORMAT_R16G16_UNORM = 35,
DXGI_FORMAT_R16G16_UINT = 36,
DXGI_FORMAT_R16G16_SNORM = 37,
DXGI_FORMAT_R16G16_SINT = 38,
DXGI_FORMAT_R32_TYPELESS = 39,
DXGI_FORMAT_D32_FLOAT = 40,
DXGI_FORMAT_R32_FLOAT = 41,
DXGI_FORMAT_R32_UINT = 42,
DXGI_FORMAT_R32_SINT = 43,
DXGI_FORMAT_R24G8_TYPELESS = 44,
DXGI_FORMAT_D24_UNORM_S8_UINT = 45,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46,
DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47,
DXGI_FORMAT_R8G8_TYPELESS = 48,
DXGI_FORMAT_R8G8_UNORM = 49,
DXGI_FORMAT_R8G8_UINT = 50,
DXGI_FORMAT_R8G8_SNORM = 51,
DXGI_FORMAT_R8G8_SINT = 52,
DXGI_FORMAT_R16_TYPELESS = 53,
DXGI_FORMAT_R16_FLOAT = 54,
DXGI_FORMAT_D16_UNORM = 55,
DXGI_FORMAT_R16_UNORM = 56,
DXGI_FORMAT_R16_UINT = 57,
DXGI_FORMAT_R16_SNORM = 58,
DXGI_FORMAT_R16_SINT = 59,
DXGI_FORMAT_R8_TYPELESS = 60,
DXGI_FORMAT_R8_UNORM = 61,
DXGI_FORMAT_R8_UINT = 62,
DXGI_FORMAT_R8_SNORM = 63,
DXGI_FORMAT_R8_SINT = 64,
DXGI_FORMAT_A8_UNORM = 65,
DXGI_FORMAT_R1_UNORM = 66,
DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67,
DXGI_FORMAT_R8G8_B8G8_UNORM = 68,
DXGI_FORMAT_G8R8_G8B8_UNORM = 69,
DXGI_FORMAT_BC1_TYPELESS = 70,
DXGI_FORMAT_BC1_UNORM = 71,
DXGI_FORMAT_BC1_UNORM_SRGB = 72,
DXGI_FORMAT_BC2_TYPELESS = 73,
DXGI_FORMAT_BC2_UNORM = 74,
DXGI_FORMAT_BC2_UNORM_SRGB = 75,
DXGI_FORMAT_BC3_TYPELESS = 76,
DXGI_FORMAT_BC3_UNORM = 77,
DXGI_FORMAT_BC3_UNORM_SRGB = 78,
DXGI_FORMAT_BC4_TYPELESS = 79,
DXGI_FORMAT_BC4_UNORM = 80,
DXGI_FORMAT_BC4_SNORM = 81,
DXGI_FORMAT_BC5_TYPELESS = 82,
DXGI_FORMAT_BC5_UNORM = 83,
DXGI_FORMAT_BC5_SNORM = 84,
DXGI_FORMAT_B5G6R5_UNORM = 85,
DXGI_FORMAT_B5G5R5A1_UNORM = 86,
DXGI_FORMAT_B8G8R8A8_UNORM = 87,
DXGI_FORMAT_B8G8R8X8_UNORM = 88,
DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89,
DXGI_FORMAT_B8G8R8A8_TYPELESS = 90,
DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91,
DXGI_FORMAT_B8G8R8X8_TYPELESS = 92,
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93,
DXGI_FORMAT_BC6H_TYPELESS = 94,
DXGI_FORMAT_BC6H_UF16 = 95,
DXGI_FORMAT_BC6H_SF16 = 96,
DXGI_FORMAT_BC7_TYPELESS = 97,
DXGI_FORMAT_BC7_UNORM = 98,
DXGI_FORMAT_BC7_UNORM_SRGB = 99,
DXGI_FORMAT_AYUV = 100,
DXGI_FORMAT_Y410 = 101,
DXGI_FORMAT_Y416 = 102,
DXGI_FORMAT_NV12 = 103,
DXGI_FORMAT_P010 = 104,
DXGI_FORMAT_P016 = 105,
DXGI_FORMAT_420_OPAQUE = 106,
DXGI_FORMAT_YUY2 = 107,
DXGI_FORMAT_Y210 = 108,
DXGI_FORMAT_Y216 = 109,
DXGI_FORMAT_NV11 = 110,
DXGI_FORMAT_AI44 = 111,
DXGI_FORMAT_IA44 = 112,
DXGI_FORMAT_P8 = 113,
DXGI_FORMAT_A8P8 = 114,
DXGI_FORMAT_B4G4R4A4_UNORM = 115,
DXGI_FORMAT_P208 = 116,
DXGI_FORMAT_V208 = 117,
DXGI_FORMAT_V408 = 118,
DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE = 119,
DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE = 120,
DXGI_FORMAT_FORCE_UINT = 121
}
/**
* Possible values of the field {@link DDS_DX10_FIELDS.RESOURCE_DIMENSION}
* @ignore
*/
export declare enum D3D10_RESOURCE_DIMENSION {
DDS_DIMENSION_TEXTURE1D = 2,
DDS_DIMENSION_TEXTURE2D = 3,
DDS_DIMENSION_TEXTURE3D = 6
}
export declare enum D3DFMT {
UNKNOWN = 0,
R8G8B8 = 20,
A8R8G8B8 = 21,
X8R8G8B8 = 22,
R5G6B5 = 23,
X1R5G5B5 = 24,
A1R5G5B5 = 25,
A4R4G4B4 = 26,
R3G3B2 = 27,
A8 = 28,
A8R3G3B2 = 29,
X4R4G4B4 = 30,
A2B10G10R10 = 31,
A8B8G8R8 = 32,
X8B8G8R8 = 33,
G16R16 = 34,
A2R10G10B10 = 35,
A16B16G16R16 = 36,
A8P8 = 40,
P8 = 41,
L8 = 50,
A8L8 = 51,
A4L4 = 52,
V8U8 = 60,
L6V5U5 = 61,
X8L8V8U8 = 62,
Q8W8V8U8 = 63,
V16U16 = 64,
A2W10V10U10 = 67,
Q16W16V16U16 = 110,
R16F = 111,
G16R16F = 112,
A16B16G16R16F = 113,
R32F = 114,
G32R32F = 115,
A32B32G32R32F = 116,
UYVY,
R8G8_B8G8,
YUY2,
D3DFMT_G8R8_G8B8,
DXT1,
DXT2,
DXT3,
DXT4,
DXT5,
ATI1,
AT1N,
ATI2,
AT2N,
BC4U,
BC4S,
BC5U,
BC5S,
DX10
}
/**
* Maps `FOURCC_*` formats to {@link TEXTURE_FORMATS}.
* https://en.wikipedia.org/wiki/S3_Texture_Compression#S3TC_format_comparison
* https://github.com/microsoft/DirectXTex/blob/main/DDSTextureLoader/DDSTextureLoader11.cpp
* @ignore
*/
export declare const FOURCC_TO_TEXTURE_FORMAT: {
[id: number]: TEXTURE_FORMATS;
};
/**
* Maps {@link DXGI_FORMAT} to {@link TEXTURE_FORMATS}
* @ignore
*/
export declare const DXGI_TO_TEXTURE_FORMAT: {
[id: number]: TEXTURE_FORMATS;
};
export declare const DDS: {
MAGIC_VALUE: number;
MAGIC_SIZE: number;
HEADER_SIZE: number;
HEADER_DX10_SIZE: number;
PIXEL_FORMAT_FLAGS: {
ALPHAPIXELS: number;
ALPHA: number;
FOURCC: number;
RGB: number;
RGBA: number;
YUV: number;
LUMINANCE: number;
LUMINANCEA: number;
};
RESOURCE_MISC_TEXTURECUBE: number;
HEADER_FIELDS: {
MAGIC: number;
SIZE: number;
FLAGS: number;
HEIGHT: number;
WIDTH: number;
MIPMAP_COUNT: number;
PIXEL_FORMAT: number;
PF_FLAGS: number;
FOURCC: number;
RGB_BITCOUNT: number;
R_BIT_MASK: number;
G_BIT_MASK: number;
B_BIT_MASK: number;
A_BIT_MASK: number;
};
HEADER_DX10_FIELDS: {
DXGI_FORMAT: number;
RESOURCE_DIMENSION: number;
MISC_FLAG: number;
ARRAY_SIZE: number;
MISC_FLAGS2: number;
};
DXGI_FORMAT: typeof DXGI_FORMAT;
D3D10_RESOURCE_DIMENSION: typeof D3D10_RESOURCE_DIMENSION;
D3DFMT: typeof D3DFMT;
};
export declare const TEXTURE_FORMAT_BLOCK_SIZE: Record<string, number>;

View File

@@ -0,0 +1,327 @@
'use strict';
"use strict";
const DDS_HEADER_FIELDS = {
MAGIC: 0,
SIZE: 1,
FLAGS: 2,
HEIGHT: 3,
WIDTH: 4,
MIPMAP_COUNT: 7,
PIXEL_FORMAT: 19,
PF_FLAGS: 20,
FOURCC: 21,
RGB_BITCOUNT: 22,
R_BIT_MASK: 23,
G_BIT_MASK: 24,
B_BIT_MASK: 25,
A_BIT_MASK: 26
};
const DDS_DX10_FIELDS = {
DXGI_FORMAT: 0,
RESOURCE_DIMENSION: 1,
MISC_FLAG: 2,
ARRAY_SIZE: 3,
MISC_FLAGS2: 4
};
var DXGI_FORMAT = /* @__PURE__ */ ((DXGI_FORMAT2) => {
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_UNKNOWN"] = 0] = "DXGI_FORMAT_UNKNOWN";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32A32_TYPELESS"] = 1] = "DXGI_FORMAT_R32G32B32A32_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32A32_FLOAT"] = 2] = "DXGI_FORMAT_R32G32B32A32_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32A32_UINT"] = 3] = "DXGI_FORMAT_R32G32B32A32_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32A32_SINT"] = 4] = "DXGI_FORMAT_R32G32B32A32_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32_TYPELESS"] = 5] = "DXGI_FORMAT_R32G32B32_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32_FLOAT"] = 6] = "DXGI_FORMAT_R32G32B32_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32_UINT"] = 7] = "DXGI_FORMAT_R32G32B32_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32_SINT"] = 8] = "DXGI_FORMAT_R32G32B32_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16B16A16_TYPELESS"] = 9] = "DXGI_FORMAT_R16G16B16A16_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16B16A16_FLOAT"] = 10] = "DXGI_FORMAT_R16G16B16A16_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16B16A16_UNORM"] = 11] = "DXGI_FORMAT_R16G16B16A16_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16B16A16_UINT"] = 12] = "DXGI_FORMAT_R16G16B16A16_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16B16A16_SNORM"] = 13] = "DXGI_FORMAT_R16G16B16A16_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16B16A16_SINT"] = 14] = "DXGI_FORMAT_R16G16B16A16_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32_TYPELESS"] = 15] = "DXGI_FORMAT_R32G32_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32_FLOAT"] = 16] = "DXGI_FORMAT_R32G32_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32_UINT"] = 17] = "DXGI_FORMAT_R32G32_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32_SINT"] = 18] = "DXGI_FORMAT_R32G32_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G8X24_TYPELESS"] = 19] = "DXGI_FORMAT_R32G8X24_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_D32_FLOAT_S8X24_UINT"] = 20] = "DXGI_FORMAT_D32_FLOAT_S8X24_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS"] = 21] = "DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_X32_TYPELESS_G8X24_UINT"] = 22] = "DXGI_FORMAT_X32_TYPELESS_G8X24_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R10G10B10A2_TYPELESS"] = 23] = "DXGI_FORMAT_R10G10B10A2_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R10G10B10A2_UNORM"] = 24] = "DXGI_FORMAT_R10G10B10A2_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R10G10B10A2_UINT"] = 25] = "DXGI_FORMAT_R10G10B10A2_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R11G11B10_FLOAT"] = 26] = "DXGI_FORMAT_R11G11B10_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8B8A8_TYPELESS"] = 27] = "DXGI_FORMAT_R8G8B8A8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8B8A8_UNORM"] = 28] = "DXGI_FORMAT_R8G8B8A8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8B8A8_UNORM_SRGB"] = 29] = "DXGI_FORMAT_R8G8B8A8_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8B8A8_UINT"] = 30] = "DXGI_FORMAT_R8G8B8A8_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8B8A8_SNORM"] = 31] = "DXGI_FORMAT_R8G8B8A8_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8B8A8_SINT"] = 32] = "DXGI_FORMAT_R8G8B8A8_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16_TYPELESS"] = 33] = "DXGI_FORMAT_R16G16_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16_FLOAT"] = 34] = "DXGI_FORMAT_R16G16_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16_UNORM"] = 35] = "DXGI_FORMAT_R16G16_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16_UINT"] = 36] = "DXGI_FORMAT_R16G16_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16_SNORM"] = 37] = "DXGI_FORMAT_R16G16_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16_SINT"] = 38] = "DXGI_FORMAT_R16G16_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32_TYPELESS"] = 39] = "DXGI_FORMAT_R32_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_D32_FLOAT"] = 40] = "DXGI_FORMAT_D32_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32_FLOAT"] = 41] = "DXGI_FORMAT_R32_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32_UINT"] = 42] = "DXGI_FORMAT_R32_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32_SINT"] = 43] = "DXGI_FORMAT_R32_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R24G8_TYPELESS"] = 44] = "DXGI_FORMAT_R24G8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_D24_UNORM_S8_UINT"] = 45] = "DXGI_FORMAT_D24_UNORM_S8_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R24_UNORM_X8_TYPELESS"] = 46] = "DXGI_FORMAT_R24_UNORM_X8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_X24_TYPELESS_G8_UINT"] = 47] = "DXGI_FORMAT_X24_TYPELESS_G8_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8_TYPELESS"] = 48] = "DXGI_FORMAT_R8G8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8_UNORM"] = 49] = "DXGI_FORMAT_R8G8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8_UINT"] = 50] = "DXGI_FORMAT_R8G8_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8_SNORM"] = 51] = "DXGI_FORMAT_R8G8_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8_SINT"] = 52] = "DXGI_FORMAT_R8G8_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16_TYPELESS"] = 53] = "DXGI_FORMAT_R16_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16_FLOAT"] = 54] = "DXGI_FORMAT_R16_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_D16_UNORM"] = 55] = "DXGI_FORMAT_D16_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16_UNORM"] = 56] = "DXGI_FORMAT_R16_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16_UINT"] = 57] = "DXGI_FORMAT_R16_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16_SNORM"] = 58] = "DXGI_FORMAT_R16_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16_SINT"] = 59] = "DXGI_FORMAT_R16_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8_TYPELESS"] = 60] = "DXGI_FORMAT_R8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8_UNORM"] = 61] = "DXGI_FORMAT_R8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8_UINT"] = 62] = "DXGI_FORMAT_R8_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8_SNORM"] = 63] = "DXGI_FORMAT_R8_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8_SINT"] = 64] = "DXGI_FORMAT_R8_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_A8_UNORM"] = 65] = "DXGI_FORMAT_A8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R1_UNORM"] = 66] = "DXGI_FORMAT_R1_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R9G9B9E5_SHAREDEXP"] = 67] = "DXGI_FORMAT_R9G9B9E5_SHAREDEXP";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8_B8G8_UNORM"] = 68] = "DXGI_FORMAT_R8G8_B8G8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_G8R8_G8B8_UNORM"] = 69] = "DXGI_FORMAT_G8R8_G8B8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC1_TYPELESS"] = 70] = "DXGI_FORMAT_BC1_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC1_UNORM"] = 71] = "DXGI_FORMAT_BC1_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC1_UNORM_SRGB"] = 72] = "DXGI_FORMAT_BC1_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC2_TYPELESS"] = 73] = "DXGI_FORMAT_BC2_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC2_UNORM"] = 74] = "DXGI_FORMAT_BC2_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC2_UNORM_SRGB"] = 75] = "DXGI_FORMAT_BC2_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC3_TYPELESS"] = 76] = "DXGI_FORMAT_BC3_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC3_UNORM"] = 77] = "DXGI_FORMAT_BC3_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC3_UNORM_SRGB"] = 78] = "DXGI_FORMAT_BC3_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC4_TYPELESS"] = 79] = "DXGI_FORMAT_BC4_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC4_UNORM"] = 80] = "DXGI_FORMAT_BC4_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC4_SNORM"] = 81] = "DXGI_FORMAT_BC4_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC5_TYPELESS"] = 82] = "DXGI_FORMAT_BC5_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC5_UNORM"] = 83] = "DXGI_FORMAT_BC5_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC5_SNORM"] = 84] = "DXGI_FORMAT_BC5_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B5G6R5_UNORM"] = 85] = "DXGI_FORMAT_B5G6R5_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B5G5R5A1_UNORM"] = 86] = "DXGI_FORMAT_B5G5R5A1_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B8G8R8A8_UNORM"] = 87] = "DXGI_FORMAT_B8G8R8A8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B8G8R8X8_UNORM"] = 88] = "DXGI_FORMAT_B8G8R8X8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM"] = 89] = "DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B8G8R8A8_TYPELESS"] = 90] = "DXGI_FORMAT_B8G8R8A8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B8G8R8A8_UNORM_SRGB"] = 91] = "DXGI_FORMAT_B8G8R8A8_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B8G8R8X8_TYPELESS"] = 92] = "DXGI_FORMAT_B8G8R8X8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B8G8R8X8_UNORM_SRGB"] = 93] = "DXGI_FORMAT_B8G8R8X8_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC6H_TYPELESS"] = 94] = "DXGI_FORMAT_BC6H_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC6H_UF16"] = 95] = "DXGI_FORMAT_BC6H_UF16";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC6H_SF16"] = 96] = "DXGI_FORMAT_BC6H_SF16";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC7_TYPELESS"] = 97] = "DXGI_FORMAT_BC7_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC7_UNORM"] = 98] = "DXGI_FORMAT_BC7_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC7_UNORM_SRGB"] = 99] = "DXGI_FORMAT_BC7_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_AYUV"] = 100] = "DXGI_FORMAT_AYUV";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_Y410"] = 101] = "DXGI_FORMAT_Y410";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_Y416"] = 102] = "DXGI_FORMAT_Y416";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_NV12"] = 103] = "DXGI_FORMAT_NV12";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_P010"] = 104] = "DXGI_FORMAT_P010";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_P016"] = 105] = "DXGI_FORMAT_P016";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_420_OPAQUE"] = 106] = "DXGI_FORMAT_420_OPAQUE";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_YUY2"] = 107] = "DXGI_FORMAT_YUY2";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_Y210"] = 108] = "DXGI_FORMAT_Y210";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_Y216"] = 109] = "DXGI_FORMAT_Y216";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_NV11"] = 110] = "DXGI_FORMAT_NV11";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_AI44"] = 111] = "DXGI_FORMAT_AI44";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_IA44"] = 112] = "DXGI_FORMAT_IA44";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_P8"] = 113] = "DXGI_FORMAT_P8";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_A8P8"] = 114] = "DXGI_FORMAT_A8P8";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B4G4R4A4_UNORM"] = 115] = "DXGI_FORMAT_B4G4R4A4_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_P208"] = 116] = "DXGI_FORMAT_P208";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_V208"] = 117] = "DXGI_FORMAT_V208";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_V408"] = 118] = "DXGI_FORMAT_V408";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE"] = 119] = "DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE"] = 120] = "DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_FORCE_UINT"] = 121] = "DXGI_FORMAT_FORCE_UINT";
return DXGI_FORMAT2;
})(DXGI_FORMAT || {});
var D3D10_RESOURCE_DIMENSION = /* @__PURE__ */ ((D3D10_RESOURCE_DIMENSION2) => {
D3D10_RESOURCE_DIMENSION2[D3D10_RESOURCE_DIMENSION2["DDS_DIMENSION_TEXTURE1D"] = 2] = "DDS_DIMENSION_TEXTURE1D";
D3D10_RESOURCE_DIMENSION2[D3D10_RESOURCE_DIMENSION2["DDS_DIMENSION_TEXTURE2D"] = 3] = "DDS_DIMENSION_TEXTURE2D";
D3D10_RESOURCE_DIMENSION2[D3D10_RESOURCE_DIMENSION2["DDS_DIMENSION_TEXTURE3D"] = 6] = "DDS_DIMENSION_TEXTURE3D";
return D3D10_RESOURCE_DIMENSION2;
})(D3D10_RESOURCE_DIMENSION || {});
function fourCCToInt32(value) {
return value.charCodeAt(0) + (value.charCodeAt(1) << 8) + (value.charCodeAt(2) << 16) + (value.charCodeAt(3) << 24);
}
var D3DFMT = ((D3DFMT2) => {
D3DFMT2[D3DFMT2["UNKNOWN"] = 0] = "UNKNOWN";
D3DFMT2[D3DFMT2["R8G8B8"] = 20] = "R8G8B8";
D3DFMT2[D3DFMT2["A8R8G8B8"] = 21] = "A8R8G8B8";
D3DFMT2[D3DFMT2["X8R8G8B8"] = 22] = "X8R8G8B8";
D3DFMT2[D3DFMT2["R5G6B5"] = 23] = "R5G6B5";
D3DFMT2[D3DFMT2["X1R5G5B5"] = 24] = "X1R5G5B5";
D3DFMT2[D3DFMT2["A1R5G5B5"] = 25] = "A1R5G5B5";
D3DFMT2[D3DFMT2["A4R4G4B4"] = 26] = "A4R4G4B4";
D3DFMT2[D3DFMT2["R3G3B2"] = 27] = "R3G3B2";
D3DFMT2[D3DFMT2["A8"] = 28] = "A8";
D3DFMT2[D3DFMT2["A8R3G3B2"] = 29] = "A8R3G3B2";
D3DFMT2[D3DFMT2["X4R4G4B4"] = 30] = "X4R4G4B4";
D3DFMT2[D3DFMT2["A2B10G10R10"] = 31] = "A2B10G10R10";
D3DFMT2[D3DFMT2["A8B8G8R8"] = 32] = "A8B8G8R8";
D3DFMT2[D3DFMT2["X8B8G8R8"] = 33] = "X8B8G8R8";
D3DFMT2[D3DFMT2["G16R16"] = 34] = "G16R16";
D3DFMT2[D3DFMT2["A2R10G10B10"] = 35] = "A2R10G10B10";
D3DFMT2[D3DFMT2["A16B16G16R16"] = 36] = "A16B16G16R16";
D3DFMT2[D3DFMT2["A8P8"] = 40] = "A8P8";
D3DFMT2[D3DFMT2["P8"] = 41] = "P8";
D3DFMT2[D3DFMT2["L8"] = 50] = "L8";
D3DFMT2[D3DFMT2["A8L8"] = 51] = "A8L8";
D3DFMT2[D3DFMT2["A4L4"] = 52] = "A4L4";
D3DFMT2[D3DFMT2["V8U8"] = 60] = "V8U8";
D3DFMT2[D3DFMT2["L6V5U5"] = 61] = "L6V5U5";
D3DFMT2[D3DFMT2["X8L8V8U8"] = 62] = "X8L8V8U8";
D3DFMT2[D3DFMT2["Q8W8V8U8"] = 63] = "Q8W8V8U8";
D3DFMT2[D3DFMT2["V16U16"] = 64] = "V16U16";
D3DFMT2[D3DFMT2["A2W10V10U10"] = 67] = "A2W10V10U10";
D3DFMT2[D3DFMT2["Q16W16V16U16"] = 110] = "Q16W16V16U16";
D3DFMT2[D3DFMT2["R16F"] = 111] = "R16F";
D3DFMT2[D3DFMT2["G16R16F"] = 112] = "G16R16F";
D3DFMT2[D3DFMT2["A16B16G16R16F"] = 113] = "A16B16G16R16F";
D3DFMT2[D3DFMT2["R32F"] = 114] = "R32F";
D3DFMT2[D3DFMT2["G32R32F"] = 115] = "G32R32F";
D3DFMT2[D3DFMT2["A32B32G32R32F"] = 116] = "A32B32G32R32F";
D3DFMT2[D3DFMT2["UYVY"] = fourCCToInt32("UYVY")] = "UYVY";
D3DFMT2[D3DFMT2["R8G8_B8G8"] = fourCCToInt32("RGBG")] = "R8G8_B8G8";
D3DFMT2[D3DFMT2["YUY2"] = fourCCToInt32("YUY2")] = "YUY2";
D3DFMT2[D3DFMT2["D3DFMT_G8R8_G8B8"] = fourCCToInt32("GRGB")] = "D3DFMT_G8R8_G8B8";
D3DFMT2[D3DFMT2["DXT1"] = fourCCToInt32("DXT1")] = "DXT1";
D3DFMT2[D3DFMT2["DXT2"] = fourCCToInt32("DXT2")] = "DXT2";
D3DFMT2[D3DFMT2["DXT3"] = fourCCToInt32("DXT3")] = "DXT3";
D3DFMT2[D3DFMT2["DXT4"] = fourCCToInt32("DXT4")] = "DXT4";
D3DFMT2[D3DFMT2["DXT5"] = fourCCToInt32("DXT5")] = "DXT5";
D3DFMT2[D3DFMT2["ATI1"] = fourCCToInt32("ATI1")] = "ATI1";
D3DFMT2[D3DFMT2["AT1N"] = fourCCToInt32("AT1N")] = "AT1N";
D3DFMT2[D3DFMT2["ATI2"] = fourCCToInt32("ATI2")] = "ATI2";
D3DFMT2[D3DFMT2["AT2N"] = fourCCToInt32("AT2N")] = "AT2N";
D3DFMT2[D3DFMT2["BC4U"] = fourCCToInt32("BC4U")] = "BC4U";
D3DFMT2[D3DFMT2["BC4S"] = fourCCToInt32("BC4S")] = "BC4S";
D3DFMT2[D3DFMT2["BC5U"] = fourCCToInt32("BC5U")] = "BC5U";
D3DFMT2[D3DFMT2["BC5S"] = fourCCToInt32("BC5S")] = "BC5S";
D3DFMT2[D3DFMT2["DX10"] = fourCCToInt32("DX10")] = "DX10";
return D3DFMT2;
})(D3DFMT || {});
const FOURCC_TO_TEXTURE_FORMAT = {
[D3DFMT.DXT1]: "bc1-rgba-unorm",
[D3DFMT.DXT2]: "bc2-rgba-unorm",
[D3DFMT.DXT3]: "bc2-rgba-unorm",
[D3DFMT.DXT4]: "bc3-rgba-unorm",
[D3DFMT.DXT5]: "bc3-rgba-unorm",
[D3DFMT.ATI1]: "bc4-r-unorm",
[D3DFMT.BC4U]: "bc4-r-unorm",
[D3DFMT.BC4S]: "bc4-r-snorm",
[D3DFMT.ATI2]: "bc5-rg-unorm",
[D3DFMT.BC5U]: "bc5-rg-unorm",
[D3DFMT.BC5S]: "bc5-rg-snorm",
[36 /* A16B16G16R16 */]: "rgba16uint",
[110 /* Q16W16V16U16 */]: "rgba16sint",
[111 /* R16F */]: "r16float",
[112 /* G16R16F */]: "rg16float",
[113 /* A16B16G16R16F */]: "rgba16float",
[114 /* R32F */]: "r32float",
[115 /* G32R32F */]: "rg32float",
[116 /* A32B32G32R32F */]: "rgba32float"
};
const DXGI_TO_TEXTURE_FORMAT = {
[70 /* DXGI_FORMAT_BC1_TYPELESS */]: "bc1-rgba-unorm",
[71 /* DXGI_FORMAT_BC1_UNORM */]: "bc1-rgba-unorm",
[72 /* DXGI_FORMAT_BC1_UNORM_SRGB */]: "bc1-rgba-unorm-srgb",
[73 /* DXGI_FORMAT_BC2_TYPELESS */]: "bc2-rgba-unorm",
[74 /* DXGI_FORMAT_BC2_UNORM */]: "bc2-rgba-unorm",
[75 /* DXGI_FORMAT_BC2_UNORM_SRGB */]: "bc2-rgba-unorm-srgb",
[76 /* DXGI_FORMAT_BC3_TYPELESS */]: "bc3-rgba-unorm",
[77 /* DXGI_FORMAT_BC3_UNORM */]: "bc3-rgba-unorm",
[78 /* DXGI_FORMAT_BC3_UNORM_SRGB */]: "bc3-rgba-unorm-srgb",
[79 /* DXGI_FORMAT_BC4_TYPELESS */]: "bc4-r-unorm",
[80 /* DXGI_FORMAT_BC4_UNORM */]: "bc4-r-unorm",
[81 /* DXGI_FORMAT_BC4_SNORM */]: "bc4-r-snorm",
[82 /* DXGI_FORMAT_BC5_TYPELESS */]: "bc5-rg-unorm",
[83 /* DXGI_FORMAT_BC5_UNORM */]: "bc5-rg-unorm",
[84 /* DXGI_FORMAT_BC5_SNORM */]: "bc5-rg-snorm",
[94 /* DXGI_FORMAT_BC6H_TYPELESS */]: "bc6h-rgb-ufloat",
[95 /* DXGI_FORMAT_BC6H_UF16 */]: "bc6h-rgb-ufloat",
[96 /* DXGI_FORMAT_BC6H_SF16 */]: "bc6h-rgb-float",
[97 /* DXGI_FORMAT_BC7_TYPELESS */]: "bc7-rgba-unorm",
[98 /* DXGI_FORMAT_BC7_UNORM */]: "bc7-rgba-unorm",
[99 /* DXGI_FORMAT_BC7_UNORM_SRGB */]: "bc7-rgba-unorm-srgb",
[28 /* DXGI_FORMAT_R8G8B8A8_UNORM */]: "rgba8unorm",
[29 /* DXGI_FORMAT_R8G8B8A8_UNORM_SRGB */]: "rgba8unorm-srgb",
[87 /* DXGI_FORMAT_B8G8R8A8_UNORM */]: "bgra8unorm",
[91 /* DXGI_FORMAT_B8G8R8A8_UNORM_SRGB */]: "bgra8unorm-srgb",
[41 /* DXGI_FORMAT_R32_FLOAT */]: "r32float",
[49 /* DXGI_FORMAT_R8G8_UNORM */]: "rg8unorm",
[56 /* DXGI_FORMAT_R16_UNORM */]: "r16uint",
[61 /* DXGI_FORMAT_R8_UNORM */]: "r8unorm",
[24 /* DXGI_FORMAT_R10G10B10A2_UNORM */]: "rgb10a2unorm",
[11 /* DXGI_FORMAT_R16G16B16A16_UNORM */]: "rgba16uint",
[13 /* DXGI_FORMAT_R16G16B16A16_SNORM */]: "rgba16sint",
[10 /* DXGI_FORMAT_R16G16B16A16_FLOAT */]: "rgba16float",
[54 /* DXGI_FORMAT_R16_FLOAT */]: "r16float",
[34 /* DXGI_FORMAT_R16G16_FLOAT */]: "rg16float",
[16 /* DXGI_FORMAT_R32G32_FLOAT */]: "rg32float",
[2 /* DXGI_FORMAT_R32G32B32A32_FLOAT */]: "rgba32float"
};
const DDS = {
MAGIC_VALUE: 542327876,
MAGIC_SIZE: 4,
HEADER_SIZE: 124,
HEADER_DX10_SIZE: 20,
PIXEL_FORMAT_FLAGS: {
// PIXEL_FORMAT flags
// https://github.com/Microsoft/DirectXTex/blob/main/DirectXTex/DDS.h
// https://learn.microsoft.com/en-us/windows/win32/direct3ddds/dds-pixelformat
ALPHAPIXELS: 1,
ALPHA: 2,
FOURCC: 4,
RGB: 64,
RGBA: 65,
YUV: 512,
LUMINANCE: 131072,
LUMINANCEA: 131073
},
RESOURCE_MISC_TEXTURECUBE: 4,
HEADER_FIELDS: DDS_HEADER_FIELDS,
HEADER_DX10_FIELDS: DDS_DX10_FIELDS,
DXGI_FORMAT,
D3D10_RESOURCE_DIMENSION,
D3DFMT
};
const TEXTURE_FORMAT_BLOCK_SIZE = {
"bc1-rgba-unorm": 8,
"bc1-rgba-unorm-srgb": 8,
"bc2-rgba-unorm": 16,
"bc2-rgba-unorm-srgb": 16,
"bc3-rgba-unorm": 16,
"bc3-rgba-unorm-srgb": 16,
"bc4-r-unorm": 8,
"bc4-r-snorm": 8,
"bc5-rg-unorm": 16,
"bc5-rg-snorm": 16,
"bc6h-rgb-ufloat": 16,
"bc6h-rgb-float": 16,
"bc7-rgba-unorm": 16,
"bc7-rgba-unorm-srgb": 16
};
exports.D3D10_RESOURCE_DIMENSION = D3D10_RESOURCE_DIMENSION;
exports.D3DFMT = D3DFMT;
exports.DDS = DDS;
exports.DXGI_FORMAT = DXGI_FORMAT;
exports.DXGI_TO_TEXTURE_FORMAT = DXGI_TO_TEXTURE_FORMAT;
exports.FOURCC_TO_TEXTURE_FORMAT = FOURCC_TO_TEXTURE_FORMAT;
exports.TEXTURE_FORMAT_BLOCK_SIZE = TEXTURE_FORMAT_BLOCK_SIZE;
//# sourceMappingURL=const.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,319 @@
"use strict";
const DDS_HEADER_FIELDS = {
MAGIC: 0,
SIZE: 1,
FLAGS: 2,
HEIGHT: 3,
WIDTH: 4,
MIPMAP_COUNT: 7,
PIXEL_FORMAT: 19,
PF_FLAGS: 20,
FOURCC: 21,
RGB_BITCOUNT: 22,
R_BIT_MASK: 23,
G_BIT_MASK: 24,
B_BIT_MASK: 25,
A_BIT_MASK: 26
};
const DDS_DX10_FIELDS = {
DXGI_FORMAT: 0,
RESOURCE_DIMENSION: 1,
MISC_FLAG: 2,
ARRAY_SIZE: 3,
MISC_FLAGS2: 4
};
var DXGI_FORMAT = /* @__PURE__ */ ((DXGI_FORMAT2) => {
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_UNKNOWN"] = 0] = "DXGI_FORMAT_UNKNOWN";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32A32_TYPELESS"] = 1] = "DXGI_FORMAT_R32G32B32A32_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32A32_FLOAT"] = 2] = "DXGI_FORMAT_R32G32B32A32_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32A32_UINT"] = 3] = "DXGI_FORMAT_R32G32B32A32_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32A32_SINT"] = 4] = "DXGI_FORMAT_R32G32B32A32_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32_TYPELESS"] = 5] = "DXGI_FORMAT_R32G32B32_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32_FLOAT"] = 6] = "DXGI_FORMAT_R32G32B32_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32_UINT"] = 7] = "DXGI_FORMAT_R32G32B32_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32B32_SINT"] = 8] = "DXGI_FORMAT_R32G32B32_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16B16A16_TYPELESS"] = 9] = "DXGI_FORMAT_R16G16B16A16_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16B16A16_FLOAT"] = 10] = "DXGI_FORMAT_R16G16B16A16_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16B16A16_UNORM"] = 11] = "DXGI_FORMAT_R16G16B16A16_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16B16A16_UINT"] = 12] = "DXGI_FORMAT_R16G16B16A16_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16B16A16_SNORM"] = 13] = "DXGI_FORMAT_R16G16B16A16_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16B16A16_SINT"] = 14] = "DXGI_FORMAT_R16G16B16A16_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32_TYPELESS"] = 15] = "DXGI_FORMAT_R32G32_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32_FLOAT"] = 16] = "DXGI_FORMAT_R32G32_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32_UINT"] = 17] = "DXGI_FORMAT_R32G32_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G32_SINT"] = 18] = "DXGI_FORMAT_R32G32_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32G8X24_TYPELESS"] = 19] = "DXGI_FORMAT_R32G8X24_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_D32_FLOAT_S8X24_UINT"] = 20] = "DXGI_FORMAT_D32_FLOAT_S8X24_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS"] = 21] = "DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_X32_TYPELESS_G8X24_UINT"] = 22] = "DXGI_FORMAT_X32_TYPELESS_G8X24_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R10G10B10A2_TYPELESS"] = 23] = "DXGI_FORMAT_R10G10B10A2_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R10G10B10A2_UNORM"] = 24] = "DXGI_FORMAT_R10G10B10A2_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R10G10B10A2_UINT"] = 25] = "DXGI_FORMAT_R10G10B10A2_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R11G11B10_FLOAT"] = 26] = "DXGI_FORMAT_R11G11B10_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8B8A8_TYPELESS"] = 27] = "DXGI_FORMAT_R8G8B8A8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8B8A8_UNORM"] = 28] = "DXGI_FORMAT_R8G8B8A8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8B8A8_UNORM_SRGB"] = 29] = "DXGI_FORMAT_R8G8B8A8_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8B8A8_UINT"] = 30] = "DXGI_FORMAT_R8G8B8A8_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8B8A8_SNORM"] = 31] = "DXGI_FORMAT_R8G8B8A8_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8B8A8_SINT"] = 32] = "DXGI_FORMAT_R8G8B8A8_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16_TYPELESS"] = 33] = "DXGI_FORMAT_R16G16_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16_FLOAT"] = 34] = "DXGI_FORMAT_R16G16_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16_UNORM"] = 35] = "DXGI_FORMAT_R16G16_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16_UINT"] = 36] = "DXGI_FORMAT_R16G16_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16_SNORM"] = 37] = "DXGI_FORMAT_R16G16_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16G16_SINT"] = 38] = "DXGI_FORMAT_R16G16_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32_TYPELESS"] = 39] = "DXGI_FORMAT_R32_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_D32_FLOAT"] = 40] = "DXGI_FORMAT_D32_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32_FLOAT"] = 41] = "DXGI_FORMAT_R32_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32_UINT"] = 42] = "DXGI_FORMAT_R32_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R32_SINT"] = 43] = "DXGI_FORMAT_R32_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R24G8_TYPELESS"] = 44] = "DXGI_FORMAT_R24G8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_D24_UNORM_S8_UINT"] = 45] = "DXGI_FORMAT_D24_UNORM_S8_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R24_UNORM_X8_TYPELESS"] = 46] = "DXGI_FORMAT_R24_UNORM_X8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_X24_TYPELESS_G8_UINT"] = 47] = "DXGI_FORMAT_X24_TYPELESS_G8_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8_TYPELESS"] = 48] = "DXGI_FORMAT_R8G8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8_UNORM"] = 49] = "DXGI_FORMAT_R8G8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8_UINT"] = 50] = "DXGI_FORMAT_R8G8_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8_SNORM"] = 51] = "DXGI_FORMAT_R8G8_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8_SINT"] = 52] = "DXGI_FORMAT_R8G8_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16_TYPELESS"] = 53] = "DXGI_FORMAT_R16_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16_FLOAT"] = 54] = "DXGI_FORMAT_R16_FLOAT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_D16_UNORM"] = 55] = "DXGI_FORMAT_D16_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16_UNORM"] = 56] = "DXGI_FORMAT_R16_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16_UINT"] = 57] = "DXGI_FORMAT_R16_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16_SNORM"] = 58] = "DXGI_FORMAT_R16_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R16_SINT"] = 59] = "DXGI_FORMAT_R16_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8_TYPELESS"] = 60] = "DXGI_FORMAT_R8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8_UNORM"] = 61] = "DXGI_FORMAT_R8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8_UINT"] = 62] = "DXGI_FORMAT_R8_UINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8_SNORM"] = 63] = "DXGI_FORMAT_R8_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8_SINT"] = 64] = "DXGI_FORMAT_R8_SINT";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_A8_UNORM"] = 65] = "DXGI_FORMAT_A8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R1_UNORM"] = 66] = "DXGI_FORMAT_R1_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R9G9B9E5_SHAREDEXP"] = 67] = "DXGI_FORMAT_R9G9B9E5_SHAREDEXP";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R8G8_B8G8_UNORM"] = 68] = "DXGI_FORMAT_R8G8_B8G8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_G8R8_G8B8_UNORM"] = 69] = "DXGI_FORMAT_G8R8_G8B8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC1_TYPELESS"] = 70] = "DXGI_FORMAT_BC1_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC1_UNORM"] = 71] = "DXGI_FORMAT_BC1_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC1_UNORM_SRGB"] = 72] = "DXGI_FORMAT_BC1_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC2_TYPELESS"] = 73] = "DXGI_FORMAT_BC2_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC2_UNORM"] = 74] = "DXGI_FORMAT_BC2_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC2_UNORM_SRGB"] = 75] = "DXGI_FORMAT_BC2_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC3_TYPELESS"] = 76] = "DXGI_FORMAT_BC3_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC3_UNORM"] = 77] = "DXGI_FORMAT_BC3_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC3_UNORM_SRGB"] = 78] = "DXGI_FORMAT_BC3_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC4_TYPELESS"] = 79] = "DXGI_FORMAT_BC4_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC4_UNORM"] = 80] = "DXGI_FORMAT_BC4_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC4_SNORM"] = 81] = "DXGI_FORMAT_BC4_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC5_TYPELESS"] = 82] = "DXGI_FORMAT_BC5_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC5_UNORM"] = 83] = "DXGI_FORMAT_BC5_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC5_SNORM"] = 84] = "DXGI_FORMAT_BC5_SNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B5G6R5_UNORM"] = 85] = "DXGI_FORMAT_B5G6R5_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B5G5R5A1_UNORM"] = 86] = "DXGI_FORMAT_B5G5R5A1_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B8G8R8A8_UNORM"] = 87] = "DXGI_FORMAT_B8G8R8A8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B8G8R8X8_UNORM"] = 88] = "DXGI_FORMAT_B8G8R8X8_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM"] = 89] = "DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B8G8R8A8_TYPELESS"] = 90] = "DXGI_FORMAT_B8G8R8A8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B8G8R8A8_UNORM_SRGB"] = 91] = "DXGI_FORMAT_B8G8R8A8_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B8G8R8X8_TYPELESS"] = 92] = "DXGI_FORMAT_B8G8R8X8_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B8G8R8X8_UNORM_SRGB"] = 93] = "DXGI_FORMAT_B8G8R8X8_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC6H_TYPELESS"] = 94] = "DXGI_FORMAT_BC6H_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC6H_UF16"] = 95] = "DXGI_FORMAT_BC6H_UF16";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC6H_SF16"] = 96] = "DXGI_FORMAT_BC6H_SF16";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC7_TYPELESS"] = 97] = "DXGI_FORMAT_BC7_TYPELESS";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC7_UNORM"] = 98] = "DXGI_FORMAT_BC7_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_BC7_UNORM_SRGB"] = 99] = "DXGI_FORMAT_BC7_UNORM_SRGB";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_AYUV"] = 100] = "DXGI_FORMAT_AYUV";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_Y410"] = 101] = "DXGI_FORMAT_Y410";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_Y416"] = 102] = "DXGI_FORMAT_Y416";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_NV12"] = 103] = "DXGI_FORMAT_NV12";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_P010"] = 104] = "DXGI_FORMAT_P010";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_P016"] = 105] = "DXGI_FORMAT_P016";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_420_OPAQUE"] = 106] = "DXGI_FORMAT_420_OPAQUE";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_YUY2"] = 107] = "DXGI_FORMAT_YUY2";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_Y210"] = 108] = "DXGI_FORMAT_Y210";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_Y216"] = 109] = "DXGI_FORMAT_Y216";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_NV11"] = 110] = "DXGI_FORMAT_NV11";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_AI44"] = 111] = "DXGI_FORMAT_AI44";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_IA44"] = 112] = "DXGI_FORMAT_IA44";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_P8"] = 113] = "DXGI_FORMAT_P8";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_A8P8"] = 114] = "DXGI_FORMAT_A8P8";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_B4G4R4A4_UNORM"] = 115] = "DXGI_FORMAT_B4G4R4A4_UNORM";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_P208"] = 116] = "DXGI_FORMAT_P208";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_V208"] = 117] = "DXGI_FORMAT_V208";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_V408"] = 118] = "DXGI_FORMAT_V408";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE"] = 119] = "DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE"] = 120] = "DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE";
DXGI_FORMAT2[DXGI_FORMAT2["DXGI_FORMAT_FORCE_UINT"] = 121] = "DXGI_FORMAT_FORCE_UINT";
return DXGI_FORMAT2;
})(DXGI_FORMAT || {});
var D3D10_RESOURCE_DIMENSION = /* @__PURE__ */ ((D3D10_RESOURCE_DIMENSION2) => {
D3D10_RESOURCE_DIMENSION2[D3D10_RESOURCE_DIMENSION2["DDS_DIMENSION_TEXTURE1D"] = 2] = "DDS_DIMENSION_TEXTURE1D";
D3D10_RESOURCE_DIMENSION2[D3D10_RESOURCE_DIMENSION2["DDS_DIMENSION_TEXTURE2D"] = 3] = "DDS_DIMENSION_TEXTURE2D";
D3D10_RESOURCE_DIMENSION2[D3D10_RESOURCE_DIMENSION2["DDS_DIMENSION_TEXTURE3D"] = 6] = "DDS_DIMENSION_TEXTURE3D";
return D3D10_RESOURCE_DIMENSION2;
})(D3D10_RESOURCE_DIMENSION || {});
function fourCCToInt32(value) {
return value.charCodeAt(0) + (value.charCodeAt(1) << 8) + (value.charCodeAt(2) << 16) + (value.charCodeAt(3) << 24);
}
var D3DFMT = ((D3DFMT2) => {
D3DFMT2[D3DFMT2["UNKNOWN"] = 0] = "UNKNOWN";
D3DFMT2[D3DFMT2["R8G8B8"] = 20] = "R8G8B8";
D3DFMT2[D3DFMT2["A8R8G8B8"] = 21] = "A8R8G8B8";
D3DFMT2[D3DFMT2["X8R8G8B8"] = 22] = "X8R8G8B8";
D3DFMT2[D3DFMT2["R5G6B5"] = 23] = "R5G6B5";
D3DFMT2[D3DFMT2["X1R5G5B5"] = 24] = "X1R5G5B5";
D3DFMT2[D3DFMT2["A1R5G5B5"] = 25] = "A1R5G5B5";
D3DFMT2[D3DFMT2["A4R4G4B4"] = 26] = "A4R4G4B4";
D3DFMT2[D3DFMT2["R3G3B2"] = 27] = "R3G3B2";
D3DFMT2[D3DFMT2["A8"] = 28] = "A8";
D3DFMT2[D3DFMT2["A8R3G3B2"] = 29] = "A8R3G3B2";
D3DFMT2[D3DFMT2["X4R4G4B4"] = 30] = "X4R4G4B4";
D3DFMT2[D3DFMT2["A2B10G10R10"] = 31] = "A2B10G10R10";
D3DFMT2[D3DFMT2["A8B8G8R8"] = 32] = "A8B8G8R8";
D3DFMT2[D3DFMT2["X8B8G8R8"] = 33] = "X8B8G8R8";
D3DFMT2[D3DFMT2["G16R16"] = 34] = "G16R16";
D3DFMT2[D3DFMT2["A2R10G10B10"] = 35] = "A2R10G10B10";
D3DFMT2[D3DFMT2["A16B16G16R16"] = 36] = "A16B16G16R16";
D3DFMT2[D3DFMT2["A8P8"] = 40] = "A8P8";
D3DFMT2[D3DFMT2["P8"] = 41] = "P8";
D3DFMT2[D3DFMT2["L8"] = 50] = "L8";
D3DFMT2[D3DFMT2["A8L8"] = 51] = "A8L8";
D3DFMT2[D3DFMT2["A4L4"] = 52] = "A4L4";
D3DFMT2[D3DFMT2["V8U8"] = 60] = "V8U8";
D3DFMT2[D3DFMT2["L6V5U5"] = 61] = "L6V5U5";
D3DFMT2[D3DFMT2["X8L8V8U8"] = 62] = "X8L8V8U8";
D3DFMT2[D3DFMT2["Q8W8V8U8"] = 63] = "Q8W8V8U8";
D3DFMT2[D3DFMT2["V16U16"] = 64] = "V16U16";
D3DFMT2[D3DFMT2["A2W10V10U10"] = 67] = "A2W10V10U10";
D3DFMT2[D3DFMT2["Q16W16V16U16"] = 110] = "Q16W16V16U16";
D3DFMT2[D3DFMT2["R16F"] = 111] = "R16F";
D3DFMT2[D3DFMT2["G16R16F"] = 112] = "G16R16F";
D3DFMT2[D3DFMT2["A16B16G16R16F"] = 113] = "A16B16G16R16F";
D3DFMT2[D3DFMT2["R32F"] = 114] = "R32F";
D3DFMT2[D3DFMT2["G32R32F"] = 115] = "G32R32F";
D3DFMT2[D3DFMT2["A32B32G32R32F"] = 116] = "A32B32G32R32F";
D3DFMT2[D3DFMT2["UYVY"] = fourCCToInt32("UYVY")] = "UYVY";
D3DFMT2[D3DFMT2["R8G8_B8G8"] = fourCCToInt32("RGBG")] = "R8G8_B8G8";
D3DFMT2[D3DFMT2["YUY2"] = fourCCToInt32("YUY2")] = "YUY2";
D3DFMT2[D3DFMT2["D3DFMT_G8R8_G8B8"] = fourCCToInt32("GRGB")] = "D3DFMT_G8R8_G8B8";
D3DFMT2[D3DFMT2["DXT1"] = fourCCToInt32("DXT1")] = "DXT1";
D3DFMT2[D3DFMT2["DXT2"] = fourCCToInt32("DXT2")] = "DXT2";
D3DFMT2[D3DFMT2["DXT3"] = fourCCToInt32("DXT3")] = "DXT3";
D3DFMT2[D3DFMT2["DXT4"] = fourCCToInt32("DXT4")] = "DXT4";
D3DFMT2[D3DFMT2["DXT5"] = fourCCToInt32("DXT5")] = "DXT5";
D3DFMT2[D3DFMT2["ATI1"] = fourCCToInt32("ATI1")] = "ATI1";
D3DFMT2[D3DFMT2["AT1N"] = fourCCToInt32("AT1N")] = "AT1N";
D3DFMT2[D3DFMT2["ATI2"] = fourCCToInt32("ATI2")] = "ATI2";
D3DFMT2[D3DFMT2["AT2N"] = fourCCToInt32("AT2N")] = "AT2N";
D3DFMT2[D3DFMT2["BC4U"] = fourCCToInt32("BC4U")] = "BC4U";
D3DFMT2[D3DFMT2["BC4S"] = fourCCToInt32("BC4S")] = "BC4S";
D3DFMT2[D3DFMT2["BC5U"] = fourCCToInt32("BC5U")] = "BC5U";
D3DFMT2[D3DFMT2["BC5S"] = fourCCToInt32("BC5S")] = "BC5S";
D3DFMT2[D3DFMT2["DX10"] = fourCCToInt32("DX10")] = "DX10";
return D3DFMT2;
})(D3DFMT || {});
const FOURCC_TO_TEXTURE_FORMAT = {
[D3DFMT.DXT1]: "bc1-rgba-unorm",
[D3DFMT.DXT2]: "bc2-rgba-unorm",
[D3DFMT.DXT3]: "bc2-rgba-unorm",
[D3DFMT.DXT4]: "bc3-rgba-unorm",
[D3DFMT.DXT5]: "bc3-rgba-unorm",
[D3DFMT.ATI1]: "bc4-r-unorm",
[D3DFMT.BC4U]: "bc4-r-unorm",
[D3DFMT.BC4S]: "bc4-r-snorm",
[D3DFMT.ATI2]: "bc5-rg-unorm",
[D3DFMT.BC5U]: "bc5-rg-unorm",
[D3DFMT.BC5S]: "bc5-rg-snorm",
[36 /* A16B16G16R16 */]: "rgba16uint",
[110 /* Q16W16V16U16 */]: "rgba16sint",
[111 /* R16F */]: "r16float",
[112 /* G16R16F */]: "rg16float",
[113 /* A16B16G16R16F */]: "rgba16float",
[114 /* R32F */]: "r32float",
[115 /* G32R32F */]: "rg32float",
[116 /* A32B32G32R32F */]: "rgba32float"
};
const DXGI_TO_TEXTURE_FORMAT = {
[70 /* DXGI_FORMAT_BC1_TYPELESS */]: "bc1-rgba-unorm",
[71 /* DXGI_FORMAT_BC1_UNORM */]: "bc1-rgba-unorm",
[72 /* DXGI_FORMAT_BC1_UNORM_SRGB */]: "bc1-rgba-unorm-srgb",
[73 /* DXGI_FORMAT_BC2_TYPELESS */]: "bc2-rgba-unorm",
[74 /* DXGI_FORMAT_BC2_UNORM */]: "bc2-rgba-unorm",
[75 /* DXGI_FORMAT_BC2_UNORM_SRGB */]: "bc2-rgba-unorm-srgb",
[76 /* DXGI_FORMAT_BC3_TYPELESS */]: "bc3-rgba-unorm",
[77 /* DXGI_FORMAT_BC3_UNORM */]: "bc3-rgba-unorm",
[78 /* DXGI_FORMAT_BC3_UNORM_SRGB */]: "bc3-rgba-unorm-srgb",
[79 /* DXGI_FORMAT_BC4_TYPELESS */]: "bc4-r-unorm",
[80 /* DXGI_FORMAT_BC4_UNORM */]: "bc4-r-unorm",
[81 /* DXGI_FORMAT_BC4_SNORM */]: "bc4-r-snorm",
[82 /* DXGI_FORMAT_BC5_TYPELESS */]: "bc5-rg-unorm",
[83 /* DXGI_FORMAT_BC5_UNORM */]: "bc5-rg-unorm",
[84 /* DXGI_FORMAT_BC5_SNORM */]: "bc5-rg-snorm",
[94 /* DXGI_FORMAT_BC6H_TYPELESS */]: "bc6h-rgb-ufloat",
[95 /* DXGI_FORMAT_BC6H_UF16 */]: "bc6h-rgb-ufloat",
[96 /* DXGI_FORMAT_BC6H_SF16 */]: "bc6h-rgb-float",
[97 /* DXGI_FORMAT_BC7_TYPELESS */]: "bc7-rgba-unorm",
[98 /* DXGI_FORMAT_BC7_UNORM */]: "bc7-rgba-unorm",
[99 /* DXGI_FORMAT_BC7_UNORM_SRGB */]: "bc7-rgba-unorm-srgb",
[28 /* DXGI_FORMAT_R8G8B8A8_UNORM */]: "rgba8unorm",
[29 /* DXGI_FORMAT_R8G8B8A8_UNORM_SRGB */]: "rgba8unorm-srgb",
[87 /* DXGI_FORMAT_B8G8R8A8_UNORM */]: "bgra8unorm",
[91 /* DXGI_FORMAT_B8G8R8A8_UNORM_SRGB */]: "bgra8unorm-srgb",
[41 /* DXGI_FORMAT_R32_FLOAT */]: "r32float",
[49 /* DXGI_FORMAT_R8G8_UNORM */]: "rg8unorm",
[56 /* DXGI_FORMAT_R16_UNORM */]: "r16uint",
[61 /* DXGI_FORMAT_R8_UNORM */]: "r8unorm",
[24 /* DXGI_FORMAT_R10G10B10A2_UNORM */]: "rgb10a2unorm",
[11 /* DXGI_FORMAT_R16G16B16A16_UNORM */]: "rgba16uint",
[13 /* DXGI_FORMAT_R16G16B16A16_SNORM */]: "rgba16sint",
[10 /* DXGI_FORMAT_R16G16B16A16_FLOAT */]: "rgba16float",
[54 /* DXGI_FORMAT_R16_FLOAT */]: "r16float",
[34 /* DXGI_FORMAT_R16G16_FLOAT */]: "rg16float",
[16 /* DXGI_FORMAT_R32G32_FLOAT */]: "rg32float",
[2 /* DXGI_FORMAT_R32G32B32A32_FLOAT */]: "rgba32float"
};
const DDS = {
MAGIC_VALUE: 542327876,
MAGIC_SIZE: 4,
HEADER_SIZE: 124,
HEADER_DX10_SIZE: 20,
PIXEL_FORMAT_FLAGS: {
// PIXEL_FORMAT flags
// https://github.com/Microsoft/DirectXTex/blob/main/DirectXTex/DDS.h
// https://learn.microsoft.com/en-us/windows/win32/direct3ddds/dds-pixelformat
ALPHAPIXELS: 1,
ALPHA: 2,
FOURCC: 4,
RGB: 64,
RGBA: 65,
YUV: 512,
LUMINANCE: 131072,
LUMINANCEA: 131073
},
RESOURCE_MISC_TEXTURECUBE: 4,
HEADER_FIELDS: DDS_HEADER_FIELDS,
HEADER_DX10_FIELDS: DDS_DX10_FIELDS,
DXGI_FORMAT,
D3D10_RESOURCE_DIMENSION,
D3DFMT
};
const TEXTURE_FORMAT_BLOCK_SIZE = {
"bc1-rgba-unorm": 8,
"bc1-rgba-unorm-srgb": 8,
"bc2-rgba-unorm": 16,
"bc2-rgba-unorm-srgb": 16,
"bc3-rgba-unorm": 16,
"bc3-rgba-unorm-srgb": 16,
"bc4-r-unorm": 8,
"bc4-r-snorm": 8,
"bc5-rg-unorm": 16,
"bc5-rg-snorm": 16,
"bc6h-rgb-ufloat": 16,
"bc6h-rgb-float": 16,
"bc7-rgba-unorm": 16,
"bc7-rgba-unorm-srgb": 16
};
export { D3D10_RESOURCE_DIMENSION, D3DFMT, DDS, DXGI_FORMAT, DXGI_TO_TEXTURE_FORMAT, FOURCC_TO_TEXTURE_FORMAT, TEXTURE_FORMAT_BLOCK_SIZE };
//# sourceMappingURL=const.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,10 @@
'use strict';
var Extensions = require('../../extensions/Extensions.js');
var detectCompressed = require('../shared/detectCompressed.js');
var resolveCompressedTextureUrl = require('../shared/resolveCompressedTextureUrl.js');
var loadDDS = require('./loadDDS.js');
"use strict";
Extensions.extensions.add(loadDDS.loadDDS, detectCompressed.detectCompressed, resolveCompressedTextureUrl.resolveCompressedTextureUrl);
//# sourceMappingURL=init.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"init.js","sources":["../../../src/compressed-textures/dds/init.ts"],"sourcesContent":["import { extensions } from '../../extensions/Extensions';\nimport { detectCompressed } from '../shared/detectCompressed';\nimport { resolveCompressedTextureUrl } from '../shared/resolveCompressedTextureUrl';\nimport { loadDDS } from './loadDDS';\n\nextensions.add(loadDDS, detectCompressed, resolveCompressedTextureUrl);\n"],"names":["extensions","loadDDS","detectCompressed","resolveCompressedTextureUrl"],"mappings":";;;;;;;;AAKAA,qBAAW,CAAA,GAAA,CAAIC,eAAS,EAAAC,iCAAA,EAAkBC,uDAA2B,CAAA;;"}

View File

@@ -0,0 +1,8 @@
import { extensions } from '../../extensions/Extensions.mjs';
import { detectCompressed } from '../shared/detectCompressed.mjs';
import { resolveCompressedTextureUrl } from '../shared/resolveCompressedTextureUrl.mjs';
import { loadDDS } from './loadDDS.mjs';
"use strict";
extensions.add(loadDDS, detectCompressed, resolveCompressedTextureUrl);
//# sourceMappingURL=init.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"init.mjs","sources":["../../../src/compressed-textures/dds/init.ts"],"sourcesContent":["import { extensions } from '../../extensions/Extensions';\nimport { detectCompressed } from '../shared/detectCompressed';\nimport { resolveCompressedTextureUrl } from '../shared/resolveCompressedTextureUrl';\nimport { loadDDS } from './loadDDS';\n\nextensions.add(loadDDS, detectCompressed, resolveCompressedTextureUrl);\n"],"names":[],"mappings":";;;;;;AAKA,UAAW,CAAA,GAAA,CAAI,OAAS,EAAA,gBAAA,EAAkB,2BAA2B,CAAA"}

View File

@@ -0,0 +1,17 @@
import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser';
import { ExtensionType } from '../../extensions/Extensions';
import type { Loader } from '../../assets/loader/Loader';
import type { ResolvedAsset } from '../../assets/types';
import type { Texture } from '../../rendering/renderers/shared/texture/Texture';
/** Loads KTX textures! */
export declare const loadDDS: {
extension: {
type: ExtensionType.LoadParser;
priority: LoaderParserPriority;
name: string;
};
name: string;
test(url: string): boolean;
load<T>(url: string, _asset: ResolvedAsset, loader: Loader): Promise<Texture | Texture[]>;
unload(texture: Texture | Texture[]): void;
};

View File

@@ -0,0 +1,40 @@
'use strict';
var LoaderParser = require('../../assets/loader/parsers/LoaderParser.js');
var createTexture = require('../../assets/loader/parsers/textures/utils/createTexture.js');
var checkExtension = require('../../assets/utils/checkExtension.js');
var Extensions = require('../../extensions/Extensions.js');
var CompressedSource = require('../../rendering/renderers/shared/texture/sources/CompressedSource.js');
var getSupportedTextureFormats = require('../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats.js');
var parseDDS = require('./parseDDS.js');
"use strict";
const loadDDS = {
extension: {
type: Extensions.ExtensionType.LoadParser,
priority: LoaderParser.LoaderParserPriority.High,
name: "loadDDS"
},
name: "loadDDS",
test(url) {
return checkExtension.checkExtension(url, [".dds"]);
},
async load(url, _asset, loader) {
const supportedTextures = await getSupportedTextureFormats.getSupportedTextureFormats();
const ddsResponse = await fetch(url);
const ddsArrayBuffer = await ddsResponse.arrayBuffer();
const textureOptions = parseDDS.parseDDS(ddsArrayBuffer, supportedTextures);
const compressedTextureSource = new CompressedSource.CompressedSource(textureOptions);
return createTexture.createTexture(compressedTextureSource, loader, url);
},
unload(texture) {
if (Array.isArray(texture)) {
texture.forEach((t) => t.destroy(true));
} else {
texture.destroy(true);
}
}
};
exports.loadDDS = loadDDS;
//# sourceMappingURL=loadDDS.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"loadDDS.js","sources":["../../../src/compressed-textures/dds/loadDDS.ts"],"sourcesContent":["import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser';\nimport { createTexture } from '../../assets/loader/parsers/textures/utils/createTexture';\nimport { checkExtension } from '../../assets/utils/checkExtension';\nimport { ExtensionType } from '../../extensions/Extensions';\nimport { CompressedSource } from '../../rendering/renderers/shared/texture/sources/CompressedSource';\nimport { getSupportedTextureFormats } from '../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats';\nimport { parseDDS } from './parseDDS';\n\nimport type { Loader } from '../../assets/loader/Loader';\nimport type { LoaderParser } from '../../assets/loader/parsers/LoaderParser';\nimport type { ResolvedAsset } from '../../assets/types';\nimport type { TextureSourceOptions } from '../../rendering/renderers/shared/texture/sources/TextureSource';\nimport type { Texture } from '../../rendering/renderers/shared/texture/Texture';\n\n/** Loads KTX textures! */\nexport const loadDDS = {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.High,\n name: 'loadDDS',\n },\n\n name: 'loadDDS',\n\n test(url: string): boolean\n {\n return checkExtension(url, ['.dds']);\n },\n\n async load(url: string, _asset: ResolvedAsset, loader: Loader): Promise<Texture | Texture[]>\n {\n const supportedTextures = await getSupportedTextureFormats();\n\n const ddsResponse = await fetch(url);\n\n const ddsArrayBuffer = await ddsResponse.arrayBuffer();\n\n const textureOptions = parseDDS(ddsArrayBuffer, supportedTextures);\n\n const compressedTextureSource = new CompressedSource(textureOptions);\n\n return createTexture(compressedTextureSource, loader, url);\n },\n\n unload(texture: Texture | Texture[]): void\n {\n if (Array.isArray(texture))\n {\n texture.forEach((t) => t.destroy(true));\n }\n else\n {\n texture.destroy(true);\n }\n }\n\n} satisfies LoaderParser<Texture | Texture[], TextureSourceOptions>;\n\n"],"names":["ExtensionType","LoaderParserPriority","checkExtension","getSupportedTextureFormats","parseDDS","CompressedSource","createTexture"],"mappings":";;;;;;;;;;;AAeO,MAAM,OAAU,GAAA;AAAA,EACnB,SAAW,EAAA;AAAA,IACP,MAAMA,wBAAc,CAAA,UAAA;AAAA,IACpB,UAAUC,iCAAqB,CAAA,IAAA;AAAA,IAC/B,IAAM,EAAA,SAAA;AAAA,GACV;AAAA,EAEA,IAAM,EAAA,SAAA;AAAA,EAEN,KAAK,GACL,EAAA;AACI,IAAA,OAAOC,6BAAe,CAAA,GAAA,EAAK,CAAC,MAAM,CAAC,CAAA,CAAA;AAAA,GACvC;AAAA,EAEA,MAAM,IAAA,CAAK,GAAa,EAAA,MAAA,EAAuB,MAC/C,EAAA;AACI,IAAM,MAAA,iBAAA,GAAoB,MAAMC,qDAA2B,EAAA,CAAA;AAE3D,IAAM,MAAA,WAAA,GAAc,MAAM,KAAA,CAAM,GAAG,CAAA,CAAA;AAEnC,IAAM,MAAA,cAAA,GAAiB,MAAM,WAAA,CAAY,WAAY,EAAA,CAAA;AAErD,IAAM,MAAA,cAAA,GAAiBC,iBAAS,CAAA,cAAA,EAAgB,iBAAiB,CAAA,CAAA;AAEjE,IAAM,MAAA,uBAAA,GAA0B,IAAIC,iCAAA,CAAiB,cAAc,CAAA,CAAA;AAEnE,IAAO,OAAAC,2BAAA,CAAc,uBAAyB,EAAA,MAAA,EAAQ,GAAG,CAAA,CAAA;AAAA,GAC7D;AAAA,EAEA,OAAO,OACP,EAAA;AACI,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,OAAO,CACzB,EAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,CAAC,CAAA,KAAM,CAAE,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA;AAAA,KAG1C,MAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,KACxB;AAAA,GACJ;AAEJ;;;;"}

View File

@@ -0,0 +1,38 @@
import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser.mjs';
import { createTexture } from '../../assets/loader/parsers/textures/utils/createTexture.mjs';
import { checkExtension } from '../../assets/utils/checkExtension.mjs';
import { ExtensionType } from '../../extensions/Extensions.mjs';
import { CompressedSource } from '../../rendering/renderers/shared/texture/sources/CompressedSource.mjs';
import { getSupportedTextureFormats } from '../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats.mjs';
import { parseDDS } from './parseDDS.mjs';
"use strict";
const loadDDS = {
extension: {
type: ExtensionType.LoadParser,
priority: LoaderParserPriority.High,
name: "loadDDS"
},
name: "loadDDS",
test(url) {
return checkExtension(url, [".dds"]);
},
async load(url, _asset, loader) {
const supportedTextures = await getSupportedTextureFormats();
const ddsResponse = await fetch(url);
const ddsArrayBuffer = await ddsResponse.arrayBuffer();
const textureOptions = parseDDS(ddsArrayBuffer, supportedTextures);
const compressedTextureSource = new CompressedSource(textureOptions);
return createTexture(compressedTextureSource, loader, url);
},
unload(texture) {
if (Array.isArray(texture)) {
texture.forEach((t) => t.destroy(true));
} else {
texture.destroy(true);
}
}
};
export { loadDDS };
//# sourceMappingURL=loadDDS.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"loadDDS.mjs","sources":["../../../src/compressed-textures/dds/loadDDS.ts"],"sourcesContent":["import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser';\nimport { createTexture } from '../../assets/loader/parsers/textures/utils/createTexture';\nimport { checkExtension } from '../../assets/utils/checkExtension';\nimport { ExtensionType } from '../../extensions/Extensions';\nimport { CompressedSource } from '../../rendering/renderers/shared/texture/sources/CompressedSource';\nimport { getSupportedTextureFormats } from '../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats';\nimport { parseDDS } from './parseDDS';\n\nimport type { Loader } from '../../assets/loader/Loader';\nimport type { LoaderParser } from '../../assets/loader/parsers/LoaderParser';\nimport type { ResolvedAsset } from '../../assets/types';\nimport type { TextureSourceOptions } from '../../rendering/renderers/shared/texture/sources/TextureSource';\nimport type { Texture } from '../../rendering/renderers/shared/texture/Texture';\n\n/** Loads KTX textures! */\nexport const loadDDS = {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.High,\n name: 'loadDDS',\n },\n\n name: 'loadDDS',\n\n test(url: string): boolean\n {\n return checkExtension(url, ['.dds']);\n },\n\n async load(url: string, _asset: ResolvedAsset, loader: Loader): Promise<Texture | Texture[]>\n {\n const supportedTextures = await getSupportedTextureFormats();\n\n const ddsResponse = await fetch(url);\n\n const ddsArrayBuffer = await ddsResponse.arrayBuffer();\n\n const textureOptions = parseDDS(ddsArrayBuffer, supportedTextures);\n\n const compressedTextureSource = new CompressedSource(textureOptions);\n\n return createTexture(compressedTextureSource, loader, url);\n },\n\n unload(texture: Texture | Texture[]): void\n {\n if (Array.isArray(texture))\n {\n texture.forEach((t) => t.destroy(true));\n }\n else\n {\n texture.destroy(true);\n }\n }\n\n} satisfies LoaderParser<Texture | Texture[], TextureSourceOptions>;\n\n"],"names":[],"mappings":";;;;;;;;;AAeO,MAAM,OAAU,GAAA;AAAA,EACnB,SAAW,EAAA;AAAA,IACP,MAAM,aAAc,CAAA,UAAA;AAAA,IACpB,UAAU,oBAAqB,CAAA,IAAA;AAAA,IAC/B,IAAM,EAAA,SAAA;AAAA,GACV;AAAA,EAEA,IAAM,EAAA,SAAA;AAAA,EAEN,KAAK,GACL,EAAA;AACI,IAAA,OAAO,cAAe,CAAA,GAAA,EAAK,CAAC,MAAM,CAAC,CAAA,CAAA;AAAA,GACvC;AAAA,EAEA,MAAM,IAAA,CAAK,GAAa,EAAA,MAAA,EAAuB,MAC/C,EAAA;AACI,IAAM,MAAA,iBAAA,GAAoB,MAAM,0BAA2B,EAAA,CAAA;AAE3D,IAAM,MAAA,WAAA,GAAc,MAAM,KAAA,CAAM,GAAG,CAAA,CAAA;AAEnC,IAAM,MAAA,cAAA,GAAiB,MAAM,WAAA,CAAY,WAAY,EAAA,CAAA;AAErD,IAAM,MAAA,cAAA,GAAiB,QAAS,CAAA,cAAA,EAAgB,iBAAiB,CAAA,CAAA;AAEjE,IAAM,MAAA,uBAAA,GAA0B,IAAI,gBAAA,CAAiB,cAAc,CAAA,CAAA;AAEnE,IAAO,OAAA,aAAA,CAAc,uBAAyB,EAAA,MAAA,EAAQ,GAAG,CAAA,CAAA;AAAA,GAC7D;AAAA,EAEA,OAAO,OACP,EAAA;AACI,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,OAAO,CACzB,EAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,CAAC,CAAA,KAAM,CAAE,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA;AAAA,KAG1C,MAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,KACxB;AAAA,GACJ;AAEJ;;;;"}

View File

@@ -0,0 +1,3 @@
import type { TEXTURE_FORMATS } from '../../rendering/renderers/shared/texture/const';
import type { TextureSourceOptions } from '../../rendering/renderers/shared/texture/sources/TextureSource';
export declare function parseDDS(arrayBuffer: ArrayBuffer, supportedFormats: TEXTURE_FORMATS[]): TextureSourceOptions<Uint8Array[]>;

View File

@@ -0,0 +1,172 @@
'use strict';
var _const = require('./const.js');
"use strict";
function parseDDS(arrayBuffer, supportedFormats) {
const {
format,
fourCC,
width,
height,
dataOffset,
mipmapCount
} = parseDDSHeader(arrayBuffer);
if (!supportedFormats.includes(format)) {
throw new Error(`Unsupported texture format: ${fourCC} ${format}, supported: ${supportedFormats}`);
}
if (mipmapCount <= 1) {
return {
format,
width,
height,
resource: [new Uint8Array(arrayBuffer, dataOffset)],
alphaMode: "no-premultiply-alpha"
};
}
const levelBuffers = getMipmapLevelBuffers(format, width, height, dataOffset, mipmapCount, arrayBuffer);
const textureOptions = {
format,
width,
height,
resource: levelBuffers,
alphaMode: "no-premultiply-alpha"
};
return textureOptions;
}
function getMipmapLevelBuffers(format, width, height, dataOffset, mipmapCount, arrayBuffer) {
const levelBuffers = [];
const blockBytes = _const.TEXTURE_FORMAT_BLOCK_SIZE[format];
let mipWidth = width;
let mipHeight = height;
let offset = dataOffset;
for (let level = 0; level < mipmapCount; ++level) {
const byteLength = blockBytes ? Math.max(4, mipWidth) / 4 * Math.max(4, mipHeight) / 4 * blockBytes : mipWidth * mipHeight * 4;
const levelBuffer = new Uint8Array(arrayBuffer, offset, byteLength);
levelBuffers.push(levelBuffer);
offset += byteLength;
mipWidth = Math.max(mipWidth >> 1, 1);
mipHeight = Math.max(mipHeight >> 1, 1);
}
return levelBuffers;
}
function parseDDSHeader(buffer) {
const header = new Uint32Array(buffer, 0, _const.DDS.HEADER_SIZE / Uint32Array.BYTES_PER_ELEMENT);
if (header[_const.DDS.HEADER_FIELDS.MAGIC] !== _const.DDS.MAGIC_VALUE) {
throw new Error("Invalid magic number in DDS header");
}
const height = header[_const.DDS.HEADER_FIELDS.HEIGHT];
const width = header[_const.DDS.HEADER_FIELDS.WIDTH];
const mipmapCount = Math.max(1, header[_const.DDS.HEADER_FIELDS.MIPMAP_COUNT]);
const flags = header[_const.DDS.HEADER_FIELDS.PF_FLAGS];
const fourCC = header[_const.DDS.HEADER_FIELDS.FOURCC];
const format = getTextureFormat(header, flags, fourCC, buffer);
const dataOffset = _const.DDS.MAGIC_SIZE + _const.DDS.HEADER_SIZE + (fourCC === _const.DDS.D3DFMT.DX10 ? _const.DDS.HEADER_DX10_SIZE : 0);
return {
format,
fourCC,
width,
height,
dataOffset,
mipmapCount
};
}
function getTextureFormat(header, flags, fourCC, buffer) {
if (flags & _const.DDS.PIXEL_FORMAT_FLAGS.FOURCC) {
if (fourCC === _const.DDS.D3DFMT.DX10) {
const dx10Header = new Uint32Array(
buffer,
_const.DDS.MAGIC_SIZE + _const.DDS.HEADER_SIZE,
// there is a 20-byte DDS_HEADER_DX10 after DDS_HEADER
_const.DDS.HEADER_DX10_SIZE / Uint32Array.BYTES_PER_ELEMENT
);
const miscFlag = dx10Header[_const.DDS.HEADER_DX10_FIELDS.MISC_FLAG];
if (miscFlag === _const.DDS.RESOURCE_MISC_TEXTURECUBE) {
throw new Error("DDSParser does not support cubemap textures");
}
const resourceDimension = dx10Header[_const.DDS.HEADER_DX10_FIELDS.RESOURCE_DIMENSION];
if (resourceDimension === _const.DDS.D3D10_RESOURCE_DIMENSION.DDS_DIMENSION_TEXTURE3D) {
throw new Error("DDSParser does not supported 3D texture data");
}
const dxgiFormat = dx10Header[_const.DDS.HEADER_DX10_FIELDS.DXGI_FORMAT];
if (dxgiFormat in _const.DXGI_TO_TEXTURE_FORMAT) {
return _const.DXGI_TO_TEXTURE_FORMAT[dxgiFormat];
}
throw new Error(`DDSParser cannot parse texture data with DXGI format ${dxgiFormat}`);
}
if (fourCC in _const.FOURCC_TO_TEXTURE_FORMAT) {
return _const.FOURCC_TO_TEXTURE_FORMAT[fourCC];
}
throw new Error(`DDSParser cannot parse texture data with fourCC format ${fourCC}`);
}
if (flags & _const.DDS.PIXEL_FORMAT_FLAGS.RGB || flags & _const.DDS.PIXEL_FORMAT_FLAGS.RGBA) {
return getUncompressedTextureFormat(header);
}
if (flags & _const.DDS.PIXEL_FORMAT_FLAGS.YUV) {
throw new Error("DDSParser does not supported YUV uncompressed texture data.");
}
if (flags & _const.DDS.PIXEL_FORMAT_FLAGS.LUMINANCE || flags & _const.DDS.PIXEL_FORMAT_FLAGS.LUMINANCEA) {
throw new Error("DDSParser does not support single-channel (lumninance) texture data!");
}
if (flags & _const.DDS.PIXEL_FORMAT_FLAGS.ALPHA || flags & _const.DDS.PIXEL_FORMAT_FLAGS.ALPHAPIXELS) {
throw new Error("DDSParser does not support single-channel (alpha) texture data!");
}
throw new Error("DDSParser failed to load a texture file due to an unknown reason!");
}
function getUncompressedTextureFormat(header) {
const bitCount = header[_const.DDS.HEADER_FIELDS.RGB_BITCOUNT];
const rBitMask = header[_const.DDS.HEADER_FIELDS.R_BIT_MASK];
const gBitMask = header[_const.DDS.HEADER_FIELDS.G_BIT_MASK];
const bBitMask = header[_const.DDS.HEADER_FIELDS.B_BIT_MASK];
const aBitMask = header[_const.DDS.HEADER_FIELDS.A_BIT_MASK];
switch (bitCount) {
case 32:
if (rBitMask === 255 && gBitMask === 65280 && bBitMask === 16711680 && aBitMask === 4278190080) {
return _const.DXGI_TO_TEXTURE_FORMAT[_const.DDS.DXGI_FORMAT.DXGI_FORMAT_R8G8B8A8_UNORM];
}
if (rBitMask === 16711680 && gBitMask === 65280 && bBitMask === 255 && aBitMask === 4278190080) {
return _const.DXGI_TO_TEXTURE_FORMAT[_const.DDS.DXGI_FORMAT.DXGI_FORMAT_B8G8R8A8_UNORM];
}
if (rBitMask === 1072693248 && gBitMask === 1047552 && bBitMask === 1023 && aBitMask === 3221225472) {
return _const.DXGI_TO_TEXTURE_FORMAT[_const.DDS.DXGI_FORMAT.DXGI_FORMAT_R10G10B10A2_UNORM];
}
if (rBitMask === 65535 && gBitMask === 4294901760 && bBitMask === 0 && aBitMask === 0) {
return _const.DXGI_TO_TEXTURE_FORMAT[_const.DDS.DXGI_FORMAT.DXGI_FORMAT_R16G16_UNORM];
}
if (rBitMask === 4294967295 && gBitMask === 0 && bBitMask === 0 && aBitMask === 0) {
return _const.DXGI_TO_TEXTURE_FORMAT[_const.DDS.DXGI_FORMAT.DXGI_FORMAT_R32_FLOAT];
}
break;
case 24:
if (rBitMask === 16711680 && gBitMask === 65280 && bBitMask === 255 && aBitMask === 32768) {
}
break;
case 16:
if (rBitMask === 31744 && gBitMask === 992 && bBitMask === 31 && aBitMask === 32768) {
return _const.DXGI_TO_TEXTURE_FORMAT[_const.DDS.DXGI_FORMAT.DXGI_FORMAT_B5G5R5A1_UNORM];
}
if (rBitMask === 63488 && gBitMask === 2016 && bBitMask === 31 && aBitMask === 0) {
return _const.DXGI_TO_TEXTURE_FORMAT[_const.DDS.DXGI_FORMAT.DXGI_FORMAT_B5G6R5_UNORM];
}
if (rBitMask === 3840 && gBitMask === 240 && bBitMask === 15 && aBitMask === 61440) {
return _const.DXGI_TO_TEXTURE_FORMAT[_const.DDS.DXGI_FORMAT.DXGI_FORMAT_B4G4R4A4_UNORM];
}
if (rBitMask === 255 && gBitMask === 0 && bBitMask === 0 && aBitMask === 65280) {
return _const.DXGI_TO_TEXTURE_FORMAT[_const.DDS.DXGI_FORMAT.DXGI_FORMAT_R8G8_UNORM];
}
if (rBitMask === 65535 && gBitMask === 0 && bBitMask === 0 && aBitMask === 0) {
return _const.DXGI_TO_TEXTURE_FORMAT[_const.DDS.DXGI_FORMAT.DXGI_FORMAT_R16_UNORM];
}
break;
case 8:
if (rBitMask === 255 && gBitMask === 0 && bBitMask === 0 && aBitMask === 0) {
return _const.DXGI_TO_TEXTURE_FORMAT[_const.DDS.DXGI_FORMAT.DXGI_FORMAT_R8_UNORM];
}
break;
}
throw new Error(`DDSParser does not support uncompressed texture with configuration:
bitCount = ${bitCount}, rBitMask = ${rBitMask}, gBitMask = ${gBitMask}, aBitMask = ${aBitMask}`);
}
exports.parseDDS = parseDDS;
//# sourceMappingURL=parseDDS.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,170 @@
import { TEXTURE_FORMAT_BLOCK_SIZE, DDS, DXGI_TO_TEXTURE_FORMAT, FOURCC_TO_TEXTURE_FORMAT } from './const.mjs';
"use strict";
function parseDDS(arrayBuffer, supportedFormats) {
const {
format,
fourCC,
width,
height,
dataOffset,
mipmapCount
} = parseDDSHeader(arrayBuffer);
if (!supportedFormats.includes(format)) {
throw new Error(`Unsupported texture format: ${fourCC} ${format}, supported: ${supportedFormats}`);
}
if (mipmapCount <= 1) {
return {
format,
width,
height,
resource: [new Uint8Array(arrayBuffer, dataOffset)],
alphaMode: "no-premultiply-alpha"
};
}
const levelBuffers = getMipmapLevelBuffers(format, width, height, dataOffset, mipmapCount, arrayBuffer);
const textureOptions = {
format,
width,
height,
resource: levelBuffers,
alphaMode: "no-premultiply-alpha"
};
return textureOptions;
}
function getMipmapLevelBuffers(format, width, height, dataOffset, mipmapCount, arrayBuffer) {
const levelBuffers = [];
const blockBytes = TEXTURE_FORMAT_BLOCK_SIZE[format];
let mipWidth = width;
let mipHeight = height;
let offset = dataOffset;
for (let level = 0; level < mipmapCount; ++level) {
const byteLength = blockBytes ? Math.max(4, mipWidth) / 4 * Math.max(4, mipHeight) / 4 * blockBytes : mipWidth * mipHeight * 4;
const levelBuffer = new Uint8Array(arrayBuffer, offset, byteLength);
levelBuffers.push(levelBuffer);
offset += byteLength;
mipWidth = Math.max(mipWidth >> 1, 1);
mipHeight = Math.max(mipHeight >> 1, 1);
}
return levelBuffers;
}
function parseDDSHeader(buffer) {
const header = new Uint32Array(buffer, 0, DDS.HEADER_SIZE / Uint32Array.BYTES_PER_ELEMENT);
if (header[DDS.HEADER_FIELDS.MAGIC] !== DDS.MAGIC_VALUE) {
throw new Error("Invalid magic number in DDS header");
}
const height = header[DDS.HEADER_FIELDS.HEIGHT];
const width = header[DDS.HEADER_FIELDS.WIDTH];
const mipmapCount = Math.max(1, header[DDS.HEADER_FIELDS.MIPMAP_COUNT]);
const flags = header[DDS.HEADER_FIELDS.PF_FLAGS];
const fourCC = header[DDS.HEADER_FIELDS.FOURCC];
const format = getTextureFormat(header, flags, fourCC, buffer);
const dataOffset = DDS.MAGIC_SIZE + DDS.HEADER_SIZE + (fourCC === DDS.D3DFMT.DX10 ? DDS.HEADER_DX10_SIZE : 0);
return {
format,
fourCC,
width,
height,
dataOffset,
mipmapCount
};
}
function getTextureFormat(header, flags, fourCC, buffer) {
if (flags & DDS.PIXEL_FORMAT_FLAGS.FOURCC) {
if (fourCC === DDS.D3DFMT.DX10) {
const dx10Header = new Uint32Array(
buffer,
DDS.MAGIC_SIZE + DDS.HEADER_SIZE,
// there is a 20-byte DDS_HEADER_DX10 after DDS_HEADER
DDS.HEADER_DX10_SIZE / Uint32Array.BYTES_PER_ELEMENT
);
const miscFlag = dx10Header[DDS.HEADER_DX10_FIELDS.MISC_FLAG];
if (miscFlag === DDS.RESOURCE_MISC_TEXTURECUBE) {
throw new Error("DDSParser does not support cubemap textures");
}
const resourceDimension = dx10Header[DDS.HEADER_DX10_FIELDS.RESOURCE_DIMENSION];
if (resourceDimension === DDS.D3D10_RESOURCE_DIMENSION.DDS_DIMENSION_TEXTURE3D) {
throw new Error("DDSParser does not supported 3D texture data");
}
const dxgiFormat = dx10Header[DDS.HEADER_DX10_FIELDS.DXGI_FORMAT];
if (dxgiFormat in DXGI_TO_TEXTURE_FORMAT) {
return DXGI_TO_TEXTURE_FORMAT[dxgiFormat];
}
throw new Error(`DDSParser cannot parse texture data with DXGI format ${dxgiFormat}`);
}
if (fourCC in FOURCC_TO_TEXTURE_FORMAT) {
return FOURCC_TO_TEXTURE_FORMAT[fourCC];
}
throw new Error(`DDSParser cannot parse texture data with fourCC format ${fourCC}`);
}
if (flags & DDS.PIXEL_FORMAT_FLAGS.RGB || flags & DDS.PIXEL_FORMAT_FLAGS.RGBA) {
return getUncompressedTextureFormat(header);
}
if (flags & DDS.PIXEL_FORMAT_FLAGS.YUV) {
throw new Error("DDSParser does not supported YUV uncompressed texture data.");
}
if (flags & DDS.PIXEL_FORMAT_FLAGS.LUMINANCE || flags & DDS.PIXEL_FORMAT_FLAGS.LUMINANCEA) {
throw new Error("DDSParser does not support single-channel (lumninance) texture data!");
}
if (flags & DDS.PIXEL_FORMAT_FLAGS.ALPHA || flags & DDS.PIXEL_FORMAT_FLAGS.ALPHAPIXELS) {
throw new Error("DDSParser does not support single-channel (alpha) texture data!");
}
throw new Error("DDSParser failed to load a texture file due to an unknown reason!");
}
function getUncompressedTextureFormat(header) {
const bitCount = header[DDS.HEADER_FIELDS.RGB_BITCOUNT];
const rBitMask = header[DDS.HEADER_FIELDS.R_BIT_MASK];
const gBitMask = header[DDS.HEADER_FIELDS.G_BIT_MASK];
const bBitMask = header[DDS.HEADER_FIELDS.B_BIT_MASK];
const aBitMask = header[DDS.HEADER_FIELDS.A_BIT_MASK];
switch (bitCount) {
case 32:
if (rBitMask === 255 && gBitMask === 65280 && bBitMask === 16711680 && aBitMask === 4278190080) {
return DXGI_TO_TEXTURE_FORMAT[DDS.DXGI_FORMAT.DXGI_FORMAT_R8G8B8A8_UNORM];
}
if (rBitMask === 16711680 && gBitMask === 65280 && bBitMask === 255 && aBitMask === 4278190080) {
return DXGI_TO_TEXTURE_FORMAT[DDS.DXGI_FORMAT.DXGI_FORMAT_B8G8R8A8_UNORM];
}
if (rBitMask === 1072693248 && gBitMask === 1047552 && bBitMask === 1023 && aBitMask === 3221225472) {
return DXGI_TO_TEXTURE_FORMAT[DDS.DXGI_FORMAT.DXGI_FORMAT_R10G10B10A2_UNORM];
}
if (rBitMask === 65535 && gBitMask === 4294901760 && bBitMask === 0 && aBitMask === 0) {
return DXGI_TO_TEXTURE_FORMAT[DDS.DXGI_FORMAT.DXGI_FORMAT_R16G16_UNORM];
}
if (rBitMask === 4294967295 && gBitMask === 0 && bBitMask === 0 && aBitMask === 0) {
return DXGI_TO_TEXTURE_FORMAT[DDS.DXGI_FORMAT.DXGI_FORMAT_R32_FLOAT];
}
break;
case 24:
if (rBitMask === 16711680 && gBitMask === 65280 && bBitMask === 255 && aBitMask === 32768) {
}
break;
case 16:
if (rBitMask === 31744 && gBitMask === 992 && bBitMask === 31 && aBitMask === 32768) {
return DXGI_TO_TEXTURE_FORMAT[DDS.DXGI_FORMAT.DXGI_FORMAT_B5G5R5A1_UNORM];
}
if (rBitMask === 63488 && gBitMask === 2016 && bBitMask === 31 && aBitMask === 0) {
return DXGI_TO_TEXTURE_FORMAT[DDS.DXGI_FORMAT.DXGI_FORMAT_B5G6R5_UNORM];
}
if (rBitMask === 3840 && gBitMask === 240 && bBitMask === 15 && aBitMask === 61440) {
return DXGI_TO_TEXTURE_FORMAT[DDS.DXGI_FORMAT.DXGI_FORMAT_B4G4R4A4_UNORM];
}
if (rBitMask === 255 && gBitMask === 0 && bBitMask === 0 && aBitMask === 65280) {
return DXGI_TO_TEXTURE_FORMAT[DDS.DXGI_FORMAT.DXGI_FORMAT_R8G8_UNORM];
}
if (rBitMask === 65535 && gBitMask === 0 && bBitMask === 0 && aBitMask === 0) {
return DXGI_TO_TEXTURE_FORMAT[DDS.DXGI_FORMAT.DXGI_FORMAT_R16_UNORM];
}
break;
case 8:
if (rBitMask === 255 && gBitMask === 0 && bBitMask === 0 && aBitMask === 0) {
return DXGI_TO_TEXTURE_FORMAT[DDS.DXGI_FORMAT.DXGI_FORMAT_R8_UNORM];
}
break;
}
throw new Error(`DDSParser does not support uncompressed texture with configuration:
bitCount = ${bitCount}, rBitMask = ${rBitMask}, gBitMask = ${gBitMask}, aBitMask = ${aBitMask}`);
}
export { parseDDS };
//# sourceMappingURL=parseDDS.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,25 @@
export * from './basis/detectBasis';
export * from './basis/loadBasis';
export * from './basis/types';
export * from './basis/utils/createLevelBuffers';
export * from './basis/utils/gpuFormatToBasisTranscoderFormat';
export * from './basis/utils/setBasisTranscoderPath';
export * from './basis/worker/loadBasisOnWorker';
export * from './dds/const';
export * from './dds/loadDDS';
export * from './dds/parseDDS';
export * from './ktx/loadKTX';
export * from './ktx/parseKTX';
export * from './ktx2/const';
export * from './ktx2/loadKTX2';
export * from './ktx2/types';
export * from './ktx2/utils/convertFormatIfRequired';
export * from './ktx2/utils/createLevelBuffersFromKTX';
export * from './ktx2/utils/getTextureFormatFromKTXTexture';
export * from './ktx2/utils/glFormatToGPUFormat';
export * from './ktx2/utils/gpuFormatToKTXBasisTranscoderFormat';
export * from './ktx2/utils/setKTXTranscoderPath';
export * from './ktx2/utils/vkFormatToGPUFormat';
export * from './ktx2/worker/loadKTX2onWorker';
export * from './shared/detectCompressed';
export * from './shared/resolveCompressedTextureUrl';

64
node_modules/pixi.js/lib/compressed-textures/index.js generated vendored Normal file
View File

@@ -0,0 +1,64 @@
'use strict';
var detectBasis = require('./basis/detectBasis.js');
var loadBasis = require('./basis/loadBasis.js');
require('./basis/types.js');
var createLevelBuffers = require('./basis/utils/createLevelBuffers.js');
var gpuFormatToBasisTranscoderFormat = require('./basis/utils/gpuFormatToBasisTranscoderFormat.js');
var setBasisTranscoderPath = require('./basis/utils/setBasisTranscoderPath.js');
var loadBasisOnWorker = require('./basis/worker/loadBasisOnWorker.js');
var _const = require('./dds/const.js');
var loadDDS = require('./dds/loadDDS.js');
var parseDDS = require('./dds/parseDDS.js');
var loadKTX = require('./ktx/loadKTX.js');
var parseKTX = require('./ktx/parseKTX.js');
var _const$1 = require('./ktx2/const.js');
var loadKTX2 = require('./ktx2/loadKTX2.js');
require('./ktx2/types.js');
var convertFormatIfRequired = require('./ktx2/utils/convertFormatIfRequired.js');
var createLevelBuffersFromKTX = require('./ktx2/utils/createLevelBuffersFromKTX.js');
var getTextureFormatFromKTXTexture = require('./ktx2/utils/getTextureFormatFromKTXTexture.js');
var glFormatToGPUFormat = require('./ktx2/utils/glFormatToGPUFormat.js');
var gpuFormatToKTXBasisTranscoderFormat = require('./ktx2/utils/gpuFormatToKTXBasisTranscoderFormat.js');
var setKTXTranscoderPath = require('./ktx2/utils/setKTXTranscoderPath.js');
var vkFormatToGPUFormat = require('./ktx2/utils/vkFormatToGPUFormat.js');
var loadKTX2onWorker = require('./ktx2/worker/loadKTX2onWorker.js');
var detectCompressed = require('./shared/detectCompressed.js');
var resolveCompressedTextureUrl = require('./shared/resolveCompressedTextureUrl.js');
"use strict";
exports.detectBasis = detectBasis.detectBasis;
exports.loadBasis = loadBasis.loadBasis;
exports.createLevelBuffers = createLevelBuffers.createLevelBuffers;
exports.gpuFormatToBasisTranscoderFormat = gpuFormatToBasisTranscoderFormat.gpuFormatToBasisTranscoderFormat;
exports.basisTranscoderUrls = setBasisTranscoderPath.basisTranscoderUrls;
exports.setBasisTranscoderPath = setBasisTranscoderPath.setBasisTranscoderPath;
exports.loadBasisOnWorker = loadBasisOnWorker.loadBasisOnWorker;
exports.D3D10_RESOURCE_DIMENSION = _const.D3D10_RESOURCE_DIMENSION;
exports.D3DFMT = _const.D3DFMT;
exports.DDS = _const.DDS;
exports.DXGI_FORMAT = _const.DXGI_FORMAT;
exports.DXGI_TO_TEXTURE_FORMAT = _const.DXGI_TO_TEXTURE_FORMAT;
exports.FOURCC_TO_TEXTURE_FORMAT = _const.FOURCC_TO_TEXTURE_FORMAT;
exports.TEXTURE_FORMAT_BLOCK_SIZE = _const.TEXTURE_FORMAT_BLOCK_SIZE;
exports.loadDDS = loadDDS.loadDDS;
exports.parseDDS = parseDDS.parseDDS;
exports.loadKTX = loadKTX.loadKTX;
exports.parseKTX = parseKTX.parseKTX;
exports.GL_INTERNAL_FORMAT = _const$1.GL_INTERNAL_FORMAT;
exports.KTX = _const$1.KTX;
exports.loadKTX2 = loadKTX2.loadKTX2;
exports.convertFormatIfRequired = convertFormatIfRequired.convertFormatIfRequired;
exports.createLevelBuffersFromKTX = createLevelBuffersFromKTX.createLevelBuffersFromKTX;
exports.getTextureFormatFromKTXTexture = getTextureFormatFromKTXTexture.getTextureFormatFromKTXTexture;
exports.glFormatToGPUFormat = glFormatToGPUFormat.glFormatToGPUFormat;
exports.gpuFormatToKTXBasisTranscoderFormat = gpuFormatToKTXBasisTranscoderFormat.gpuFormatToKTXBasisTranscoderFormat;
exports.ktxTranscoderUrls = setKTXTranscoderPath.ktxTranscoderUrls;
exports.setKTXTranscoderPath = setKTXTranscoderPath.setKTXTranscoderPath;
exports.vkFormatToGPUFormat = vkFormatToGPUFormat.vkFormatToGPUFormat;
exports.loadKTX2onWorker = loadKTX2onWorker.loadKTX2onWorker;
exports.detectCompressed = detectCompressed.detectCompressed;
exports.resolveCompressedTextureUrl = resolveCompressedTextureUrl.resolveCompressedTextureUrl;
exports.validFormats = resolveCompressedTextureUrl.validFormats;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

28
node_modules/pixi.js/lib/compressed-textures/index.mjs generated vendored Normal file
View File

@@ -0,0 +1,28 @@
export { detectBasis } from './basis/detectBasis.mjs';
export { loadBasis } from './basis/loadBasis.mjs';
import './basis/types.mjs';
export { createLevelBuffers } from './basis/utils/createLevelBuffers.mjs';
export { gpuFormatToBasisTranscoderFormat } from './basis/utils/gpuFormatToBasisTranscoderFormat.mjs';
export { basisTranscoderUrls, setBasisTranscoderPath } from './basis/utils/setBasisTranscoderPath.mjs';
export { loadBasisOnWorker } from './basis/worker/loadBasisOnWorker.mjs';
export { D3D10_RESOURCE_DIMENSION, D3DFMT, DDS, DXGI_FORMAT, DXGI_TO_TEXTURE_FORMAT, FOURCC_TO_TEXTURE_FORMAT, TEXTURE_FORMAT_BLOCK_SIZE } from './dds/const.mjs';
export { loadDDS } from './dds/loadDDS.mjs';
export { parseDDS } from './dds/parseDDS.mjs';
export { loadKTX } from './ktx/loadKTX.mjs';
export { parseKTX } from './ktx/parseKTX.mjs';
export { GL_INTERNAL_FORMAT, KTX } from './ktx2/const.mjs';
export { loadKTX2 } from './ktx2/loadKTX2.mjs';
import './ktx2/types.mjs';
export { convertFormatIfRequired } from './ktx2/utils/convertFormatIfRequired.mjs';
export { createLevelBuffersFromKTX } from './ktx2/utils/createLevelBuffersFromKTX.mjs';
export { getTextureFormatFromKTXTexture } from './ktx2/utils/getTextureFormatFromKTXTexture.mjs';
export { glFormatToGPUFormat } from './ktx2/utils/glFormatToGPUFormat.mjs';
export { gpuFormatToKTXBasisTranscoderFormat } from './ktx2/utils/gpuFormatToKTXBasisTranscoderFormat.mjs';
export { ktxTranscoderUrls, setKTXTranscoderPath } from './ktx2/utils/setKTXTranscoderPath.mjs';
export { vkFormatToGPUFormat } from './ktx2/utils/vkFormatToGPUFormat.mjs';
export { loadKTX2onWorker } from './ktx2/worker/loadKTX2onWorker.mjs';
export { detectCompressed } from './shared/detectCompressed.mjs';
export { resolveCompressedTextureUrl, validFormats } from './shared/resolveCompressedTextureUrl.mjs';
"use strict";
//# sourceMappingURL=index.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,12 @@
'use strict';
var Extensions = require('../../extensions/Extensions.js');
var detectCompressed = require('../shared/detectCompressed.js');
var resolveCompressedTextureUrl = require('../shared/resolveCompressedTextureUrl.js');
var loadKTX = require('./loadKTX.js');
"use strict";
Extensions.extensions.add(loadKTX.loadKTX);
Extensions.extensions.add(resolveCompressedTextureUrl.resolveCompressedTextureUrl);
Extensions.extensions.add(detectCompressed.detectCompressed);
//# sourceMappingURL=init.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"init.js","sources":["../../../src/compressed-textures/ktx/init.ts"],"sourcesContent":["import { extensions } from '../../extensions/Extensions';\nimport { detectCompressed } from '../shared/detectCompressed';\nimport { resolveCompressedTextureUrl } from '../shared/resolveCompressedTextureUrl';\nimport { loadKTX } from './loadKTX';\n\nextensions.add(loadKTX);\nextensions.add(resolveCompressedTextureUrl);\nextensions.add(detectCompressed);\n\n"],"names":["extensions","loadKTX","resolveCompressedTextureUrl","detectCompressed"],"mappings":";;;;;;;;AAKAA,qBAAA,CAAW,IAAIC,eAAO,CAAA,CAAA;AACtBD,qBAAA,CAAW,IAAIE,uDAA2B,CAAA,CAAA;AAC1CF,qBAAA,CAAW,IAAIG,iCAAgB,CAAA;;"}

View File

@@ -0,0 +1,10 @@
import { extensions } from '../../extensions/Extensions.mjs';
import { detectCompressed } from '../shared/detectCompressed.mjs';
import { resolveCompressedTextureUrl } from '../shared/resolveCompressedTextureUrl.mjs';
import { loadKTX } from './loadKTX.mjs';
"use strict";
extensions.add(loadKTX);
extensions.add(resolveCompressedTextureUrl);
extensions.add(detectCompressed);
//# sourceMappingURL=init.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"init.mjs","sources":["../../../src/compressed-textures/ktx/init.ts"],"sourcesContent":["import { extensions } from '../../extensions/Extensions';\nimport { detectCompressed } from '../shared/detectCompressed';\nimport { resolveCompressedTextureUrl } from '../shared/resolveCompressedTextureUrl';\nimport { loadKTX } from './loadKTX';\n\nextensions.add(loadKTX);\nextensions.add(resolveCompressedTextureUrl);\nextensions.add(detectCompressed);\n\n"],"names":[],"mappings":";;;;;;AAKA,UAAA,CAAW,IAAI,OAAO,CAAA,CAAA;AACtB,UAAA,CAAW,IAAI,2BAA2B,CAAA,CAAA;AAC1C,UAAA,CAAW,IAAI,gBAAgB,CAAA"}

View File

@@ -0,0 +1,17 @@
import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser';
import { ExtensionType } from '../../extensions/Extensions';
import type { Loader } from '../../assets/loader/Loader';
import type { ResolvedAsset } from '../../assets/types';
import type { Texture } from '../../rendering/renderers/shared/texture/Texture';
/** Loads KTX textures! */
export declare const loadKTX: {
extension: {
type: ExtensionType.LoadParser;
priority: LoaderParserPriority;
name: string;
};
name: string;
test(url: string): boolean;
load<T>(url: string, _asset: ResolvedAsset, loader: Loader): Promise<Texture | Texture[]>;
unload(texture: Texture | Texture[]): void;
};

View File

@@ -0,0 +1,40 @@
'use strict';
var LoaderParser = require('../../assets/loader/parsers/LoaderParser.js');
var createTexture = require('../../assets/loader/parsers/textures/utils/createTexture.js');
var checkExtension = require('../../assets/utils/checkExtension.js');
var Extensions = require('../../extensions/Extensions.js');
var CompressedSource = require('../../rendering/renderers/shared/texture/sources/CompressedSource.js');
var getSupportedTextureFormats = require('../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats.js');
var parseKTX = require('./parseKTX.js');
"use strict";
const loadKTX = {
extension: {
type: Extensions.ExtensionType.LoadParser,
priority: LoaderParser.LoaderParserPriority.High,
name: "loadKTX"
},
name: "loadKTX",
test(url) {
return checkExtension.checkExtension(url, ".ktx");
},
async load(url, _asset, loader) {
const supportedTextures = await getSupportedTextureFormats.getSupportedTextureFormats();
const ktxResponse = await fetch(url);
const ktxArrayBuffer = await ktxResponse.arrayBuffer();
const textureOptions = parseKTX.parseKTX(ktxArrayBuffer, supportedTextures);
const compressedTextureSource = new CompressedSource.CompressedSource(textureOptions);
return createTexture.createTexture(compressedTextureSource, loader, url);
},
unload(texture) {
if (Array.isArray(texture)) {
texture.forEach((t) => t.destroy(true));
} else {
texture.destroy(true);
}
}
};
exports.loadKTX = loadKTX;
//# sourceMappingURL=loadKTX.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"loadKTX.js","sources":["../../../src/compressed-textures/ktx/loadKTX.ts"],"sourcesContent":["import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser';\nimport { createTexture } from '../../assets/loader/parsers/textures/utils/createTexture';\nimport { checkExtension } from '../../assets/utils/checkExtension';\nimport { ExtensionType } from '../../extensions/Extensions';\nimport { CompressedSource } from '../../rendering/renderers/shared/texture/sources/CompressedSource';\nimport { getSupportedTextureFormats } from '../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats';\nimport { parseKTX } from './parseKTX';\n\nimport type { Loader } from '../../assets/loader/Loader';\nimport type { LoaderParser } from '../../assets/loader/parsers/LoaderParser';\nimport type { ResolvedAsset } from '../../assets/types';\nimport type { TextureSourceOptions } from '../../rendering/renderers/shared/texture/sources/TextureSource';\nimport type { Texture } from '../../rendering/renderers/shared/texture/Texture';\n\n/** Loads KTX textures! */\nexport const loadKTX = {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.High,\n name: 'loadKTX',\n },\n\n name: 'loadKTX',\n\n test(url: string): boolean\n {\n return checkExtension(url, '.ktx');\n },\n\n async load(url: string, _asset: ResolvedAsset, loader: Loader): Promise<Texture | Texture[]>\n {\n const supportedTextures = await getSupportedTextureFormats();\n\n const ktxResponse = await fetch(url);\n\n const ktxArrayBuffer = await ktxResponse.arrayBuffer();\n\n const textureOptions = parseKTX(ktxArrayBuffer, supportedTextures);\n\n const compressedTextureSource = new CompressedSource(textureOptions);\n\n return createTexture(compressedTextureSource, loader, url);\n },\n\n unload(texture: Texture | Texture[]): void\n {\n if (Array.isArray(texture))\n {\n texture.forEach((t) => t.destroy(true));\n }\n else\n {\n texture.destroy(true);\n }\n }\n\n} satisfies LoaderParser<Texture | Texture[], TextureSourceOptions>;\n\n"],"names":["ExtensionType","LoaderParserPriority","checkExtension","getSupportedTextureFormats","parseKTX","CompressedSource","createTexture"],"mappings":";;;;;;;;;;;AAeO,MAAM,OAAU,GAAA;AAAA,EACnB,SAAW,EAAA;AAAA,IACP,MAAMA,wBAAc,CAAA,UAAA;AAAA,IACpB,UAAUC,iCAAqB,CAAA,IAAA;AAAA,IAC/B,IAAM,EAAA,SAAA;AAAA,GACV;AAAA,EAEA,IAAM,EAAA,SAAA;AAAA,EAEN,KAAK,GACL,EAAA;AACI,IAAO,OAAAC,6BAAA,CAAe,KAAK,MAAM,CAAA,CAAA;AAAA,GACrC;AAAA,EAEA,MAAM,IAAA,CAAK,GAAa,EAAA,MAAA,EAAuB,MAC/C,EAAA;AACI,IAAM,MAAA,iBAAA,GAAoB,MAAMC,qDAA2B,EAAA,CAAA;AAE3D,IAAM,MAAA,WAAA,GAAc,MAAM,KAAA,CAAM,GAAG,CAAA,CAAA;AAEnC,IAAM,MAAA,cAAA,GAAiB,MAAM,WAAA,CAAY,WAAY,EAAA,CAAA;AAErD,IAAM,MAAA,cAAA,GAAiBC,iBAAS,CAAA,cAAA,EAAgB,iBAAiB,CAAA,CAAA;AAEjE,IAAM,MAAA,uBAAA,GAA0B,IAAIC,iCAAA,CAAiB,cAAc,CAAA,CAAA;AAEnE,IAAO,OAAAC,2BAAA,CAAc,uBAAyB,EAAA,MAAA,EAAQ,GAAG,CAAA,CAAA;AAAA,GAC7D;AAAA,EAEA,OAAO,OACP,EAAA;AACI,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,OAAO,CACzB,EAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,CAAC,CAAA,KAAM,CAAE,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA;AAAA,KAG1C,MAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,KACxB;AAAA,GACJ;AAEJ;;;;"}

View File

@@ -0,0 +1,38 @@
import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser.mjs';
import { createTexture } from '../../assets/loader/parsers/textures/utils/createTexture.mjs';
import { checkExtension } from '../../assets/utils/checkExtension.mjs';
import { ExtensionType } from '../../extensions/Extensions.mjs';
import { CompressedSource } from '../../rendering/renderers/shared/texture/sources/CompressedSource.mjs';
import { getSupportedTextureFormats } from '../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats.mjs';
import { parseKTX } from './parseKTX.mjs';
"use strict";
const loadKTX = {
extension: {
type: ExtensionType.LoadParser,
priority: LoaderParserPriority.High,
name: "loadKTX"
},
name: "loadKTX",
test(url) {
return checkExtension(url, ".ktx");
},
async load(url, _asset, loader) {
const supportedTextures = await getSupportedTextureFormats();
const ktxResponse = await fetch(url);
const ktxArrayBuffer = await ktxResponse.arrayBuffer();
const textureOptions = parseKTX(ktxArrayBuffer, supportedTextures);
const compressedTextureSource = new CompressedSource(textureOptions);
return createTexture(compressedTextureSource, loader, url);
},
unload(texture) {
if (Array.isArray(texture)) {
texture.forEach((t) => t.destroy(true));
} else {
texture.destroy(true);
}
}
};
export { loadKTX };
//# sourceMappingURL=loadKTX.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"loadKTX.mjs","sources":["../../../src/compressed-textures/ktx/loadKTX.ts"],"sourcesContent":["import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser';\nimport { createTexture } from '../../assets/loader/parsers/textures/utils/createTexture';\nimport { checkExtension } from '../../assets/utils/checkExtension';\nimport { ExtensionType } from '../../extensions/Extensions';\nimport { CompressedSource } from '../../rendering/renderers/shared/texture/sources/CompressedSource';\nimport { getSupportedTextureFormats } from '../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats';\nimport { parseKTX } from './parseKTX';\n\nimport type { Loader } from '../../assets/loader/Loader';\nimport type { LoaderParser } from '../../assets/loader/parsers/LoaderParser';\nimport type { ResolvedAsset } from '../../assets/types';\nimport type { TextureSourceOptions } from '../../rendering/renderers/shared/texture/sources/TextureSource';\nimport type { Texture } from '../../rendering/renderers/shared/texture/Texture';\n\n/** Loads KTX textures! */\nexport const loadKTX = {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.High,\n name: 'loadKTX',\n },\n\n name: 'loadKTX',\n\n test(url: string): boolean\n {\n return checkExtension(url, '.ktx');\n },\n\n async load(url: string, _asset: ResolvedAsset, loader: Loader): Promise<Texture | Texture[]>\n {\n const supportedTextures = await getSupportedTextureFormats();\n\n const ktxResponse = await fetch(url);\n\n const ktxArrayBuffer = await ktxResponse.arrayBuffer();\n\n const textureOptions = parseKTX(ktxArrayBuffer, supportedTextures);\n\n const compressedTextureSource = new CompressedSource(textureOptions);\n\n return createTexture(compressedTextureSource, loader, url);\n },\n\n unload(texture: Texture | Texture[]): void\n {\n if (Array.isArray(texture))\n {\n texture.forEach((t) => t.destroy(true));\n }\n else\n {\n texture.destroy(true);\n }\n }\n\n} satisfies LoaderParser<Texture | Texture[], TextureSourceOptions>;\n\n"],"names":[],"mappings":";;;;;;;;;AAeO,MAAM,OAAU,GAAA;AAAA,EACnB,SAAW,EAAA;AAAA,IACP,MAAM,aAAc,CAAA,UAAA;AAAA,IACpB,UAAU,oBAAqB,CAAA,IAAA;AAAA,IAC/B,IAAM,EAAA,SAAA;AAAA,GACV;AAAA,EAEA,IAAM,EAAA,SAAA;AAAA,EAEN,KAAK,GACL,EAAA;AACI,IAAO,OAAA,cAAA,CAAe,KAAK,MAAM,CAAA,CAAA;AAAA,GACrC;AAAA,EAEA,MAAM,IAAA,CAAK,GAAa,EAAA,MAAA,EAAuB,MAC/C,EAAA;AACI,IAAM,MAAA,iBAAA,GAAoB,MAAM,0BAA2B,EAAA,CAAA;AAE3D,IAAM,MAAA,WAAA,GAAc,MAAM,KAAA,CAAM,GAAG,CAAA,CAAA;AAEnC,IAAM,MAAA,cAAA,GAAiB,MAAM,WAAA,CAAY,WAAY,EAAA,CAAA;AAErD,IAAM,MAAA,cAAA,GAAiB,QAAS,CAAA,cAAA,EAAgB,iBAAiB,CAAA,CAAA;AAEjE,IAAM,MAAA,uBAAA,GAA0B,IAAI,gBAAA,CAAiB,cAAc,CAAA,CAAA;AAEnE,IAAO,OAAA,aAAA,CAAc,uBAAyB,EAAA,MAAA,EAAQ,GAAG,CAAA,CAAA;AAAA,GAC7D;AAAA,EAEA,OAAO,OACP,EAAA;AACI,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,OAAO,CACzB,EAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,CAAC,CAAA,KAAM,CAAE,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA;AAAA,KAG1C,MAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,KACxB;AAAA,GACJ;AAEJ;;;;"}

View File

@@ -0,0 +1,3 @@
import type { TEXTURE_FORMATS } from '../../rendering/renderers/shared/texture/const';
import type { TextureSourceOptions } from '../../rendering/renderers/shared/texture/sources/TextureSource';
export declare function parseKTX(arrayBuffer: ArrayBuffer, supportedFormats: TEXTURE_FORMATS[]): TextureSourceOptions<Uint8Array[]>;

View File

@@ -0,0 +1,132 @@
'use strict';
var _const = require('../ktx2/const.js');
"use strict";
function parseKTX(arrayBuffer, supportedFormats) {
const dataView = new DataView(arrayBuffer);
if (!validate(dataView)) {
throw new Error("Invalid KTX identifier in header");
}
const {
littleEndian,
glType,
glFormat,
glInternalFormat,
pixelWidth,
pixelHeight,
numberOfMipmapLevels,
offset
} = parseKTXHeader(dataView);
const textureFormat = _const.KTX.INTERNAL_FORMAT_TO_TEXTURE_FORMATS[glInternalFormat];
if (!textureFormat) {
throw new Error(`Unknown texture format ${glInternalFormat}`);
}
if (!supportedFormats.includes(textureFormat)) {
throw new Error(`Unsupported texture format: ${textureFormat}, supportedFormats: ${supportedFormats}`);
}
const imagePixelByteSize = getImagePixelByteSize(glType, glFormat, glInternalFormat);
const imageBuffers = getImageBuffers(
dataView,
glType,
imagePixelByteSize,
pixelWidth,
pixelHeight,
offset,
numberOfMipmapLevels,
littleEndian
);
return {
format: textureFormat,
width: pixelWidth,
height: pixelHeight,
resource: imageBuffers,
alphaMode: "no-premultiply-alpha"
};
}
function getImageBuffers(dataView, glType, imagePixelByteSize, pixelWidth, pixelHeight, offset, numberOfMipmapLevels, littleEndian) {
const alignedWidth = pixelWidth + 3 & ~3;
const alignedHeight = pixelHeight + 3 & ~3;
let imagePixels = pixelWidth * pixelHeight;
if (glType === 0) {
imagePixels = alignedWidth * alignedHeight;
}
let mipByteSize = imagePixels * imagePixelByteSize;
let mipWidth = pixelWidth;
let mipHeight = pixelHeight;
let alignedMipWidth = alignedWidth;
let alignedMipHeight = alignedHeight;
let imageOffset = offset;
const imageBuffers = new Array(numberOfMipmapLevels);
for (let mipmapLevel = 0; mipmapLevel < numberOfMipmapLevels; mipmapLevel++) {
const imageSize = dataView.getUint32(imageOffset, littleEndian);
let elementOffset = imageOffset + 4;
imageBuffers[mipmapLevel] = new Uint8Array(dataView.buffer, elementOffset, mipByteSize);
elementOffset += mipByteSize;
imageOffset += imageSize + 4;
imageOffset = imageOffset % 4 !== 0 ? imageOffset + 4 - imageOffset % 4 : imageOffset;
mipWidth = mipWidth >> 1 || 1;
mipHeight = mipHeight >> 1 || 1;
alignedMipWidth = mipWidth + 4 - 1 & ~(4 - 1);
alignedMipHeight = mipHeight + 4 - 1 & ~(4 - 1);
mipByteSize = alignedMipWidth * alignedMipHeight * imagePixelByteSize;
}
return imageBuffers;
}
function getImagePixelByteSize(glType, glFormat, glInternalFormat) {
let imagePixelByteSize = _const.KTX.INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[glInternalFormat];
if (glType !== 0) {
if (_const.KTX.TYPES_TO_BYTES_PER_COMPONENT[glType]) {
imagePixelByteSize = _const.KTX.TYPES_TO_BYTES_PER_COMPONENT[glType] * _const.KTX.FORMATS_TO_COMPONENTS[glFormat];
} else {
imagePixelByteSize = _const.KTX.TYPES_TO_BYTES_PER_PIXEL[glType];
}
}
if (imagePixelByteSize === void 0) {
throw new Error("Unable to resolve the pixel format stored in the *.ktx file!");
}
return imagePixelByteSize;
}
function parseKTXHeader(dataView) {
const littleEndian = dataView.getUint32(_const.KTX.FIELDS.ENDIANNESS, true) === _const.KTX.ENDIANNESS;
const glType = dataView.getUint32(_const.KTX.FIELDS.GL_TYPE, littleEndian);
const glFormat = dataView.getUint32(_const.KTX.FIELDS.GL_FORMAT, littleEndian);
const glInternalFormat = dataView.getUint32(_const.KTX.FIELDS.GL_INTERNAL_FORMAT, littleEndian);
const pixelWidth = dataView.getUint32(_const.KTX.FIELDS.PIXEL_WIDTH, littleEndian);
const pixelHeight = dataView.getUint32(_const.KTX.FIELDS.PIXEL_HEIGHT, littleEndian) || 1;
const pixelDepth = dataView.getUint32(_const.KTX.FIELDS.PIXEL_DEPTH, littleEndian) || 1;
const numberOfArrayElements = dataView.getUint32(_const.KTX.FIELDS.NUMBER_OF_ARRAY_ELEMENTS, littleEndian) || 1;
const numberOfFaces = dataView.getUint32(_const.KTX.FIELDS.NUMBER_OF_FACES, littleEndian);
const numberOfMipmapLevels = dataView.getUint32(_const.KTX.FIELDS.NUMBER_OF_MIPMAP_LEVELS, littleEndian);
const bytesOfKeyValueData = dataView.getUint32(_const.KTX.FIELDS.BYTES_OF_KEY_VALUE_DATA, littleEndian);
if (pixelHeight === 0 || pixelDepth !== 1) {
throw new Error("Only 2D textures are supported");
}
if (numberOfFaces !== 1) {
throw new Error("CubeTextures are not supported by KTXLoader yet!");
}
if (numberOfArrayElements !== 1) {
throw new Error("WebGL does not support array textures");
}
return {
littleEndian,
glType,
glFormat,
glInternalFormat,
pixelWidth,
pixelHeight,
numberOfMipmapLevels,
offset: _const.KTX.FILE_HEADER_SIZE + bytesOfKeyValueData
};
}
function validate(dataView) {
for (let i = 0; i < _const.KTX.FILE_IDENTIFIER.length; i++) {
if (dataView.getUint8(i) !== _const.KTX.FILE_IDENTIFIER[i]) {
return false;
}
}
return true;
}
exports.parseKTX = parseKTX;
//# sourceMappingURL=parseKTX.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,130 @@
import { KTX } from '../ktx2/const.mjs';
"use strict";
function parseKTX(arrayBuffer, supportedFormats) {
const dataView = new DataView(arrayBuffer);
if (!validate(dataView)) {
throw new Error("Invalid KTX identifier in header");
}
const {
littleEndian,
glType,
glFormat,
glInternalFormat,
pixelWidth,
pixelHeight,
numberOfMipmapLevels,
offset
} = parseKTXHeader(dataView);
const textureFormat = KTX.INTERNAL_FORMAT_TO_TEXTURE_FORMATS[glInternalFormat];
if (!textureFormat) {
throw new Error(`Unknown texture format ${glInternalFormat}`);
}
if (!supportedFormats.includes(textureFormat)) {
throw new Error(`Unsupported texture format: ${textureFormat}, supportedFormats: ${supportedFormats}`);
}
const imagePixelByteSize = getImagePixelByteSize(glType, glFormat, glInternalFormat);
const imageBuffers = getImageBuffers(
dataView,
glType,
imagePixelByteSize,
pixelWidth,
pixelHeight,
offset,
numberOfMipmapLevels,
littleEndian
);
return {
format: textureFormat,
width: pixelWidth,
height: pixelHeight,
resource: imageBuffers,
alphaMode: "no-premultiply-alpha"
};
}
function getImageBuffers(dataView, glType, imagePixelByteSize, pixelWidth, pixelHeight, offset, numberOfMipmapLevels, littleEndian) {
const alignedWidth = pixelWidth + 3 & ~3;
const alignedHeight = pixelHeight + 3 & ~3;
let imagePixels = pixelWidth * pixelHeight;
if (glType === 0) {
imagePixels = alignedWidth * alignedHeight;
}
let mipByteSize = imagePixels * imagePixelByteSize;
let mipWidth = pixelWidth;
let mipHeight = pixelHeight;
let alignedMipWidth = alignedWidth;
let alignedMipHeight = alignedHeight;
let imageOffset = offset;
const imageBuffers = new Array(numberOfMipmapLevels);
for (let mipmapLevel = 0; mipmapLevel < numberOfMipmapLevels; mipmapLevel++) {
const imageSize = dataView.getUint32(imageOffset, littleEndian);
let elementOffset = imageOffset + 4;
imageBuffers[mipmapLevel] = new Uint8Array(dataView.buffer, elementOffset, mipByteSize);
elementOffset += mipByteSize;
imageOffset += imageSize + 4;
imageOffset = imageOffset % 4 !== 0 ? imageOffset + 4 - imageOffset % 4 : imageOffset;
mipWidth = mipWidth >> 1 || 1;
mipHeight = mipHeight >> 1 || 1;
alignedMipWidth = mipWidth + 4 - 1 & ~(4 - 1);
alignedMipHeight = mipHeight + 4 - 1 & ~(4 - 1);
mipByteSize = alignedMipWidth * alignedMipHeight * imagePixelByteSize;
}
return imageBuffers;
}
function getImagePixelByteSize(glType, glFormat, glInternalFormat) {
let imagePixelByteSize = KTX.INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[glInternalFormat];
if (glType !== 0) {
if (KTX.TYPES_TO_BYTES_PER_COMPONENT[glType]) {
imagePixelByteSize = KTX.TYPES_TO_BYTES_PER_COMPONENT[glType] * KTX.FORMATS_TO_COMPONENTS[glFormat];
} else {
imagePixelByteSize = KTX.TYPES_TO_BYTES_PER_PIXEL[glType];
}
}
if (imagePixelByteSize === void 0) {
throw new Error("Unable to resolve the pixel format stored in the *.ktx file!");
}
return imagePixelByteSize;
}
function parseKTXHeader(dataView) {
const littleEndian = dataView.getUint32(KTX.FIELDS.ENDIANNESS, true) === KTX.ENDIANNESS;
const glType = dataView.getUint32(KTX.FIELDS.GL_TYPE, littleEndian);
const glFormat = dataView.getUint32(KTX.FIELDS.GL_FORMAT, littleEndian);
const glInternalFormat = dataView.getUint32(KTX.FIELDS.GL_INTERNAL_FORMAT, littleEndian);
const pixelWidth = dataView.getUint32(KTX.FIELDS.PIXEL_WIDTH, littleEndian);
const pixelHeight = dataView.getUint32(KTX.FIELDS.PIXEL_HEIGHT, littleEndian) || 1;
const pixelDepth = dataView.getUint32(KTX.FIELDS.PIXEL_DEPTH, littleEndian) || 1;
const numberOfArrayElements = dataView.getUint32(KTX.FIELDS.NUMBER_OF_ARRAY_ELEMENTS, littleEndian) || 1;
const numberOfFaces = dataView.getUint32(KTX.FIELDS.NUMBER_OF_FACES, littleEndian);
const numberOfMipmapLevels = dataView.getUint32(KTX.FIELDS.NUMBER_OF_MIPMAP_LEVELS, littleEndian);
const bytesOfKeyValueData = dataView.getUint32(KTX.FIELDS.BYTES_OF_KEY_VALUE_DATA, littleEndian);
if (pixelHeight === 0 || pixelDepth !== 1) {
throw new Error("Only 2D textures are supported");
}
if (numberOfFaces !== 1) {
throw new Error("CubeTextures are not supported by KTXLoader yet!");
}
if (numberOfArrayElements !== 1) {
throw new Error("WebGL does not support array textures");
}
return {
littleEndian,
glType,
glFormat,
glInternalFormat,
pixelWidth,
pixelHeight,
numberOfMipmapLevels,
offset: KTX.FILE_HEADER_SIZE + bytesOfKeyValueData
};
}
function validate(dataView) {
for (let i = 0; i < KTX.FILE_IDENTIFIER.length; i++) {
if (dataView.getUint8(i) !== KTX.FILE_IDENTIFIER[i]) {
return false;
}
}
return true;
}
export { parseKTX };
//# sourceMappingURL=parseKTX.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,99 @@
import type { TEXTURE_FORMATS } from '../../rendering/renderers/shared/texture/const';
export declare enum GL_INTERNAL_FORMAT {
RGBA8_SNORM = 36759,
RGBA = 6408,
RGBA8UI = 36220,
SRGB8_ALPHA8 = 35907,
RGBA8I = 36238,
RGBA8 = 32856,
COMPRESSED_RGB_S3TC_DXT1_EXT = 33776,
COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777,
COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778,
COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779,
COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 35917,
COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 35918,
COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 35919,
COMPRESSED_SRGB_S3TC_DXT1_EXT = 35916,
COMPRESSED_RED_RGTC1_EXT = 36283,
COMPRESSED_SIGNED_RED_RGTC1_EXT = 36284,
COMPRESSED_RED_GREEN_RGTC2_EXT = 36285,
COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 36286,
COMPRESSED_R11_EAC = 37488,
COMPRESSED_SIGNED_R11_EAC = 37489,
COMPRESSED_RG11_EAC = 37490,
COMPRESSED_SIGNED_RG11_EAC = 37491,
COMPRESSED_RGB8_ETC2 = 37492,
COMPRESSED_RGBA8_ETC2_EAC = 37496,
COMPRESSED_SRGB8_ETC2 = 37493,
COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 37497,
COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37494,
COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37495,
COMPRESSED_RGBA_ASTC_4x4_KHR = 37808,
COMPRESSED_RGBA_ASTC_5x4_KHR = 37809,
COMPRESSED_RGBA_ASTC_5x5_KHR = 37810,
COMPRESSED_RGBA_ASTC_6x5_KHR = 37811,
COMPRESSED_RGBA_ASTC_6x6_KHR = 37812,
COMPRESSED_RGBA_ASTC_8x5_KHR = 37813,
COMPRESSED_RGBA_ASTC_8x6_KHR = 37814,
COMPRESSED_RGBA_ASTC_8x8_KHR = 37815,
COMPRESSED_RGBA_ASTC_10x5_KHR = 37816,
COMPRESSED_RGBA_ASTC_10x6_KHR = 37817,
COMPRESSED_RGBA_ASTC_10x8_KHR = 37818,
COMPRESSED_RGBA_ASTC_10x10_KHR = 37819,
COMPRESSED_RGBA_ASTC_12x10_KHR = 37820,
COMPRESSED_RGBA_ASTC_12x12_KHR = 37821,
COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 37840,
COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 37841,
COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 37842,
COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 37843,
COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 37844,
COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 37845,
COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 37846,
COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 37847,
COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 37848,
COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 37849,
COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 37850,
COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 37851,
COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 37852,
COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 37853,
COMPRESSED_RGBA_BPTC_UNORM_EXT = 36492,
COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT = 36493,
COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT = 36494,
COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT = 36495
}
export declare const KTX: {
FILE_HEADER_SIZE: number;
FILE_IDENTIFIER: number[];
FORMATS_TO_COMPONENTS: {
[id: number]: number;
};
INTERNAL_FORMAT_TO_BYTES_PER_PIXEL: {
[id: number]: number;
};
INTERNAL_FORMAT_TO_TEXTURE_FORMATS: {
[id: number]: TEXTURE_FORMATS;
};
FIELDS: {
FILE_IDENTIFIER: number;
ENDIANNESS: number;
GL_TYPE: number;
GL_TYPE_SIZE: number;
GL_FORMAT: number;
GL_INTERNAL_FORMAT: number;
GL_BASE_INTERNAL_FORMAT: number;
PIXEL_WIDTH: number;
PIXEL_HEIGHT: number;
PIXEL_DEPTH: number;
NUMBER_OF_ARRAY_ELEMENTS: number;
NUMBER_OF_FACES: number;
NUMBER_OF_MIPMAP_LEVELS: number;
BYTES_OF_KEY_VALUE_DATA: number;
};
TYPES_TO_BYTES_PER_COMPONENT: {
[id: number]: number;
};
TYPES_TO_BYTES_PER_PIXEL: {
[id: number]: number;
};
ENDIANNESS: number;
};

View File

@@ -0,0 +1,277 @@
'use strict';
"use strict";
var GL_INTERNAL_FORMAT = /* @__PURE__ */ ((GL_INTERNAL_FORMAT2) => {
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["RGBA8_SNORM"] = 36759] = "RGBA8_SNORM";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["RGBA"] = 6408] = "RGBA";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["RGBA8UI"] = 36220] = "RGBA8UI";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["SRGB8_ALPHA8"] = 35907] = "SRGB8_ALPHA8";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["RGBA8I"] = 36238] = "RGBA8I";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["RGBA8"] = 32856] = "RGBA8";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGB_S3TC_DXT1_EXT"] = 33776] = "COMPRESSED_RGB_S3TC_DXT1_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_S3TC_DXT1_EXT"] = 33777] = "COMPRESSED_RGBA_S3TC_DXT1_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_S3TC_DXT3_EXT"] = 33778] = "COMPRESSED_RGBA_S3TC_DXT3_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_S3TC_DXT5_EXT"] = 33779] = "COMPRESSED_RGBA_S3TC_DXT5_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"] = 35917] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"] = 35918] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"] = 35919] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB_S3TC_DXT1_EXT"] = 35916] = "COMPRESSED_SRGB_S3TC_DXT1_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RED_RGTC1_EXT"] = 36283] = "COMPRESSED_RED_RGTC1_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SIGNED_RED_RGTC1_EXT"] = 36284] = "COMPRESSED_SIGNED_RED_RGTC1_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RED_GREEN_RGTC2_EXT"] = 36285] = "COMPRESSED_RED_GREEN_RGTC2_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT"] = 36286] = "COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_R11_EAC"] = 37488] = "COMPRESSED_R11_EAC";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SIGNED_R11_EAC"] = 37489] = "COMPRESSED_SIGNED_R11_EAC";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RG11_EAC"] = 37490] = "COMPRESSED_RG11_EAC";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SIGNED_RG11_EAC"] = 37491] = "COMPRESSED_SIGNED_RG11_EAC";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGB8_ETC2"] = 37492] = "COMPRESSED_RGB8_ETC2";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA8_ETC2_EAC"] = 37496] = "COMPRESSED_RGBA8_ETC2_EAC";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ETC2"] = 37493] = "COMPRESSED_SRGB8_ETC2";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"] = 37497] = "COMPRESSED_SRGB8_ALPHA8_ETC2_EAC";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"] = 37494] = "COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"] = 37495] = "COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_4x4_KHR"] = 37808] = "COMPRESSED_RGBA_ASTC_4x4_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_5x4_KHR"] = 37809] = "COMPRESSED_RGBA_ASTC_5x4_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_5x5_KHR"] = 37810] = "COMPRESSED_RGBA_ASTC_5x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_6x5_KHR"] = 37811] = "COMPRESSED_RGBA_ASTC_6x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_6x6_KHR"] = 37812] = "COMPRESSED_RGBA_ASTC_6x6_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_8x5_KHR"] = 37813] = "COMPRESSED_RGBA_ASTC_8x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_8x6_KHR"] = 37814] = "COMPRESSED_RGBA_ASTC_8x6_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_8x8_KHR"] = 37815] = "COMPRESSED_RGBA_ASTC_8x8_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_10x5_KHR"] = 37816] = "COMPRESSED_RGBA_ASTC_10x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_10x6_KHR"] = 37817] = "COMPRESSED_RGBA_ASTC_10x6_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_10x8_KHR"] = 37818] = "COMPRESSED_RGBA_ASTC_10x8_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_10x10_KHR"] = 37819] = "COMPRESSED_RGBA_ASTC_10x10_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_12x10_KHR"] = 37820] = "COMPRESSED_RGBA_ASTC_12x10_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_12x12_KHR"] = 37821] = "COMPRESSED_RGBA_ASTC_12x12_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"] = 37840] = "COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"] = 37841] = "COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"] = 37842] = "COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"] = 37843] = "COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"] = 37844] = "COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"] = 37845] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"] = 37846] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"] = 37847] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"] = 37848] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"] = 37849] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"] = 37850] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"] = 37851] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"] = 37852] = "COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"] = 37853] = "COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_BPTC_UNORM_EXT"] = 36492] = "COMPRESSED_RGBA_BPTC_UNORM_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT"] = 36493] = "COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT"] = 36494] = "COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT"] = 36495] = "COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT";
return GL_INTERNAL_FORMAT2;
})(GL_INTERNAL_FORMAT || {});
var GL_FORMATS = /* @__PURE__ */ ((GL_FORMATS2) => {
GL_FORMATS2[GL_FORMATS2["RGBA"] = 6408] = "RGBA";
GL_FORMATS2[GL_FORMATS2["RGB"] = 6407] = "RGB";
GL_FORMATS2[GL_FORMATS2["RG"] = 33319] = "RG";
GL_FORMATS2[GL_FORMATS2["RED"] = 6403] = "RED";
GL_FORMATS2[GL_FORMATS2["RGBA_INTEGER"] = 36249] = "RGBA_INTEGER";
GL_FORMATS2[GL_FORMATS2["RGB_INTEGER"] = 36248] = "RGB_INTEGER";
GL_FORMATS2[GL_FORMATS2["RG_INTEGER"] = 33320] = "RG_INTEGER";
GL_FORMATS2[GL_FORMATS2["RED_INTEGER"] = 36244] = "RED_INTEGER";
GL_FORMATS2[GL_FORMATS2["ALPHA"] = 6406] = "ALPHA";
GL_FORMATS2[GL_FORMATS2["LUMINANCE"] = 6409] = "LUMINANCE";
GL_FORMATS2[GL_FORMATS2["LUMINANCE_ALPHA"] = 6410] = "LUMINANCE_ALPHA";
GL_FORMATS2[GL_FORMATS2["DEPTH_COMPONENT"] = 6402] = "DEPTH_COMPONENT";
GL_FORMATS2[GL_FORMATS2["DEPTH_STENCIL"] = 34041] = "DEPTH_STENCIL";
return GL_FORMATS2;
})(GL_FORMATS || {});
var GL_TYPES = /* @__PURE__ */ ((GL_TYPES2) => {
GL_TYPES2[GL_TYPES2["UNSIGNED_BYTE"] = 5121] = "UNSIGNED_BYTE";
GL_TYPES2[GL_TYPES2["UNSIGNED_SHORT"] = 5123] = "UNSIGNED_SHORT";
GL_TYPES2[GL_TYPES2["UNSIGNED_SHORT_5_6_5"] = 33635] = "UNSIGNED_SHORT_5_6_5";
GL_TYPES2[GL_TYPES2["UNSIGNED_SHORT_4_4_4_4"] = 32819] = "UNSIGNED_SHORT_4_4_4_4";
GL_TYPES2[GL_TYPES2["UNSIGNED_SHORT_5_5_5_1"] = 32820] = "UNSIGNED_SHORT_5_5_5_1";
GL_TYPES2[GL_TYPES2["UNSIGNED_INT"] = 5125] = "UNSIGNED_INT";
GL_TYPES2[GL_TYPES2["UNSIGNED_INT_10F_11F_11F_REV"] = 35899] = "UNSIGNED_INT_10F_11F_11F_REV";
GL_TYPES2[GL_TYPES2["UNSIGNED_INT_2_10_10_10_REV"] = 33640] = "UNSIGNED_INT_2_10_10_10_REV";
GL_TYPES2[GL_TYPES2["UNSIGNED_INT_24_8"] = 34042] = "UNSIGNED_INT_24_8";
GL_TYPES2[GL_TYPES2["UNSIGNED_INT_5_9_9_9_REV"] = 35902] = "UNSIGNED_INT_5_9_9_9_REV";
GL_TYPES2[GL_TYPES2["BYTE"] = 5120] = "BYTE";
GL_TYPES2[GL_TYPES2["SHORT"] = 5122] = "SHORT";
GL_TYPES2[GL_TYPES2["INT"] = 5124] = "INT";
GL_TYPES2[GL_TYPES2["FLOAT"] = 5126] = "FLOAT";
GL_TYPES2[GL_TYPES2["FLOAT_32_UNSIGNED_INT_24_8_REV"] = 36269] = "FLOAT_32_UNSIGNED_INT_24_8_REV";
GL_TYPES2[GL_TYPES2["HALF_FLOAT"] = 36193] = "HALF_FLOAT";
return GL_TYPES2;
})(GL_TYPES || {});
const INTERNAL_FORMAT_TO_TEXTURE_FORMATS = {
[33776 /* COMPRESSED_RGB_S3TC_DXT1_EXT */]: "bc1-rgba-unorm",
// TODO: ???
[33777 /* COMPRESSED_RGBA_S3TC_DXT1_EXT */]: "bc1-rgba-unorm",
[33778 /* COMPRESSED_RGBA_S3TC_DXT3_EXT */]: "bc2-rgba-unorm",
[33779 /* COMPRESSED_RGBA_S3TC_DXT5_EXT */]: "bc3-rgba-unorm",
[35916 /* COMPRESSED_SRGB_S3TC_DXT1_EXT */]: "bc1-rgba-unorm-srgb",
// TODO: ???
[35917 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT */]: "bc1-rgba-unorm-srgb",
[35918 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT */]: "bc2-rgba-unorm-srgb",
[35919 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT */]: "bc3-rgba-unorm-srgb",
[36283 /* COMPRESSED_RED_RGTC1_EXT */]: "bc4-r-unorm",
[36284 /* COMPRESSED_SIGNED_RED_RGTC1_EXT */]: "bc4-r-snorm",
[36285 /* COMPRESSED_RED_GREEN_RGTC2_EXT */]: "bc5-rg-unorm",
[36286 /* COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT */]: "bc5-rg-snorm",
[37488 /* COMPRESSED_R11_EAC */]: "eac-r11unorm",
// [GL_INTERNAL_FORMAT.COMPRESSED_SIGNED_R11_EAC]: 'eac-r11snorm',
[37490 /* COMPRESSED_RG11_EAC */]: "eac-rg11snorm",
// [GL_INTERNAL_FORMAT.COMPRESSED_SIGNED_RG11_EAC]: 'eac-rg11unorm',
[37492 /* COMPRESSED_RGB8_ETC2 */]: "etc2-rgb8unorm",
[37496 /* COMPRESSED_RGBA8_ETC2_EAC */]: "etc2-rgba8unorm",
[37493 /* COMPRESSED_SRGB8_ETC2 */]: "etc2-rgb8unorm-srgb",
[37497 /* COMPRESSED_SRGB8_ALPHA8_ETC2_EAC */]: "etc2-rgba8unorm-srgb",
[37494 /* COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 */]: "etc2-rgb8a1unorm",
[37495 /* COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 */]: "etc2-rgb8a1unorm-srgb",
[37808 /* COMPRESSED_RGBA_ASTC_4x4_KHR */]: "astc-4x4-unorm",
[37840 /* COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR */]: "astc-4x4-unorm-srgb",
[37809 /* COMPRESSED_RGBA_ASTC_5x4_KHR */]: "astc-5x4-unorm",
[37841 /* COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR */]: "astc-5x4-unorm-srgb",
[37810 /* COMPRESSED_RGBA_ASTC_5x5_KHR */]: "astc-5x5-unorm",
[37842 /* COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR */]: "astc-5x5-unorm-srgb",
[37811 /* COMPRESSED_RGBA_ASTC_6x5_KHR */]: "astc-6x5-unorm",
[37843 /* COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR */]: "astc-6x5-unorm-srgb",
[37812 /* COMPRESSED_RGBA_ASTC_6x6_KHR */]: "astc-6x6-unorm",
[37844 /* COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR */]: "astc-6x6-unorm-srgb",
[37813 /* COMPRESSED_RGBA_ASTC_8x5_KHR */]: "astc-8x5-unorm",
[37845 /* COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR */]: "astc-8x5-unorm-srgb",
[37814 /* COMPRESSED_RGBA_ASTC_8x6_KHR */]: "astc-8x6-unorm",
[37846 /* COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR */]: "astc-8x6-unorm-srgb",
[37815 /* COMPRESSED_RGBA_ASTC_8x8_KHR */]: "astc-8x8-unorm",
[37847 /* COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR */]: "astc-8x8-unorm-srgb",
[37816 /* COMPRESSED_RGBA_ASTC_10x5_KHR */]: "astc-10x5-unorm",
[37848 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR */]: "astc-10x5-unorm-srgb",
[37817 /* COMPRESSED_RGBA_ASTC_10x6_KHR */]: "astc-10x6-unorm",
[37849 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR */]: "astc-10x6-unorm-srgb",
[37818 /* COMPRESSED_RGBA_ASTC_10x8_KHR */]: "astc-10x8-unorm",
[37850 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR */]: "astc-10x8-unorm-srgb",
[37819 /* COMPRESSED_RGBA_ASTC_10x10_KHR */]: "astc-10x10-unorm",
[37851 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR */]: "astc-10x10-unorm-srgb",
[37820 /* COMPRESSED_RGBA_ASTC_12x10_KHR */]: "astc-12x10-unorm",
[37852 /* COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR */]: "astc-12x10-unorm-srgb",
[37821 /* COMPRESSED_RGBA_ASTC_12x12_KHR */]: "astc-12x12-unorm",
[37853 /* COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR */]: "astc-12x12-unorm-srgb",
[36492 /* COMPRESSED_RGBA_BPTC_UNORM_EXT */]: "bc7-rgba-unorm",
[36493 /* COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT */]: "bc7-rgba-unorm-srgb",
[36494 /* COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT */]: "bc6h-rgb-float",
[36495 /* COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT */]: "bc6h-rgb-ufloat",
[35907 /* SRGB8_ALPHA8 */]: "rgba8unorm-srgb",
[36759 /* RGBA8_SNORM */]: "rgba8snorm",
[36220 /* RGBA8UI */]: "rgba8uint",
[36238 /* RGBA8I */]: "rgba8sint",
[6408 /* RGBA */]: "rgba8unorm"
// [GL_INTERNAL_FORMAT.RGBA8]: 'bgra8unorm'
};
const FILE_IDENTIFIER = [171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10];
const FIELDS = {
FILE_IDENTIFIER: 0,
ENDIANNESS: 12,
GL_TYPE: 16,
GL_TYPE_SIZE: 20,
GL_FORMAT: 24,
GL_INTERNAL_FORMAT: 28,
GL_BASE_INTERNAL_FORMAT: 32,
PIXEL_WIDTH: 36,
PIXEL_HEIGHT: 40,
PIXEL_DEPTH: 44,
NUMBER_OF_ARRAY_ELEMENTS: 48,
NUMBER_OF_FACES: 52,
NUMBER_OF_MIPMAP_LEVELS: 56,
BYTES_OF_KEY_VALUE_DATA: 60
};
const FILE_HEADER_SIZE = 64;
const ENDIANNESS = 67305985;
const TYPES_TO_BYTES_PER_COMPONENT = {
[5121 /* UNSIGNED_BYTE */]: 1,
[5123 /* UNSIGNED_SHORT */]: 2,
[5124 /* INT */]: 4,
[5125 /* UNSIGNED_INT */]: 4,
[5126 /* FLOAT */]: 4,
[36193 /* HALF_FLOAT */]: 8
};
const FORMATS_TO_COMPONENTS = {
[6408 /* RGBA */]: 4,
[6407 /* RGB */]: 3,
[33319 /* RG */]: 2,
[6403 /* RED */]: 1,
[6409 /* LUMINANCE */]: 1,
[6410 /* LUMINANCE_ALPHA */]: 2,
[6406 /* ALPHA */]: 1
};
const TYPES_TO_BYTES_PER_PIXEL = {
[32819 /* UNSIGNED_SHORT_4_4_4_4 */]: 2,
[32820 /* UNSIGNED_SHORT_5_5_5_1 */]: 2,
[33635 /* UNSIGNED_SHORT_5_6_5 */]: 2
};
const INTERNAL_FORMAT_TO_BYTES_PER_PIXEL = {
[33776 /* COMPRESSED_RGB_S3TC_DXT1_EXT */]: 0.5,
[33777 /* COMPRESSED_RGBA_S3TC_DXT1_EXT */]: 0.5,
[33778 /* COMPRESSED_RGBA_S3TC_DXT3_EXT */]: 1,
[33779 /* COMPRESSED_RGBA_S3TC_DXT5_EXT */]: 1,
[35916 /* COMPRESSED_SRGB_S3TC_DXT1_EXT */]: 0.5,
[35917 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT */]: 0.5,
[35918 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT */]: 1,
[35919 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT */]: 1,
[36283 /* COMPRESSED_RED_RGTC1_EXT */]: 0.5,
[36284 /* COMPRESSED_SIGNED_RED_RGTC1_EXT */]: 0.5,
[36285 /* COMPRESSED_RED_GREEN_RGTC2_EXT */]: 1,
[36286 /* COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT */]: 1,
[37488 /* COMPRESSED_R11_EAC */]: 0.5,
[37489 /* COMPRESSED_SIGNED_R11_EAC */]: 0.5,
[37490 /* COMPRESSED_RG11_EAC */]: 1,
[37491 /* COMPRESSED_SIGNED_RG11_EAC */]: 1,
[37492 /* COMPRESSED_RGB8_ETC2 */]: 0.5,
[37496 /* COMPRESSED_RGBA8_ETC2_EAC */]: 1,
[37493 /* COMPRESSED_SRGB8_ETC2 */]: 0.5,
[37497 /* COMPRESSED_SRGB8_ALPHA8_ETC2_EAC */]: 1,
[37494 /* COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 */]: 0.5,
[37495 /* COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 */]: 0.5,
[37808 /* COMPRESSED_RGBA_ASTC_4x4_KHR */]: 1,
[37840 /* COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR */]: 1,
[37809 /* COMPRESSED_RGBA_ASTC_5x4_KHR */]: 0.8,
[37841 /* COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR */]: 0.8,
[37810 /* COMPRESSED_RGBA_ASTC_5x5_KHR */]: 0.64,
[37842 /* COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR */]: 0.64,
[37811 /* COMPRESSED_RGBA_ASTC_6x5_KHR */]: 0.53375,
[37843 /* COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR */]: 0.53375,
[37812 /* COMPRESSED_RGBA_ASTC_6x6_KHR */]: 0.445,
[37844 /* COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR */]: 0.445,
[37813 /* COMPRESSED_RGBA_ASTC_8x5_KHR */]: 0.4,
[37845 /* COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR */]: 0.4,
[37814 /* COMPRESSED_RGBA_ASTC_8x6_KHR */]: 0.33375,
[37846 /* COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR */]: 0.33375,
[37815 /* COMPRESSED_RGBA_ASTC_8x8_KHR */]: 0.25,
[37847 /* COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR */]: 0.25,
[37816 /* COMPRESSED_RGBA_ASTC_10x5_KHR */]: 0.32,
[37848 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR */]: 0.32,
[37817 /* COMPRESSED_RGBA_ASTC_10x6_KHR */]: 0.26625,
[37849 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR */]: 0.26625,
[37818 /* COMPRESSED_RGBA_ASTC_10x8_KHR */]: 0.2,
[37850 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR */]: 0.2,
[37819 /* COMPRESSED_RGBA_ASTC_10x10_KHR */]: 0.16,
[37851 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR */]: 0.16,
[37820 /* COMPRESSED_RGBA_ASTC_12x10_KHR */]: 0.13375,
[37852 /* COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR */]: 0.13375,
[37821 /* COMPRESSED_RGBA_ASTC_12x12_KHR */]: 0.11125,
[37853 /* COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR */]: 0.11125,
[36492 /* COMPRESSED_RGBA_BPTC_UNORM_EXT */]: 1,
[36493 /* COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT */]: 1,
[36494 /* COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT */]: 1,
[36495 /* COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT */]: 1
};
const KTX = {
FILE_HEADER_SIZE,
FILE_IDENTIFIER,
FORMATS_TO_COMPONENTS,
INTERNAL_FORMAT_TO_BYTES_PER_PIXEL,
INTERNAL_FORMAT_TO_TEXTURE_FORMATS,
FIELDS,
TYPES_TO_BYTES_PER_COMPONENT,
TYPES_TO_BYTES_PER_PIXEL,
ENDIANNESS
};
exports.GL_INTERNAL_FORMAT = GL_INTERNAL_FORMAT;
exports.KTX = KTX;
//# sourceMappingURL=const.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,274 @@
"use strict";
var GL_INTERNAL_FORMAT = /* @__PURE__ */ ((GL_INTERNAL_FORMAT2) => {
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["RGBA8_SNORM"] = 36759] = "RGBA8_SNORM";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["RGBA"] = 6408] = "RGBA";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["RGBA8UI"] = 36220] = "RGBA8UI";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["SRGB8_ALPHA8"] = 35907] = "SRGB8_ALPHA8";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["RGBA8I"] = 36238] = "RGBA8I";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["RGBA8"] = 32856] = "RGBA8";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGB_S3TC_DXT1_EXT"] = 33776] = "COMPRESSED_RGB_S3TC_DXT1_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_S3TC_DXT1_EXT"] = 33777] = "COMPRESSED_RGBA_S3TC_DXT1_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_S3TC_DXT3_EXT"] = 33778] = "COMPRESSED_RGBA_S3TC_DXT3_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_S3TC_DXT5_EXT"] = 33779] = "COMPRESSED_RGBA_S3TC_DXT5_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"] = 35917] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"] = 35918] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"] = 35919] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB_S3TC_DXT1_EXT"] = 35916] = "COMPRESSED_SRGB_S3TC_DXT1_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RED_RGTC1_EXT"] = 36283] = "COMPRESSED_RED_RGTC1_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SIGNED_RED_RGTC1_EXT"] = 36284] = "COMPRESSED_SIGNED_RED_RGTC1_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RED_GREEN_RGTC2_EXT"] = 36285] = "COMPRESSED_RED_GREEN_RGTC2_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT"] = 36286] = "COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_R11_EAC"] = 37488] = "COMPRESSED_R11_EAC";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SIGNED_R11_EAC"] = 37489] = "COMPRESSED_SIGNED_R11_EAC";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RG11_EAC"] = 37490] = "COMPRESSED_RG11_EAC";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SIGNED_RG11_EAC"] = 37491] = "COMPRESSED_SIGNED_RG11_EAC";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGB8_ETC2"] = 37492] = "COMPRESSED_RGB8_ETC2";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA8_ETC2_EAC"] = 37496] = "COMPRESSED_RGBA8_ETC2_EAC";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ETC2"] = 37493] = "COMPRESSED_SRGB8_ETC2";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"] = 37497] = "COMPRESSED_SRGB8_ALPHA8_ETC2_EAC";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"] = 37494] = "COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"] = 37495] = "COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_4x4_KHR"] = 37808] = "COMPRESSED_RGBA_ASTC_4x4_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_5x4_KHR"] = 37809] = "COMPRESSED_RGBA_ASTC_5x4_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_5x5_KHR"] = 37810] = "COMPRESSED_RGBA_ASTC_5x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_6x5_KHR"] = 37811] = "COMPRESSED_RGBA_ASTC_6x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_6x6_KHR"] = 37812] = "COMPRESSED_RGBA_ASTC_6x6_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_8x5_KHR"] = 37813] = "COMPRESSED_RGBA_ASTC_8x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_8x6_KHR"] = 37814] = "COMPRESSED_RGBA_ASTC_8x6_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_8x8_KHR"] = 37815] = "COMPRESSED_RGBA_ASTC_8x8_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_10x5_KHR"] = 37816] = "COMPRESSED_RGBA_ASTC_10x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_10x6_KHR"] = 37817] = "COMPRESSED_RGBA_ASTC_10x6_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_10x8_KHR"] = 37818] = "COMPRESSED_RGBA_ASTC_10x8_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_10x10_KHR"] = 37819] = "COMPRESSED_RGBA_ASTC_10x10_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_12x10_KHR"] = 37820] = "COMPRESSED_RGBA_ASTC_12x10_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_ASTC_12x12_KHR"] = 37821] = "COMPRESSED_RGBA_ASTC_12x12_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"] = 37840] = "COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"] = 37841] = "COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"] = 37842] = "COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"] = 37843] = "COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"] = 37844] = "COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"] = 37845] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"] = 37846] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"] = 37847] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"] = 37848] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"] = 37849] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"] = 37850] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"] = 37851] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"] = 37852] = "COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"] = 37853] = "COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGBA_BPTC_UNORM_EXT"] = 36492] = "COMPRESSED_RGBA_BPTC_UNORM_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT"] = 36493] = "COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT"] = 36494] = "COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT";
GL_INTERNAL_FORMAT2[GL_INTERNAL_FORMAT2["COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT"] = 36495] = "COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT";
return GL_INTERNAL_FORMAT2;
})(GL_INTERNAL_FORMAT || {});
var GL_FORMATS = /* @__PURE__ */ ((GL_FORMATS2) => {
GL_FORMATS2[GL_FORMATS2["RGBA"] = 6408] = "RGBA";
GL_FORMATS2[GL_FORMATS2["RGB"] = 6407] = "RGB";
GL_FORMATS2[GL_FORMATS2["RG"] = 33319] = "RG";
GL_FORMATS2[GL_FORMATS2["RED"] = 6403] = "RED";
GL_FORMATS2[GL_FORMATS2["RGBA_INTEGER"] = 36249] = "RGBA_INTEGER";
GL_FORMATS2[GL_FORMATS2["RGB_INTEGER"] = 36248] = "RGB_INTEGER";
GL_FORMATS2[GL_FORMATS2["RG_INTEGER"] = 33320] = "RG_INTEGER";
GL_FORMATS2[GL_FORMATS2["RED_INTEGER"] = 36244] = "RED_INTEGER";
GL_FORMATS2[GL_FORMATS2["ALPHA"] = 6406] = "ALPHA";
GL_FORMATS2[GL_FORMATS2["LUMINANCE"] = 6409] = "LUMINANCE";
GL_FORMATS2[GL_FORMATS2["LUMINANCE_ALPHA"] = 6410] = "LUMINANCE_ALPHA";
GL_FORMATS2[GL_FORMATS2["DEPTH_COMPONENT"] = 6402] = "DEPTH_COMPONENT";
GL_FORMATS2[GL_FORMATS2["DEPTH_STENCIL"] = 34041] = "DEPTH_STENCIL";
return GL_FORMATS2;
})(GL_FORMATS || {});
var GL_TYPES = /* @__PURE__ */ ((GL_TYPES2) => {
GL_TYPES2[GL_TYPES2["UNSIGNED_BYTE"] = 5121] = "UNSIGNED_BYTE";
GL_TYPES2[GL_TYPES2["UNSIGNED_SHORT"] = 5123] = "UNSIGNED_SHORT";
GL_TYPES2[GL_TYPES2["UNSIGNED_SHORT_5_6_5"] = 33635] = "UNSIGNED_SHORT_5_6_5";
GL_TYPES2[GL_TYPES2["UNSIGNED_SHORT_4_4_4_4"] = 32819] = "UNSIGNED_SHORT_4_4_4_4";
GL_TYPES2[GL_TYPES2["UNSIGNED_SHORT_5_5_5_1"] = 32820] = "UNSIGNED_SHORT_5_5_5_1";
GL_TYPES2[GL_TYPES2["UNSIGNED_INT"] = 5125] = "UNSIGNED_INT";
GL_TYPES2[GL_TYPES2["UNSIGNED_INT_10F_11F_11F_REV"] = 35899] = "UNSIGNED_INT_10F_11F_11F_REV";
GL_TYPES2[GL_TYPES2["UNSIGNED_INT_2_10_10_10_REV"] = 33640] = "UNSIGNED_INT_2_10_10_10_REV";
GL_TYPES2[GL_TYPES2["UNSIGNED_INT_24_8"] = 34042] = "UNSIGNED_INT_24_8";
GL_TYPES2[GL_TYPES2["UNSIGNED_INT_5_9_9_9_REV"] = 35902] = "UNSIGNED_INT_5_9_9_9_REV";
GL_TYPES2[GL_TYPES2["BYTE"] = 5120] = "BYTE";
GL_TYPES2[GL_TYPES2["SHORT"] = 5122] = "SHORT";
GL_TYPES2[GL_TYPES2["INT"] = 5124] = "INT";
GL_TYPES2[GL_TYPES2["FLOAT"] = 5126] = "FLOAT";
GL_TYPES2[GL_TYPES2["FLOAT_32_UNSIGNED_INT_24_8_REV"] = 36269] = "FLOAT_32_UNSIGNED_INT_24_8_REV";
GL_TYPES2[GL_TYPES2["HALF_FLOAT"] = 36193] = "HALF_FLOAT";
return GL_TYPES2;
})(GL_TYPES || {});
const INTERNAL_FORMAT_TO_TEXTURE_FORMATS = {
[33776 /* COMPRESSED_RGB_S3TC_DXT1_EXT */]: "bc1-rgba-unorm",
// TODO: ???
[33777 /* COMPRESSED_RGBA_S3TC_DXT1_EXT */]: "bc1-rgba-unorm",
[33778 /* COMPRESSED_RGBA_S3TC_DXT3_EXT */]: "bc2-rgba-unorm",
[33779 /* COMPRESSED_RGBA_S3TC_DXT5_EXT */]: "bc3-rgba-unorm",
[35916 /* COMPRESSED_SRGB_S3TC_DXT1_EXT */]: "bc1-rgba-unorm-srgb",
// TODO: ???
[35917 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT */]: "bc1-rgba-unorm-srgb",
[35918 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT */]: "bc2-rgba-unorm-srgb",
[35919 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT */]: "bc3-rgba-unorm-srgb",
[36283 /* COMPRESSED_RED_RGTC1_EXT */]: "bc4-r-unorm",
[36284 /* COMPRESSED_SIGNED_RED_RGTC1_EXT */]: "bc4-r-snorm",
[36285 /* COMPRESSED_RED_GREEN_RGTC2_EXT */]: "bc5-rg-unorm",
[36286 /* COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT */]: "bc5-rg-snorm",
[37488 /* COMPRESSED_R11_EAC */]: "eac-r11unorm",
// [GL_INTERNAL_FORMAT.COMPRESSED_SIGNED_R11_EAC]: 'eac-r11snorm',
[37490 /* COMPRESSED_RG11_EAC */]: "eac-rg11snorm",
// [GL_INTERNAL_FORMAT.COMPRESSED_SIGNED_RG11_EAC]: 'eac-rg11unorm',
[37492 /* COMPRESSED_RGB8_ETC2 */]: "etc2-rgb8unorm",
[37496 /* COMPRESSED_RGBA8_ETC2_EAC */]: "etc2-rgba8unorm",
[37493 /* COMPRESSED_SRGB8_ETC2 */]: "etc2-rgb8unorm-srgb",
[37497 /* COMPRESSED_SRGB8_ALPHA8_ETC2_EAC */]: "etc2-rgba8unorm-srgb",
[37494 /* COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 */]: "etc2-rgb8a1unorm",
[37495 /* COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 */]: "etc2-rgb8a1unorm-srgb",
[37808 /* COMPRESSED_RGBA_ASTC_4x4_KHR */]: "astc-4x4-unorm",
[37840 /* COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR */]: "astc-4x4-unorm-srgb",
[37809 /* COMPRESSED_RGBA_ASTC_5x4_KHR */]: "astc-5x4-unorm",
[37841 /* COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR */]: "astc-5x4-unorm-srgb",
[37810 /* COMPRESSED_RGBA_ASTC_5x5_KHR */]: "astc-5x5-unorm",
[37842 /* COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR */]: "astc-5x5-unorm-srgb",
[37811 /* COMPRESSED_RGBA_ASTC_6x5_KHR */]: "astc-6x5-unorm",
[37843 /* COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR */]: "astc-6x5-unorm-srgb",
[37812 /* COMPRESSED_RGBA_ASTC_6x6_KHR */]: "astc-6x6-unorm",
[37844 /* COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR */]: "astc-6x6-unorm-srgb",
[37813 /* COMPRESSED_RGBA_ASTC_8x5_KHR */]: "astc-8x5-unorm",
[37845 /* COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR */]: "astc-8x5-unorm-srgb",
[37814 /* COMPRESSED_RGBA_ASTC_8x6_KHR */]: "astc-8x6-unorm",
[37846 /* COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR */]: "astc-8x6-unorm-srgb",
[37815 /* COMPRESSED_RGBA_ASTC_8x8_KHR */]: "astc-8x8-unorm",
[37847 /* COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR */]: "astc-8x8-unorm-srgb",
[37816 /* COMPRESSED_RGBA_ASTC_10x5_KHR */]: "astc-10x5-unorm",
[37848 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR */]: "astc-10x5-unorm-srgb",
[37817 /* COMPRESSED_RGBA_ASTC_10x6_KHR */]: "astc-10x6-unorm",
[37849 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR */]: "astc-10x6-unorm-srgb",
[37818 /* COMPRESSED_RGBA_ASTC_10x8_KHR */]: "astc-10x8-unorm",
[37850 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR */]: "astc-10x8-unorm-srgb",
[37819 /* COMPRESSED_RGBA_ASTC_10x10_KHR */]: "astc-10x10-unorm",
[37851 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR */]: "astc-10x10-unorm-srgb",
[37820 /* COMPRESSED_RGBA_ASTC_12x10_KHR */]: "astc-12x10-unorm",
[37852 /* COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR */]: "astc-12x10-unorm-srgb",
[37821 /* COMPRESSED_RGBA_ASTC_12x12_KHR */]: "astc-12x12-unorm",
[37853 /* COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR */]: "astc-12x12-unorm-srgb",
[36492 /* COMPRESSED_RGBA_BPTC_UNORM_EXT */]: "bc7-rgba-unorm",
[36493 /* COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT */]: "bc7-rgba-unorm-srgb",
[36494 /* COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT */]: "bc6h-rgb-float",
[36495 /* COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT */]: "bc6h-rgb-ufloat",
[35907 /* SRGB8_ALPHA8 */]: "rgba8unorm-srgb",
[36759 /* RGBA8_SNORM */]: "rgba8snorm",
[36220 /* RGBA8UI */]: "rgba8uint",
[36238 /* RGBA8I */]: "rgba8sint",
[6408 /* RGBA */]: "rgba8unorm"
// [GL_INTERNAL_FORMAT.RGBA8]: 'bgra8unorm'
};
const FILE_IDENTIFIER = [171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10];
const FIELDS = {
FILE_IDENTIFIER: 0,
ENDIANNESS: 12,
GL_TYPE: 16,
GL_TYPE_SIZE: 20,
GL_FORMAT: 24,
GL_INTERNAL_FORMAT: 28,
GL_BASE_INTERNAL_FORMAT: 32,
PIXEL_WIDTH: 36,
PIXEL_HEIGHT: 40,
PIXEL_DEPTH: 44,
NUMBER_OF_ARRAY_ELEMENTS: 48,
NUMBER_OF_FACES: 52,
NUMBER_OF_MIPMAP_LEVELS: 56,
BYTES_OF_KEY_VALUE_DATA: 60
};
const FILE_HEADER_SIZE = 64;
const ENDIANNESS = 67305985;
const TYPES_TO_BYTES_PER_COMPONENT = {
[5121 /* UNSIGNED_BYTE */]: 1,
[5123 /* UNSIGNED_SHORT */]: 2,
[5124 /* INT */]: 4,
[5125 /* UNSIGNED_INT */]: 4,
[5126 /* FLOAT */]: 4,
[36193 /* HALF_FLOAT */]: 8
};
const FORMATS_TO_COMPONENTS = {
[6408 /* RGBA */]: 4,
[6407 /* RGB */]: 3,
[33319 /* RG */]: 2,
[6403 /* RED */]: 1,
[6409 /* LUMINANCE */]: 1,
[6410 /* LUMINANCE_ALPHA */]: 2,
[6406 /* ALPHA */]: 1
};
const TYPES_TO_BYTES_PER_PIXEL = {
[32819 /* UNSIGNED_SHORT_4_4_4_4 */]: 2,
[32820 /* UNSIGNED_SHORT_5_5_5_1 */]: 2,
[33635 /* UNSIGNED_SHORT_5_6_5 */]: 2
};
const INTERNAL_FORMAT_TO_BYTES_PER_PIXEL = {
[33776 /* COMPRESSED_RGB_S3TC_DXT1_EXT */]: 0.5,
[33777 /* COMPRESSED_RGBA_S3TC_DXT1_EXT */]: 0.5,
[33778 /* COMPRESSED_RGBA_S3TC_DXT3_EXT */]: 1,
[33779 /* COMPRESSED_RGBA_S3TC_DXT5_EXT */]: 1,
[35916 /* COMPRESSED_SRGB_S3TC_DXT1_EXT */]: 0.5,
[35917 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT */]: 0.5,
[35918 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT */]: 1,
[35919 /* COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT */]: 1,
[36283 /* COMPRESSED_RED_RGTC1_EXT */]: 0.5,
[36284 /* COMPRESSED_SIGNED_RED_RGTC1_EXT */]: 0.5,
[36285 /* COMPRESSED_RED_GREEN_RGTC2_EXT */]: 1,
[36286 /* COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT */]: 1,
[37488 /* COMPRESSED_R11_EAC */]: 0.5,
[37489 /* COMPRESSED_SIGNED_R11_EAC */]: 0.5,
[37490 /* COMPRESSED_RG11_EAC */]: 1,
[37491 /* COMPRESSED_SIGNED_RG11_EAC */]: 1,
[37492 /* COMPRESSED_RGB8_ETC2 */]: 0.5,
[37496 /* COMPRESSED_RGBA8_ETC2_EAC */]: 1,
[37493 /* COMPRESSED_SRGB8_ETC2 */]: 0.5,
[37497 /* COMPRESSED_SRGB8_ALPHA8_ETC2_EAC */]: 1,
[37494 /* COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 */]: 0.5,
[37495 /* COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 */]: 0.5,
[37808 /* COMPRESSED_RGBA_ASTC_4x4_KHR */]: 1,
[37840 /* COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR */]: 1,
[37809 /* COMPRESSED_RGBA_ASTC_5x4_KHR */]: 0.8,
[37841 /* COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR */]: 0.8,
[37810 /* COMPRESSED_RGBA_ASTC_5x5_KHR */]: 0.64,
[37842 /* COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR */]: 0.64,
[37811 /* COMPRESSED_RGBA_ASTC_6x5_KHR */]: 0.53375,
[37843 /* COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR */]: 0.53375,
[37812 /* COMPRESSED_RGBA_ASTC_6x6_KHR */]: 0.445,
[37844 /* COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR */]: 0.445,
[37813 /* COMPRESSED_RGBA_ASTC_8x5_KHR */]: 0.4,
[37845 /* COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR */]: 0.4,
[37814 /* COMPRESSED_RGBA_ASTC_8x6_KHR */]: 0.33375,
[37846 /* COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR */]: 0.33375,
[37815 /* COMPRESSED_RGBA_ASTC_8x8_KHR */]: 0.25,
[37847 /* COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR */]: 0.25,
[37816 /* COMPRESSED_RGBA_ASTC_10x5_KHR */]: 0.32,
[37848 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR */]: 0.32,
[37817 /* COMPRESSED_RGBA_ASTC_10x6_KHR */]: 0.26625,
[37849 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR */]: 0.26625,
[37818 /* COMPRESSED_RGBA_ASTC_10x8_KHR */]: 0.2,
[37850 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR */]: 0.2,
[37819 /* COMPRESSED_RGBA_ASTC_10x10_KHR */]: 0.16,
[37851 /* COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR */]: 0.16,
[37820 /* COMPRESSED_RGBA_ASTC_12x10_KHR */]: 0.13375,
[37852 /* COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR */]: 0.13375,
[37821 /* COMPRESSED_RGBA_ASTC_12x12_KHR */]: 0.11125,
[37853 /* COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR */]: 0.11125,
[36492 /* COMPRESSED_RGBA_BPTC_UNORM_EXT */]: 1,
[36493 /* COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT */]: 1,
[36494 /* COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT */]: 1,
[36495 /* COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT */]: 1
};
const KTX = {
FILE_HEADER_SIZE,
FILE_IDENTIFIER,
FORMATS_TO_COMPONENTS,
INTERNAL_FORMAT_TO_BYTES_PER_PIXEL,
INTERNAL_FORMAT_TO_TEXTURE_FORMATS,
FIELDS,
TYPES_TO_BYTES_PER_COMPONENT,
TYPES_TO_BYTES_PER_PIXEL,
ENDIANNESS
};
export { GL_INTERNAL_FORMAT, KTX };
//# sourceMappingURL=const.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,12 @@
'use strict';
var Extensions = require('../../extensions/Extensions.js');
var detectCompressed = require('../shared/detectCompressed.js');
var resolveCompressedTextureUrl = require('../shared/resolveCompressedTextureUrl.js');
var loadKTX2 = require('./loadKTX2.js');
"use strict";
Extensions.extensions.add(loadKTX2.loadKTX2);
Extensions.extensions.add(resolveCompressedTextureUrl.resolveCompressedTextureUrl);
Extensions.extensions.add(detectCompressed.detectCompressed);
//# sourceMappingURL=init.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"init.js","sources":["../../../src/compressed-textures/ktx2/init.ts"],"sourcesContent":["import { extensions } from '../../extensions/Extensions';\nimport { detectCompressed } from '../shared/detectCompressed';\nimport { resolveCompressedTextureUrl } from '../shared/resolveCompressedTextureUrl';\nimport { loadKTX2 } from './loadKTX2';\n\nextensions.add(loadKTX2);\nextensions.add(resolveCompressedTextureUrl);\nextensions.add(detectCompressed);\n\n"],"names":["extensions","loadKTX2","resolveCompressedTextureUrl","detectCompressed"],"mappings":";;;;;;;;AAKAA,qBAAA,CAAW,IAAIC,iBAAQ,CAAA,CAAA;AACvBD,qBAAA,CAAW,IAAIE,uDAA2B,CAAA,CAAA;AAC1CF,qBAAA,CAAW,IAAIG,iCAAgB,CAAA;;"}

View File

@@ -0,0 +1,10 @@
import { extensions } from '../../extensions/Extensions.mjs';
import { detectCompressed } from '../shared/detectCompressed.mjs';
import { resolveCompressedTextureUrl } from '../shared/resolveCompressedTextureUrl.mjs';
import { loadKTX2 } from './loadKTX2.mjs';
"use strict";
extensions.add(loadKTX2);
extensions.add(resolveCompressedTextureUrl);
extensions.add(detectCompressed);
//# sourceMappingURL=init.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"init.mjs","sources":["../../../src/compressed-textures/ktx2/init.ts"],"sourcesContent":["import { extensions } from '../../extensions/Extensions';\nimport { detectCompressed } from '../shared/detectCompressed';\nimport { resolveCompressedTextureUrl } from '../shared/resolveCompressedTextureUrl';\nimport { loadKTX2 } from './loadKTX2';\n\nextensions.add(loadKTX2);\nextensions.add(resolveCompressedTextureUrl);\nextensions.add(detectCompressed);\n\n"],"names":[],"mappings":";;;;;;AAKA,UAAA,CAAW,IAAI,QAAQ,CAAA,CAAA;AACvB,UAAA,CAAW,IAAI,2BAA2B,CAAA,CAAA;AAC1C,UAAA,CAAW,IAAI,gBAAgB,CAAA"}

View File

@@ -0,0 +1,17 @@
import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser';
import { ExtensionType } from '../../extensions/Extensions';
import type { Loader } from '../../assets/loader/Loader';
import type { ResolvedAsset } from '../../assets/types';
import type { Texture } from '../../rendering/renderers/shared/texture/Texture';
/** Loads KTX2 textures! */
export declare const loadKTX2: {
extension: {
type: ExtensionType.LoadParser;
priority: LoaderParserPriority;
name: string;
};
name: string;
test(url: string): boolean;
load<T>(url: string, _asset: ResolvedAsset, loader: Loader): Promise<Texture | Texture[]>;
unload(texture: Texture | Texture[]): Promise<void>;
};

View File

@@ -0,0 +1,38 @@
'use strict';
var LoaderParser = require('../../assets/loader/parsers/LoaderParser.js');
var createTexture = require('../../assets/loader/parsers/textures/utils/createTexture.js');
var checkExtension = require('../../assets/utils/checkExtension.js');
var Extensions = require('../../extensions/Extensions.js');
var CompressedSource = require('../../rendering/renderers/shared/texture/sources/CompressedSource.js');
var getSupportedTextureFormats = require('../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats.js');
var loadKTX2onWorker = require('./worker/loadKTX2onWorker.js');
"use strict";
const loadKTX2 = {
extension: {
type: Extensions.ExtensionType.LoadParser,
priority: LoaderParser.LoaderParserPriority.High,
name: "loadKTX2"
},
name: "loadKTX2",
test(url) {
return checkExtension.checkExtension(url, ".ktx2");
},
async load(url, _asset, loader) {
const supportedTextures = await getSupportedTextureFormats.getSupportedTextureFormats();
const textureOptions = await loadKTX2onWorker.loadKTX2onWorker(url, supportedTextures);
const compressedTextureSource = new CompressedSource.CompressedSource(textureOptions);
return createTexture.createTexture(compressedTextureSource, loader, url);
},
async unload(texture) {
if (Array.isArray(texture)) {
texture.forEach((t) => t.destroy(true));
} else {
texture.destroy(true);
}
}
};
exports.loadKTX2 = loadKTX2;
//# sourceMappingURL=loadKTX2.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"loadKTX2.js","sources":["../../../src/compressed-textures/ktx2/loadKTX2.ts"],"sourcesContent":["import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser';\nimport { createTexture } from '../../assets/loader/parsers/textures/utils/createTexture';\nimport { checkExtension } from '../../assets/utils/checkExtension';\nimport { ExtensionType } from '../../extensions/Extensions';\nimport { CompressedSource } from '../../rendering/renderers/shared/texture/sources/CompressedSource';\nimport { getSupportedTextureFormats } from '../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats';\nimport { loadKTX2onWorker } from './worker/loadKTX2onWorker';\n\nimport type { Loader } from '../../assets/loader/Loader';\nimport type { LoaderParser } from '../../assets/loader/parsers/LoaderParser';\nimport type { ResolvedAsset } from '../../assets/types';\nimport type { TextureSourceOptions } from '../../rendering/renderers/shared/texture/sources/TextureSource';\nimport type { Texture } from '../../rendering/renderers/shared/texture/Texture';\n\n/** Loads KTX2 textures! */\nexport const loadKTX2 = {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.High,\n name: 'loadKTX2',\n },\n\n name: 'loadKTX2',\n\n test(url: string): boolean\n {\n return checkExtension(url, '.ktx2');\n },\n\n async load(url: string, _asset: ResolvedAsset, loader: Loader): Promise<Texture | Texture[]>\n {\n const supportedTextures = await getSupportedTextureFormats();\n\n const textureOptions = await loadKTX2onWorker(url, supportedTextures);\n\n const compressedTextureSource = new CompressedSource(textureOptions);\n\n return createTexture(compressedTextureSource, loader, url);\n },\n\n async unload(texture: Texture | Texture[]): Promise<void>\n {\n if (Array.isArray(texture))\n {\n texture.forEach((t) => t.destroy(true));\n }\n else\n {\n texture.destroy(true);\n }\n }\n\n} satisfies LoaderParser<Texture | Texture[], TextureSourceOptions>;\n\n"],"names":["ExtensionType","LoaderParserPriority","checkExtension","getSupportedTextureFormats","loadKTX2onWorker","CompressedSource","createTexture"],"mappings":";;;;;;;;;;;AAeO,MAAM,QAAW,GAAA;AAAA,EACpB,SAAW,EAAA;AAAA,IACP,MAAMA,wBAAc,CAAA,UAAA;AAAA,IACpB,UAAUC,iCAAqB,CAAA,IAAA;AAAA,IAC/B,IAAM,EAAA,UAAA;AAAA,GACV;AAAA,EAEA,IAAM,EAAA,UAAA;AAAA,EAEN,KAAK,GACL,EAAA;AACI,IAAO,OAAAC,6BAAA,CAAe,KAAK,OAAO,CAAA,CAAA;AAAA,GACtC;AAAA,EAEA,MAAM,IAAA,CAAK,GAAa,EAAA,MAAA,EAAuB,MAC/C,EAAA;AACI,IAAM,MAAA,iBAAA,GAAoB,MAAMC,qDAA2B,EAAA,CAAA;AAE3D,IAAA,MAAM,cAAiB,GAAA,MAAMC,iCAAiB,CAAA,GAAA,EAAK,iBAAiB,CAAA,CAAA;AAEpE,IAAM,MAAA,uBAAA,GAA0B,IAAIC,iCAAA,CAAiB,cAAc,CAAA,CAAA;AAEnE,IAAO,OAAAC,2BAAA,CAAc,uBAAyB,EAAA,MAAA,EAAQ,GAAG,CAAA,CAAA;AAAA,GAC7D;AAAA,EAEA,MAAM,OAAO,OACb,EAAA;AACI,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,OAAO,CACzB,EAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,CAAC,CAAA,KAAM,CAAE,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA;AAAA,KAG1C,MAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,KACxB;AAAA,GACJ;AAEJ;;;;"}

View File

@@ -0,0 +1,36 @@
import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser.mjs';
import { createTexture } from '../../assets/loader/parsers/textures/utils/createTexture.mjs';
import { checkExtension } from '../../assets/utils/checkExtension.mjs';
import { ExtensionType } from '../../extensions/Extensions.mjs';
import { CompressedSource } from '../../rendering/renderers/shared/texture/sources/CompressedSource.mjs';
import { getSupportedTextureFormats } from '../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats.mjs';
import { loadKTX2onWorker } from './worker/loadKTX2onWorker.mjs';
"use strict";
const loadKTX2 = {
extension: {
type: ExtensionType.LoadParser,
priority: LoaderParserPriority.High,
name: "loadKTX2"
},
name: "loadKTX2",
test(url) {
return checkExtension(url, ".ktx2");
},
async load(url, _asset, loader) {
const supportedTextures = await getSupportedTextureFormats();
const textureOptions = await loadKTX2onWorker(url, supportedTextures);
const compressedTextureSource = new CompressedSource(textureOptions);
return createTexture(compressedTextureSource, loader, url);
},
async unload(texture) {
if (Array.isArray(texture)) {
texture.forEach((t) => t.destroy(true));
} else {
texture.destroy(true);
}
}
};
export { loadKTX2 };
//# sourceMappingURL=loadKTX2.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"loadKTX2.mjs","sources":["../../../src/compressed-textures/ktx2/loadKTX2.ts"],"sourcesContent":["import { LoaderParserPriority } from '../../assets/loader/parsers/LoaderParser';\nimport { createTexture } from '../../assets/loader/parsers/textures/utils/createTexture';\nimport { checkExtension } from '../../assets/utils/checkExtension';\nimport { ExtensionType } from '../../extensions/Extensions';\nimport { CompressedSource } from '../../rendering/renderers/shared/texture/sources/CompressedSource';\nimport { getSupportedTextureFormats } from '../../rendering/renderers/shared/texture/utils/getSupportedTextureFormats';\nimport { loadKTX2onWorker } from './worker/loadKTX2onWorker';\n\nimport type { Loader } from '../../assets/loader/Loader';\nimport type { LoaderParser } from '../../assets/loader/parsers/LoaderParser';\nimport type { ResolvedAsset } from '../../assets/types';\nimport type { TextureSourceOptions } from '../../rendering/renderers/shared/texture/sources/TextureSource';\nimport type { Texture } from '../../rendering/renderers/shared/texture/Texture';\n\n/** Loads KTX2 textures! */\nexport const loadKTX2 = {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.High,\n name: 'loadKTX2',\n },\n\n name: 'loadKTX2',\n\n test(url: string): boolean\n {\n return checkExtension(url, '.ktx2');\n },\n\n async load(url: string, _asset: ResolvedAsset, loader: Loader): Promise<Texture | Texture[]>\n {\n const supportedTextures = await getSupportedTextureFormats();\n\n const textureOptions = await loadKTX2onWorker(url, supportedTextures);\n\n const compressedTextureSource = new CompressedSource(textureOptions);\n\n return createTexture(compressedTextureSource, loader, url);\n },\n\n async unload(texture: Texture | Texture[]): Promise<void>\n {\n if (Array.isArray(texture))\n {\n texture.forEach((t) => t.destroy(true));\n }\n else\n {\n texture.destroy(true);\n }\n }\n\n} satisfies LoaderParser<Texture | Texture[], TextureSourceOptions>;\n\n"],"names":[],"mappings":";;;;;;;;;AAeO,MAAM,QAAW,GAAA;AAAA,EACpB,SAAW,EAAA;AAAA,IACP,MAAM,aAAc,CAAA,UAAA;AAAA,IACpB,UAAU,oBAAqB,CAAA,IAAA;AAAA,IAC/B,IAAM,EAAA,UAAA;AAAA,GACV;AAAA,EAEA,IAAM,EAAA,UAAA;AAAA,EAEN,KAAK,GACL,EAAA;AACI,IAAO,OAAA,cAAA,CAAe,KAAK,OAAO,CAAA,CAAA;AAAA,GACtC;AAAA,EAEA,MAAM,IAAA,CAAK,GAAa,EAAA,MAAA,EAAuB,MAC/C,EAAA;AACI,IAAM,MAAA,iBAAA,GAAoB,MAAM,0BAA2B,EAAA,CAAA;AAE3D,IAAA,MAAM,cAAiB,GAAA,MAAM,gBAAiB,CAAA,GAAA,EAAK,iBAAiB,CAAA,CAAA;AAEpE,IAAM,MAAA,uBAAA,GAA0B,IAAI,gBAAA,CAAiB,cAAc,CAAA,CAAA;AAEnE,IAAO,OAAA,aAAA,CAAc,uBAAyB,EAAA,MAAA,EAAQ,GAAG,CAAA,CAAA;AAAA,GAC7D;AAAA,EAEA,MAAM,OAAO,OACb,EAAA;AACI,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,OAAO,CACzB,EAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,CAAC,CAAA,KAAM,CAAE,CAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA;AAAA,KAG1C,MAAA;AACI,MAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,KACxB;AAAA,GACJ;AAEJ;;;;"}

View File

@@ -0,0 +1,23 @@
import type { TEXTURE_FORMATS } from '../../rendering/renderers/shared/texture/const';
export type LIBKTXModuleCreator = (config: {
locateFile: (file: string) => string;
}) => {
then: (result: (libktx: LIBKTXModule) => void) => void;
};
export interface KTXTexture {
getImageData(level: number, layer: number, face: number): Uint8Array;
glInternalformat: number;
vkFormat: number;
classId: number;
numLevels: number;
baseHeight: number;
baseWidth: number;
transcodeBasis(transcodeFormat: any, arg1: number): unknown;
needsTranscoding: boolean;
}
export interface LIBKTXModule {
ErrorCode: any;
TranscodeTarget: any;
ktxTexture: new (data: Uint8Array) => KTXTexture;
}
export type COMPRESSED_TEXTURE_FORMATS = TEXTURE_FORMATS | 'rgb8unorm' | 'rgb8unorm-srgb';

View File

@@ -0,0 +1,4 @@
'use strict';
"use strict";
//# sourceMappingURL=types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}

View File

@@ -0,0 +1,2 @@
"use strict";
//# sourceMappingURL=types.mjs.map

Some files were not shown because too many files have changed in this diff Show More