@loaders.gl/textures 3.2.0-alpha.1 → 3.2.0-alpha.4
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 +5 -4
- package/dist/compressed-texture-worker.js +5 -4
- package/dist/compressed-texture-writer.d.ts +15 -2
- package/dist/compressed-texture-writer.d.ts.map +1 -1
- package/dist/crunch-worker.js +4 -3
- package/dist/dist.min.js +136 -118
- package/dist/es5/compressed-texture-writer.js.map +1 -1
- package/dist/es5/index.js +24 -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/utils/version.js +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-writer.js.map +1 -1
- package/dist/esm/index.js +17 -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/utils/version.js +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/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 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -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/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 +3 -2
- 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 -8
- package/src/compressed-texture-writer.ts +20 -2
- package/src/index.ts +19 -1
- 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/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/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.4" : 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.4" : "beta";
|
|
241
|
+
|
|
242
|
+
// src/lib/parsers/basis-module-loader.ts
|
|
243
|
+
var VERSION4 = true ? "3.2.0-alpha.4" : "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"}
|