@loaders.gl/textures 3.3.0-alpha.5 → 3.3.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/basis-nodejs-worker.js +1762 -2429
- package/dist/basis-worker.js +3 -3
- package/dist/compressed-texture-worker.js +3 -3
- package/dist/crunch-worker.js +2 -2
- package/dist/dist.min.js +7 -5
- package/dist/es5/basis-loader.js +4 -12
- package/dist/es5/basis-loader.js.map +1 -1
- package/dist/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/compressed-texture-loader.js +8 -21
- package/dist/es5/compressed-texture-loader.js.map +1 -1
- package/dist/es5/compressed-texture-writer.js +1 -3
- package/dist/es5/compressed-texture-writer.js.map +1 -1
- package/dist/es5/crunch-loader.js +2 -2
- package/dist/es5/crunch-loader.js.map +1 -1
- package/dist/es5/index.js +22 -35
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/ktx2-basis-writer-nodejs.js +0 -2
- package/dist/es5/ktx2-basis-writer-nodejs.js.map +1 -1
- package/dist/es5/ktx2-basis-writer.js +1 -3
- package/dist/es5/ktx2-basis-writer.js.map +1 -1
- package/dist/es5/lib/encoders/encode-ktx.js +0 -2
- package/dist/es5/lib/encoders/encode-ktx.js.map +1 -1
- package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js +15 -26
- package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
- package/dist/es5/lib/encoders/encode-texture.js +2 -9
- package/dist/es5/lib/encoders/encode-texture.js.map +1 -1
- package/dist/es5/lib/gl-extensions.js +8 -0
- package/dist/es5/lib/gl-extensions.js.map +1 -1
- package/dist/es5/lib/parsers/basis-module-loader.js +6 -46
- package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -1
- package/dist/es5/lib/parsers/crunch-module-loader.js +0 -16
- package/dist/es5/lib/parsers/crunch-module-loader.js.map +1 -1
- package/dist/es5/lib/parsers/parse-basis.js +10 -53
- package/dist/es5/lib/parsers/parse-basis.js.map +1 -1
- package/dist/es5/lib/parsers/parse-compressed-texture.js +0 -7
- package/dist/es5/lib/parsers/parse-compressed-texture.js.map +1 -1
- package/dist/es5/lib/parsers/parse-crunch.js +4 -20
- package/dist/es5/lib/parsers/parse-crunch.js.map +1 -1
- package/dist/es5/lib/parsers/parse-dds.js +2 -8
- package/dist/es5/lib/parsers/parse-dds.js.map +1 -1
- package/dist/es5/lib/parsers/parse-ktx.js +15 -7
- package/dist/es5/lib/parsers/parse-ktx.js.map +1 -1
- package/dist/es5/lib/parsers/parse-npy.js +11 -18
- package/dist/es5/lib/parsers/parse-npy.js.map +1 -1
- package/dist/es5/lib/parsers/parse-pvr.js +0 -2
- package/dist/es5/lib/parsers/parse-pvr.js.map +1 -1
- package/dist/es5/lib/texture-api/async-deep-map.js +3 -32
- package/dist/es5/lib/texture-api/async-deep-map.js.map +1 -1
- package/dist/es5/lib/texture-api/deep-load.js +0 -14
- package/dist/es5/lib/texture-api/deep-load.js.map +1 -1
- package/dist/es5/lib/texture-api/generate-url.js +3 -10
- package/dist/es5/lib/texture-api/generate-url.js.map +1 -1
- package/dist/es5/lib/texture-api/load-image-array.js +7 -24
- package/dist/es5/lib/texture-api/load-image-array.js.map +1 -1
- package/dist/es5/lib/texture-api/load-image-cube.js +4 -27
- package/dist/es5/lib/texture-api/load-image-cube.js.map +1 -1
- package/dist/es5/lib/texture-api/load-image.js +8 -41
- package/dist/es5/lib/texture-api/load-image.js.map +1 -1
- package/dist/es5/lib/texture-api/texture-api-types.js.map +1 -1
- package/dist/es5/lib/utils/extract-mipmap-images.js +0 -7
- package/dist/es5/lib/utils/extract-mipmap-images.js.map +1 -1
- package/dist/es5/lib/utils/ktx-format-helper.js +0 -2
- package/dist/es5/lib/utils/ktx-format-helper.js.map +1 -1
- package/dist/es5/lib/utils/texture-formats.js +2 -9
- package/dist/es5/lib/utils/texture-formats.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/es5/npy-loader.js +5 -16
- package/dist/es5/npy-loader.js.map +1 -1
- package/dist/es5/types.js.map +1 -1
- package/dist/es5/workers/basis-nodejs-worker.js +0 -3
- package/dist/es5/workers/basis-nodejs-worker.js.map +1 -1
- package/dist/es5/workers/basis-worker.js +0 -2
- package/dist/es5/workers/basis-worker.js.map +1 -1
- package/dist/es5/workers/compressed-texture-worker.js +0 -2
- package/dist/es5/workers/compressed-texture-worker.js.map +1 -1
- package/dist/es5/workers/crunch-worker.js +2 -11
- package/dist/es5/workers/crunch-worker.js.map +1 -1
- package/dist/es5/workers/ktx2-basis-writer-nodejs-worker.js +0 -15
- package/dist/es5/workers/ktx2-basis-writer-nodejs-worker.js.map +1 -1
- package/dist/es5/workers/ktx2-basis-writer-worker.js +0 -15
- package/dist/es5/workers/ktx2-basis-writer-worker.js.map +1 -1
- package/dist/es5/workers/npy-worker.js +0 -2
- package/dist/es5/workers/npy-worker.js.map +1 -1
- package/dist/esm/basis-loader.js +5 -1
- package/dist/esm/basis-loader.js.map +1 -1
- package/dist/esm/bundle.js +1 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/compressed-texture-loader.js +8 -3
- package/dist/esm/compressed-texture-loader.js.map +1 -1
- package/dist/esm/compressed-texture-writer.js +1 -0
- package/dist/esm/compressed-texture-writer.js.map +1 -1
- package/dist/esm/crunch-loader.js +2 -0
- package/dist/esm/crunch-loader.js.map +1 -1
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ktx2-basis-writer-nodejs.js +1 -0
- package/dist/esm/ktx2-basis-writer-nodejs.js.map +1 -1
- package/dist/esm/ktx2-basis-writer.js +2 -0
- package/dist/esm/ktx2-basis-writer.js.map +1 -1
- package/dist/esm/lib/encoders/encode-ktx.js.map +1 -1
- package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js +3 -2
- package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
- package/dist/esm/lib/encoders/encode-texture.js +2 -1
- package/dist/esm/lib/encoders/encode-texture.js.map +1 -1
- package/dist/esm/lib/gl-extensions.js +9 -0
- package/dist/esm/lib/gl-extensions.js.map +1 -1
- package/dist/esm/lib/parsers/basis-module-loader.js +7 -10
- package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -1
- package/dist/esm/lib/parsers/crunch-module-loader.js +3 -3
- package/dist/esm/lib/parsers/crunch-module-loader.js.map +1 -1
- package/dist/esm/lib/parsers/parse-basis.js +6 -23
- package/dist/esm/lib/parsers/parse-basis.js.map +1 -1
- package/dist/esm/lib/parsers/parse-compressed-texture.js +1 -3
- package/dist/esm/lib/parsers/parse-compressed-texture.js.map +1 -1
- package/dist/esm/lib/parsers/parse-crunch.js +5 -10
- package/dist/esm/lib/parsers/parse-crunch.js.map +1 -1
- package/dist/esm/lib/parsers/parse-dds.js +4 -2
- package/dist/esm/lib/parsers/parse-dds.js.map +1 -1
- package/dist/esm/lib/parsers/parse-ktx.js +16 -2
- package/dist/esm/lib/parsers/parse-ktx.js.map +1 -1
- package/dist/esm/lib/parsers/parse-npy.js +11 -13
- package/dist/esm/lib/parsers/parse-npy.js.map +1 -1
- package/dist/esm/lib/parsers/parse-pvr.js +4 -0
- package/dist/esm/lib/parsers/parse-pvr.js.map +1 -1
- package/dist/esm/lib/texture-api/async-deep-map.js +6 -6
- package/dist/esm/lib/texture-api/async-deep-map.js.map +1 -1
- package/dist/esm/lib/texture-api/deep-load.js +1 -0
- package/dist/esm/lib/texture-api/deep-load.js.map +1 -1
- package/dist/esm/lib/texture-api/generate-url.js +4 -3
- package/dist/esm/lib/texture-api/generate-url.js.map +1 -1
- package/dist/esm/lib/texture-api/load-image-array.js +5 -4
- package/dist/esm/lib/texture-api/load-image-array.js.map +1 -1
- package/dist/esm/lib/texture-api/load-image-cube.js +7 -4
- package/dist/esm/lib/texture-api/load-image-cube.js.map +1 -1
- package/dist/esm/lib/texture-api/load-image.js +9 -7
- package/dist/esm/lib/texture-api/load-image.js.map +1 -1
- package/dist/esm/lib/texture-api/texture-api-types.js.map +1 -1
- package/dist/esm/lib/utils/extract-mipmap-images.js +1 -6
- package/dist/esm/lib/utils/extract-mipmap-images.js.map +1 -1
- package/dist/esm/lib/utils/ktx-format-helper.js +1 -0
- package/dist/esm/lib/utils/ktx-format-helper.js.map +1 -1
- package/dist/esm/lib/utils/texture-formats.js +2 -2
- package/dist/esm/lib/utils/texture-formats.js.map +1 -1
- package/dist/esm/lib/utils/version.js +2 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/esm/npy-loader.js +6 -1
- package/dist/esm/npy-loader.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/workers/basis-nodejs-worker.js.map +1 -1
- package/dist/esm/workers/basis-worker.js.map +1 -1
- package/dist/esm/workers/compressed-texture-worker.js.map +1 -1
- package/dist/esm/workers/crunch-worker.js +3 -1
- package/dist/esm/workers/crunch-worker.js.map +1 -1
- package/dist/esm/workers/ktx2-basis-writer-nodejs-worker.js +0 -4
- package/dist/esm/workers/ktx2-basis-writer-nodejs-worker.js.map +1 -1
- package/dist/esm/workers/ktx2-basis-writer-worker.js +0 -4
- package/dist/esm/workers/ktx2-basis-writer-worker.js.map +1 -1
- package/dist/esm/workers/npy-worker.js.map +1 -1
- package/dist/ktx2-basis-writer-nodejs-worker.js +1762 -2429
- package/dist/ktx2-basis-writer-worker.js +3 -3
- package/dist/lib/parsers/parse-npy.d.ts +1 -1
- package/dist/lib/parsers/parse-npy.d.ts.map +1 -1
- package/dist/lib/parsers/parse-npy.js +7 -7
- package/dist/npy-loader.d.ts +2 -2
- package/dist/npy-loader.d.ts.map +1 -1
- package/dist/npy-worker.js +8 -6
- package/package.json +7 -7
- package/src/lib/parsers/parse-npy.ts +20 -9
|
@@ -2,20 +2,22 @@ import { assert } from '@loaders.gl/loader-utils';
|
|
|
2
2
|
import { ImageLoader, getImageSize } from '@loaders.gl/images';
|
|
3
3
|
import { generateUrl } from './generate-url';
|
|
4
4
|
import { deepLoad, shallowLoad } from './deep-load';
|
|
5
|
-
export async function loadImageTexture(getUrl
|
|
5
|
+
export async function loadImageTexture(getUrl) {
|
|
6
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
6
7
|
const imageUrls = await getImageUrls(getUrl, options);
|
|
7
8
|
return await deepLoad(imageUrls, ImageLoader.parse, options);
|
|
8
9
|
}
|
|
9
|
-
export async function getImageUrls(getUrl, options
|
|
10
|
+
export async function getImageUrls(getUrl, options) {
|
|
11
|
+
let urlOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
10
12
|
const mipLevels = options && options.image && options.image.mipLevels || 0;
|
|
11
13
|
return mipLevels !== 0 ? await getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) : generateUrl(getUrl, options, urlOptions);
|
|
12
14
|
}
|
|
13
|
-
|
|
14
15
|
async function getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) {
|
|
15
16
|
const urls = [];
|
|
16
17
|
|
|
17
18
|
if (mipLevels === 'auto') {
|
|
18
|
-
const url = generateUrl(getUrl, options, {
|
|
19
|
+
const url = generateUrl(getUrl, options, {
|
|
20
|
+
...urlOptions,
|
|
19
21
|
lod: 0
|
|
20
22
|
});
|
|
21
23
|
const image = await shallowLoad(url, ImageLoader.parse, options);
|
|
@@ -27,18 +29,18 @@ async function getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) {
|
|
|
27
29
|
width,
|
|
28
30
|
height
|
|
29
31
|
});
|
|
32
|
+
|
|
30
33
|
urls.push(url);
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
assert(mipLevels > 0);
|
|
34
|
-
|
|
35
37
|
for (let mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {
|
|
36
|
-
const url = generateUrl(getUrl, options, {
|
|
38
|
+
const url = generateUrl(getUrl, options, {
|
|
39
|
+
...urlOptions,
|
|
37
40
|
lod: mipLevel
|
|
38
41
|
});
|
|
39
42
|
urls.push(url);
|
|
40
43
|
}
|
|
41
|
-
|
|
42
44
|
return urls;
|
|
43
45
|
}
|
|
44
46
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"load-image.js","names":["assert","ImageLoader","getImageSize","generateUrl","deepLoad","shallowLoad","loadImageTexture","getUrl","options","imageUrls","getImageUrls","parse","urlOptions","mipLevels","image","getMipmappedImageUrls","urls","url","lod","width","height","getMipLevels","push","mipLevel","length","size","Math","floor","log2","max"],"sources":["../../../../src/lib/texture-api/load-image.ts"],"sourcesContent":["import {assert} from '@loaders.gl/loader-utils';\nimport {ImageLoader, getImageSize} from '@loaders.gl/images';\nimport type {GetUrl, UrlOptions} from './texture-api-types';\nimport {generateUrl} from './generate-url';\nimport {deepLoad, shallowLoad} from './deep-load';\n\nexport async function loadImageTexture(getUrl: string | GetUrl, options = {}): Promise<any> {\n const imageUrls = await getImageUrls(getUrl, options);\n return await deepLoad(imageUrls, ImageLoader.parse, options);\n}\n\nexport async function getImageUrls(\n getUrl: string | GetUrl,\n options: any,\n urlOptions: UrlOptions = {}\n): Promise<any> {\n const mipLevels = (options && options.image && options.image.mipLevels) || 0;\n return mipLevels !== 0\n ? await getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions)\n : generateUrl(getUrl, options, urlOptions);\n}\n\nasync function getMipmappedImageUrls(\n getUrl: string | GetUrl,\n mipLevels: number | 'auto',\n options: any,\n urlOptions: UrlOptions\n): Promise<string[]> {\n const urls: string[] = [];\n\n // If no mip levels supplied, we need to load the level 0 image and calculate based on size\n if (mipLevels === 'auto') {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: 0});\n const image = await shallowLoad(url, ImageLoader.parse, options);\n\n const {width, height} = getImageSize(image);\n mipLevels = getMipLevels({width, height});\n\n // TODO - push image and make `deepLoad` pass through non-url values, avoid loading twice?\n urls.push(url);\n }\n\n // We now know how many mipLevels we need, remaining image urls can now be constructed\n assert(mipLevels > 0);\n\n for (let mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {\n const url = generateUrl(getUrl, options, {...urlOptions, lod: mipLevel});\n urls.push(url);\n }\n\n return urls;\n}\n\n// Calculates number of mipmaps based on texture size (log2)\nexport function getMipLevels(size: {width: number; height: number}): number {\n return 1 + Math.floor(Math.log2(Math.max(size.width, size.height)));\n}\n"],"mappings":"AAAA,SAAQA,MAAM,QAAO,0BAA0B;AAC/C,SAAQC,WAAW,EAAEC,YAAY,QAAO,oBAAoB;AAE5D,SAAQC,WAAW,QAAO,gBAAgB;AAC1C,SAAQC,QAAQ,EAAEC,WAAW,QAAO,aAAa;AAEjD,OAAO,eAAeC,gBAAgB,CAACC,MAAuB,EAA8B;EAAA,IAA5BC,OAAO,uEAAG,CAAC,CAAC;EAC1E,MAAMC,SAAS,GAAG,MAAMC,YAAY,CAACH,MAAM,EAAEC,OAAO,CAAC;EACrD,OAAO,MAAMJ,QAAQ,CAACK,SAAS,EAAER,WAAW,CAACU,KAAK,EAAEH,OAAO,CAAC;AAC9D;AAEA,OAAO,eAAeE,YAAY,CAChCH,MAAuB,EACvBC,OAAY,EAEE;EAAA,IADdI,UAAsB,uEAAG,CAAC,CAAC;EAE3B,MAAMC,SAAS,GAAIL,OAAO,IAAIA,OAAO,CAACM,KAAK,IAAIN,OAAO,CAACM,KAAK,CAACD,SAAS,IAAK,CAAC;EAC5E,OAAOA,SAAS,KAAK,CAAC,GAClB,MAAME,qBAAqB,CAACR,MAAM,EAAEM,SAAS,EAAEL,OAAO,EAAEI,UAAU,CAAC,GACnET,WAAW,CAACI,MAAM,EAAEC,OAAO,EAAEI,UAAU,CAAC;AAC9C;AAEA,eAAeG,qBAAqB,CAClCR,MAAuB,EACvBM,SAA0B,EAC1BL,OAAY,EACZI,UAAsB,EACH;EACnB,MAAMI,IAAc,GAAG,EAAE;;EAGzB,IAAIH,SAAS,KAAK,MAAM,EAAE;IACxB,MAAMI,GAAG,GAAGd,WAAW,CAACI,MAAM,EAAEC,OAAO,EAAE;MAAC,GAAGI,UAAU;MAAEM,GAAG,EAAE;IAAC,CAAC,CAAC;IACjE,MAAMJ,KAAK,GAAG,MAAMT,WAAW,CAACY,GAAG,EAAEhB,WAAW,CAACU,KAAK,EAAEH,OAAO,CAAC;IAEhE,MAAM;MAACW,KAAK;MAAEC;IAAM,CAAC,GAAGlB,YAAY,CAACY,KAAK,CAAC;IAC3CD,SAAS,GAAGQ,YAAY,CAAC;MAACF,KAAK;MAAEC;IAAM,CAAC,CAAC;;IAGzCJ,IAAI,CAACM,IAAI,CAACL,GAAG,CAAC;EAChB;;EAGAjB,MAAM,CAACa,SAAS,GAAG,CAAC,CAAC;EAErB,KAAK,IAAIU,QAAQ,GAAGP,IAAI,CAACQ,MAAM,EAAED,QAAQ,GAAGV,SAAS,EAAE,EAAEU,QAAQ,EAAE;IACjE,MAAMN,GAAG,GAAGd,WAAW,CAACI,MAAM,EAAEC,OAAO,EAAE;MAAC,GAAGI,UAAU;MAAEM,GAAG,EAAEK;IAAQ,CAAC,CAAC;IACxEP,IAAI,CAACM,IAAI,CAACL,GAAG,CAAC;EAChB;EAEA,OAAOD,IAAI;AACb;;AAGA,OAAO,SAASK,YAAY,CAACI,IAAqC,EAAU;EAC1E,OAAO,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,IAAI,CAACF,IAAI,CAACG,GAAG,CAACJ,IAAI,CAACN,KAAK,EAAEM,IAAI,CAACL,MAAM,CAAC,CAAC,CAAC;AACrE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"texture-api-types.js","names":[],"sources":["../../../../src/lib/texture-api/texture-api-types.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type {ImageType} from '@loaders.gl/images';\n\nexport type UrlOptions = {\n baseUrl?: string;\n index?: number;\n face?: number;\n lod?: number;\n direction?: string;\n};\nexport type GetUrl = (options: UrlOptions) => string;\n"],"mappings":""}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
|
|
1
2
|
export function extractMipmapImages(data, options) {
|
|
2
3
|
const images = new Array(options.mipMapLevels);
|
|
3
4
|
let levelWidth = options.width;
|
|
4
5
|
let levelHeight = options.height;
|
|
5
6
|
let offset = 0;
|
|
6
|
-
|
|
7
7
|
for (let i = 0; i < options.mipMapLevels; ++i) {
|
|
8
8
|
const levelSize = getLevelSize(options, levelWidth, levelHeight, data, i);
|
|
9
9
|
const levelData = getLevelData(data, i, offset, levelSize);
|
|
@@ -19,23 +19,18 @@ export function extractMipmapImages(data, options) {
|
|
|
19
19
|
levelHeight = Math.max(1, levelHeight >> 1);
|
|
20
20
|
offset += levelSize;
|
|
21
21
|
}
|
|
22
|
-
|
|
23
22
|
return images;
|
|
24
23
|
}
|
|
25
|
-
|
|
26
24
|
function getLevelData(data, index, offset, levelSize) {
|
|
27
25
|
if (!Array.isArray(data)) {
|
|
28
26
|
return new Uint8Array(data.buffer, data.byteOffset + offset, levelSize);
|
|
29
27
|
}
|
|
30
|
-
|
|
31
28
|
return data[index].levelData;
|
|
32
29
|
}
|
|
33
|
-
|
|
34
30
|
function getLevelSize(options, levelWidth, levelHeight, data, index) {
|
|
35
31
|
if (!Array.isArray(data)) {
|
|
36
32
|
return options.sizeFunction(levelWidth, levelHeight);
|
|
37
33
|
}
|
|
38
|
-
|
|
39
34
|
return options.sizeFunction(data[index]);
|
|
40
35
|
}
|
|
41
36
|
//# sourceMappingURL=extract-mipmap-images.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"extract-mipmap-images.js","names":["extractMipmapImages","data","options","images","Array","mipMapLevels","levelWidth","width","levelHeight","height","offset","i","levelSize","getLevelSize","levelData","getLevelData","compressed","format","internalFormat","Math","max","index","isArray","Uint8Array","buffer","byteOffset","sizeFunction"],"sources":["../../../../src/lib/utils/extract-mipmap-images.ts"],"sourcesContent":["import type {TextureLevel} from '@loaders.gl/schema';\n\nexport type CompressedTextureExtractOptions = {\n mipMapLevels: number;\n width: number;\n height: number;\n sizeFunction: Function;\n internalFormat: number;\n};\n\n/**\n * Extract mipmap images from compressed texture buffer\n * @param data - binary data of compressed texture or Array of level objects\n * @param options.mipMapLevels - number of mipmap level inside image\n * @param options.width - width of 0 - level\n * @param options.height - height of 0 - level\n * @param options.sizeFunction - format-related function to calculate level size in bytes\n * @param options.internalFormat - WebGL compatible format code\n * @returns Array of the texture levels\n */\nexport function extractMipmapImages(\n data: Uint8Array | object[],\n options: CompressedTextureExtractOptions\n): TextureLevel[] {\n const images = new Array(options.mipMapLevels);\n\n let levelWidth = options.width;\n let levelHeight = options.height;\n let offset = 0;\n\n for (let i = 0; i < options.mipMapLevels; ++i) {\n // @ts-expect-error\n const levelSize = getLevelSize(options, levelWidth, levelHeight, data, i);\n // @ts-expect-error\n const levelData = getLevelData(data, i, offset, levelSize);\n\n images[i] = {\n compressed: true,\n format: options.internalFormat,\n data: levelData,\n width: levelWidth,\n height: levelHeight,\n levelSize\n };\n\n levelWidth = Math.max(1, levelWidth >> 1);\n levelHeight = Math.max(1, levelHeight >> 1);\n\n offset += levelSize;\n }\n return images;\n}\n\nfunction getLevelData(\n data: Uint8Array,\n index: number,\n offset: number,\n levelSize: number\n): Uint8Array {\n if (!Array.isArray(data)) {\n return new Uint8Array(data.buffer, data.byteOffset + offset, levelSize);\n }\n\n return data[index].levelData;\n}\n\nfunction getLevelSize(\n options: CompressedTextureExtractOptions,\n levelWidth: number,\n levelHeight: number,\n data: Uint8Array[] | object[],\n index: number\n): number {\n if (!Array.isArray(data)) {\n return options.sizeFunction(levelWidth, levelHeight);\n }\n return options.sizeFunction(data[index]);\n}\n"],"mappings":";AAoBA,OAAO,SAASA,mBAAmB,CACjCC,IAA2B,EAC3BC,OAAwC,EACxB;EAChB,MAAMC,MAAM,GAAG,IAAIC,KAAK,CAACF,OAAO,CAACG,YAAY,CAAC;EAE9C,IAAIC,UAAU,GAAGJ,OAAO,CAACK,KAAK;EAC9B,IAAIC,WAAW,GAAGN,OAAO,CAACO,MAAM;EAChC,IAAIC,MAAM,GAAG,CAAC;EAEd,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGT,OAAO,CAACG,YAAY,EAAE,EAAEM,CAAC,EAAE;IAE7C,MAAMC,SAAS,GAAGC,YAAY,CAACX,OAAO,EAAEI,UAAU,EAAEE,WAAW,EAAEP,IAAI,EAAEU,CAAC,CAAC;IAEzE,MAAMG,SAAS,GAAGC,YAAY,CAACd,IAAI,EAAEU,CAAC,EAAED,MAAM,EAAEE,SAAS,CAAC;IAE1DT,MAAM,CAACQ,CAAC,CAAC,GAAG;MACVK,UAAU,EAAE,IAAI;MAChBC,MAAM,EAAEf,OAAO,CAACgB,cAAc;MAC9BjB,IAAI,EAAEa,SAAS;MACfP,KAAK,EAAED,UAAU;MACjBG,MAAM,EAAED,WAAW;MACnBI;IACF,CAAC;IAEDN,UAAU,GAAGa,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEd,UAAU,IAAI,CAAC,CAAC;IACzCE,WAAW,GAAGW,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEZ,WAAW,IAAI,CAAC,CAAC;IAE3CE,MAAM,IAAIE,SAAS;EACrB;EACA,OAAOT,MAAM;AACf;AAEA,SAASY,YAAY,CACnBd,IAAgB,EAChBoB,KAAa,EACbX,MAAc,EACdE,SAAiB,EACL;EACZ,IAAI,CAACR,KAAK,CAACkB,OAAO,CAACrB,IAAI,CAAC,EAAE;IACxB,OAAO,IAAIsB,UAAU,CAACtB,IAAI,CAACuB,MAAM,EAAEvB,IAAI,CAACwB,UAAU,GAAGf,MAAM,EAAEE,SAAS,CAAC;EACzE;EAEA,OAAOX,IAAI,CAACoB,KAAK,CAAC,CAACP,SAAS;AAC9B;AAEA,SAASD,YAAY,CACnBX,OAAwC,EACxCI,UAAkB,EAClBE,WAAmB,EACnBP,IAA6B,EAC7BoB,KAAa,EACL;EACR,IAAI,CAACjB,KAAK,CAACkB,OAAO,CAACrB,IAAI,CAAC,EAAE;IACxB,OAAOC,OAAO,CAACwB,YAAY,CAACpB,UAAU,EAAEE,WAAW,CAAC;EACtD;EACA,OAAON,OAAO,CAACwB,YAAY,CAACzB,IAAI,CAACoB,KAAK,CAAC,CAAC;AAC1C"}
|
|
@@ -67,6 +67,7 @@ const VULKAN_TO_WEBGL_FORMAT_MAP = {
|
|
|
67
67
|
1000066012: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,
|
|
68
68
|
1000066013: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR
|
|
69
69
|
};
|
|
70
|
+
|
|
70
71
|
export function mapVkFormatToWebGL(vkFormat) {
|
|
71
72
|
return VULKAN_TO_WEBGL_FORMAT_MAP[vkFormat];
|
|
72
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/utils/ktx-format-helper.ts"],"names":["GL_EXTENSIONS_CONSTANTS","VULKAN_TO_WEBGL_FORMAT_MAP","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_SRGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","COMPRESSED_RED_RGTC1_EXT","COMPRESSED_SIGNED_RED_RGTC1_EXT","COMPRESSED_RED_GREEN_RGTC2_EXT","COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT","COMPRESSED_RGB8_ETC2","COMPRESSED_SRGB8_ETC2","COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","COMPRESSED_R11_EAC","COMPRESSED_SIGNED_R11_EAC","COMPRESSED_RG11_EAC","COMPRESSED_SIGNED_RG11_EAC","COMPRESSED_RGBA_ASTC_4x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR","COMPRESSED_RGBA_ASTC_5x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR","COMPRESSED_RGBA_ASTC_5x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR","COMPRESSED_RGBA_ASTC_6x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR","COMPRESSED_RGBA_ASTC_6x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR","COMPRESSED_RGBA_ASTC_8x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR","COMPRESSED_RGBA_ASTC_8x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR","COMPRESSED_RGBA_ASTC_8x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR","COMPRESSED_RGBA_ASTC_10x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR","COMPRESSED_RGBA_ASTC_10x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR","COMPRESSED_RGBA_ASTC_10x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR","COMPRESSED_RGBA_ASTC_10x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR","COMPRESSED_RGBA_ASTC_12x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR","COMPRESSED_RGBA_ASTC_12x12_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","mapVkFormatToWebGL","vkFormat"],"mappings":"AAAA,SAAQA,uBAAR,QAAsC,kBAAtC;AAEA,MAAMC,0BAAkD,GAAG;AACzD,OAAKD,uBAAuB,CAACE,4BAD4B;AAEzD,OAAKF,uBAAuB,CAACG,6BAF4B;AAGzD,OAAKH,uBAAuB,CAACI,6BAH4B;AAIzD,OAAKJ,uBAAuB,CAACK,mCAJ4B;AAKzD,OAAKL,uBAAuB,CAACM,6BAL4B;AAMzD,OAAKN,uBAAuB,CAACO,mCAN4B;AAOzD,OAAKP,uBAAuB,CAACQ,6BAP4B;AAQzD,OAAKR,uBAAuB,CAACS,mCAR4B;AASzD,OAAKT,uBAAuB,CAACU,wBAT4B;AAUzD,OAAKV,uBAAuB,CAACW,+BAV4B;AAWzD,OAAKX,uBAAuB,CAACY,8BAX4B;AAYzD,OAAKZ,uBAAuB,CAACa,qCAZ4B;AAazD,OAAKb,uBAAuB,CAACc,oBAb4B;AAczD,OAAKd,uBAAuB,CAACe,qBAd4B;AAezD,OAAKf,uBAAuB,CAACgB,wCAf4B;AAgBzD,OAAKhB,uBAAuB,CAACiB,yCAhB4B;AAiBzD,OAAKjB,uBAAuB,CAACkB,yBAjB4B;AAkBzD,OAAKlB,uBAAuB,CAACmB,gCAlB4B;AAmBzD,OAAKnB,uBAAuB,CAACoB,kBAnB4B;AAoBzD,OAAKpB,uBAAuB,CAACqB,yBApB4B;AAqBzD,OAAKrB,uBAAuB,CAACsB,mBArB4B;AAsBzD,OAAKtB,uBAAuB,CAACuB,0BAtB4B;AAwBzD,OAAKvB,uBAAuB,CAACwB,4BAxB4B;AA0BzD,OAAKxB,uBAAuB,CAACyB,oCA1B4B;AA4BzD,OAAKzB,uBAAuB,CAAC0B,4BA5B4B;AA8BzD,OAAK1B,uBAAuB,CAAC2B,oCA9B4B;AAgCzD,OAAK3B,uBAAuB,CAAC4B,4BAhC4B;AAkCzD,OAAK5B,uBAAuB,CAAC6B,oCAlC4B;AAoCzD,OAAK7B,uBAAuB,CAAC8B,4BApC4B;AAsCzD,OAAK9B,uBAAuB,CAAC+B,oCAtC4B;AAwCzD,OAAK/B,uBAAuB,CAACgC,4BAxC4B;AA0CzD,OAAKhC,uBAAuB,CAACiC,oCA1C4B;AA4CzD,OAAKjC,uBAAuB,CAACkC,4BA5C4B;AA8CzD,OAAKlC,uBAAuB,CAACmC,oCA9C4B;AAgDzD,OAAKnC,uBAAuB,CAACoC,4BAhD4B;AAkDzD,OAAKpC,uBAAuB,CAACqC,oCAlD4B;AAoDzD,OAAKrC,uBAAuB,CAACsC,4BApD4B;AAsDzD,OAAKtC,uBAAuB,CAACuC,oCAtD4B;AAwDzD,OAAKvC,uBAAuB,CAACwC,6BAxD4B;AA0DzD,OAAKxC,uBAAuB,CAACyC,qCA1D4B;AA4DzD,OAAKzC,uBAAuB,CAAC0C,6BA5D4B;AA8DzD,OAAK1C,uBAAuB,CAAC2C,qCA9D4B;AAgEzD,OAAK3C,uBAAuB,CAAC4C,6BAhE4B;AAkEzD,OAAK5C,uBAAuB,CAAC6C,qCAlE4B;AAoEzD,OAAK7C,uBAAuB,CAAC8C,8BApE4B;AAsEzD,OAAK9C,uBAAuB,CAAC+C,sCAtE4B;AAwEzD,OAAK/C,uBAAuB,CAACgD,8BAxE4B;AA0EzD,OAAKhD,uBAAuB,CAACiD,sCA1E4B;AA4EzD,OAAKjD,uBAAuB,CAACkD,8BA5E4B;AA8EzD,OAAKlD,uBAAuB,CAACmD,sCA9E4B;AA+EzD,cAAYnD,uBAAuB,CAACoD,gCA/EqB;AAgFzD,cAAYpD,uBAAuB,CAACqD,gCAhFqB;AAkFzD,cAAYrD,uBAAuB,CAACwB,4BAlFqB;AAoFzD,cAAYxB,uBAAuB,CAAC0B,4BApFqB;AAsFzD,cAAY1B,uBAAuB,CAAC4B,4BAtFqB;AAwFzD,cAAY5B,uBAAuB,CAAC8B,4BAxFqB;AA0FzD,cAAY9B,uBAAuB,CAACgC,4BA1FqB;AA4FzD,cAAYhC,uBAAuB,CAACkC,4BA5FqB;AA8FzD,cAAYlC,uBAAuB,CAACoC,4BA9FqB;AAgGzD,cAAYpC,uBAAuB,CAACsC,4BAhGqB;AAkGzD,cAAYtC,uBAAuB,CAACwC,6BAlGqB;AAoGzD,cAAYxC,uBAAuB,CAAC0C,6BApGqB;AAsGzD,cAAY1C,uBAAuB,CAAC4C,6BAtGqB;AAwGzD,cAAY5C,uBAAuB,CAAC8C,8BAxGqB;AA0GzD,cAAY9C,uBAAuB,CAACgD,8BA1GqB;AA4GzD,cAAYhD,uBAAuB,CAACkD;AA5GqB,CAA3D;AAsHA,OAAO,SAASI,kBAAT,CAA4BC,QAA5B,EAAsD;AAC3D,SAAOtD,0BAA0B,CAACsD,QAAD,CAAjC;AACD","sourcesContent":["import {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';\n\nconst VULKAN_TO_WEBGL_FORMAT_MAP: Record<number, number> = {\n 131: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,\n 132: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_S3TC_DXT1_EXT,\n 133: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT1_EXT,\n 134: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,\n 135: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,\n 136: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,\n 137: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,\n 138: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,\n 139: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_RGTC1_EXT,\n 140: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_RGTC1_EXT,\n 141: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_GREEN_RGTC2_EXT,\n 142: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,\n 147: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2,\n 148: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ETC2,\n 149: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,\n 150: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,\n 151: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC,\n 152: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,\n 153: GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC,\n 154: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_R11_EAC,\n 155: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC,\n 156: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RG11_EAC,\n // @ts-ignore\n 157: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,\n // @ts-ignore\n 158: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,\n // @ts-ignore\n 159: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,\n // @ts-ignore\n 160: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,\n // @ts-ignore\n 161: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,\n // @ts-ignore\n 162: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,\n // @ts-ignore\n 163: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,\n // @ts-ignore\n 164: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,\n // @ts-ignore\n 165: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,\n // @ts-ignore\n 166: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,\n // @ts-ignore\n 167: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,\n // @ts-ignore\n 168: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,\n // @ts-ignore\n 169: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,\n // @ts-ignore\n 170: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,\n // @ts-ignore\n 171: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,\n // @ts-ignore\n 172: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,\n // @ts-ignore\n 173: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,\n // @ts-ignore\n 174: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,\n // @ts-ignore\n 175: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,\n // @ts-ignore\n 176: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,\n // @ts-ignore\n 177: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,\n // @ts-ignore\n 178: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,\n // @ts-ignore\n 179: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,\n // @ts-ignore\n 180: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,\n // @ts-ignore\n 181: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,\n // @ts-ignore\n 182: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,\n // @ts-ignore\n 183: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR,\n // @ts-ignore\n 184: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,\n 1000054000: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,\n 1000054001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,\n // @ts-ignore\n 1000066000: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,\n // @ts-ignore\n 1000066001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,\n // @ts-ignore\n 1000066002: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,\n // @ts-ignore\n 1000066003: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,\n // @ts-ignore\n 1000066004: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,\n // @ts-ignore\n 1000066005: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,\n // @ts-ignore\n 1000066006: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,\n // @ts-ignore\n 1000066007: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,\n // @ts-ignore\n 1000066008: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,\n // @ts-ignore\n 1000066009: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,\n // @ts-ignore\n 1000066010: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,\n // @ts-ignore\n 1000066011: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,\n // @ts-ignore\n 1000066012: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,\n // @ts-ignore\n 1000066013: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR\n};\n\n/**\n * Returns WebGl format based on Vulkan format\n * Vulkan to WebGl format mapping provided here http://github.khronos.org/KTX-Specification/#formatMapping\n * Vulkan name to format number mapping provided here: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFormat.html\n * @param vkFormat\n * @returns WebGL / OpenGL constant\n */\nexport function mapVkFormatToWebGL(vkFormat: number): number {\n return VULKAN_TO_WEBGL_FORMAT_MAP[vkFormat];\n}\n"],"file":"ktx-format-helper.js"}
|
|
1
|
+
{"version":3,"file":"ktx-format-helper.js","names":["GL_EXTENSIONS_CONSTANTS","VULKAN_TO_WEBGL_FORMAT_MAP","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_SRGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","COMPRESSED_RED_RGTC1_EXT","COMPRESSED_SIGNED_RED_RGTC1_EXT","COMPRESSED_RED_GREEN_RGTC2_EXT","COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT","COMPRESSED_RGB8_ETC2","COMPRESSED_SRGB8_ETC2","COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","COMPRESSED_R11_EAC","COMPRESSED_SIGNED_R11_EAC","COMPRESSED_RG11_EAC","COMPRESSED_SIGNED_RG11_EAC","COMPRESSED_RGBA_ASTC_4x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR","COMPRESSED_RGBA_ASTC_5x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR","COMPRESSED_RGBA_ASTC_5x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR","COMPRESSED_RGBA_ASTC_6x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR","COMPRESSED_RGBA_ASTC_6x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR","COMPRESSED_RGBA_ASTC_8x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR","COMPRESSED_RGBA_ASTC_8x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR","COMPRESSED_RGBA_ASTC_8x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR","COMPRESSED_RGBA_ASTC_10x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR","COMPRESSED_RGBA_ASTC_10x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR","COMPRESSED_RGBA_ASTC_10x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR","COMPRESSED_RGBA_ASTC_10x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR","COMPRESSED_RGBA_ASTC_12x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR","COMPRESSED_RGBA_ASTC_12x12_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","mapVkFormatToWebGL","vkFormat"],"sources":["../../../../src/lib/utils/ktx-format-helper.ts"],"sourcesContent":["import {GL_EXTENSIONS_CONSTANTS} from '../gl-extensions';\n\nconst VULKAN_TO_WEBGL_FORMAT_MAP: Record<number, number> = {\n 131: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,\n 132: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_S3TC_DXT1_EXT,\n 133: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT1_EXT,\n 134: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,\n 135: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,\n 136: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,\n 137: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,\n 138: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,\n 139: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_RGTC1_EXT,\n 140: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_RGTC1_EXT,\n 141: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_GREEN_RGTC2_EXT,\n 142: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,\n 147: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2,\n 148: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ETC2,\n 149: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,\n 150: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,\n 151: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC,\n 152: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,\n 153: GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC,\n 154: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_R11_EAC,\n 155: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC,\n 156: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RG11_EAC,\n // @ts-ignore\n 157: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,\n // @ts-ignore\n 158: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,\n // @ts-ignore\n 159: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,\n // @ts-ignore\n 160: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,\n // @ts-ignore\n 161: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,\n // @ts-ignore\n 162: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,\n // @ts-ignore\n 163: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,\n // @ts-ignore\n 164: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,\n // @ts-ignore\n 165: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,\n // @ts-ignore\n 166: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,\n // @ts-ignore\n 167: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,\n // @ts-ignore\n 168: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,\n // @ts-ignore\n 169: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,\n // @ts-ignore\n 170: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,\n // @ts-ignore\n 171: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,\n // @ts-ignore\n 172: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,\n // @ts-ignore\n 173: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,\n // @ts-ignore\n 174: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,\n // @ts-ignore\n 175: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,\n // @ts-ignore\n 176: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,\n // @ts-ignore\n 177: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,\n // @ts-ignore\n 178: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,\n // @ts-ignore\n 179: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,\n // @ts-ignore\n 180: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,\n // @ts-ignore\n 181: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,\n // @ts-ignore\n 182: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,\n // @ts-ignore\n 183: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR,\n // @ts-ignore\n 184: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,\n 1000054000: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,\n 1000054001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,\n // @ts-ignore\n 1000066000: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,\n // @ts-ignore\n 1000066001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,\n // @ts-ignore\n 1000066002: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,\n // @ts-ignore\n 1000066003: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,\n // @ts-ignore\n 1000066004: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,\n // @ts-ignore\n 1000066005: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,\n // @ts-ignore\n 1000066006: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,\n // @ts-ignore\n 1000066007: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,\n // @ts-ignore\n 1000066008: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,\n // @ts-ignore\n 1000066009: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,\n // @ts-ignore\n 1000066010: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,\n // @ts-ignore\n 1000066011: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,\n // @ts-ignore\n 1000066012: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,\n // @ts-ignore\n 1000066013: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR\n};\n\n/**\n * Returns WebGl format based on Vulkan format\n * Vulkan to WebGl format mapping provided here http://github.khronos.org/KTX-Specification/#formatMapping\n * Vulkan name to format number mapping provided here: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFormat.html\n * @param vkFormat\n * @returns WebGL / OpenGL constant\n */\nexport function mapVkFormatToWebGL(vkFormat: number): number {\n return VULKAN_TO_WEBGL_FORMAT_MAP[vkFormat];\n}\n"],"mappings":"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"}
|
|
@@ -9,12 +9,13 @@ const WEBGL_EXTENSIONS = {
|
|
|
9
9
|
WEBGL_compressed_texture_astc: 'astc',
|
|
10
10
|
EXT_texture_compression_rgtc: 'rgtc'
|
|
11
11
|
};
|
|
12
|
+
|
|
12
13
|
let formats = null;
|
|
14
|
+
|
|
13
15
|
export function getSupportedGPUTextureFormats(gl) {
|
|
14
16
|
if (!formats) {
|
|
15
17
|
gl = gl || getWebGLContext() || undefined;
|
|
16
18
|
formats = new Set();
|
|
17
|
-
|
|
18
19
|
for (const prefix of BROWSER_PREFIXES) {
|
|
19
20
|
for (const extension in WEBGL_EXTENSIONS) {
|
|
20
21
|
if (gl && gl.getExtension("".concat(prefix).concat(extension))) {
|
|
@@ -24,7 +25,6 @@ export function getSupportedGPUTextureFormats(gl) {
|
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
|
-
|
|
28
28
|
return formats;
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"texture-formats.js","names":["BROWSER_PREFIXES","WEBGL_EXTENSIONS","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_astc","EXT_texture_compression_rgtc","formats","getSupportedGPUTextureFormats","gl","getWebGLContext","undefined","Set","prefix","extension","getExtension","gpuTextureFormat","add","canvas","document","createElement","getContext","error"],"sources":["../../../../src/lib/utils/texture-formats.ts"],"sourcesContent":["import type {GPUTextureFormat} from '@loaders.gl/schema';\n\nconst BROWSER_PREFIXES = ['', 'WEBKIT_', 'MOZ_'];\n\nconst WEBGL_EXTENSIONS: {[key: string]: GPUTextureFormat} = {\n /* eslint-disable camelcase */\n WEBGL_compressed_texture_s3tc: 'dxt',\n WEBGL_compressed_texture_s3tc_srgb: 'dxt-srgb',\n WEBGL_compressed_texture_etc1: 'etc1',\n WEBGL_compressed_texture_etc: 'etc2',\n WEBGL_compressed_texture_pvrtc: 'pvrtc',\n WEBGL_compressed_texture_atc: 'atc',\n WEBGL_compressed_texture_astc: 'astc',\n EXT_texture_compression_rgtc: 'rgtc'\n /* eslint-enable camelcase */\n};\n\nlet formats: Set<GPUTextureFormat> | null = null;\n\n/**\n * Returns a list of formats.\n * Creates a temporary WebGLRenderingContext if none is provided.\n *\n * @param gl - Optional context.\n */\nexport function getSupportedGPUTextureFormats(gl?: WebGLRenderingContext): Set<string> {\n if (!formats) {\n gl = gl || getWebGLContext() || undefined;\n\n formats = new Set<GPUTextureFormat>();\n\n for (const prefix of BROWSER_PREFIXES) {\n for (const extension in WEBGL_EXTENSIONS) {\n if (gl && gl.getExtension(`${prefix}${extension}`)) {\n const gpuTextureFormat = WEBGL_EXTENSIONS[extension];\n formats.add(gpuTextureFormat);\n }\n }\n }\n }\n\n return formats;\n}\n\n/**\n * @returns {WebGLRenderingContext?}\n */\nfunction getWebGLContext() {\n try {\n const canvas = document.createElement('canvas');\n return canvas.getContext('webgl');\n } catch (error) {\n return null;\n }\n}\n"],"mappings":"AAEA,MAAMA,gBAAgB,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC;AAEhD,MAAMC,gBAAmD,GAAG;EAE1DC,6BAA6B,EAAE,KAAK;EACpCC,kCAAkC,EAAE,UAAU;EAC9CC,6BAA6B,EAAE,MAAM;EACrCC,4BAA4B,EAAE,MAAM;EACpCC,8BAA8B,EAAE,OAAO;EACvCC,4BAA4B,EAAE,KAAK;EACnCC,6BAA6B,EAAE,MAAM;EACrCC,4BAA4B,EAAE;AAEhC,CAAC;;AAED,IAAIC,OAAqC,GAAG,IAAI;;AAQhD,OAAO,SAASC,6BAA6B,CAACC,EAA0B,EAAe;EACrF,IAAI,CAACF,OAAO,EAAE;IACZE,EAAE,GAAGA,EAAE,IAAIC,eAAe,EAAE,IAAIC,SAAS;IAEzCJ,OAAO,GAAG,IAAIK,GAAG,EAAoB;IAErC,KAAK,MAAMC,MAAM,IAAIhB,gBAAgB,EAAE;MACrC,KAAK,MAAMiB,SAAS,IAAIhB,gBAAgB,EAAE;QACxC,IAAIW,EAAE,IAAIA,EAAE,CAACM,YAAY,WAAIF,MAAM,SAAGC,SAAS,EAAG,EAAE;UAClD,MAAME,gBAAgB,GAAGlB,gBAAgB,CAACgB,SAAS,CAAC;UACpDP,OAAO,CAACU,GAAG,CAACD,gBAAgB,CAAC;QAC/B;MACF;IACF;EACF;EAEA,OAAOT,OAAO;AAChB;;AAKA,SAASG,eAAe,GAAG;EACzB,IAAI;IACF,MAAMQ,MAAM,GAAGC,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;IAC/C,OAAOF,MAAM,CAACG,UAAU,CAAC,OAAO,CAAC;EACnC,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,OAAO,IAAI;EACb;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"version.js","names":["VERSION"],"sources":["../../../../src/lib/utils/version.ts"],"sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// TODO: use 'latest' instead of 'beta' when 3.0.0 version is released as 'latest'\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';\n"],"mappings":";AAIA,OAAO,MAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,MAAM"}
|
package/dist/esm/npy-loader.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { VERSION } from './lib/utils/version';
|
|
2
2
|
import { parseNPY } from './lib/parsers/parse-npy';
|
|
3
|
+
|
|
3
4
|
const NPY_MAGIC_NUMBER = new Uint8Array([147, 78, 85, 77, 80, 89]);
|
|
5
|
+
|
|
4
6
|
export const NPYWorkerLoader = {
|
|
5
7
|
name: 'NPY',
|
|
6
8
|
id: 'npy',
|
|
@@ -14,10 +16,13 @@ export const NPYWorkerLoader = {
|
|
|
14
16
|
npy: {}
|
|
15
17
|
}
|
|
16
18
|
};
|
|
17
|
-
|
|
19
|
+
|
|
20
|
+
export const NPYLoader = {
|
|
21
|
+
...NPYWorkerLoader,
|
|
18
22
|
parseSync: parseNPY,
|
|
19
23
|
parse: async (arrayBuffer, options) => parseNPY(arrayBuffer, options)
|
|
20
24
|
};
|
|
25
|
+
|
|
21
26
|
export const _TypecheckNPYWorkerLoader = NPYWorkerLoader;
|
|
22
27
|
export const _TypecheckNPYLoader = NPYLoader;
|
|
23
28
|
//# sourceMappingURL=npy-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"npy-loader.js","names":["VERSION","parseNPY","NPY_MAGIC_NUMBER","Uint8Array","NPYWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","tests","buffer","options","npy","NPYLoader","parseSync","parse","arrayBuffer","_TypecheckNPYWorkerLoader","_TypecheckNPYLoader"],"sources":["../../src/npy-loader.ts"],"sourcesContent":["import type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {parseNPY} from './lib/parsers/parse-npy';\n\n// \\x93NUMPY\nconst NPY_MAGIC_NUMBER = new Uint8Array([147, 78, 85, 77, 80, 89]);\n\n/**\n * Worker loader for numpy \"tiles\"\n */\nexport const NPYWorkerLoader = {\n name: 'NPY',\n id: 'npy',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: ['npy'],\n mimeTypes: [],\n tests: [NPY_MAGIC_NUMBER.buffer],\n options: {\n npy: {}\n }\n};\n\n/**\n * Loader for numpy \"tiles\"\n */\nexport const NPYLoader = {\n ...NPYWorkerLoader,\n parseSync: parseNPY,\n parse: async (arrayBuffer: ArrayBuffer, options?: LoaderOptions) => parseNPY(arrayBuffer, options)\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckNPYWorkerLoader: Loader = NPYWorkerLoader;\nexport const _TypecheckNPYLoader: LoaderWithParser = NPYLoader;\n"],"mappings":"AACA,SAAQA,OAAO,QAAO,qBAAqB;AAC3C,SAAQC,QAAQ,QAAO,yBAAyB;;AAGhD,MAAMC,gBAAgB,GAAG,IAAIC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;;AAKlE,OAAO,MAAMC,eAAe,GAAG;EAC7BC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAER,OAAO;EAChBS,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,EAAE;EACbC,KAAK,EAAE,CAACV,gBAAgB,CAACW,MAAM,CAAC;EAChCC,OAAO,EAAE;IACPC,GAAG,EAAE,CAAC;EACR;AACF,CAAC;;AAKD,OAAO,MAAMC,SAAS,GAAG;EACvB,GAAGZ,eAAe;EAClBa,SAAS,EAAEhB,QAAQ;EACnBiB,KAAK,EAAE,OAAOC,WAAwB,EAAEL,OAAuB,KAAKb,QAAQ,CAACkB,WAAW,EAAEL,OAAO;AACnG,CAAC;;AAGD,OAAO,MAAMM,yBAAiC,GAAGhB,eAAe;AAChE,OAAO,MAAMiB,mBAAqC,GAAGL,SAAS"}
|
package/dist/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/types.ts"],"sourcesContent":[""],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"basis-nodejs-worker.js","names":["createLoaderWorker","BasisLoader"],"sources":["../../../src/workers/basis-nodejs-worker.ts"],"sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport '@loaders.gl/polyfills';\nimport {BasisLoader} from '../basis-loader';\n\ncreateLoaderWorker(BasisLoader);\n"],"mappings":"AAAA,SAAQA,kBAAkB,QAAO,0BAA0B;AAC3D,OAAO,uBAAuB;AAC9B,SAAQC,WAAW,QAAO,iBAAiB;AAE3CD,kBAAkB,CAACC,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"basis-worker.js","names":["createLoaderWorker","BasisLoader"],"sources":["../../../src/workers/basis-worker.ts"],"sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {BasisLoader} from '../basis-loader';\n\ncreateLoaderWorker(BasisLoader);\n"],"mappings":"AAAA,SAAQA,kBAAkB,QAAO,0BAA0B;AAC3D,SAAQC,WAAW,QAAO,iBAAiB;AAE3CD,kBAAkB,CAACC,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"compressed-texture-worker.js","names":["createLoaderWorker","CompressedTextureLoader"],"sources":["../../../src/workers/compressed-texture-worker.ts"],"sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {CompressedTextureLoader} from '../compressed-texture-loader';\n\ncreateLoaderWorker(CompressedTextureLoader);\n"],"mappings":"AAAA,SAAQA,kBAAkB,QAAO,0BAA0B;AAC3D,SAAQC,uBAAuB,QAAO,8BAA8B;AAEpED,kBAAkB,CAACC,uBAAuB,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { createLoaderWorker } from '@loaders.gl/loader-utils';
|
|
2
2
|
import { CrunchLoader } from '../crunch-loader';
|
|
3
3
|
import { parseCrunch } from '../lib/parsers/parse-crunch';
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
export const CrunchLoaderWithParser = {
|
|
6
|
+
...CrunchLoader,
|
|
5
7
|
parse: parseCrunch
|
|
6
8
|
};
|
|
7
9
|
createLoaderWorker(CrunchLoaderWithParser);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"crunch-worker.js","names":["createLoaderWorker","CrunchLoader","parseCrunch","CrunchLoaderWithParser","parse"],"sources":["../../../src/workers/crunch-worker.ts"],"sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {CrunchLoader} from '../crunch-loader';\nimport {parseCrunch} from '../lib/parsers/parse-crunch';\n\n/**\n * Loader for the Crunch compressed texture container format\n */\nexport const CrunchLoaderWithParser = {\n ...CrunchLoader,\n parse: parseCrunch\n};\n\ncreateLoaderWorker(CrunchLoaderWithParser);\n"],"mappings":"AAAA,SAAQA,kBAAkB,QAAO,0BAA0B;AAC3D,SAAQC,YAAY,QAAO,kBAAkB;AAC7C,SAAQC,WAAW,QAAO,6BAA6B;;AAKvD,OAAO,MAAMC,sBAAsB,GAAG;EACpC,GAAGF,YAAY;EACfG,KAAK,EAAEF;AACT,CAAC;AAEDF,kBAAkB,CAACG,sBAAsB,CAAC"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { WorkerBody } from '@loaders.gl/worker-utils';
|
|
2
2
|
import { KTX2BasisWriterNodeJS } from '../ktx2-basis-writer-nodejs';
|
|
3
|
-
|
|
4
3
|
(() => {
|
|
5
4
|
if (!WorkerBody.inWorkerThread()) {
|
|
6
5
|
return;
|
|
7
6
|
}
|
|
8
|
-
|
|
9
7
|
WorkerBody.onmessage = async (type, payload) => {
|
|
10
8
|
switch (type) {
|
|
11
9
|
case 'process':
|
|
@@ -24,9 +22,7 @@ import { KTX2BasisWriterNodeJS } from '../ktx2-basis-writer-nodejs';
|
|
|
24
22
|
error: message
|
|
25
23
|
});
|
|
26
24
|
}
|
|
27
|
-
|
|
28
25
|
break;
|
|
29
|
-
|
|
30
26
|
default:
|
|
31
27
|
}
|
|
32
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ktx2-basis-writer-nodejs-worker.js","names":["WorkerBody","KTX2BasisWriterNodeJS","inWorkerThread","onmessage","type","payload","input","options","result","encode","postMessage","error","message","Error"],"sources":["../../../src/workers/ktx2-basis-writer-nodejs-worker.ts"],"sourcesContent":["import {WorkerBody, WorkerMessagePayload} from '@loaders.gl/worker-utils';\nimport {KTX2BasisWriterNodeJS} from '../ktx2-basis-writer-nodejs';\n\n(() => {\n // Check that we are actually in a worker thread\n if (!WorkerBody.inWorkerThread()) {\n return;\n }\n\n WorkerBody.onmessage = async (type, payload: WorkerMessagePayload) => {\n switch (type) {\n case 'process':\n try {\n const {input, options} = payload;\n const result = await KTX2BasisWriterNodeJS.encode(input, options);\n WorkerBody.postMessage('done', {result});\n } catch (error) {\n const message = error instanceof Error ? error.message : '';\n WorkerBody.postMessage('error', {error: message});\n }\n break;\n default:\n }\n };\n})();\n"],"mappings":"AAAA,SAAQA,UAAU,QAA6B,0BAA0B;AACzE,SAAQC,qBAAqB,QAAO,6BAA6B;AAEjE,CAAC,MAAM;EAEL,IAAI,CAACD,UAAU,CAACE,cAAc,EAAE,EAAE;IAChC;EACF;EAEAF,UAAU,CAACG,SAAS,GAAG,OAAOC,IAAI,EAAEC,OAA6B,KAAK;IACpE,QAAQD,IAAI;MACV,KAAK,SAAS;QACZ,IAAI;UACF,MAAM;YAACE,KAAK;YAAEC;UAAO,CAAC,GAAGF,OAAO;UAChC,MAAMG,MAAM,GAAG,MAAMP,qBAAqB,CAACQ,MAAM,CAACH,KAAK,EAAEC,OAAO,CAAC;UACjEP,UAAU,CAACU,WAAW,CAAC,MAAM,EAAE;YAACF;UAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,OAAOG,KAAK,EAAE;UACd,MAAMC,OAAO,GAAGD,KAAK,YAAYE,KAAK,GAAGF,KAAK,CAACC,OAAO,GAAG,EAAE;UAC3DZ,UAAU,CAACU,WAAW,CAAC,OAAO,EAAE;YAACC,KAAK,EAAEC;UAAO,CAAC,CAAC;QACnD;QACA;MACF;IAAQ;EAEZ,CAAC;AACH,CAAC,GAAG"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { WorkerBody } from '@loaders.gl/worker-utils';
|
|
2
2
|
import { KTX2BasisWriter } from '../ktx2-basis-writer';
|
|
3
|
-
|
|
4
3
|
(() => {
|
|
5
4
|
if (!WorkerBody.inWorkerThread()) {
|
|
6
5
|
return;
|
|
7
6
|
}
|
|
8
|
-
|
|
9
7
|
WorkerBody.onmessage = async (type, payload) => {
|
|
10
8
|
switch (type) {
|
|
11
9
|
case 'process':
|
|
@@ -24,9 +22,7 @@ import { KTX2BasisWriter } from '../ktx2-basis-writer';
|
|
|
24
22
|
error: message
|
|
25
23
|
});
|
|
26
24
|
}
|
|
27
|
-
|
|
28
25
|
break;
|
|
29
|
-
|
|
30
26
|
default:
|
|
31
27
|
}
|
|
32
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ktx2-basis-writer-worker.js","names":["WorkerBody","KTX2BasisWriter","inWorkerThread","onmessage","type","payload","input","options","result","encode","postMessage","error","message","Error"],"sources":["../../../src/workers/ktx2-basis-writer-worker.ts"],"sourcesContent":["import {WorkerBody, WorkerMessagePayload} from '@loaders.gl/worker-utils';\nimport {KTX2BasisWriter} from '../ktx2-basis-writer';\n\n(() => {\n // Check that we are actually in a worker thread\n if (!WorkerBody.inWorkerThread()) {\n return;\n }\n\n WorkerBody.onmessage = async (type, payload: WorkerMessagePayload) => {\n switch (type) {\n case 'process':\n try {\n const {input, options} = payload;\n const result = await KTX2BasisWriter.encode(input, options);\n WorkerBody.postMessage('done', {result});\n } catch (error) {\n const message = error instanceof Error ? error.message : '';\n WorkerBody.postMessage('error', {error: message});\n }\n break;\n default:\n }\n };\n})();\n"],"mappings":"AAAA,SAAQA,UAAU,QAA6B,0BAA0B;AACzE,SAAQC,eAAe,QAAO,sBAAsB;AAEpD,CAAC,MAAM;EAEL,IAAI,CAACD,UAAU,CAACE,cAAc,EAAE,EAAE;IAChC;EACF;EAEAF,UAAU,CAACG,SAAS,GAAG,OAAOC,IAAI,EAAEC,OAA6B,KAAK;IACpE,QAAQD,IAAI;MACV,KAAK,SAAS;QACZ,IAAI;UACF,MAAM;YAACE,KAAK;YAAEC;UAAO,CAAC,GAAGF,OAAO;UAChC,MAAMG,MAAM,GAAG,MAAMP,eAAe,CAACQ,MAAM,CAACH,KAAK,EAAEC,OAAO,CAAC;UAC3DP,UAAU,CAACU,WAAW,CAAC,MAAM,EAAE;YAACF;UAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,OAAOG,KAAK,EAAE;UACd,MAAMC,OAAO,GAAGD,KAAK,YAAYE,KAAK,GAAGF,KAAK,CAACC,OAAO,GAAG,EAAE;UAC3DZ,UAAU,CAACU,WAAW,CAAC,OAAO,EAAE;YAACC,KAAK,EAAEC;UAAO,CAAC,CAAC;QACnD;QACA;MACF;IAAQ;EAEZ,CAAC;AACH,CAAC,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"npy-worker.js","names":["NPYLoader","createLoaderWorker"],"sources":["../../../src/workers/npy-worker.ts"],"sourcesContent":["import {NPYLoader} from '../npy-loader';\nimport {createLoaderWorker} from '@loaders.gl/loader-utils';\n\ncreateLoaderWorker(NPYLoader);\n"],"mappings":"AAAA,SAAQA,SAAS,QAAO,eAAe;AACvC,SAAQC,kBAAkB,QAAO,0BAA0B;AAE3DA,kBAAkB,CAACD,SAAS,CAAC"}
|