This commit is contained in:
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,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