Socket
Socket
Sign inDemoInstall

@pixi/compressed-textures

Package Overview
Dependencies
34
Maintainers
2
Versions
85
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 7.2.4 to 7.3.0-rc

103

lib/const.js

@@ -1,67 +0,46 @@

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var INTERNAL_FORMATS = /* @__PURE__ */ ((INTERNAL_FORMATS2) => {
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGB_S3TC_DXT1_EXT"] = 33776] = "COMPRESSED_RGB_S3TC_DXT1_EXT";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGBA_S3TC_DXT1_EXT"] = 33777] = "COMPRESSED_RGBA_S3TC_DXT1_EXT";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGBA_S3TC_DXT3_EXT"] = 33778] = "COMPRESSED_RGBA_S3TC_DXT3_EXT";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGBA_S3TC_DXT5_EXT"] = 33779] = "COMPRESSED_RGBA_S3TC_DXT5_EXT";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"] = 35917] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"] = 35918] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"] = 35919] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_SRGB_S3TC_DXT1_EXT"] = 35916] = "COMPRESSED_SRGB_S3TC_DXT1_EXT";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_R11_EAC"] = 37488] = "COMPRESSED_R11_EAC";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_SIGNED_R11_EAC"] = 37489] = "COMPRESSED_SIGNED_R11_EAC";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RG11_EAC"] = 37490] = "COMPRESSED_RG11_EAC";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_SIGNED_RG11_EAC"] = 37491] = "COMPRESSED_SIGNED_RG11_EAC";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGB8_ETC2"] = 37492] = "COMPRESSED_RGB8_ETC2";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGBA8_ETC2_EAC"] = 37496] = "COMPRESSED_RGBA8_ETC2_EAC";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_SRGB8_ETC2"] = 37493] = "COMPRESSED_SRGB8_ETC2";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"] = 37497] = "COMPRESSED_SRGB8_ALPHA8_ETC2_EAC";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"] = 37494] = "COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"] = 37495] = "COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGB_PVRTC_4BPPV1_IMG"] = 35840] = "COMPRESSED_RGB_PVRTC_4BPPV1_IMG";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"] = 35842] = "COMPRESSED_RGBA_PVRTC_4BPPV1_IMG";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGB_PVRTC_2BPPV1_IMG"] = 35841] = "COMPRESSED_RGB_PVRTC_2BPPV1_IMG";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"] = 35843] = "COMPRESSED_RGBA_PVRTC_2BPPV1_IMG";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGB_ETC1_WEBGL"] = 36196] = "COMPRESSED_RGB_ETC1_WEBGL";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGB_ATC_WEBGL"] = 35986] = "COMPRESSED_RGB_ATC_WEBGL";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL"] = 35986] = "COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL"] = 34798] = "COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL";
INTERNAL_FORMATS2[INTERNAL_FORMATS2["COMPRESSED_RGBA_ASTC_4x4_KHR"] = 37808] = "COMPRESSED_RGBA_ASTC_4x4_KHR";
return INTERNAL_FORMATS2;
})(INTERNAL_FORMATS || {});
"use strict";
var INTERNAL_FORMATS = /* @__PURE__ */ ((INTERNAL_FORMATS2) => (INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_S3TC_DXT1_EXT = 33776] = "COMPRESSED_RGB_S3TC_DXT1_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777] = "COMPRESSED_RGBA_S3TC_DXT1_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778] = "COMPRESSED_RGBA_S3TC_DXT3_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779] = "COMPRESSED_RGBA_S3TC_DXT5_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 35917] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 35918] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 35919] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB_S3TC_DXT1_EXT = 35916] = "COMPRESSED_SRGB_S3TC_DXT1_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_R11_EAC = 37488] = "COMPRESSED_R11_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SIGNED_R11_EAC = 37489] = "COMPRESSED_SIGNED_R11_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RG11_EAC = 37490] = "COMPRESSED_RG11_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SIGNED_RG11_EAC = 37491] = "COMPRESSED_SIGNED_RG11_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB8_ETC2 = 37492] = "COMPRESSED_RGB8_ETC2", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA8_ETC2_EAC = 37496] = "COMPRESSED_RGBA8_ETC2_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB8_ETC2 = 37493] = "COMPRESSED_SRGB8_ETC2", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 37497] = "COMPRESSED_SRGB8_ALPHA8_ETC2_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37494] = "COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37495] = "COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840] = "COMPRESSED_RGB_PVRTC_4BPPV1_IMG", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842] = "COMPRESSED_RGBA_PVRTC_4BPPV1_IMG", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841] = "COMPRESSED_RGB_PVRTC_2BPPV1_IMG", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843] = "COMPRESSED_RGBA_PVRTC_2BPPV1_IMG", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_ETC1_WEBGL = 36196] = "COMPRESSED_RGB_ETC1_WEBGL", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_ATC_WEBGL = 35986] = "COMPRESSED_RGB_ATC_WEBGL", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 35986] = "COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798] = "COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_ASTC_4x4_KHR = 37808] = "COMPRESSED_RGBA_ASTC_4x4_KHR", INTERNAL_FORMATS2))(INTERNAL_FORMATS || {});
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,
[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,
[35840 /* COMPRESSED_RGB_PVRTC_4BPPV1_IMG */]: 0.5,
[35842 /* COMPRESSED_RGBA_PVRTC_4BPPV1_IMG */]: 0.5,
[35841 /* COMPRESSED_RGB_PVRTC_2BPPV1_IMG */]: 0.25,
[35843 /* COMPRESSED_RGBA_PVRTC_2BPPV1_IMG */]: 0.25,
[36196 /* COMPRESSED_RGB_ETC1_WEBGL */]: 0.5,
[35986 /* COMPRESSED_RGB_ATC_WEBGL */]: 0.5,
[35986 /* COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL */]: 1,
[34798 /* COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL */]: 1,
[37808 /* COMPRESSED_RGBA_ASTC_4x4_KHR */]: 1
// WEBGL_compressed_texture_s3tc
33776: 0.5,
33777: 0.5,
33778: 1,
33779: 1,
// WEBGL_compressed_texture_s3tc
35916: 0.5,
35917: 0.5,
35918: 1,
35919: 1,
// WEBGL_compressed_texture_etc
37488: 0.5,
37489: 0.5,
37490: 1,
37491: 1,
37492: 0.5,
37496: 1,
37493: 0.5,
37497: 1,
37494: 0.5,
// ~~
37495: 0.5,
// ~~
// WEBGL_compressed_texture_pvrtc
35840: 0.5,
35842: 0.5,
35841: 0.25,
35843: 0.25,
// WEBGL_compressed_texture_etc1
36196: 0.5,
// @see https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_compressed_ATC_texture.txt
// WEBGL_compressed_texture_atc
35986: 0.5,
35986: 1,
34798: 1,
// @see https://registry.khronos.org/OpenGL/extensions/KHR/KHR_texture_compression_astc_hdr.txt
// WEBGL_compressed_texture_astc
/* eslint-disable-next-line camelcase */
37808: 1
};
exports.INTERNAL_FORMATS = INTERNAL_FORMATS;
exports.INTERNAL_FORMAT_TO_BYTES_PER_PIXEL = INTERNAL_FORMAT_TO_BYTES_PER_PIXEL;
//# sourceMappingURL=const.js.map

@@ -1,20 +0,7 @@

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var _const = require('./const.js');
require('./loaders/index.js');
require('./parsers/index.js');
require('./resources/index.js');
var detectCompressedTextures = require('./loaders/detectCompressedTextures.js');
var loadDDS = require('./loaders/loadDDS.js');
var loadKTX = require('./loaders/loadKTX.js');
var resolveCompressedTextureUrl = require('./loaders/resolveCompressedTextureUrl.js');
var parseDDS = require('./parsers/parseDDS.js');
var parseKTX = require('./parsers/parseKTX.js');
var BlobResource = require('./resources/BlobResource.js');
var CompressedTextureResource = require('./resources/CompressedTextureResource.js');
"use strict";
var _const = require("./const.js");
require("./loaders/index.js");
require("./parsers/index.js");
require("./resources/index.js");
var detectCompressedTextures = require("./loaders/detectCompressedTextures.js"), loadDDS = require("./loaders/loadDDS.js"), loadKTX = require("./loaders/loadKTX.js"), resolveCompressedTextureUrl = require("./loaders/resolveCompressedTextureUrl.js"), parseDDS = require("./parsers/parseDDS.js"), parseKTX = require("./parsers/parseKTX.js"), BlobResource = require("./resources/BlobResource.js"), CompressedTextureResource = require("./resources/CompressedTextureResource.js");
exports.INTERNAL_FORMATS = _const.INTERNAL_FORMATS;

@@ -21,0 +8,0 @@ exports.INTERNAL_FORMAT_TO_BYTES_PER_PIXEL = _const.INTERNAL_FORMAT_TO_BYTES_PER_PIXEL;

@@ -1,3 +0,2 @@

'use strict';
"use strict";
//# sourceMappingURL=compressedTextureExtensions.js.map

@@ -1,9 +0,4 @@

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var core = require('@pixi/core');
let storedGl;
let extensions;
"use strict";
var core = require("@pixi/core");
let storedGl, extensions;
function getCompressedTextureExtensions() {

@@ -13,2 +8,3 @@ extensions = {

s3tc_sRGB: storedGl.getExtension("WEBGL_compressed_texture_s3tc_srgb"),
/* eslint-disable-line camelcase */
etc: storedGl.getExtension("WEBGL_compressed_texture_etc"),

@@ -27,33 +23,16 @@ etc1: storedGl.getExtension("WEBGL_compressed_texture_etc1"),

test: async () => {
const canvas = core.settings.ADAPTER.createCanvas();
const gl = canvas.getContext("webgl");
if (!gl) {
console.warn("WebGL not available for compressed textures.");
return false;
}
storedGl = gl;
return true;
const gl = core.settings.ADAPTER.createCanvas().getContext("webgl");
return gl ? (storedGl = gl, !0) : (console.warn("WebGL not available for compressed textures."), !1);
},
add: async (formats) => {
if (!extensions)
getCompressedTextureExtensions();
extensions || getCompressedTextureExtensions();
const textureFormats = [];
for (const extensionName in extensions) {
const extension = extensions[extensionName];
if (!extension) {
continue;
}
textureFormats.push(extensionName);
}
for (const extensionName in extensions)
extensions[extensionName] && textureFormats.push(extensionName);
return [...textureFormats, ...formats];
},
remove: async (formats) => {
if (!extensions)
getCompressedTextureExtensions();
return formats.filter((f) => !(f in extensions));
}
remove: async (formats) => (extensions || getCompressedTextureExtensions(), formats.filter((f) => !(f in extensions)))
};
core.extensions.add(detectCompressedTextures);
exports.detectCompressedTextures = detectCompressedTextures;
//# sourceMappingURL=detectCompressedTextures.js.map

@@ -1,13 +0,4 @@

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
require('./compressedTextureExtensions.js');
var detectCompressedTextures = require('./detectCompressedTextures.js');
var loadDDS = require('./loadDDS.js');
var loadKTX = require('./loadKTX.js');
var resolveCompressedTextureUrl = require('./resolveCompressedTextureUrl.js');
"use strict";
require("./compressedTextureExtensions.js");
var detectCompressedTextures = require("./detectCompressedTextures.js"), loadDDS = require("./loadDDS.js"), loadKTX = require("./loadKTX.js"), resolveCompressedTextureUrl = require("./resolveCompressedTextureUrl.js");
exports.detectCompressedTextures = detectCompressedTextures.detectCompressedTextures;

@@ -14,0 +5,0 @@ exports.loadDDS = loadDDS.loadDDS;

@@ -1,10 +0,5 @@

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var assets = require('@pixi/assets');
var core = require('@pixi/core');
require('../parsers/index.js');
var parseDDS = require('../parsers/parseDDS.js');
"use strict";
var assets = require("@pixi/assets"), core = require("@pixi/core");
require("../parsers/index.js");
var parseDDS = require("../parsers/parseDDS.js");
const loadDDS = {

@@ -20,6 +15,3 @@ extension: {

async load(url, asset, loader) {
const response = await core.settings.ADAPTER.fetch(url);
const arrayBuffer = await response.arrayBuffer();
const resources = parseDDS.parseDDS(arrayBuffer);
const textures = resources.map((resource) => {
const arrayBuffer = await (await core.settings.ADAPTER.fetch(url)).arrayBuffer(), textures = parseDDS.parseDDS(arrayBuffer).map((resource) => {
const base = new core.BaseTexture(resource, {

@@ -36,12 +28,7 @@ mipmap: core.MIPMAP_MODES.OFF,

unload(texture) {
if (Array.isArray(texture)) {
texture.forEach((t) => t.destroy(true));
} else {
texture.destroy(true);
}
Array.isArray(texture) ? texture.forEach((t) => t.destroy(!0)) : texture.destroy(!0);
}
};
core.extensions.add(loadDDS);
exports.loadDDS = loadDDS;
//# sourceMappingURL=loadDDS.js.map

@@ -1,10 +0,5 @@

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var assets = require('@pixi/assets');
var core = require('@pixi/core');
require('../parsers/index.js');
var parseKTX = require('../parsers/parseKTX.js');
"use strict";
var assets = require("@pixi/assets"), core = require("@pixi/core");
require("../parsers/index.js");
var parseKTX = require("../parsers/parseKTX.js");
const loadKTX = {

@@ -20,7 +15,3 @@ extension: {

async load(url, asset, loader) {
const response = await core.settings.ADAPTER.fetch(url);
const arrayBuffer = await response.arrayBuffer();
const { compressed, uncompressed, kvData } = parseKTX.parseKTX(url, arrayBuffer);
const resources = compressed ?? uncompressed;
const options = {
const arrayBuffer = await (await core.settings.ADAPTER.fetch(url)).arrayBuffer(), { compressed, uncompressed, kvData } = parseKTX.parseKTX(url, arrayBuffer), resources = compressed ?? uncompressed, options = {
mipmap: core.MIPMAP_MODES.OFF,

@@ -30,13 +21,9 @@ alphaMode: core.ALPHA_MODES.NO_PREMULTIPLIED_ALPHA,

...asset.data
};
const textures = resources.map((resource) => {
if (resources === uncompressed) {
Object.assign(options, {
type: resource.type,
format: resource.format
});
}
const base = new core.BaseTexture(resource, options);
base.ktxKeyValueData = kvData;
return assets.createTexture(base, loader, url);
}, textures = resources.map((resource) => {
resources === uncompressed && Object.assign(options, {
type: resource.type,
format: resource.format
});
const res = resource.resource ?? resource, base = new core.BaseTexture(res, options);
return base.ktxKeyValueData = kvData, assets.createTexture(base, loader, url);
});

@@ -46,12 +33,7 @@ return textures.length === 1 ? textures[0] : textures;

unload(texture) {
if (Array.isArray(texture)) {
texture.forEach((t) => t.destroy(true));
} else {
texture.destroy(true);
}
Array.isArray(texture) ? texture.forEach((t) => t.destroy(!0)) : texture.destroy(!0);
}
};
core.extensions.add(loadKTX);
exports.loadKTX = loadKTX;
//# sourceMappingURL=loadKTX.js.map

@@ -1,18 +0,11 @@

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var core = require('@pixi/core');
"use strict";
var core = require("@pixi/core");
const resolveCompressedTextureUrl = {
extension: core.ExtensionType.ResolveParser,
test: (value) => {
const temp = value.split("?")[0];
const extension = temp.split(".").pop();
const extension = value.split("?")[0].split(".").pop();
return ["basis", "ktx", "dds"].includes(extension);
},
parse: (value) => {
const temp = value.split("?")[0];
const extension = temp.split(".").pop();
if (extension === "ktx") {
if (value.split("?")[0].split(".").pop() === "ktx") {
const extensions2 = [

@@ -27,3 +20,3 @@ ".s3tc.ktx",

];
if (extensions2.some((ext) => value.endsWith(ext))) {
if (extensions2.some((ext) => value.endsWith(ext)))
return {

@@ -34,3 +27,2 @@ resolution: parseFloat(core.settings.RETINA_PREFIX.exec(value)?.[1] ?? "1"),

};
}
}

@@ -45,4 +37,3 @@ return {

core.extensions.add(resolveCompressedTextureUrl);
exports.resolveCompressedTextureUrl = resolveCompressedTextureUrl;
//# sourceMappingURL=resolveCompressedTextureUrl.js.map

@@ -1,10 +0,3 @@

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var parseDDS = require('./parseDDS.js');
var parseKTX = require('./parseKTX.js');
"use strict";
var parseDDS = require("./parseDDS.js"), parseKTX = require("./parseKTX.js");
exports.parseDDS = parseDDS.parseDDS;

@@ -11,0 +4,0 @@ exports.FORMATS_TO_COMPONENTS = parseKTX.FORMATS_TO_COMPONENTS;

@@ -1,15 +0,6 @@

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var _const = require('../const.js');
require('../resources/index.js');
var CompressedTextureResource = require('../resources/CompressedTextureResource.js');
const DDS_MAGIC_SIZE = 4;
const DDS_HEADER_SIZE = 124;
const DDS_HEADER_PF_SIZE = 32;
const DDS_HEADER_DX10_SIZE = 20;
const DDS_MAGIC = 542327876;
const DDS_FIELDS = {
"use strict";
var _const = require("../const.js");
require("../resources/index.js");
var CompressedTextureResource = require("../resources/CompressedTextureResource.js");
const DDS_MAGIC_SIZE = 4, DDS_HEADER_SIZE = 124, DDS_HEADER_PF_SIZE = 32, DDS_HEADER_DX10_SIZE = 20, DDS_MAGIC = 542327876, DDS_FIELDS = {
SIZE: 1,

@@ -21,4 +12,3 @@ FLAGS: 2,

PIXEL_FORMAT: 19
};
const DDS_PF_FIELDS = {
}, DDS_PF_FIELDS = {
SIZE: 0,

@@ -32,4 +22,3 @@ FLAGS: 1,

A_BIT_MASK: 7
};
const DDS_DX10_FIELDS = {
}, DDS_DX10_FIELDS = {
DXGI_FORMAT: 0,

@@ -40,180 +29,33 @@ RESOURCE_DIMENSION: 1,

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 || {});
const PF_FLAGS = 1;
const DDPF_ALPHA = 2;
const DDPF_FOURCC = 4;
const DDPF_RGB = 64;
const DDPF_YUV = 512;
const DDPF_LUMINANCE = 131072;
const FOURCC_DXT1 = 827611204;
const FOURCC_DXT3 = 861165636;
const FOURCC_DXT5 = 894720068;
const FOURCC_DX10 = 808540228;
const DDS_RESOURCE_MISC_TEXTURECUBE = 4;
const FOURCC_TO_FORMAT = {
}, PF_FLAGS = 1, DDPF_ALPHA = 2, DDPF_FOURCC = 4, DDPF_RGB = 64, DDPF_YUV = 512, DDPF_LUMINANCE = 131072, FOURCC_DXT1 = 827611204, FOURCC_DXT3 = 861165636, FOURCC_DXT5 = 894720068, FOURCC_DX10 = 808540228, DDS_RESOURCE_MISC_TEXTURECUBE = 4, FOURCC_TO_FORMAT = {
[FOURCC_DXT1]: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT,
[FOURCC_DXT3]: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
[FOURCC_DXT5]: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT
}, DXGI_TO_FORMAT = {
// WEBGL_compressed_texture_s3tc
70: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT,
71: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT,
73: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
74: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
76: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
77: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
// WEBGL_compressed_texture_s3tc_srgb
72: _const.INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
75: _const.INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
78: _const.INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
};
const DXGI_TO_FORMAT = {
[70 /* DXGI_FORMAT_BC1_TYPELESS */]: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT,
[71 /* DXGI_FORMAT_BC1_UNORM */]: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT,
[73 /* DXGI_FORMAT_BC2_TYPELESS */]: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
[74 /* DXGI_FORMAT_BC2_UNORM */]: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
[76 /* DXGI_FORMAT_BC3_TYPELESS */]: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
[77 /* DXGI_FORMAT_BC3_UNORM */]: _const.INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
[72 /* DXGI_FORMAT_BC1_UNORM_SRGB */]: _const.INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
[75 /* DXGI_FORMAT_BC2_UNORM_SRGB */]: _const.INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
[78 /* DXGI_FORMAT_BC3_UNORM_SRGB */]: _const.INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
};
function parseDDS(arrayBuffer) {
const data = new Uint32Array(arrayBuffer);
const magicWord = data[0];
if (magicWord !== DDS_MAGIC) {
if (data[0] !== DDS_MAGIC)
throw new Error("Invalid DDS file magic word");
}
const header = new Uint32Array(arrayBuffer, 0, DDS_HEADER_SIZE / Uint32Array.BYTES_PER_ELEMENT);
const height = header[DDS_FIELDS.HEIGHT];
const width = header[DDS_FIELDS.WIDTH];
const mipmapCount = header[DDS_FIELDS.MIPMAP_COUNT];
const pixelFormat = new Uint32Array(arrayBuffer, DDS_FIELDS.PIXEL_FORMAT * Uint32Array.BYTES_PER_ELEMENT, DDS_HEADER_PF_SIZE / Uint32Array.BYTES_PER_ELEMENT);
const formatFlags = pixelFormat[PF_FLAGS];
const header = new Uint32Array(arrayBuffer, 0, DDS_HEADER_SIZE / Uint32Array.BYTES_PER_ELEMENT), height = header[DDS_FIELDS.HEIGHT], width = header[DDS_FIELDS.WIDTH], mipmapCount = header[DDS_FIELDS.MIPMAP_COUNT], pixelFormat = new Uint32Array(
arrayBuffer,
DDS_FIELDS.PIXEL_FORMAT * Uint32Array.BYTES_PER_ELEMENT,
DDS_HEADER_PF_SIZE / Uint32Array.BYTES_PER_ELEMENT
), formatFlags = pixelFormat[PF_FLAGS];
if (formatFlags & DDPF_FOURCC) {
const fourCC = pixelFormat[DDS_PF_FIELDS.FOURCC];
if (fourCC !== FOURCC_DX10) {
const internalFormat2 = FOURCC_TO_FORMAT[fourCC];
const dataOffset2 = DDS_MAGIC_SIZE + DDS_HEADER_SIZE;
const texData = new Uint8Array(arrayBuffer, dataOffset2);
const resource = new CompressedTextureResource.CompressedTextureResource(texData, {
const internalFormat2 = FOURCC_TO_FORMAT[fourCC], dataOffset2 = DDS_MAGIC_SIZE + DDS_HEADER_SIZE, texData = new Uint8Array(arrayBuffer, dataOffset2);
return [new CompressedTextureResource.CompressedTextureResource(texData, {
format: internalFormat2,

@@ -223,43 +65,29 @@ width,

levels: mipmapCount
});
return [resource];
// CompressedTextureResource will separate the levelBuffers for us!
})];
}
const dx10Offset = DDS_MAGIC_SIZE + DDS_HEADER_SIZE;
const dx10Header = new Uint32Array(data.buffer, dx10Offset, DDS_HEADER_DX10_SIZE / Uint32Array.BYTES_PER_ELEMENT);
const dxgiFormat = dx10Header[DDS_DX10_FIELDS.DXGI_FORMAT];
const resourceDimension = dx10Header[DDS_DX10_FIELDS.RESOURCE_DIMENSION];
const miscFlag = dx10Header[DDS_DX10_FIELDS.MISC_FLAG];
const arraySize = dx10Header[DDS_DX10_FIELDS.ARRAY_SIZE];
const internalFormat = DXGI_TO_FORMAT[dxgiFormat];
if (internalFormat === void 0) {
const dx10Offset = DDS_MAGIC_SIZE + DDS_HEADER_SIZE, dx10Header = new Uint32Array(
data.buffer,
dx10Offset,
DDS_HEADER_DX10_SIZE / Uint32Array.BYTES_PER_ELEMENT
), dxgiFormat = dx10Header[DDS_DX10_FIELDS.DXGI_FORMAT], resourceDimension = dx10Header[DDS_DX10_FIELDS.RESOURCE_DIMENSION], miscFlag = dx10Header[DDS_DX10_FIELDS.MISC_FLAG], arraySize = dx10Header[DDS_DX10_FIELDS.ARRAY_SIZE], internalFormat = DXGI_TO_FORMAT[dxgiFormat];
if (internalFormat === void 0)
throw new Error(`DDSParser cannot parse texture data with DXGI format ${dxgiFormat}`);
}
if (miscFlag === DDS_RESOURCE_MISC_TEXTURECUBE) {
if (miscFlag === DDS_RESOURCE_MISC_TEXTURECUBE)
throw new Error("DDSParser does not support cubemap textures");
}
if (resourceDimension === 6 /* DDS_DIMENSION_TEXTURE3D */) {
if (resourceDimension === 6)
throw new Error("DDSParser does not supported 3D texture data");
}
const imageBuffers = new Array();
const dataOffset = DDS_MAGIC_SIZE + DDS_HEADER_SIZE + DDS_HEADER_DX10_SIZE;
if (arraySize === 1) {
const imageBuffers = new Array(), dataOffset = DDS_MAGIC_SIZE + DDS_HEADER_SIZE + DDS_HEADER_DX10_SIZE;
if (arraySize === 1)
imageBuffers.push(new Uint8Array(arrayBuffer, dataOffset));
} else {
else {
const pixelSize = _const.INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[internalFormat];
let imageSize = 0;
let levelWidth = width;
let levelHeight = height;
let imageSize = 0, levelWidth = width, levelHeight = height;
for (let i = 0; i < mipmapCount; i++) {
const alignedLevelWidth = Math.max(1, levelWidth + 3 & ~3);
const alignedLevelHeight = Math.max(1, levelHeight + 3 & ~3);
const levelSize = alignedLevelWidth * alignedLevelHeight * pixelSize;
imageSize += levelSize;
levelWidth = levelWidth >>> 1;
levelHeight = levelHeight >>> 1;
const alignedLevelWidth = Math.max(1, levelWidth + 3 & -4), alignedLevelHeight = Math.max(1, levelHeight + 3 & -4), levelSize = alignedLevelWidth * alignedLevelHeight * pixelSize;
imageSize += levelSize, levelWidth = levelWidth >>> 1, levelHeight = levelHeight >>> 1;
}
let imageOffset = dataOffset;
for (let i = 0; i < arraySize; i++) {
imageBuffers.push(new Uint8Array(arrayBuffer, imageOffset, imageSize));
imageOffset += imageSize;
}
for (let i = 0; i < arraySize; i++)
imageBuffers.push(new Uint8Array(arrayBuffer, imageOffset, imageSize)), imageOffset += imageSize;
}

@@ -273,18 +101,5 @@ return imageBuffers.map((buffer) => new CompressedTextureResource.CompressedTextureResource(buffer, {

}
if (formatFlags & DDPF_RGB) {
throw new Error("DDSParser does not support uncompressed texture data.");
}
if (formatFlags & DDPF_YUV) {
throw new Error("DDSParser does not supported YUV uncompressed texture data.");
}
if (formatFlags & DDPF_LUMINANCE) {
throw new Error("DDSParser does not support single-channel (lumninance) texture data!");
}
if (formatFlags & DDPF_ALPHA) {
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!");
throw formatFlags & DDPF_RGB ? new Error("DDSParser does not support uncompressed texture data.") : formatFlags & DDPF_YUV ? new Error("DDSParser does not supported YUV uncompressed texture data.") : formatFlags & DDPF_LUMINANCE ? new Error("DDSParser does not support single-channel (lumninance) texture data!") : formatFlags & DDPF_ALPHA ? new Error("DDSParser does not support single-channel (alpha) texture data!") : new Error("DDSParser failed to load a texture file due to an unknown reason!");
}
exports.parseDDS = parseDDS;
//# sourceMappingURL=parseDDS.js.map

@@ -1,13 +0,6 @@

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var core = require('@pixi/core');
var _const = require('../const.js');
require('../resources/index.js');
var CompressedTextureResource = require('../resources/CompressedTextureResource.js');
const FILE_IDENTIFIER = [171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10];
const ENDIANNESS = 67305985;
const KTX_FIELDS = {
"use strict";
var core = require("@pixi/core"), _const = require("../const.js");
require("../resources/index.js");
var CompressedTextureResource = require("../resources/CompressedTextureResource.js");
const FILE_IDENTIFIER = [171, 75, 84, 88, 32, 49, 49, 187, 13, 10, 26, 10], ENDIANNESS = 67305985, KTX_FIELDS = {
FILE_IDENTIFIER: 0,

@@ -27,5 +20,3 @@ ENDIANNESS: 12,

BYTES_OF_KEY_VALUE_DATA: 60
};
const FILE_HEADER_SIZE = 64;
const TYPES_TO_BYTES_PER_COMPONENT = {
}, FILE_HEADER_SIZE = 64, TYPES_TO_BYTES_PER_COMPONENT = {
[core.TYPES.UNSIGNED_BYTE]: 1,

@@ -37,4 +28,3 @@ [core.TYPES.UNSIGNED_SHORT]: 2,

[core.TYPES.HALF_FLOAT]: 8
};
const FORMATS_TO_COMPONENTS = {
}, FORMATS_TO_COMPONENTS = {
[core.FORMATS.RGBA]: 4,

@@ -47,4 +37,3 @@ [core.FORMATS.RGB]: 3,

[core.FORMATS.ALPHA]: 1
};
const TYPES_TO_BYTES_PER_PIXEL = {
}, TYPES_TO_BYTES_PER_PIXEL = {
[core.TYPES.UNSIGNED_SHORT_4_4_4_4]: 2,

@@ -54,57 +43,21 @@ [core.TYPES.UNSIGNED_SHORT_5_5_5_1]: 2,

};
function parseKTX(url, arrayBuffer, loadKeyValueData = false) {
function parseKTX(url, arrayBuffer, loadKeyValueData = !1) {
const dataView = new DataView(arrayBuffer);
if (!validate(url, dataView)) {
if (!validate(url, dataView))
return null;
}
const littleEndian = dataView.getUint32(KTX_FIELDS.ENDIANNESS, true) === 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) {
const littleEndian = dataView.getUint32(KTX_FIELDS.ENDIANNESS, !0) === ENDIANNESS, glType = dataView.getUint32(KTX_FIELDS.GL_TYPE, littleEndian), glFormat = dataView.getUint32(KTX_FIELDS.GL_FORMAT, littleEndian), glInternalFormat = dataView.getUint32(KTX_FIELDS.GL_INTERNAL_FORMAT, littleEndian), pixelWidth = dataView.getUint32(KTX_FIELDS.PIXEL_WIDTH, littleEndian), pixelHeight = dataView.getUint32(KTX_FIELDS.PIXEL_HEIGHT, littleEndian) || 1, pixelDepth = dataView.getUint32(KTX_FIELDS.PIXEL_DEPTH, littleEndian) || 1, numberOfArrayElements = dataView.getUint32(KTX_FIELDS.NUMBER_OF_ARRAY_ELEMENTS, littleEndian) || 1, numberOfFaces = dataView.getUint32(KTX_FIELDS.NUMBER_OF_FACES, littleEndian), numberOfMipmapLevels = dataView.getUint32(KTX_FIELDS.NUMBER_OF_MIPMAP_LEVELS, littleEndian), 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) {
if (numberOfFaces !== 1)
throw new Error("CubeTextures are not supported by KTXLoader yet!");
}
if (numberOfArrayElements !== 1) {
if (numberOfArrayElements !== 1)
throw new Error("WebGL does not support array textures");
}
const blockWidth = 4;
const blockHeight = 4;
const alignedWidth = pixelWidth + 3 & ~3;
const alignedHeight = pixelHeight + 3 & ~3;
const imageBuffers = new Array(numberOfArrayElements);
const blockWidth = 4, blockHeight = 4, alignedWidth = pixelWidth + 3 & -4, alignedHeight = pixelHeight + 3 & -4, imageBuffers = new Array(numberOfArrayElements);
let imagePixels = pixelWidth * pixelHeight;
if (glType === 0) {
imagePixels = alignedWidth * alignedHeight;
}
glType === 0 && (imagePixels = alignedWidth * alignedHeight);
let imagePixelByteSize;
if (glType !== 0) {
if (TYPES_TO_BYTES_PER_COMPONENT[glType]) {
imagePixelByteSize = TYPES_TO_BYTES_PER_COMPONENT[glType] * FORMATS_TO_COMPONENTS[glFormat];
} else {
imagePixelByteSize = TYPES_TO_BYTES_PER_PIXEL[glType];
}
} else {
imagePixelByteSize = _const.INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[glInternalFormat];
}
if (imagePixelByteSize === void 0) {
if (glType !== 0 ? TYPES_TO_BYTES_PER_COMPONENT[glType] ? imagePixelByteSize = TYPES_TO_BYTES_PER_COMPONENT[glType] * FORMATS_TO_COMPONENTS[glFormat] : imagePixelByteSize = TYPES_TO_BYTES_PER_PIXEL[glType] : imagePixelByteSize = _const.INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[glInternalFormat], imagePixelByteSize === void 0)
throw new Error("Unable to resolve the pixel format stored in the *.ktx file!");
}
const kvData = loadKeyValueData ? parseKvData(dataView, bytesOfKeyValueData, littleEndian) : null;
const imageByteSize = imagePixels * imagePixelByteSize;
let mipByteSize = imageByteSize;
let mipWidth = pixelWidth;
let mipHeight = pixelHeight;
let alignedMipWidth = alignedWidth;
let alignedMipHeight = alignedHeight;
let imageOffset = FILE_HEADER_SIZE + bytesOfKeyValueData;
let mipByteSize = imagePixels * imagePixelByteSize, mipWidth = pixelWidth, mipHeight = pixelHeight, alignedMipWidth = alignedWidth, alignedMipHeight = alignedHeight, imageOffset = FILE_HEADER_SIZE + bytesOfKeyValueData;
for (let mipmapLevel = 0; mipmapLevel < numberOfMipmapLevels; mipmapLevel++) {

@@ -115,48 +68,41 @@ const imageSize = dataView.getUint32(imageOffset, littleEndian);

let mips = imageBuffers[arrayElement];
if (!mips) {
mips = imageBuffers[arrayElement] = new Array(numberOfMipmapLevels);
}
mips[mipmapLevel] = {
mips || (mips = imageBuffers[arrayElement] = new Array(numberOfMipmapLevels)), mips[mipmapLevel] = {
levelID: mipmapLevel,
// don't align mipWidth when texture not compressed! (glType not zero)
levelWidth: numberOfMipmapLevels > 1 || glType !== 0 ? mipWidth : alignedMipWidth,
levelHeight: numberOfMipmapLevels > 1 || glType !== 0 ? mipHeight : alignedMipHeight,
levelBuffer: new Uint8Array(arrayBuffer, elementOffset, mipByteSize)
};
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 + blockWidth - 1 & ~(blockWidth - 1);
alignedMipHeight = mipHeight + blockHeight - 1 & ~(blockHeight - 1);
mipByteSize = alignedMipWidth * alignedMipHeight * imagePixelByteSize;
imageOffset += imageSize + 4, imageOffset = imageOffset % 4 !== 0 ? imageOffset + 4 - imageOffset % 4 : imageOffset, mipWidth = mipWidth >> 1 || 1, mipHeight = mipHeight >> 1 || 1, alignedMipWidth = mipWidth + blockWidth - 1 & ~(blockWidth - 1), alignedMipHeight = mipHeight + blockHeight - 1 & ~(blockHeight - 1), mipByteSize = alignedMipWidth * alignedMipHeight * imagePixelByteSize;
}
if (glType !== 0) {
return {
uncompressed: imageBuffers.map((levelBuffers) => {
let buffer = levelBuffers[0].levelBuffer;
let convertToInt = false;
if (glType === core.TYPES.FLOAT) {
buffer = new Float32Array(levelBuffers[0].levelBuffer.buffer, levelBuffers[0].levelBuffer.byteOffset, levelBuffers[0].levelBuffer.byteLength / 4);
} else if (glType === core.TYPES.UNSIGNED_INT) {
convertToInt = true;
buffer = new Uint32Array(levelBuffers[0].levelBuffer.buffer, levelBuffers[0].levelBuffer.byteOffset, levelBuffers[0].levelBuffer.byteLength / 4);
} else if (glType === core.TYPES.INT) {
convertToInt = true;
buffer = new Int32Array(levelBuffers[0].levelBuffer.buffer, levelBuffers[0].levelBuffer.byteOffset, levelBuffers[0].levelBuffer.byteLength / 4);
}
return {
resource: new core.BufferResource(buffer, {
return glType !== 0 ? {
uncompressed: imageBuffers.map((levelBuffers) => {
let buffer = levelBuffers[0].levelBuffer, convertToInt = !1;
return glType === core.TYPES.FLOAT ? buffer = new Float32Array(
levelBuffers[0].levelBuffer.buffer,
levelBuffers[0].levelBuffer.byteOffset,
levelBuffers[0].levelBuffer.byteLength / 4
) : glType === core.TYPES.UNSIGNED_INT ? (convertToInt = !0, buffer = new Uint32Array(
levelBuffers[0].levelBuffer.buffer,
levelBuffers[0].levelBuffer.byteOffset,
levelBuffers[0].levelBuffer.byteLength / 4
)) : glType === core.TYPES.INT && (convertToInt = !0, buffer = new Int32Array(
levelBuffers[0].levelBuffer.buffer,
levelBuffers[0].levelBuffer.byteOffset,
levelBuffers[0].levelBuffer.byteLength / 4
)), {
resource: new core.BufferResource(
buffer,
{
width: levelBuffers[0].levelWidth,
height: levelBuffers[0].levelHeight
}),
type: glType,
format: convertToInt ? convertFormatToInteger(glFormat) : glFormat
};
}),
kvData
};
}
return {
}
),
type: glType,
format: convertToInt ? convertFormatToInteger(glFormat) : glFormat
};
}),
kvData
} : {
compressed: imageBuffers.map((levelBuffers) => new CompressedTextureResource.CompressedTextureResource(null, {

@@ -173,9 +119,6 @@ format: glInternalFormat,

function validate(url, dataView) {
for (let i = 0; i < FILE_IDENTIFIER.length; i++) {
if (dataView.getUint8(i) !== FILE_IDENTIFIER[i]) {
console.error(`${url} is not a valid *.ktx file!`);
return false;
}
}
return true;
for (let i = 0; i < FILE_IDENTIFIER.length; i++)
if (dataView.getUint8(i) !== FILE_IDENTIFIER[i])
return console.error(`${url} is not a valid *.ktx file!`), !1;
return !0;
}

@@ -199,6 +142,4 @@ function convertFormatToInteger(format) {

let bytesIntoKeyValueData = 0;
while (bytesIntoKeyValueData < bytesOfKeyValueData) {
const keyAndValueByteSize = dataView.getUint32(FILE_HEADER_SIZE + bytesIntoKeyValueData, littleEndian);
const keyAndValueByteOffset = FILE_HEADER_SIZE + bytesIntoKeyValueData + 4;
const valuePadding = 3 - (keyAndValueByteSize + 3) % 4;
for (; bytesIntoKeyValueData < bytesOfKeyValueData; ) {
const keyAndValueByteSize = dataView.getUint32(FILE_HEADER_SIZE + bytesIntoKeyValueData, littleEndian), keyAndValueByteOffset = FILE_HEADER_SIZE + bytesIntoKeyValueData + 4, valuePadding = 3 - (keyAndValueByteSize + 3) % 4;
if (keyAndValueByteSize === 0 || keyAndValueByteSize > bytesOfKeyValueData - bytesIntoKeyValueData) {

@@ -209,7 +150,4 @@ console.error("KTXLoader: keyAndValueByteSize out of bounds");

let keyNulByte = 0;
for (; keyNulByte < keyAndValueByteSize; keyNulByte++) {
if (dataView.getUint8(keyAndValueByteOffset + keyNulByte) === 0) {
break;
}
}
for (; keyNulByte < keyAndValueByteSize && dataView.getUint8(keyAndValueByteOffset + keyNulByte) !== 0; keyNulByte++)
;
if (keyNulByte === -1) {

@@ -219,10 +157,13 @@ console.error("KTXLoader: Failed to find null byte terminating kvData key");

}
const key = new TextDecoder().decode(new Uint8Array(dataView.buffer, keyAndValueByteOffset, keyNulByte));
const value = new DataView(dataView.buffer, keyAndValueByteOffset + keyNulByte + 1, keyAndValueByteSize - keyNulByte - 1);
kvData.set(key, value);
bytesIntoKeyValueData += 4 + keyAndValueByteSize + valuePadding;
const key = new TextDecoder().decode(
new Uint8Array(dataView.buffer, keyAndValueByteOffset, keyNulByte)
), value = new DataView(
dataView.buffer,
keyAndValueByteOffset + keyNulByte + 1,
keyAndValueByteSize - keyNulByte - 1
);
kvData.set(key, value), bytesIntoKeyValueData += 4 + keyAndValueByteSize + valuePadding;
}
return kvData;
}
exports.FORMATS_TO_COMPONENTS = FORMATS_TO_COMPONENTS;

@@ -229,0 +170,0 @@ exports.TYPES_TO_BYTES_PER_COMPONENT = TYPES_TO_BYTES_PER_COMPONENT;

import { BufferResource, ViewableBuffer } from '@pixi/core';
interface IBlobOptions {
import type { BufferType, IBufferResourceOptions } from '@pixi/core';
/**
* Constructor options for BlobResource.
* @memberof PIXI
*/
export interface IBlobResourceOptions extends IBufferResourceOptions {
autoLoad?: boolean;
width: number;
height: number;
}

@@ -14,3 +17,5 @@ /**

export declare abstract class BlobResource extends BufferResource {
/** The URL of the texture file. */
protected origin: string | null;
/** The viewable buffer on the data. */
protected buffer: ViewableBuffer | null;

@@ -24,10 +29,11 @@ protected loaded: boolean;

/**
* @param source - the buffer/URL of the texture file
* @param {PIXI.IBlobOptions} options
* @param {boolean}[options.autoLoad] - whether to fetch the data immediately;
* you can fetch it later via {@link PIXI.BlobResource#load}
* @param {boolean}[options.width] - the width in pixels.
* @param {boolean}[options.height] - the height in pixels.
* @param source - The buffer/URL of the texture file.
* @param {PIXI.IBlobResourceOptions} [options]
* @param {boolean} [options.autoLoad=false] - Whether to fetch the data immediately;
* you can fetch it later via {@link PIXI.BlobResource#load}.
* @param {number} [options.width=1] - The width in pixels.
* @param {number} [options.height=1] - The height in pixels.
* @param {1|2|4|8} [options.unpackAlignment=4] - The alignment of the pixel rows.
*/
constructor(source: string | Uint8Array | Uint32Array | Float32Array | null, options?: IBlobOptions);
constructor(source: string | BufferType, options?: IBlobResourceOptions);
protected onBlobLoaded(_data: ArrayBuffer): void;

@@ -37,2 +43,1 @@ /** Loads the blob */

}
export {};

@@ -1,51 +0,25 @@

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var core = require('@pixi/core');
"use strict";
var core = require("@pixi/core");
class BlobResource extends core.BufferResource {
constructor(source, options = { width: 1, height: 1, autoLoad: true }) {
let origin;
let data;
if (typeof source === "string") {
origin = source;
data = new Uint8Array();
} else {
origin = null;
data = source;
}
super(data, options);
this.origin = origin;
this.buffer = data ? new core.ViewableBuffer(data) : null;
this._load = null;
this.loaded = false;
if (this.origin !== null && options.autoLoad !== false) {
this.load();
}
if (this.origin === null && this.buffer) {
this._load = Promise.resolve(this);
this.loaded = true;
this.onBlobLoaded(this.buffer.rawBinaryData);
}
/**
* @param source - The buffer/URL of the texture file.
* @param {PIXI.IBlobResourceOptions} [options]
* @param {boolean} [options.autoLoad=false] - Whether to fetch the data immediately;
* you can fetch it later via {@link PIXI.BlobResource#load}.
* @param {number} [options.width=1] - The width in pixels.
* @param {number} [options.height=1] - The height in pixels.
* @param {1|2|4|8} [options.unpackAlignment=4] - The alignment of the pixel rows.
*/
constructor(source, options = { width: 1, height: 1, autoLoad: !0 }) {
let origin, data;
typeof source == "string" ? (origin = source, data = new Uint8Array()) : (origin = null, data = source), super(data, options), this.origin = origin, this.buffer = data ? new core.ViewableBuffer(data) : null, this._load = null, this.loaded = !1, this.origin !== null && options.autoLoad !== !1 && this.load(), this.origin === null && this.buffer && (this._load = Promise.resolve(this), this.loaded = !0, this.onBlobLoaded(this.buffer.rawBinaryData));
}
onBlobLoaded(_data) {
}
/** Loads the blob */
load() {
if (this._load) {
return this._load;
}
this._load = fetch(this.origin).then((response) => response.blob()).then((blob) => blob.arrayBuffer()).then((arrayBuffer) => {
this.data = new Uint32Array(arrayBuffer);
this.buffer = new core.ViewableBuffer(arrayBuffer);
this.loaded = true;
this.onBlobLoaded(arrayBuffer);
this.update();
return this;
});
return this._load;
return this._load ? this._load : (this._load = fetch(this.origin).then((response) => response.blob()).then((blob) => blob.arrayBuffer()).then((arrayBuffer) => (this.data = new Uint32Array(arrayBuffer), this.buffer = new core.ViewableBuffer(arrayBuffer), this.loaded = !0, this.onBlobLoaded(arrayBuffer), this.update(), this)), this._load);
}
}
exports.BlobResource = BlobResource;
//# sourceMappingURL=BlobResource.js.map
import { BlobResource } from './BlobResource';
import type { BaseTexture, GLTexture, Renderer } from '@pixi/core';
import type { BaseTexture, BufferType, GLTexture, Renderer } from '@pixi/core';
import type { INTERNAL_FORMATS } from '../const';

@@ -94,3 +94,3 @@ /**

*/
constructor(source: string | Uint8Array | Uint32Array, options: ICompressedTextureResourceOptions);
constructor(source: string | BufferType, options: ICompressedTextureResourceOptions);
/**

@@ -97,0 +97,0 @@ * @override

@@ -1,29 +0,39 @@

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var _const = require('../const.js');
var BlobResource = require('./BlobResource.js');
"use strict";
var _const = require("../const.js"), BlobResource = require("./BlobResource.js");
class CompressedTextureResource extends BlobResource.BlobResource {
/**
* @param source - the buffer/URL holding the compressed texture data
* @param options
* @param {PIXI.INTERNAL_FORMATS} options.format - the compression format
* @param {number} options.width - the image width in pixels.
* @param {number} options.height - the image height in pixels.
* @param {number} [options.level=1] - the mipmap levels stored in the compressed texture, including level 0.
* @param {number} [options.levelBuffers] - the buffers for each mipmap level. `CompressedTextureResource` can allows you
* to pass `null` for `source`, for cases where each level is stored in non-contiguous memory.
*/
constructor(source, options) {
super(source, options);
this.format = options.format;
this.levels = options.levels || 1;
this._width = options.width;
this._height = options.height;
this._extension = CompressedTextureResource._formatToExtension(this.format);
if (options.levelBuffers || this.buffer) {
this._levelBuffers = options.levelBuffers || CompressedTextureResource._createLevelBuffers(source instanceof Uint8Array ? source : this.buffer.uint8View, this.format, this.levels, 4, 4, this.width, this.height);
}
super(source, options), this.format = options.format, this.levels = options.levels || 1, this._width = options.width, this._height = options.height, this._extension = CompressedTextureResource._formatToExtension(this.format), (options.levelBuffers || this.buffer) && (this._levelBuffers = options.levelBuffers || CompressedTextureResource._createLevelBuffers(
source instanceof Uint8Array ? source : this.buffer.uint8View,
this.format,
this.levels,
4,
4,
// PVRTC has 8x4 blocks in 2bpp mode
this.width,
this.height
));
}
/**
* @override
* @param renderer - A reference to the current renderer
* @param _texture - the texture
* @param _glTexture - texture instance for this webgl context
*/
upload(renderer, _texture, _glTexture) {
const gl = renderer.gl;
const extension = renderer.context.extensions[this._extension];
if (!extension) {
if (!renderer.context.extensions[this._extension])
throw new Error(`${this._extension} textures are not supported on the current machine`);
}
if (!this._levelBuffers) {
return false;
}
if (!this._levelBuffers)
return !1;
gl.pixelStorei(gl.UNPACK_ALIGNMENT, 4);
for (let i = 0, j = this.levels; i < j; i++) {

@@ -33,30 +43,50 @@ const { levelID, levelWidth, levelHeight, levelBuffer } = this._levelBuffers[i];

}
return true;
return !0;
}
/** @protected */
onBlobLoaded() {
this._levelBuffers = CompressedTextureResource._createLevelBuffers(this.buffer.uint8View, this.format, this.levels, 4, 4, this.width, this.height);
this._levelBuffers = CompressedTextureResource._createLevelBuffers(
this.buffer.uint8View,
this.format,
this.levels,
4,
4,
// PVRTC has 8x4 blocks in 2bpp mode
this.width,
this.height
);
}
/**
* Returns the key (to ContextSystem#extensions) for the WebGL extension supporting the compression format
* @private
* @param format - the compression format to get the extension for.
*/
static _formatToExtension(format) {
if (format >= 33776 && format <= 33779) {
if (format >= 33776 && format <= 33779)
return "s3tc";
} else if (format >= 37488 && format <= 37497) {
if (format >= 37488 && format <= 37497)
return "etc";
} else if (format >= 35840 && format <= 35843) {
if (format >= 35840 && format <= 35843)
return "pvrtc";
} else if (format >= 36196) {
if (format >= 36196)
return "etc1";
} else if (format >= 35986 && format <= 34798) {
if (format >= 35986 && format <= 34798)
return "atc";
}
throw new Error("Invalid (compressed) texture format given!");
}
/**
* Pre-creates buffer views for each mipmap level
* @private
* @param buffer -
* @param format - compression formats
* @param levels - mipmap levels
* @param blockWidth -
* @param blockHeight -
* @param imageWidth - width of the image in pixels
* @param imageHeight - height of the image in pixels
*/
static _createLevelBuffers(buffer, format, levels, blockWidth, blockHeight, imageWidth, imageHeight) {
const buffers = new Array(levels);
let offset = buffer.byteOffset;
let levelWidth = imageWidth;
let levelHeight = imageHeight;
let alignedLevelWidth = levelWidth + blockWidth - 1 & ~(blockWidth - 1);
let alignedLevelHeight = levelHeight + blockHeight - 1 & ~(blockHeight - 1);
let levelSize = alignedLevelWidth * alignedLevelHeight * _const.INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[format];
for (let i = 0; i < levels; i++) {
let offset = buffer.byteOffset, levelWidth = imageWidth, levelHeight = imageHeight, alignedLevelWidth = levelWidth + blockWidth - 1 & ~(blockWidth - 1), alignedLevelHeight = levelHeight + blockHeight - 1 & ~(blockHeight - 1), levelSize = alignedLevelWidth * alignedLevelHeight * _const.INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[format];
for (let i = 0; i < levels; i++)
buffers[i] = {

@@ -67,15 +97,7 @@ levelID: i,

levelBuffer: new Uint8Array(buffer.buffer, offset, levelSize)
};
offset += levelSize;
levelWidth = levelWidth >> 1 || 1;
levelHeight = levelHeight >> 1 || 1;
alignedLevelWidth = levelWidth + blockWidth - 1 & ~(blockWidth - 1);
alignedLevelHeight = levelHeight + blockHeight - 1 & ~(blockHeight - 1);
levelSize = alignedLevelWidth * alignedLevelHeight * _const.INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[format];
}
}, offset += levelSize, levelWidth = levelWidth >> 1 || 1, levelHeight = levelHeight >> 1 || 1, alignedLevelWidth = levelWidth + blockWidth - 1 & ~(blockWidth - 1), alignedLevelHeight = levelHeight + blockHeight - 1 & ~(blockHeight - 1), levelSize = alignedLevelWidth * alignedLevelHeight * _const.INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[format];
return buffers;
}
}
exports.CompressedTextureResource = CompressedTextureResource;
//# sourceMappingURL=CompressedTextureResource.js.map

@@ -1,12 +0,5 @@

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var BlobResource = require('./BlobResource.js');
var CompressedTextureResource = require('./CompressedTextureResource.js');
"use strict";
var BlobResource = require("./BlobResource.js"), CompressedTextureResource = require("./CompressedTextureResource.js");
exports.BlobResource = BlobResource.BlobResource;
exports.CompressedTextureResource = CompressedTextureResource.CompressedTextureResource;
//# sourceMappingURL=index.js.map
{
"name": "@pixi/compressed-textures",
"version": "7.2.4",
"version": "7.3.0-rc",
"description": "Loaders for compressed texture file formats",

@@ -50,5 +50,5 @@ "keywords": [

"peerDependencies": {
"@pixi/assets": "7.2.4",
"@pixi/core": "7.2.4"
"@pixi/assets": "7.3.0-rc",
"@pixi/core": "7.3.0-rc"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc