itowns
Version:
A JS/WebGL framework for 3D geospatial data visualization
506 lines • 23.2 kB
JavaScript
const t = 0,
e = 1,
n = 2,
i = 3,
s = 0,
a = 0,
r = 2,
o = 0,
l = 1,
f = 160,
h = 161,
U = 162,
c = 163,
_ = 166,
p = 0,
g = 1,
y = 0,
x = 1,
u = 2,
b = 3,
d = 4,
w = 5,
m = 6,
D = 7,
B = 8,
L = 9,
v = 10,
A = 11,
k = 12,
V = 13,
I = 14,
S = 15,
F = 16,
O = 17,
E = 18,
T = 0,
C = 1,
M = 2,
P = 3,
z = 4,
W = 5,
H = 6,
N = 7,
K = 8,
X = 9,
R = 10,
Y = 11,
j = 0,
q = 1,
G = 2,
J = 13,
Q = 14,
Z = 15,
$ = 128,
tt = 64,
et = 32,
nt = 16,
it = 0,
st = 1,
at = 2,
rt = 3,
ot = 4,
lt = 5,
ft = 6,
ht = 7,
Ut = 8,
ct = 9,
_t = 10,
pt = 13,
gt = 14,
yt = 15,
xt = 16,
ut = 17,
bt = 20,
dt = 21,
wt = 22,
mt = 23,
Dt = 24,
Bt = 27,
Lt = 28,
vt = 29,
At = 30,
kt = 31,
Vt = 34,
It = 35,
St = 36,
Ft = 37,
Ot = 38,
Et = 41,
Tt = 42,
Ct = 43,
Mt = 44,
Pt = 45,
zt = 48,
Wt = 49,
Ht = 50,
Nt = 58,
Kt = 59,
Xt = 62,
Rt = 63,
Yt = 64,
jt = 65,
qt = 68,
Gt = 69,
Jt = 70,
Qt = 71,
Zt = 74,
$t = 75,
te = 76,
ee = 77,
ne = 78,
ie = 81,
se = 82,
ae = 83,
re = 84,
oe = 85,
le = 88,
fe = 89,
he = 90,
Ue = 91,
ce = 92,
_e = 95,
pe = 96,
ge = 97,
ye = 98,
xe = 99,
ue = 100,
be = 101,
de = 102,
we = 103,
me = 104,
De = 105,
Be = 106,
Le = 107,
ve = 108,
Ae = 109,
ke = 110,
Ve = 111,
Ie = 112,
Se = 113,
Fe = 114,
Oe = 115,
Ee = 116,
Te = 117,
Ce = 118,
Me = 119,
Pe = 120,
ze = 121,
We = 122,
He = 123,
Ne = 124,
Ke = 125,
Xe = 126,
Re = 127,
Ye = 128,
je = 129,
qe = 130,
Ge = 131,
Je = 132,
Qe = 133,
Ze = 134,
$e = 135,
tn = 136,
en = 137,
nn = 138,
sn = 139,
an = 140,
rn = 141,
on = 142,
ln = 143,
fn = 144,
hn = 145,
Un = 146,
cn = 147,
_n = 148,
pn = 149,
gn = 150,
yn = 151,
xn = 152,
un = 153,
bn = 154,
dn = 155,
wn = 156,
mn = 157,
Dn = 158,
Bn = 159,
Ln = 160,
vn = 161,
An = 162,
kn = 163,
Vn = 164,
In = 165,
Sn = 166,
Fn = 167,
On = 168,
En = 169,
Tn = 170,
Cn = 171,
Mn = 172,
Pn = 173,
zn = 174,
Wn = 175,
Hn = 176,
Nn = 177,
Kn = 178,
Xn = 179,
Rn = 180,
Yn = 181,
jn = 182,
qn = 183,
Gn = 184,
Jn = 1000156007,
Qn = 1000156008,
Zn = 1000156009,
$n = 1000156010,
ti = 1000156011,
ei = 1000156017,
ni = 1000156018,
ii = 1000156019,
si = 1000156020,
ai = 1000156021,
ri = 1000054e3,
oi = 1000054001,
li = 1000054002,
fi = 1000054003,
hi = 1000054004,
Ui = 1000054005,
ci = 1000054006,
_i = 1000054007,
pi = 1000066e3,
gi = 1000066001,
yi = 1000066002,
xi = 1000066003,
ui = 1000066004,
bi = 1000066005,
di = 1000066006,
wi = 1000066007,
mi = 1000066008,
Di = 1000066009,
Bi = 1000066010,
Li = 1000066011,
vi = 1000066012,
Ai = 1000066013,
ki = 100034e4,
Vi = 1000340001;
class Ii {
constructor() {
this.vkFormat = 0, this.typeSize = 1, this.pixelWidth = 0, this.pixelHeight = 0, this.pixelDepth = 0, this.layerCount = 0, this.faceCount = 1, this.supercompressionScheme = 0, this.levels = [], this.dataFormatDescriptor = [{
vendorId: 0,
descriptorType: 0,
descriptorBlockSize: 0,
versionNumber: 2,
colorModel: 0,
colorPrimaries: 1,
transferFunction: 2,
flags: 0,
texelBlockDimension: [0, 0, 0, 0],
bytesPlane: [0, 0, 0, 0, 0, 0, 0, 0],
samples: []
}], this.keyValue = {}, this.globalData = null;
}
}
class Si {
constructor(t, e, n, i) {
this._dataView = void 0, this._littleEndian = void 0, this._offset = void 0, this._dataView = new DataView(t.buffer, t.byteOffset + e, n), this._littleEndian = i, this._offset = 0;
}
_nextUint8() {
const t = this._dataView.getUint8(this._offset);
return this._offset += 1, t;
}
_nextUint16() {
const t = this._dataView.getUint16(this._offset, this._littleEndian);
return this._offset += 2, t;
}
_nextUint32() {
const t = this._dataView.getUint32(this._offset, this._littleEndian);
return this._offset += 4, t;
}
_nextUint64() {
const t = this._dataView.getUint32(this._offset, this._littleEndian) + 2 ** 32 * this._dataView.getUint32(this._offset + 4, this._littleEndian);
return this._offset += 8, t;
}
_nextInt32() {
const t = this._dataView.getInt32(this._offset, this._littleEndian);
return this._offset += 4, t;
}
_nextUint8Array(t) {
const e = new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + this._offset, t);
return this._offset += t, e;
}
_skip(t) {
return this._offset += t, this;
}
_scan(t, e) {
void 0 === e && (e = 0);
const n = this._offset;
let i = 0;
for (; this._dataView.getUint8(this._offset) !== e && i < t;) i++, this._offset++;
return i < t && this._offset++, new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + n, i);
}
}
const Fi = new Uint8Array([0]),
Oi = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];
function Ei(t) {
return new TextEncoder().encode(t);
}
function Ti(t) {
return new TextDecoder().decode(t);
}
function Ci(t) {
let e = 0;
for (const n of t) e += n.byteLength;
const n = new Uint8Array(e);
let i = 0;
for (const e of t) n.set(new Uint8Array(e), i), i += e.byteLength;
return n;
}
function Mi(t, e) {
return void 0 === e && (e = 4), Math.ceil(t / e) * e - t;
}
function Pi(t) {
const e = new Uint8Array(t.buffer, t.byteOffset, Oi.length);
if (e[0] !== Oi[0] || e[1] !== Oi[1] || e[2] !== Oi[2] || e[3] !== Oi[3] || e[4] !== Oi[4] || e[5] !== Oi[5] || e[6] !== Oi[6] || e[7] !== Oi[7] || e[8] !== Oi[8] || e[9] !== Oi[9] || e[10] !== Oi[10] || e[11] !== Oi[11]) throw new Error("Missing KTX 2.0 identifier.");
const n = new Ii(),
i = 17 * Uint32Array.BYTES_PER_ELEMENT,
s = new Si(t, Oi.length, i, !0);
n.vkFormat = s._nextUint32(), n.typeSize = s._nextUint32(), n.pixelWidth = s._nextUint32(), n.pixelHeight = s._nextUint32(), n.pixelDepth = s._nextUint32(), n.layerCount = s._nextUint32(), n.faceCount = s._nextUint32();
const a = s._nextUint32();
n.supercompressionScheme = s._nextUint32();
const r = s._nextUint32(),
o = s._nextUint32(),
l = s._nextUint32(),
f = s._nextUint32(),
h = s._nextUint64(),
U = s._nextUint64(),
c = new Si(t, Oi.length + i, 3 * a * 8, !0);
for (let e = 0; e < a; e++) n.levels.push({
levelData: new Uint8Array(t.buffer, t.byteOffset + c._nextUint64(), c._nextUint64()),
uncompressedByteLength: c._nextUint64()
});
const _ = new Si(t, r, o, !0),
p = {
vendorId: _._skip(4)._nextUint16(),
descriptorType: _._nextUint16(),
versionNumber: _._nextUint16(),
descriptorBlockSize: _._nextUint16(),
colorModel: _._nextUint8(),
colorPrimaries: _._nextUint8(),
transferFunction: _._nextUint8(),
flags: _._nextUint8(),
texelBlockDimension: [_._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8()],
bytesPlane: [_._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8()],
samples: []
},
g = (p.descriptorBlockSize / 4 - 6) / 4;
for (let t = 0; t < g; t++) {
const e = {
bitOffset: _._nextUint16(),
bitLength: _._nextUint8(),
channelType: _._nextUint8(),
samplePosition: [_._nextUint8(), _._nextUint8(), _._nextUint8(), _._nextUint8()],
sampleLower: -Infinity,
sampleUpper: Infinity
};
64 & e.channelType ? (e.sampleLower = _._nextInt32(), e.sampleUpper = _._nextInt32()) : (e.sampleLower = _._nextUint32(), e.sampleUpper = _._nextUint32()), p.samples[t] = e;
}
n.dataFormatDescriptor.length = 0, n.dataFormatDescriptor.push(p);
const y = new Si(t, l, f, !0);
for (; y._offset < f;) {
const t = y._nextUint32(),
e = y._scan(t),
i = Ti(e);
if (n.keyValue[i] = y._nextUint8Array(t - e.byteLength - 1), i.match(/^ktx/i)) {
const t = Ti(n.keyValue[i]);
n.keyValue[i] = t.substring(0, t.lastIndexOf("\0"));
}
y._skip(t % 4 ? 4 - t % 4 : 0);
}
if (U <= 0) return n;
const x = new Si(t, h, U, !0),
u = x._nextUint16(),
b = x._nextUint16(),
d = x._nextUint32(),
w = x._nextUint32(),
m = x._nextUint32(),
D = x._nextUint32(),
B = [];
for (let t = 0; t < a; t++) B.push({
imageFlags: x._nextUint32(),
rgbSliceByteOffset: x._nextUint32(),
rgbSliceByteLength: x._nextUint32(),
alphaSliceByteOffset: x._nextUint32(),
alphaSliceByteLength: x._nextUint32()
});
const L = h + x._offset,
v = L + d,
A = v + w,
V = new Uint8Array(t.buffer, t.byteOffset + L, d),
I = new Uint8Array(t.buffer, t.byteOffset + v, w),
S = new Uint8Array(t.buffer, t.byteOffset + A, m),
F = new Uint8Array(t.buffer, t.byteOffset + (A + m), D);
return n.globalData = {
endpointCount: u,
selectorCount: b,
imageDescs: B,
endpointsData: V,
selectorsData: I,
tablesData: S,
extendedData: F
}, n;
}
const zi = {
keepWriter: !1
};
function Wi(t, e) {
void 0 === e && (e = {}), e = {
...zi,
...e
};
let n = new ArrayBuffer(0);
if (t.globalData) {
const e = new ArrayBuffer(20 + 5 * t.globalData.imageDescs.length * 4),
i = new DataView(e);
i.setUint16(0, t.globalData.endpointCount, !0), i.setUint16(2, t.globalData.selectorCount, !0), i.setUint32(4, t.globalData.endpointsData.byteLength, !0), i.setUint32(8, t.globalData.selectorsData.byteLength, !0), i.setUint32(12, t.globalData.tablesData.byteLength, !0), i.setUint32(16, t.globalData.extendedData.byteLength, !0);
for (let e = 0; e < t.globalData.imageDescs.length; e++) {
const n = t.globalData.imageDescs[e];
i.setUint32(20 + 5 * e * 4 + 0, n.imageFlags, !0), i.setUint32(20 + 5 * e * 4 + 4, n.rgbSliceByteOffset, !0), i.setUint32(20 + 5 * e * 4 + 8, n.rgbSliceByteLength, !0), i.setUint32(20 + 5 * e * 4 + 12, n.alphaSliceByteOffset, !0), i.setUint32(20 + 5 * e * 4 + 16, n.alphaSliceByteLength, !0);
}
n = Ci([e, t.globalData.endpointsData, t.globalData.selectorsData, t.globalData.tablesData, t.globalData.extendedData]);
}
const i = [];
let s = t.keyValue;
e.keepWriter || (s = {
...t.keyValue,
KTXwriter: "KTX-Parse v0.7.1"
});
for (const t in s) {
const e = s[t],
n = Ei(t),
a = "string" == typeof e ? Ci([Ei(e), Fi]) : e,
r = n.byteLength + 1 + a.byteLength,
o = Mi(r, 4);
i.push(Ci([new Uint32Array([r]), n, Fi, a, new Uint8Array(o).fill(0)]));
}
const a = Ci(i);
if (1 !== t.dataFormatDescriptor.length || 0 !== t.dataFormatDescriptor[0].descriptorType) throw new Error("Only BASICFORMAT Data Format Descriptor output supported.");
const r = t.dataFormatDescriptor[0],
o = new ArrayBuffer(28 + 16 * r.samples.length),
l = new DataView(o),
f = 24 + 16 * r.samples.length;
if (l.setUint32(0, o.byteLength, !0), l.setUint16(4, r.vendorId, !0), l.setUint16(6, r.descriptorType, !0), l.setUint16(8, r.versionNumber, !0), l.setUint16(10, f, !0), l.setUint8(12, r.colorModel), l.setUint8(13, r.colorPrimaries), l.setUint8(14, r.transferFunction), l.setUint8(15, r.flags), !Array.isArray(r.texelBlockDimension)) throw new Error("texelBlockDimension is now an array. For dimensionality `d`, set `d - 1`.");
l.setUint8(16, r.texelBlockDimension[0]), l.setUint8(17, r.texelBlockDimension[1]), l.setUint8(18, r.texelBlockDimension[2]), l.setUint8(19, r.texelBlockDimension[3]);
for (let t = 0; t < 8; t++) l.setUint8(20 + t, r.bytesPlane[t]);
for (let t = 0; t < r.samples.length; t++) {
const e = r.samples[t],
n = 28 + 16 * t;
if (e.channelID) throw new Error("channelID has been renamed to channelType.");
l.setUint16(n + 0, e.bitOffset, !0), l.setUint8(n + 2, e.bitLength), l.setUint8(n + 3, e.channelType), l.setUint8(n + 4, e.samplePosition[0]), l.setUint8(n + 5, e.samplePosition[1]), l.setUint8(n + 6, e.samplePosition[2]), l.setUint8(n + 7, e.samplePosition[3]), 64 & e.channelType ? (l.setInt32(n + 8, e.sampleLower, !0), l.setInt32(n + 12, e.sampleUpper, !0)) : (l.setUint32(n + 8, e.sampleLower, !0), l.setUint32(n + 12, e.sampleUpper, !0));
}
const h = Oi.length + 68 + 3 * t.levels.length * 8,
U = h + o.byteLength;
let c = n.byteLength > 0 ? U + a.byteLength : 0;
c % 8 && (c += 8 - c % 8);
const _ = [],
p = new DataView(new ArrayBuffer(3 * t.levels.length * 8)),
g = new Uint32Array(t.levels.length);
let y = 0;
0 === t.supercompressionScheme && (y = function (t) {
const n = Math.max(t, 4),
i = Math.min(t, 4);
let s = n;
for (; s % i != 0;) s += n;
return s;
}(function (t) {
return t.levels[0].levelData.byteLength / function (t) {
let n = 1;
const i = [t.pixelWidth, t.pixelHeight, t.pixelDepth],
s = function (t) {
const [e, n, i] = t.dataFormatDescriptor[0].texelBlockDimension;
return [e + 1, n + 1, i + 1];
}(t);
for (let t = 0; t < 3; t++) if (i[t] > 0) {
const e = Math.ceil(Math.floor(i[t] * Math.pow(2, -0)) / s[t]);
n *= Math.max(1, e);
}
return t.layerCount > 0 && (n *= t.layerCount), t.faceCount > 0 && (n *= t.faceCount), n;
}(t);
}(t)));
let x = (c || U + a.byteLength) + n.byteLength;
for (let e = t.levels.length - 1; e >= 0; e--) {
if (x % y) {
const t = Mi(x, y);
_.push(new Uint8Array(t)), x += t;
}
const n = t.levels[e];
_.push(n.levelData), g[e] = x, x += n.levelData.byteLength;
}
for (let e = 0; e < t.levels.length; e++) {
const n = t.levels[e];
p.setBigUint64(24 * e + 0, BigInt(g[e]), !0), p.setBigUint64(24 * e + 8, BigInt(n.levelData.byteLength), !0), p.setBigUint64(24 * e + 16, BigInt(n.uncompressedByteLength), !0);
}
const u = new ArrayBuffer(68),
b = new DataView(u);
return b.setUint32(0, t.vkFormat, !0), b.setUint32(4, t.typeSize, !0), b.setUint32(8, t.pixelWidth, !0), b.setUint32(12, t.pixelHeight, !0), b.setUint32(16, t.pixelDepth, !0), b.setUint32(20, t.layerCount, !0), b.setUint32(24, t.faceCount, !0), b.setUint32(28, t.levels.length, !0), b.setUint32(32, t.supercompressionScheme, !0), b.setUint32(36, h, !0), b.setUint32(40, o.byteLength, !0), b.setUint32(44, U, !0), b.setUint32(48, a.byteLength, !0), b.setBigUint64(52, BigInt(n.byteLength > 0 ? c : 0), !0), b.setBigUint64(60, BigInt(n.byteLength), !0), new Uint8Array(Ci([new Uint8Array(Oi).buffer, u, p.buffer, o, a, c > 0 ? new ArrayBuffer(c - (U + a.byteLength)) : new ArrayBuffer(0), n, ..._]));
}
export { Z as KHR_DF_CHANNEL_RGBSDA_ALPHA, G as KHR_DF_CHANNEL_RGBSDA_BLUE, Q as KHR_DF_CHANNEL_RGBSDA_DEPTH, q as KHR_DF_CHANNEL_RGBSDA_GREEN, j as KHR_DF_CHANNEL_RGBSDA_RED, J as KHR_DF_CHANNEL_RGBSDA_STENCIL, g as KHR_DF_FLAG_ALPHA_PREMULTIPLIED, p as KHR_DF_FLAG_ALPHA_STRAIGHT, s as KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT, U as KHR_DF_MODEL_ASTC, f as KHR_DF_MODEL_ETC1, c as KHR_DF_MODEL_ETC1S, h as KHR_DF_MODEL_ETC2, l as KHR_DF_MODEL_RGBSDA, _ as KHR_DF_MODEL_UASTC, o as KHR_DF_MODEL_UNSPECIFIED, H as KHR_DF_PRIMARIES_ACES, N as KHR_DF_PRIMARIES_ACESCC, Y as KHR_DF_PRIMARIES_ADOBERGB, z as KHR_DF_PRIMARIES_BT2020, M as KHR_DF_PRIMARIES_BT601_EBU, P as KHR_DF_PRIMARIES_BT601_SMPTE, C as KHR_DF_PRIMARIES_BT709, W as KHR_DF_PRIMARIES_CIEXYZ, R as KHR_DF_PRIMARIES_DISPLAYP3, K as KHR_DF_PRIMARIES_NTSC1953, X as KHR_DF_PRIMARIES_PAL525, T as KHR_DF_PRIMARIES_UNSPECIFIED, et as KHR_DF_SAMPLE_DATATYPE_EXPONENT, $ as KHR_DF_SAMPLE_DATATYPE_FLOAT, nt as KHR_DF_SAMPLE_DATATYPE_LINEAR, tt as KHR_DF_SAMPLE_DATATYPE_SIGNED, F as KHR_DF_TRANSFER_ACESCC, O as KHR_DF_TRANSFER_ACESCCT, E as KHR_DF_TRANSFER_ADOBERGB, D as KHR_DF_TRANSFER_BT1886, k as KHR_DF_TRANSFER_DCIP3, L as KHR_DF_TRANSFER_HLG_EOTF, B as KHR_DF_TRANSFER_HLG_OETF, b as KHR_DF_TRANSFER_ITU, x as KHR_DF_TRANSFER_LINEAR, d as KHR_DF_TRANSFER_NTSC, I as KHR_DF_TRANSFER_PAL625_EOTF, V as KHR_DF_TRANSFER_PAL_OETF, v as KHR_DF_TRANSFER_PQ_EOTF, A as KHR_DF_TRANSFER_PQ_OETF, w as KHR_DF_TRANSFER_SLOG, m as KHR_DF_TRANSFER_SLOG2, u as KHR_DF_TRANSFER_SRGB, S as KHR_DF_TRANSFER_ST240, y as KHR_DF_TRANSFER_UNSPECIFIED, a as KHR_DF_VENDORID_KHRONOS, r as KHR_DF_VERSION, e as KHR_SUPERCOMPRESSION_BASISLZ, t as KHR_SUPERCOMPRESSION_NONE, i as KHR_SUPERCOMPRESSION_ZLIB, n as KHR_SUPERCOMPRESSION_ZSTD, Ii as KTX2Container, Ut as VK_FORMAT_A1R5G5B5_UNORM_PACK16, Gt as VK_FORMAT_A2B10G10R10_SINT_PACK32, jt as VK_FORMAT_A2B10G10R10_SNORM_PACK32, qt as VK_FORMAT_A2B10G10R10_UINT_PACK32, Yt as VK_FORMAT_A2B10G10R10_UNORM_PACK32, Rt as VK_FORMAT_A2R10G10B10_SINT_PACK32, Kt as VK_FORMAT_A2R10G10B10_SNORM_PACK32, Xt as VK_FORMAT_A2R10G10B10_UINT_PACK32, Nt as VK_FORMAT_A2R10G10B10_UNORM_PACK32, Vi as VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT, ki as VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT, Li as VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT, Rn as VK_FORMAT_ASTC_10x10_SRGB_BLOCK, Xn as VK_FORMAT_ASTC_10x10_UNORM_BLOCK, mi as VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT, zn as VK_FORMAT_ASTC_10x5_SRGB_BLOCK, Pn as VK_FORMAT_ASTC_10x5_UNORM_BLOCK, Di as VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT, Hn as VK_FORMAT_ASTC_10x6_SRGB_BLOCK, Wn as VK_FORMAT_ASTC_10x6_UNORM_BLOCK, Bi as VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT, Kn as VK_FORMAT_ASTC_10x8_SRGB_BLOCK, Nn as VK_FORMAT_ASTC_10x8_UNORM_BLOCK, vi as VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT, jn as VK_FORMAT_ASTC_12x10_SRGB_BLOCK, Yn as VK_FORMAT_ASTC_12x10_UNORM_BLOCK, Ai as VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT, Gn as VK_FORMAT_ASTC_12x12_SRGB_BLOCK, qn as VK_FORMAT_ASTC_12x12_UNORM_BLOCK, pi as VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT, Dn as VK_FORMAT_ASTC_4x4_SRGB_BLOCK, mn as VK_FORMAT_ASTC_4x4_UNORM_BLOCK, gi as VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT, Ln as VK_FORMAT_ASTC_5x4_SRGB_BLOCK, Bn as VK_FORMAT_ASTC_5x4_UNORM_BLOCK, yi as VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT, An as VK_FORMAT_ASTC_5x5_SRGB_BLOCK, vn as VK_FORMAT_ASTC_5x5_UNORM_BLOCK, xi as VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT, Vn as VK_FORMAT_ASTC_6x5_SRGB_BLOCK, kn as VK_FORMAT_ASTC_6x5_UNORM_BLOCK, ui as VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT, Sn as VK_FORMAT_ASTC_6x6_SRGB_BLOCK, In as VK_FORMAT_ASTC_6x6_UNORM_BLOCK, bi as VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT, On as VK_FORMAT_ASTC_8x5_SRGB_BLOCK, Fn as VK_FORMAT_ASTC_8x5_UNORM_BLOCK, di as VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT, Tn as VK_FORMAT_ASTC_8x6_SRGB_BLOCK, En as VK_FORMAT_ASTC_8x6_UNORM_BLOCK, wi as VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT, Mn as VK_FORMAT_ASTC_8x8_SRGB_BLOCK, Cn as VK_FORMAT_ASTC_8x8_UNORM_BLOCK, We as VK_FORMAT_B10G11R11_UFLOAT_PACK32, ti as VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, ai as VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, rt as VK_FORMAT_B4G4R4A4_UNORM_PACK16, ht as VK_FORMAT_B5G5R5A1_UNORM_PACK16, lt as VK_FORMAT_B5G6R5_UNORM_PACK16, Wt as VK_FORMAT_B8G8R8A8_SINT, Pt as VK_FORMAT_B8G8R8A8_SNORM, Ht as VK_FORMAT_B8G8R8A8_SRGB, zt as VK_FORMAT_B8G8R8A8_UINT, Mt as VK_FORMAT_B8G8R8A8_UNORM, It as VK_FORMAT_B8G8R8_SINT, kt as VK_FORMAT_B8G8R8_SNORM, St as VK_FORMAT_B8G8R8_SRGB, Vt as VK_FORMAT_B8G8R8_UINT, At as VK_FORMAT_B8G8R8_UNORM, Ze as VK_FORMAT_BC1_RGBA_SRGB_BLOCK, Qe as VK_FORMAT_BC1_RGBA_UNORM_BLOCK, Je as VK_FORMAT_BC1_RGB_SRGB_BLOCK, Ge as VK_FORMAT_BC1_RGB_UNORM_BLOCK, tn as VK_FORMAT_BC2_SRGB_BLOCK, $e as VK_FORMAT_BC2_UNORM_BLOCK, nn as VK_FORMAT_BC3_SRGB_BLOCK, en as VK_FORMAT_BC3_UNORM_BLOCK, an as VK_FORMAT_BC4_SNORM_BLOCK, sn as VK_FORMAT_BC4_UNORM_BLOCK, on as VK_FORMAT_BC5_SNORM_BLOCK, rn as VK_FORMAT_BC5_UNORM_BLOCK, fn as VK_FORMAT_BC6H_SFLOAT_BLOCK, ln as VK_FORMAT_BC6H_UFLOAT_BLOCK, Un as VK_FORMAT_BC7_SRGB_BLOCK, hn as VK_FORMAT_BC7_UNORM_BLOCK, Ne as VK_FORMAT_D16_UNORM, Ye as VK_FORMAT_D16_UNORM_S8_UINT, je as VK_FORMAT_D24_UNORM_S8_UINT, Xe as VK_FORMAT_D32_SFLOAT, qe as VK_FORMAT_D32_SFLOAT_S8_UINT, He as VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, wn as VK_FORMAT_EAC_R11G11_SNORM_BLOCK, dn as VK_FORMAT_EAC_R11G11_UNORM_BLOCK, bn as VK_FORMAT_EAC_R11_SNORM_BLOCK, un as VK_FORMAT_EAC_R11_UNORM_BLOCK, gn as VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, pn as VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, xn as VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, yn as VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, _n as VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, cn as VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, $n as VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, si as VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, hi as VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG, ri as VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG, Ui as VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG, oi as VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG, ci as VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG, li as VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG, _i as VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG, fi as VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG, Zn as VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, Qn as VK_FORMAT_R10X6G10X6_UNORM_2PACK16, Jn as VK_FORMAT_R10X6_UNORM_PACK16, ii as VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, ni as VK_FORMAT_R12X4G12X4_UNORM_2PACK16, ei as VK_FORMAT_R12X4_UNORM_PACK16, ge as VK_FORMAT_R16G16B16A16_SFLOAT, pe as VK_FORMAT_R16G16B16A16_SINT, ce as VK_FORMAT_R16G16B16A16_SNORM, _e as VK_FORMAT_R16G16B16A16_UINT, Ue as VK_FORMAT_R16G16B16A16_UNORM, he as VK_FORMAT_R16G16B16_SFLOAT, fe as VK_FORMAT_R16G16B16_SINT, oe as VK_FORMAT_R16G16B16_SNORM, le as VK_FORMAT_R16G16B16_UINT, re as VK_FORMAT_R16G16B16_UNORM, ae as VK_FORMAT_R16G16_SFLOAT, se as VK_FORMAT_R16G16_SINT, ne as VK_FORMAT_R16G16_SNORM, ie as VK_FORMAT_R16G16_UINT, ee as VK_FORMAT_R16G16_UNORM, te as VK_FORMAT_R16_SFLOAT, $t as VK_FORMAT_R16_SINT, Qt as VK_FORMAT_R16_SNORM, Zt as VK_FORMAT_R16_UINT, Jt as VK_FORMAT_R16_UNORM, Ae as VK_FORMAT_R32G32B32A32_SFLOAT, ve as VK_FORMAT_R32G32B32A32_SINT, Le as VK_FORMAT_R32G32B32A32_UINT, Be as VK_FORMAT_R32G32B32_SFLOAT, De as VK_FORMAT_R32G32B32_SINT, me as VK_FORMAT_R32G32B32_UINT, we as VK_FORMAT_R32G32_SFLOAT, de as VK_FORMAT_R32G32_SINT, be as VK_FORMAT_R32G32_UINT, ue as VK_FORMAT_R32_SFLOAT, xe as VK_FORMAT_R32_SINT, ye as VK_FORMAT_R32_UINT, at as VK_FORMAT_R4G4B4A4_UNORM_PACK16, st as VK_FORMAT_R4G4_UNORM_PACK8, ft as VK_FORMAT_R5G5B5A1_UNORM_PACK16, ot as VK_FORMAT_R5G6B5_UNORM_PACK16, ze as VK_FORMAT_R64G64B64A64_SFLOAT, Pe as VK_FORMAT_R64G64B64A64_SINT, Me as VK_FORMAT_R64G64B64A64_UINT, Ce as VK_FORMAT_R64G64B64_SFLOAT, Te as VK_FORMAT_R64G64B64_SINT, Ee as VK_FORMAT_R64G64B64_UINT, Oe as VK_FORMAT_R64G64_SFLOAT, Fe as VK_FORMAT_R64G64_SINT, Se as VK_FORMAT_R64G64_UINT, Ie as VK_FORMAT_R64_SFLOAT, Ve as VK_FORMAT_R64_SINT, ke as VK_FORMAT_R64_UINT, Tt as VK_FORMAT_R8G8B8A8_SINT, Ot as VK_FORMAT_R8G8B8A8_SNORM, Ct as VK_FORMAT_R8G8B8A8_SRGB, Et as VK_FORMAT_R8G8B8A8_UINT, Ft as VK_FORMAT_R8G8B8A8_UNORM, Lt as VK_FORMAT_R8G8B8_SINT, Dt as VK_FORMAT_R8G8B8_SNORM, vt as VK_FORMAT_R8G8B8_SRGB, Bt as VK_FORMAT_R8G8B8_UINT, mt as VK_FORMAT_R8G8B8_UNORM, dt as VK_FORMAT_R8G8_SINT, ut as VK_FORMAT_R8G8_SNORM, wt as VK_FORMAT_R8G8_SRGB, bt as VK_FORMAT_R8G8_UINT, xt as VK_FORMAT_R8G8_UNORM, gt as VK_FORMAT_R8_SINT, _t as VK_FORMAT_R8_SNORM, yt as VK_FORMAT_R8_SRGB, pt as VK_FORMAT_R8_UINT, ct as VK_FORMAT_R8_UNORM, Re as VK_FORMAT_S8_UINT, it as VK_FORMAT_UNDEFINED, Ke as VK_FORMAT_X8_D24_UNORM_PACK32, Pi as read, Wi as write };