@loaders.gl/textures 3.1.7 → 3.2.0-alpha.2
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-worker.js +57 -26
- package/dist/compressed-texture-loader.d.ts +1 -1
- package/dist/compressed-texture-loader.js +1 -1
- package/dist/compressed-texture-worker.js +58 -27
- package/dist/compressed-texture-writer.d.ts +15 -2
- package/dist/compressed-texture-writer.d.ts.map +1 -1
- package/dist/crunch-worker.js +61 -29
- package/dist/dist.min.js +147 -130
- package/dist/es5/compressed-texture-loader.js +1 -1
- package/dist/es5/compressed-texture-loader.js.map +1 -1
- package/dist/es5/compressed-texture-writer.js.map +1 -1
- package/dist/es5/index.js +23 -3
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/ktx2-basis-writer-nodejs.js +16 -0
- package/dist/es5/ktx2-basis-writer-nodejs.js.map +1 -0
- package/dist/es5/{ktx2-basis-universal-texture-writer.js → ktx2-basis-writer.js} +6 -6
- package/dist/es5/ktx2-basis-writer.js.map +1 -0
- package/dist/es5/lib/encoders/encode-texture.js.map +1 -1
- package/dist/es5/lib/parsers/basis-module-loader.js +1 -1
- package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -1
- package/dist/es5/lib/parsers/parse-basis.js +8 -8
- package/dist/es5/lib/parsers/parse-basis.js.map +1 -1
- package/dist/es5/lib/parsers/parse-compressed-texture.js.map +1 -1
- package/dist/es5/lib/parsers/parse-crunch.js +8 -7
- package/dist/es5/lib/parsers/parse-crunch.js.map +1 -1
- package/dist/es5/lib/parsers/parse-dds.js.map +1 -1
- package/dist/es5/lib/parsers/parse-ktx.js.map +1 -1
- package/dist/es5/lib/parsers/parse-npy.js.map +1 -1
- package/dist/es5/lib/parsers/parse-pvr.js.map +1 -1
- package/dist/es5/lib/utils/extract-mipmap-images.js.map +1 -1
- 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/libs/basis_encoder.js +20 -21
- package/dist/es5/libs/basis_encoder.wasm +0 -0
- package/dist/es5/libs/basis_transcoder.js +14 -13
- package/dist/es5/libs/basis_transcoder.wasm +0 -0
- package/dist/es5/workers/ktx2-basis-writer-nodejs-worker.js +70 -0
- package/dist/es5/workers/ktx2-basis-writer-nodejs-worker.js.map +1 -0
- package/dist/es5/workers/ktx2-basis-writer-worker.js +70 -0
- package/dist/es5/workers/ktx2-basis-writer-worker.js.map +1 -0
- package/dist/esm/compressed-texture-loader.js +1 -1
- package/dist/esm/compressed-texture-loader.js.map +1 -1
- package/dist/esm/compressed-texture-writer.js.map +1 -1
- package/dist/esm/index.js +16 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ktx2-basis-writer-nodejs.js +3 -0
- package/dist/esm/ktx2-basis-writer-nodejs.js.map +1 -0
- package/dist/esm/{ktx2-basis-universal-texture-writer.js → ktx2-basis-writer.js} +4 -4
- package/dist/esm/ktx2-basis-writer.js.map +1 -0
- package/dist/esm/lib/encoders/encode-texture.js.map +1 -1
- package/dist/esm/lib/parsers/basis-module-loader.js +1 -1
- package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -1
- package/dist/esm/lib/parsers/parse-basis.js +8 -8
- package/dist/esm/lib/parsers/parse-basis.js.map +1 -1
- package/dist/esm/lib/parsers/parse-compressed-texture.js.map +1 -1
- package/dist/esm/lib/parsers/parse-crunch.js +13 -12
- package/dist/esm/lib/parsers/parse-crunch.js.map +1 -1
- package/dist/esm/lib/parsers/parse-dds.js.map +1 -1
- package/dist/esm/lib/parsers/parse-ktx.js.map +1 -1
- package/dist/esm/lib/parsers/parse-npy.js.map +1 -1
- package/dist/esm/lib/parsers/parse-pvr.js.map +1 -1
- package/dist/esm/lib/utils/extract-mipmap-images.js.map +1 -1
- package/dist/esm/lib/utils/texture-formats.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/esm/libs/basis_encoder.js +20 -21
- package/dist/esm/libs/basis_encoder.wasm +0 -0
- package/dist/esm/libs/basis_transcoder.js +14 -13
- package/dist/esm/libs/basis_transcoder.wasm +0 -0
- package/dist/esm/types.js +1 -1
- package/dist/esm/workers/ktx2-basis-writer-nodejs-worker.js +34 -0
- package/dist/esm/workers/ktx2-basis-writer-nodejs-worker.js.map +1 -0
- package/dist/esm/workers/ktx2-basis-writer-worker.js +34 -0
- package/dist/esm/workers/ktx2-basis-writer-worker.js.map +1 -0
- package/dist/index.d.ts +15 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -3
- package/dist/ktx2-basis-writer-nodejs-worker.js +66438 -0
- package/dist/ktx2-basis-writer-nodejs.d.ts +3 -0
- package/dist/ktx2-basis-writer-nodejs.d.ts.map +1 -0
- package/dist/ktx2-basis-writer-nodejs.js +7 -0
- package/dist/ktx2-basis-writer-worker.js +343 -0
- package/dist/{ktx2-basis-universal-texture-writer.d.ts → ktx2-basis-writer.d.ts} +2 -2
- package/dist/ktx2-basis-writer.d.ts.map +1 -0
- package/dist/{ktx2-basis-universal-texture-writer.js → ktx2-basis-writer.js} +4 -4
- package/dist/lib/encoders/encode-texture.d.ts +2 -3
- package/dist/lib/encoders/encode-texture.d.ts.map +1 -1
- package/dist/lib/parsers/basis-module-loader.js +1 -1
- package/dist/lib/parsers/parse-basis.d.ts +8 -6
- package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
- package/dist/lib/parsers/parse-basis.js +25 -25
- package/dist/lib/parsers/parse-compressed-texture.d.ts +1 -1
- package/dist/lib/parsers/parse-compressed-texture.d.ts.map +1 -1
- package/dist/lib/parsers/parse-crunch.d.ts +1 -1
- package/dist/lib/parsers/parse-crunch.d.ts.map +1 -1
- package/dist/lib/parsers/parse-crunch.js +14 -13
- package/dist/lib/parsers/parse-dds.d.ts +1 -1
- package/dist/lib/parsers/parse-dds.d.ts.map +1 -1
- package/dist/lib/parsers/parse-ktx.d.ts +2 -1
- package/dist/lib/parsers/parse-ktx.d.ts.map +1 -1
- package/dist/lib/parsers/parse-npy.d.ts.map +1 -1
- package/dist/lib/parsers/parse-npy.js +1 -0
- package/dist/lib/parsers/parse-pvr.d.ts +1 -1
- package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
- package/dist/lib/parsers/parse-pvr.js +2 -2
- package/dist/lib/utils/extract-mipmap-images.d.ts +8 -1
- package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
- package/dist/lib/utils/version.d.ts.map +1 -1
- package/dist/lib/utils/version.js +2 -1
- package/dist/libs/basis_encoder.js +20 -21
- package/dist/libs/basis_encoder.wasm +0 -0
- package/dist/libs/basis_transcoder.js +14 -13
- package/dist/libs/basis_transcoder.wasm +0 -0
- package/dist/npy-worker.js +46 -15
- package/dist/types.d.ts +0 -20
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -1
- package/dist/workers/ktx2-basis-writer-nodejs-worker.d.ts +2 -0
- package/dist/workers/ktx2-basis-writer-nodejs-worker.d.ts.map +1 -0
- package/dist/workers/ktx2-basis-writer-nodejs-worker.js +26 -0
- package/dist/workers/ktx2-basis-writer-worker.d.ts +2 -0
- package/dist/workers/ktx2-basis-writer-worker.d.ts.map +1 -0
- package/dist/workers/ktx2-basis-writer-worker.js +26 -0
- package/package.json +13 -7
- package/src/compressed-texture-loader.ts +1 -1
- package/src/compressed-texture-writer.ts +20 -2
- package/src/index.ts +19 -2
- package/src/ktx2-basis-writer-nodejs.ts +4 -0
- package/src/{ktx2-basis-universal-texture-writer.ts → ktx2-basis-writer.ts} +3 -3
- package/src/lib/encoders/encode-texture.ts +2 -1
- package/src/lib/parsers/basis-module-loader.ts +1 -1
- package/src/lib/parsers/parse-basis.ts +68 -36
- package/src/lib/parsers/parse-compressed-texture.ts +1 -1
- package/src/lib/parsers/parse-crunch.ts +15 -14
- package/src/lib/parsers/parse-dds.ts +1 -1
- package/src/lib/parsers/parse-ktx.ts +2 -1
- package/src/lib/parsers/parse-npy.ts +2 -0
- package/src/lib/parsers/parse-pvr.ts +2 -1
- package/src/lib/utils/extract-mipmap-images.ts +9 -1
- package/src/lib/utils/texture-formats.ts +1 -1
- package/src/lib/utils/version.ts +2 -1
- package/src/libs/basis_encoder.js +20 -21
- package/src/libs/basis_encoder.wasm +0 -0
- package/src/libs/basis_transcoder.js +14 -13
- package/src/libs/basis_transcoder.wasm +0 -0
- package/src/types.ts +0 -30
- package/src/workers/ktx2-basis-writer-nodejs-worker.ts +25 -0
- package/src/workers/ktx2-basis-writer-worker.ts +25 -0
- package/dist/es5/ktx2-basis-universal-texture-writer.js.map +0 -1
- package/dist/esm/ktx2-basis-universal-texture-writer.js.map +0 -1
- package/dist/ktx2-basis-universal-texture-writer.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ktx2-basis-writer-nodejs.d.ts","sourceRoot":"","sources":["../src/ktx2-basis-writer-nodejs.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAC,eAAe,IAAI,qBAAqB,EAAC,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KTX2BasisWriterNodeJS = void 0;
|
|
4
|
+
// Polyfills increases the bundle size significantly. Use it for NodeJS worker only
|
|
5
|
+
require("@loaders.gl/polyfills");
|
|
6
|
+
var ktx2_basis_writer_1 = require("./ktx2-basis-writer");
|
|
7
|
+
Object.defineProperty(exports, "KTX2BasisWriterNodeJS", { enumerable: true, get: function () { return ktx2_basis_writer_1.KTX2BasisWriter; } });
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
(() => {
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
9
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
10
|
+
return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module, desc) => {
|
|
13
|
+
if (module && typeof module === "object" || typeof module === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
16
|
+
__defProp(target, key, { get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toModule = (module) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? { get: () => module.default, enumerable: true } : { value: module, enumerable: true })), module);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// (disabled):../worker-utils/src/lib/node/require-utils.node
|
|
25
|
+
var require_require_utils = __commonJS({
|
|
26
|
+
"(disabled):../worker-utils/src/lib/node/require-utils.node"() {
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// ../worker-utils/src/lib/env-utils/version.ts
|
|
31
|
+
var VERSION = true ? "3.2.0-alpha.2" : DEFAULT_VERSION;
|
|
32
|
+
if (false) {
|
|
33
|
+
console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// ../worker-utils/src/lib/env-utils/assert.ts
|
|
37
|
+
function assert(condition, message) {
|
|
38
|
+
if (!condition) {
|
|
39
|
+
throw new Error(message || "loaders.gl assertion failed.");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// ../worker-utils/src/lib/env-utils/globals.ts
|
|
44
|
+
var globals = {
|
|
45
|
+
self: typeof self !== "undefined" && self,
|
|
46
|
+
window: typeof window !== "undefined" && window,
|
|
47
|
+
global: typeof global !== "undefined" && global,
|
|
48
|
+
document: typeof document !== "undefined" && document
|
|
49
|
+
};
|
|
50
|
+
var self_ = globals.self || globals.window || globals.global || {};
|
|
51
|
+
var window_ = globals.window || globals.self || globals.global || {};
|
|
52
|
+
var global_ = globals.global || globals.self || globals.window || {};
|
|
53
|
+
var document_ = globals.document || {};
|
|
54
|
+
var isBrowser = typeof process !== "object" || String(process) !== "[object process]" || process.browser;
|
|
55
|
+
var isWorker = typeof importScripts === "function";
|
|
56
|
+
var isMobile = typeof window !== "undefined" && typeof window.orientation !== "undefined";
|
|
57
|
+
var matches = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
|
|
58
|
+
var nodeVersion = matches && parseFloat(matches[1]) || 0;
|
|
59
|
+
|
|
60
|
+
// ../worker-utils/src/lib/worker-utils/get-transfer-list.ts
|
|
61
|
+
function getTransferList(object, recursive = true, transfers) {
|
|
62
|
+
const transfersSet = transfers || new Set();
|
|
63
|
+
if (!object) {
|
|
64
|
+
} else if (isTransferable(object)) {
|
|
65
|
+
transfersSet.add(object);
|
|
66
|
+
} else if (isTransferable(object.buffer)) {
|
|
67
|
+
transfersSet.add(object.buffer);
|
|
68
|
+
} else if (ArrayBuffer.isView(object)) {
|
|
69
|
+
} else if (recursive && typeof object === "object") {
|
|
70
|
+
for (const key in object) {
|
|
71
|
+
getTransferList(object[key], recursive, transfersSet);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return transfers === void 0 ? Array.from(transfersSet) : [];
|
|
75
|
+
}
|
|
76
|
+
function isTransferable(object) {
|
|
77
|
+
if (!object) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
if (object instanceof ArrayBuffer) {
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
if (typeof MessagePort !== "undefined" && object instanceof MessagePort) {
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
if (typeof ImageBitmap !== "undefined" && object instanceof ImageBitmap) {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
if (typeof OffscreenCanvas !== "undefined" && object instanceof OffscreenCanvas) {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// ../worker-utils/src/lib/worker-farm/worker-body.ts
|
|
96
|
+
function getParentPort() {
|
|
97
|
+
let parentPort;
|
|
98
|
+
try {
|
|
99
|
+
eval("globalThis.parentPort = require('worker_threads').parentPort");
|
|
100
|
+
parentPort = globalThis.parentPort;
|
|
101
|
+
} catch {
|
|
102
|
+
}
|
|
103
|
+
return parentPort;
|
|
104
|
+
}
|
|
105
|
+
var onMessageWrapperMap = new Map();
|
|
106
|
+
var WorkerBody = class {
|
|
107
|
+
static inWorkerThread() {
|
|
108
|
+
return typeof self !== "undefined" || Boolean(getParentPort());
|
|
109
|
+
}
|
|
110
|
+
static set onmessage(onMessage) {
|
|
111
|
+
function handleMessage(message) {
|
|
112
|
+
const parentPort3 = getParentPort();
|
|
113
|
+
const { type, payload } = parentPort3 ? message : message.data;
|
|
114
|
+
onMessage(type, payload);
|
|
115
|
+
}
|
|
116
|
+
const parentPort2 = getParentPort();
|
|
117
|
+
if (parentPort2) {
|
|
118
|
+
parentPort2.on("message", handleMessage);
|
|
119
|
+
parentPort2.on("exit", () => console.debug("Node worker closing"));
|
|
120
|
+
} else {
|
|
121
|
+
globalThis.onmessage = handleMessage;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
static addEventListener(onMessage) {
|
|
125
|
+
let onMessageWrapper = onMessageWrapperMap.get(onMessage);
|
|
126
|
+
if (!onMessageWrapper) {
|
|
127
|
+
onMessageWrapper = (message) => {
|
|
128
|
+
if (!isKnownMessage(message)) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const parentPort3 = getParentPort();
|
|
132
|
+
const { type, payload } = parentPort3 ? message : message.data;
|
|
133
|
+
onMessage(type, payload);
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
const parentPort2 = getParentPort();
|
|
137
|
+
if (parentPort2) {
|
|
138
|
+
console.error("not implemented");
|
|
139
|
+
} else {
|
|
140
|
+
globalThis.addEventListener("message", onMessageWrapper);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
static removeEventListener(onMessage) {
|
|
144
|
+
const onMessageWrapper = onMessageWrapperMap.get(onMessage);
|
|
145
|
+
onMessageWrapperMap.delete(onMessage);
|
|
146
|
+
const parentPort2 = getParentPort();
|
|
147
|
+
if (parentPort2) {
|
|
148
|
+
console.error("not implemented");
|
|
149
|
+
} else {
|
|
150
|
+
globalThis.removeEventListener("message", onMessageWrapper);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
static postMessage(type, payload) {
|
|
154
|
+
const data = { source: "loaders.gl", type, payload };
|
|
155
|
+
const transferList = getTransferList(payload);
|
|
156
|
+
const parentPort2 = getParentPort();
|
|
157
|
+
if (parentPort2) {
|
|
158
|
+
parentPort2.postMessage(data, transferList);
|
|
159
|
+
} else {
|
|
160
|
+
globalThis.postMessage(data, transferList);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
function isKnownMessage(message) {
|
|
165
|
+
const { type, data } = message;
|
|
166
|
+
return type === "message" && data && typeof data.source === "string" && data.source.startsWith("loaders.gl");
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// ../worker-utils/src/lib/library-utils/library-utils.ts
|
|
170
|
+
var node = __toModule(require_require_utils());
|
|
171
|
+
var LATEST = "beta";
|
|
172
|
+
var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
|
|
173
|
+
var loadLibraryPromises = {};
|
|
174
|
+
async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
|
|
175
|
+
if (moduleName) {
|
|
176
|
+
libraryUrl = getLibraryUrl(libraryUrl, moduleName, options);
|
|
177
|
+
}
|
|
178
|
+
loadLibraryPromises[libraryUrl] = loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);
|
|
179
|
+
return await loadLibraryPromises[libraryUrl];
|
|
180
|
+
}
|
|
181
|
+
function getLibraryUrl(library, moduleName, options) {
|
|
182
|
+
if (library.startsWith("http")) {
|
|
183
|
+
return library;
|
|
184
|
+
}
|
|
185
|
+
const modules = options.modules || {};
|
|
186
|
+
if (modules[library]) {
|
|
187
|
+
return modules[library];
|
|
188
|
+
}
|
|
189
|
+
if (!isBrowser) {
|
|
190
|
+
return `modules/${moduleName}/dist/libs/${library}`;
|
|
191
|
+
}
|
|
192
|
+
if (options.CDN) {
|
|
193
|
+
assert(options.CDN.startsWith("http"));
|
|
194
|
+
return `${options.CDN}/${moduleName}@${VERSION2}/dist/libs/${library}`;
|
|
195
|
+
}
|
|
196
|
+
if (isWorker) {
|
|
197
|
+
return `../src/libs/${library}`;
|
|
198
|
+
}
|
|
199
|
+
return `modules/${moduleName}/src/libs/${library}`;
|
|
200
|
+
}
|
|
201
|
+
async function loadLibraryFromFile(libraryUrl) {
|
|
202
|
+
if (libraryUrl.endsWith("wasm")) {
|
|
203
|
+
const response2 = await fetch(libraryUrl);
|
|
204
|
+
return await response2.arrayBuffer();
|
|
205
|
+
}
|
|
206
|
+
if (!isBrowser) {
|
|
207
|
+
try {
|
|
208
|
+
return node && node.requireFromFile && await node.requireFromFile(libraryUrl);
|
|
209
|
+
} catch {
|
|
210
|
+
return null;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
if (isWorker) {
|
|
214
|
+
return importScripts(libraryUrl);
|
|
215
|
+
}
|
|
216
|
+
const response = await fetch(libraryUrl);
|
|
217
|
+
const scriptSource = await response.text();
|
|
218
|
+
return loadLibraryFromString(scriptSource, libraryUrl);
|
|
219
|
+
}
|
|
220
|
+
function loadLibraryFromString(scriptSource, id) {
|
|
221
|
+
if (!isBrowser) {
|
|
222
|
+
return node.requireFromString && node.requireFromString(scriptSource, id);
|
|
223
|
+
}
|
|
224
|
+
if (isWorker) {
|
|
225
|
+
eval.call(global_, scriptSource);
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
const script = document.createElement("script");
|
|
229
|
+
script.id = id;
|
|
230
|
+
try {
|
|
231
|
+
script.appendChild(document.createTextNode(scriptSource));
|
|
232
|
+
} catch (e) {
|
|
233
|
+
script.text = scriptSource;
|
|
234
|
+
}
|
|
235
|
+
document.body.appendChild(script);
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// src/lib/utils/version.ts
|
|
240
|
+
var VERSION3 = true ? "3.2.0-alpha.2" : "beta";
|
|
241
|
+
|
|
242
|
+
// src/lib/parsers/basis-module-loader.ts
|
|
243
|
+
var VERSION4 = true ? "3.2.0-alpha.2" : "beta";
|
|
244
|
+
var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.wasm`;
|
|
245
|
+
var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.js`;
|
|
246
|
+
var loadBasisEncoderPromise;
|
|
247
|
+
async function loadBasisEncoderModule(options) {
|
|
248
|
+
const modules = options.modules || {};
|
|
249
|
+
if (modules.basisEncoder) {
|
|
250
|
+
return modules.basisEncoder;
|
|
251
|
+
}
|
|
252
|
+
loadBasisEncoderPromise = loadBasisEncoderPromise || loadBasisEncoder(options);
|
|
253
|
+
return await loadBasisEncoderPromise;
|
|
254
|
+
}
|
|
255
|
+
async function loadBasisEncoder(options) {
|
|
256
|
+
let BASIS_ENCODER = null;
|
|
257
|
+
let wasmBinary = null;
|
|
258
|
+
[BASIS_ENCODER, wasmBinary] = await Promise.all([
|
|
259
|
+
await loadLibrary(BASIS_CDN_ENCODER_JS, "textures", options),
|
|
260
|
+
await loadLibrary(BASIS_CDN_ENCODER_WASM, "textures", options)
|
|
261
|
+
]);
|
|
262
|
+
BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
|
|
263
|
+
return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
|
|
264
|
+
}
|
|
265
|
+
function initializeBasisEncoderModule(BasisEncoderModule, wasmBinary) {
|
|
266
|
+
const options = {};
|
|
267
|
+
if (wasmBinary) {
|
|
268
|
+
options.wasmBinary = wasmBinary;
|
|
269
|
+
}
|
|
270
|
+
return new Promise((resolve) => {
|
|
271
|
+
BasisEncoderModule(options).then((module) => {
|
|
272
|
+
const { BasisFile, KTX2File, initializeBasis, BasisEncoder } = module;
|
|
273
|
+
initializeBasis();
|
|
274
|
+
resolve({ BasisFile, KTX2File, BasisEncoder });
|
|
275
|
+
});
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// src/lib/encoders/encode-ktx2-basis-texture.ts
|
|
280
|
+
async function encodeKTX2BasisTexture(image, options = {}) {
|
|
281
|
+
const { useSRGB = false, qualityLevel = 10, encodeUASTC = false, mipmaps = false } = options;
|
|
282
|
+
const { BasisEncoder } = await loadBasisEncoderModule(options);
|
|
283
|
+
const basisEncoder = new BasisEncoder();
|
|
284
|
+
try {
|
|
285
|
+
const basisFileData = new Uint8Array(image.width * image.height * 4);
|
|
286
|
+
basisEncoder.setCreateKTX2File(true);
|
|
287
|
+
basisEncoder.setKTX2UASTCSupercompression(true);
|
|
288
|
+
basisEncoder.setKTX2SRGBTransferFunc(true);
|
|
289
|
+
basisEncoder.setSliceSourceImage(0, image.data, image.width, image.height, false);
|
|
290
|
+
basisEncoder.setPerceptual(useSRGB);
|
|
291
|
+
basisEncoder.setMipSRGB(useSRGB);
|
|
292
|
+
basisEncoder.setQualityLevel(qualityLevel);
|
|
293
|
+
basisEncoder.setUASTC(encodeUASTC);
|
|
294
|
+
basisEncoder.setMipGen(mipmaps);
|
|
295
|
+
const numOutputBytes = basisEncoder.encode(basisFileData);
|
|
296
|
+
const actualKTX2FileData = basisFileData.subarray(0, numOutputBytes).buffer;
|
|
297
|
+
return actualKTX2FileData;
|
|
298
|
+
} catch (error) {
|
|
299
|
+
console.error("Basis Universal Supercompressed GPU Texture encoder Error: ", error);
|
|
300
|
+
throw error;
|
|
301
|
+
} finally {
|
|
302
|
+
basisEncoder.delete();
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// src/ktx2-basis-writer.ts
|
|
307
|
+
var KTX2BasisWriter = {
|
|
308
|
+
name: "Basis Universal Supercompressed GPU Texture",
|
|
309
|
+
id: "ktx2-basis-writer",
|
|
310
|
+
module: "textures",
|
|
311
|
+
version: VERSION3,
|
|
312
|
+
extensions: ["ktx2"],
|
|
313
|
+
options: {
|
|
314
|
+
useSRGB: false,
|
|
315
|
+
qualityLevel: 10,
|
|
316
|
+
encodeUASTC: false,
|
|
317
|
+
mipmaps: false
|
|
318
|
+
},
|
|
319
|
+
encode: encodeKTX2BasisTexture
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
// src/workers/ktx2-basis-writer-worker.ts
|
|
323
|
+
(() => {
|
|
324
|
+
if (!WorkerBody.inWorkerThread()) {
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
WorkerBody.onmessage = async (type, payload) => {
|
|
328
|
+
switch (type) {
|
|
329
|
+
case "process":
|
|
330
|
+
try {
|
|
331
|
+
const { input, options } = payload;
|
|
332
|
+
const result = await KTX2BasisWriter.encode(input, options);
|
|
333
|
+
WorkerBody.postMessage("done", { result });
|
|
334
|
+
} catch (error) {
|
|
335
|
+
const message = error instanceof Error ? error.message : "";
|
|
336
|
+
WorkerBody.postMessage("error", { error: message });
|
|
337
|
+
}
|
|
338
|
+
break;
|
|
339
|
+
default:
|
|
340
|
+
}
|
|
341
|
+
};
|
|
342
|
+
})();
|
|
343
|
+
})();
|
|
@@ -4,7 +4,7 @@ import { encodeKTX2BasisTexture } from './lib/encoders/encode-ktx2-basis-texture
|
|
|
4
4
|
* Basis Universal Supercompressed GPU Texture.
|
|
5
5
|
* Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureSetDefinitionFormat.cmn.md
|
|
6
6
|
*/
|
|
7
|
-
export declare const
|
|
7
|
+
export declare const KTX2BasisWriter: {
|
|
8
8
|
name: string;
|
|
9
9
|
id: string;
|
|
10
10
|
module: string;
|
|
@@ -19,4 +19,4 @@ export declare const KTX2BasisUniversalTextureWriter: {
|
|
|
19
19
|
encode: typeof encodeKTX2BasisTexture;
|
|
20
20
|
};
|
|
21
21
|
export declare const _TypecheckKTX2TextureWriter: Writer;
|
|
22
|
-
//# sourceMappingURL=ktx2-basis-
|
|
22
|
+
//# sourceMappingURL=ktx2-basis-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ktx2-basis-writer.d.ts","sourceRoot":"","sources":["../src/ktx2-basis-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAC,sBAAsB,EAAC,MAAM,0CAA0C,CAAC;AAEhF;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAe3B,CAAC;AAGF,eAAO,MAAM,2BAA2B,EAAE,MAAwB,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports._TypecheckKTX2TextureWriter = exports.
|
|
3
|
+
exports._TypecheckKTX2TextureWriter = exports.KTX2BasisWriter = void 0;
|
|
4
4
|
const version_1 = require("./lib/utils/version");
|
|
5
5
|
const encode_ktx2_basis_texture_1 = require("./lib/encoders/encode-ktx2-basis-texture");
|
|
6
6
|
/**
|
|
7
7
|
* Basis Universal Supercompressed GPU Texture.
|
|
8
8
|
* Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureSetDefinitionFormat.cmn.md
|
|
9
9
|
*/
|
|
10
|
-
exports.
|
|
10
|
+
exports.KTX2BasisWriter = {
|
|
11
11
|
name: 'Basis Universal Supercompressed GPU Texture',
|
|
12
|
-
id: 'ktx2-basis-
|
|
12
|
+
id: 'ktx2-basis-writer',
|
|
13
13
|
module: 'textures',
|
|
14
14
|
version: version_1.VERSION,
|
|
15
15
|
extensions: ['ktx2'],
|
|
@@ -22,4 +22,4 @@ exports.KTX2BasisUniversalTextureWriter = {
|
|
|
22
22
|
encode: encode_ktx2_basis_texture_1.encodeKTX2BasisTexture
|
|
23
23
|
};
|
|
24
24
|
// TYPE TESTS - TODO find a better way than exporting junk
|
|
25
|
-
exports._TypecheckKTX2TextureWriter = exports.
|
|
25
|
+
exports._TypecheckKTX2TextureWriter = exports.KTX2BasisWriter;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
}): Promise<string>;
|
|
1
|
+
import { CompressedTextureWriterOptions } from '../../compressed-texture-writer';
|
|
2
|
+
export declare function encodeImageURLToCompressedTextureURL(inputUrl: string, outputUrl: string, options?: CompressedTextureWriterOptions): Promise<string>;
|
|
4
3
|
//# sourceMappingURL=encode-texture.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode-texture.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/encode-texture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"encode-texture.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/encode-texture.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,8BAA8B,EAAC,MAAM,iCAAiC,CAAC;AAK/E,wBAAsB,oCAAoC,CACxD,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.loadBasisEncoderModule = exports.loadBasisTrascoderModule = void 0;
|
|
4
4
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
5
5
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
6
|
-
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : '
|
|
6
|
+
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';
|
|
7
7
|
// @ts-nocheck
|
|
8
8
|
const worker_utils_1 = require("@loaders.gl/worker-utils");
|
|
9
9
|
const BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION}/dist/libs/basis_encoder.wasm`;
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
+
import type { TextureLevel } from '@loaders.gl/schema';
|
|
2
|
+
export declare type BasisFormat = 'etc1' | 'etc2' | 'bc1' | 'bc3' | 'bc4' | 'bc5' | 'bc7-m6-opaque-only' | 'bc7-m5' | 'pvrtc1-4-rgb' | 'pvrtc1-4-rgba' | 'astc-4x4' | 'atc-rgb' | 'atc-rgba-interpolated-alpha' | 'rgba32' | 'rgb565' | 'bgr565' | 'rgba4444';
|
|
1
3
|
/**
|
|
2
4
|
* parse data with a Binomial Basis_Universal module
|
|
3
|
-
* @param
|
|
4
|
-
* @param
|
|
5
|
+
* @param data
|
|
6
|
+
* @param options
|
|
5
7
|
* @returns compressed texture data
|
|
6
8
|
*/
|
|
7
|
-
export default function parseBasis(data:
|
|
9
|
+
export default function parseBasis(data: ArrayBuffer, options: any): Promise<TextureLevel[][]>;
|
|
8
10
|
/**
|
|
9
11
|
* Select transcode format from the list of supported formats
|
|
10
12
|
* @returns key for OutputFormat map
|
|
11
13
|
*/
|
|
12
|
-
export declare function selectSupportedBasisFormat():
|
|
13
|
-
alpha:
|
|
14
|
-
noAlpha:
|
|
14
|
+
export declare function selectSupportedBasisFormat(): BasisFormat | {
|
|
15
|
+
alpha: BasisFormat;
|
|
16
|
+
noAlpha: BasisFormat;
|
|
15
17
|
};
|
|
16
18
|
//# sourceMappingURL=parse-basis.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-basis.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-basis.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse-basis.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-basis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAMrD,oBAAY,WAAW,GACnB,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,oBAAoB,GACpB,QAAQ,GACR,cAAc,GACd,eAAe,GACf,UAAU,GACV,SAAS,GACT,6BAA6B,GAC7B,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AAoDf;;;;;GAKG;AACH,wBAA8B,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,KAAA,GAAG,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAwB9F;AA8KD;;;GAGG;AACH,wBAAgB,0BAA0B,IACtC,WAAW,GACX;IACE,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB,CAoBJ"}
|
|
@@ -50,8 +50,8 @@ const OutputFormat = {
|
|
|
50
50
|
};
|
|
51
51
|
/**
|
|
52
52
|
* parse data with a Binomial Basis_Universal module
|
|
53
|
-
* @param
|
|
54
|
-
* @param
|
|
53
|
+
* @param data
|
|
54
|
+
* @param options
|
|
55
55
|
* @returns compressed texture data
|
|
56
56
|
*/
|
|
57
57
|
async function parseBasis(data, options) {
|
|
@@ -82,16 +82,16 @@ async function parseBasis(data, options) {
|
|
|
82
82
|
exports.default = parseBasis;
|
|
83
83
|
/**
|
|
84
84
|
* Parse *.basis file data
|
|
85
|
-
* @param
|
|
86
|
-
* @param
|
|
87
|
-
* @param
|
|
85
|
+
* @param BasisFile - initialized transcoder module
|
|
86
|
+
* @param data
|
|
87
|
+
* @param options
|
|
88
88
|
* @returns compressed texture data
|
|
89
89
|
*/
|
|
90
90
|
function parseBasisFile(BasisFile, data, options) {
|
|
91
91
|
const basisFile = new BasisFile(new Uint8Array(data));
|
|
92
92
|
try {
|
|
93
93
|
if (!basisFile.startTranscoding()) {
|
|
94
|
-
|
|
94
|
+
throw new Error('Failed to start basis transcoding');
|
|
95
95
|
}
|
|
96
96
|
const imageCount = basisFile.getNumImages();
|
|
97
97
|
const images = [];
|
|
@@ -112,10 +112,10 @@ function parseBasisFile(BasisFile, data, options) {
|
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
114
114
|
* Parse the particular level image of a basis file
|
|
115
|
-
* @param
|
|
116
|
-
* @param
|
|
117
|
-
* @param
|
|
118
|
-
* @param
|
|
115
|
+
* @param basisFile
|
|
116
|
+
* @param imageIndex
|
|
117
|
+
* @param levelIndex
|
|
118
|
+
* @param options
|
|
119
119
|
* @returns compressed texture data
|
|
120
120
|
*/
|
|
121
121
|
function transcodeImage(basisFile, imageIndex, levelIndex, options) {
|
|
@@ -128,7 +128,7 @@ function transcodeImage(basisFile, imageIndex, levelIndex, options) {
|
|
|
128
128
|
const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
|
|
129
129
|
const decodedData = new Uint8Array(decodedSize);
|
|
130
130
|
if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
|
|
131
|
-
|
|
131
|
+
throw new Error('failed to start Basis transcoding');
|
|
132
132
|
}
|
|
133
133
|
return {
|
|
134
134
|
// standard loaders.gl image category payload
|
|
@@ -136,24 +136,24 @@ function transcodeImage(basisFile, imageIndex, levelIndex, options) {
|
|
|
136
136
|
height,
|
|
137
137
|
data: decodedData,
|
|
138
138
|
compressed,
|
|
139
|
+
format,
|
|
139
140
|
// Additional fields
|
|
140
141
|
// Add levelSize field.
|
|
141
|
-
hasAlpha
|
|
142
|
-
format
|
|
142
|
+
hasAlpha
|
|
143
143
|
};
|
|
144
144
|
}
|
|
145
145
|
/**
|
|
146
146
|
* Parse *.ktx2 file data
|
|
147
|
-
* @param
|
|
148
|
-
* @param
|
|
149
|
-
* @param
|
|
147
|
+
* @param KTX2File
|
|
148
|
+
* @param data
|
|
149
|
+
* @param options
|
|
150
150
|
* @returns compressed texture data
|
|
151
151
|
*/
|
|
152
152
|
function parseKTX2File(KTX2File, data, options) {
|
|
153
153
|
const ktx2File = new KTX2File(new Uint8Array(data));
|
|
154
154
|
try {
|
|
155
155
|
if (!ktx2File.startTranscoding()) {
|
|
156
|
-
|
|
156
|
+
throw new Error('failed to start KTX2 transcoding');
|
|
157
157
|
}
|
|
158
158
|
const levelsCount = ktx2File.getLevels();
|
|
159
159
|
const levels = [];
|
|
@@ -161,7 +161,7 @@ function parseKTX2File(KTX2File, data, options) {
|
|
|
161
161
|
levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
|
|
162
162
|
break; // texture app can only show one level for some reason
|
|
163
163
|
}
|
|
164
|
-
return levels;
|
|
164
|
+
return [levels];
|
|
165
165
|
}
|
|
166
166
|
finally {
|
|
167
167
|
ktx2File.close();
|
|
@@ -170,9 +170,9 @@ function parseKTX2File(KTX2File, data, options) {
|
|
|
170
170
|
}
|
|
171
171
|
/**
|
|
172
172
|
* Parse the particular level image of a ktx2 file
|
|
173
|
-
* @param
|
|
174
|
-
* @param
|
|
175
|
-
* @param
|
|
173
|
+
* @param ktx2File
|
|
174
|
+
* @param levelIndex
|
|
175
|
+
* @param options
|
|
176
176
|
* @returns
|
|
177
177
|
*/
|
|
178
178
|
function transcodeKTX2Image(ktx2File, levelIndex, options) {
|
|
@@ -182,7 +182,7 @@ function transcodeKTX2Image(ktx2File, levelIndex, options) {
|
|
|
182
182
|
const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0 /* layerIndex */, 0 /* faceIndex */, basisFormat);
|
|
183
183
|
const decodedData = new Uint8Array(decodedSize);
|
|
184
184
|
if (!ktx2File.transcodeImage(decodedData, levelIndex, 0 /* layerIndex */, 0 /* faceIndex */, basisFormat, 0, -1 /* channel0 */, -1 /* channel1 */)) {
|
|
185
|
-
|
|
185
|
+
throw new Error('Failed to transcode KTX2 image');
|
|
186
186
|
}
|
|
187
187
|
return {
|
|
188
188
|
// standard loaders.gl image category payload
|
|
@@ -192,14 +192,14 @@ function transcodeKTX2Image(ktx2File, levelIndex, options) {
|
|
|
192
192
|
compressed,
|
|
193
193
|
// Additional fields
|
|
194
194
|
// Add levelSize field.
|
|
195
|
-
alphaFlag,
|
|
195
|
+
hasAlpha: alphaFlag,
|
|
196
196
|
format
|
|
197
197
|
};
|
|
198
198
|
}
|
|
199
199
|
/**
|
|
200
200
|
* Get BasisFormat by loader format option
|
|
201
|
-
* @param
|
|
202
|
-
* @param
|
|
201
|
+
* @param options
|
|
202
|
+
* @param hasAlpha
|
|
203
203
|
* @returns BasisFormat data
|
|
204
204
|
*/
|
|
205
205
|
function getBasisOptions(options, hasAlpha) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-compressed-texture.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-compressed-texture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"parse-compressed-texture.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-compressed-texture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAKrD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE,CAaxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-crunch.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-crunch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"parse-crunch.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-crunch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAsCrD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,KAAA,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAmD7E"}
|
|
@@ -15,19 +15,20 @@ const CRN_FORMAT = {
|
|
|
15
15
|
cCRNFmtDXT5: 2
|
|
16
16
|
// Crunch supports more formats than this.
|
|
17
17
|
};
|
|
18
|
-
|
|
19
|
-
const DXT_FORMAT_MAP = {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
18
|
+
/** Mapping of Crunch formats to DXT formats. */
|
|
19
|
+
const DXT_FORMAT_MAP = {
|
|
20
|
+
[CRN_FORMAT.cCRNFmtDXT1]: {
|
|
21
|
+
pixelFormat: gl_extensions_1.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
|
|
22
|
+
sizeFunction: parse_dds_1.getDxt1LevelSize
|
|
23
|
+
},
|
|
24
|
+
[CRN_FORMAT.cCRNFmtDXT3]: {
|
|
25
|
+
pixelFormat: gl_extensions_1.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
|
|
26
|
+
sizeFunction: parse_dds_1.getDxtXLevelSize
|
|
27
|
+
},
|
|
28
|
+
[CRN_FORMAT.cCRNFmtDXT5]: {
|
|
29
|
+
pixelFormat: gl_extensions_1.GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
|
|
30
|
+
sizeFunction: parse_dds_1.getDxtXLevelSize
|
|
31
|
+
}
|
|
31
32
|
};
|
|
32
33
|
let cachedDstSize = 0;
|
|
33
34
|
let dst;
|