@luma.gl/core 9.0.0-beta.7 → 9.0.0-beta.8
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/dist.dev.js +123 -84
- package/dist/dist.min.js +18 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/init.js +1 -1
- package/package.json +8 -4
- package/dist.min.js +0 -18
package/dist/dist.dev.js
CHANGED
|
@@ -29,9 +29,9 @@ var __exports__ = (() => {
|
|
|
29
29
|
return value;
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
-
//
|
|
33
|
-
var
|
|
34
|
-
__export(
|
|
32
|
+
// bundle.ts
|
|
33
|
+
var bundle_exports = {};
|
|
34
|
+
__export(bundle_exports, {
|
|
35
35
|
Buffer: () => Buffer2,
|
|
36
36
|
CanvasContext: () => CanvasContext,
|
|
37
37
|
CommandBuffer: () => CommandBuffer,
|
|
@@ -99,12 +99,10 @@ var __exports__ = (() => {
|
|
|
99
99
|
|
|
100
100
|
// ../../node_modules/@probe.gl/env/dist/lib/is-electron.js
|
|
101
101
|
function isElectron(mockUserAgent) {
|
|
102
|
-
if (typeof window !== "undefined" && typeof window.process === "object" &&
|
|
103
|
-
window.process.type === "renderer") {
|
|
102
|
+
if (typeof window !== "undefined" && typeof window.process === "object" && window.process.type === "renderer") {
|
|
104
103
|
return true;
|
|
105
104
|
}
|
|
106
|
-
if (typeof process !== "undefined" && typeof process.versions === "object" &&
|
|
107
|
-
Boolean(process.versions["electron"])) {
|
|
105
|
+
if (typeof process !== "undefined" && typeof process.versions === "object" && Boolean(process.versions["electron"])) {
|
|
108
106
|
return true;
|
|
109
107
|
}
|
|
110
108
|
const realUserAgent = typeof navigator === "object" && typeof navigator.userAgent === "string" && navigator.userAgent;
|
|
@@ -117,10 +115,7 @@ var __exports__ = (() => {
|
|
|
117
115
|
|
|
118
116
|
// ../../node_modules/@probe.gl/env/dist/lib/is-browser.js
|
|
119
117
|
function isBrowser() {
|
|
120
|
-
const isNode = (
|
|
121
|
-
// @ts-expect-error
|
|
122
|
-
typeof process === "object" && String(process) === "[object process]" && !process.browser
|
|
123
|
-
);
|
|
118
|
+
const isNode = typeof process === "object" && String(process) === "[object process]" && !process.browser;
|
|
124
119
|
return !isNode || isElectron();
|
|
125
120
|
}
|
|
126
121
|
|
|
@@ -133,7 +128,7 @@ var __exports__ = (() => {
|
|
|
133
128
|
var navigator_ = globalThis.navigator || {};
|
|
134
129
|
|
|
135
130
|
// ../../node_modules/@probe.gl/env/dist/utils/globals.js
|
|
136
|
-
var VERSION =
|
|
131
|
+
var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
|
|
137
132
|
var isBrowser2 = isBrowser();
|
|
138
133
|
|
|
139
134
|
// ../../node_modules/@probe.gl/log/dist/utils/local-storage.js
|
|
@@ -149,7 +144,11 @@ var __exports__ = (() => {
|
|
|
149
144
|
}
|
|
150
145
|
}
|
|
151
146
|
var LocalStorage = class {
|
|
152
|
-
constructor(id, defaultConfig
|
|
147
|
+
constructor(id, defaultConfig) {
|
|
148
|
+
let type = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "sessionStorage";
|
|
149
|
+
this.storage = void 0;
|
|
150
|
+
this.id = void 0;
|
|
151
|
+
this.config = void 0;
|
|
153
152
|
this.storage = getStorage(type);
|
|
154
153
|
this.id = id;
|
|
155
154
|
this.config = defaultConfig;
|
|
@@ -165,7 +164,6 @@ var __exports__ = (() => {
|
|
|
165
164
|
this.storage.setItem(this.id, serialized);
|
|
166
165
|
}
|
|
167
166
|
}
|
|
168
|
-
// Get config from persistent store, if available
|
|
169
167
|
_loadConfiguration() {
|
|
170
168
|
let configuration = {};
|
|
171
169
|
if (this.storage) {
|
|
@@ -191,25 +189,20 @@ var __exports__ = (() => {
|
|
|
191
189
|
}
|
|
192
190
|
return formatted;
|
|
193
191
|
}
|
|
194
|
-
function leftPad(string
|
|
192
|
+
function leftPad(string) {
|
|
193
|
+
let length = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 8;
|
|
195
194
|
const padLength = Math.max(length - string.length, 0);
|
|
196
195
|
return `${" ".repeat(padLength)}${string}`;
|
|
197
196
|
}
|
|
198
|
-
function formatImage(image, message, scale
|
|
197
|
+
function formatImage(image, message, scale) {
|
|
198
|
+
let maxWidth = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 600;
|
|
199
199
|
const imageUrl = image.src.replace(/\(/g, "%28").replace(/\)/g, "%29");
|
|
200
200
|
if (image.width > maxWidth) {
|
|
201
201
|
scale = Math.min(scale, maxWidth / image.width);
|
|
202
202
|
}
|
|
203
203
|
const width = image.width * scale;
|
|
204
204
|
const height = image.height * scale;
|
|
205
|
-
const style = [
|
|
206
|
-
"font-size:1px;",
|
|
207
|
-
`padding:${Math.floor(height / 2)}px ${Math.floor(width / 2)}px;`,
|
|
208
|
-
`line-height:${height}px;`,
|
|
209
|
-
`background:url(${imageUrl});`,
|
|
210
|
-
`background-size:${width}px ${height}px;`,
|
|
211
|
-
"color:transparent;"
|
|
212
|
-
].join("");
|
|
205
|
+
const style = ["font-size:1px;", `padding:${Math.floor(height / 2)}px ${Math.floor(width / 2)}px;`, `line-height:${height}px;`, `background:url(${imageUrl});`, `background-size:${width}px ${height}px;`, "color:transparent;"].join("");
|
|
213
206
|
return [`${message} %c+`, style];
|
|
214
207
|
}
|
|
215
208
|
|
|
@@ -256,7 +249,8 @@ var __exports__ = (() => {
|
|
|
256
249
|
}
|
|
257
250
|
|
|
258
251
|
// ../../node_modules/@probe.gl/log/dist/utils/autobind.js
|
|
259
|
-
function autobind(obj
|
|
252
|
+
function autobind(obj) {
|
|
253
|
+
let predefined = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : ["constructor"];
|
|
260
254
|
const proto = Object.getPrototypeOf(obj);
|
|
261
255
|
const propNames = Object.getOwnPropertyNames(proto);
|
|
262
256
|
const object = obj;
|
|
@@ -281,9 +275,11 @@ var __exports__ = (() => {
|
|
|
281
275
|
function getHiResTimestamp() {
|
|
282
276
|
let timestamp;
|
|
283
277
|
if (isBrowser() && window_.performance) {
|
|
284
|
-
|
|
278
|
+
var _window$performance, _window$performance$n;
|
|
279
|
+
timestamp = window_ === null || window_ === void 0 ? void 0 : (_window$performance = window_.performance) === null || _window$performance === void 0 ? void 0 : (_window$performance$n = _window$performance.now) === null || _window$performance$n === void 0 ? void 0 : _window$performance$n.call(_window$performance);
|
|
285
280
|
} else if ("hrtime" in process_) {
|
|
286
|
-
|
|
281
|
+
var _process$hrtime;
|
|
282
|
+
const timeParts = process_ === null || process_ === void 0 ? void 0 : (_process$hrtime = process_.hrtime) === null || _process$hrtime === void 0 ? void 0 : _process$hrtime.call(process_);
|
|
287
283
|
timestamp = timeParts[0] * 1e3 + timeParts[1] / 1e6;
|
|
288
284
|
} else {
|
|
289
285
|
timestamp = Date.now();
|
|
@@ -306,12 +302,21 @@ var __exports__ = (() => {
|
|
|
306
302
|
function noop() {
|
|
307
303
|
}
|
|
308
304
|
var cache = {};
|
|
309
|
-
var ONCE = {
|
|
305
|
+
var ONCE = {
|
|
306
|
+
once: true
|
|
307
|
+
};
|
|
310
308
|
var Log = class {
|
|
311
|
-
constructor(
|
|
309
|
+
constructor() {
|
|
310
|
+
let {
|
|
311
|
+
id
|
|
312
|
+
} = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
|
|
313
|
+
id: ""
|
|
314
|
+
};
|
|
315
|
+
this.id = void 0;
|
|
312
316
|
this.VERSION = VERSION;
|
|
313
317
|
this._startTs = getHiResTimestamp();
|
|
314
318
|
this._deltaTs = getHiResTimestamp();
|
|
319
|
+
this._storage = void 0;
|
|
315
320
|
this.userData = {};
|
|
316
321
|
this.LOG_THROTTLE_TIMEOUT = 0;
|
|
317
322
|
this.id = id;
|
|
@@ -333,44 +338,42 @@ var __exports__ = (() => {
|
|
|
333
338
|
getLevel() {
|
|
334
339
|
return this._storage.config.level;
|
|
335
340
|
}
|
|
336
|
-
/** @return milliseconds, with fractions */
|
|
337
341
|
getTotal() {
|
|
338
342
|
return Number((getHiResTimestamp() - this._startTs).toPrecision(10));
|
|
339
343
|
}
|
|
340
|
-
/** @return milliseconds, with fractions */
|
|
341
344
|
getDelta() {
|
|
342
345
|
return Number((getHiResTimestamp() - this._deltaTs).toPrecision(10));
|
|
343
346
|
}
|
|
344
|
-
/** @deprecated use logLevel */
|
|
345
347
|
set priority(newPriority) {
|
|
346
348
|
this.level = newPriority;
|
|
347
349
|
}
|
|
348
|
-
/** @deprecated use logLevel */
|
|
349
350
|
get priority() {
|
|
350
351
|
return this.level;
|
|
351
352
|
}
|
|
352
|
-
/** @deprecated use logLevel */
|
|
353
353
|
getPriority() {
|
|
354
354
|
return this.level;
|
|
355
355
|
}
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
this._storage.setConfiguration({
|
|
356
|
+
enable() {
|
|
357
|
+
let enabled = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
358
|
+
this._storage.setConfiguration({
|
|
359
|
+
enabled
|
|
360
|
+
});
|
|
359
361
|
return this;
|
|
360
362
|
}
|
|
361
363
|
setLevel(level) {
|
|
362
|
-
this._storage.setConfiguration({
|
|
364
|
+
this._storage.setConfiguration({
|
|
365
|
+
level
|
|
366
|
+
});
|
|
363
367
|
return this;
|
|
364
368
|
}
|
|
365
|
-
/** return the current status of the setting */
|
|
366
369
|
get(setting) {
|
|
367
370
|
return this._storage.config[setting];
|
|
368
371
|
}
|
|
369
|
-
// update the status of the setting
|
|
370
372
|
set(setting, value) {
|
|
371
|
-
this._storage.setConfiguration({
|
|
373
|
+
this._storage.setConfiguration({
|
|
374
|
+
[setting]: value
|
|
375
|
+
});
|
|
372
376
|
}
|
|
373
|
-
/** Logs the current settings as a table */
|
|
374
377
|
settings() {
|
|
375
378
|
if (console.table) {
|
|
376
379
|
console.table(this._storage.config);
|
|
@@ -378,7 +381,6 @@ var __exports__ = (() => {
|
|
|
378
381
|
console.log(this._storage.config);
|
|
379
382
|
}
|
|
380
383
|
}
|
|
381
|
-
// Unconditional logging
|
|
382
384
|
assert(condition, message) {
|
|
383
385
|
assert(condition, message);
|
|
384
386
|
}
|
|
@@ -388,11 +390,9 @@ var __exports__ = (() => {
|
|
|
388
390
|
error(message) {
|
|
389
391
|
return this._getLogFunction(0, message, originalConsole.error, arguments);
|
|
390
392
|
}
|
|
391
|
-
/** Print a deprecation warning */
|
|
392
393
|
deprecated(oldUsage, newUsage) {
|
|
393
394
|
return this.warn(`\`${oldUsage}\` is deprecated and will be removed in a later version. Use \`${newUsage}\` instead`);
|
|
394
395
|
}
|
|
395
|
-
/** Print a removal warning */
|
|
396
396
|
removed(oldUsage, newUsage) {
|
|
397
397
|
return this.error(`\`${oldUsage}\` has been removed. Use \`${newUsage}\` instead`);
|
|
398
398
|
}
|
|
@@ -411,7 +411,6 @@ var __exports__ = (() => {
|
|
|
411
411
|
once(logLevel, message) {
|
|
412
412
|
return this._getLogFunction(logLevel, message, originalConsole.debug || originalConsole.info, arguments, ONCE);
|
|
413
413
|
}
|
|
414
|
-
/** Logs an object as a table */
|
|
415
414
|
table(logLevel, table, columns) {
|
|
416
415
|
if (table) {
|
|
417
416
|
return this._getLogFunction(logLevel, table, console.table || noop, columns && [columns], {
|
|
@@ -420,12 +419,26 @@ var __exports__ = (() => {
|
|
|
420
419
|
}
|
|
421
420
|
return noop;
|
|
422
421
|
}
|
|
423
|
-
|
|
424
|
-
|
|
422
|
+
image(_ref) {
|
|
423
|
+
let {
|
|
424
|
+
logLevel,
|
|
425
|
+
priority,
|
|
426
|
+
image,
|
|
427
|
+
message = "",
|
|
428
|
+
scale = 1
|
|
429
|
+
} = _ref;
|
|
425
430
|
if (!this._shouldLog(logLevel || priority)) {
|
|
426
431
|
return noop;
|
|
427
432
|
}
|
|
428
|
-
return isBrowser() ? logImageInBrowser({
|
|
433
|
+
return isBrowser() ? logImageInBrowser({
|
|
434
|
+
image,
|
|
435
|
+
message,
|
|
436
|
+
scale
|
|
437
|
+
}) : logImageInNode({
|
|
438
|
+
image,
|
|
439
|
+
message,
|
|
440
|
+
scale
|
|
441
|
+
});
|
|
429
442
|
}
|
|
430
443
|
time(logLevel, message) {
|
|
431
444
|
return this._getLogFunction(logLevel, message, console.time ? console.time : console.info);
|
|
@@ -436,19 +449,30 @@ var __exports__ = (() => {
|
|
|
436
449
|
timeStamp(logLevel, message) {
|
|
437
450
|
return this._getLogFunction(logLevel, message, console.timeStamp || noop);
|
|
438
451
|
}
|
|
439
|
-
group(logLevel, message
|
|
440
|
-
|
|
441
|
-
|
|
452
|
+
group(logLevel, message) {
|
|
453
|
+
let opts = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
|
|
454
|
+
collapsed: false
|
|
455
|
+
};
|
|
456
|
+
const options = normalizeArguments({
|
|
457
|
+
logLevel,
|
|
458
|
+
message,
|
|
459
|
+
opts
|
|
460
|
+
});
|
|
461
|
+
const {
|
|
462
|
+
collapsed
|
|
463
|
+
} = opts;
|
|
442
464
|
options.method = (collapsed ? console.groupCollapsed : console.group) || console.info;
|
|
443
465
|
return this._getLogFunction(options);
|
|
444
466
|
}
|
|
445
|
-
groupCollapsed(logLevel, message
|
|
446
|
-
|
|
467
|
+
groupCollapsed(logLevel, message) {
|
|
468
|
+
let opts = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
|
|
469
|
+
return this.group(logLevel, message, Object.assign({}, opts, {
|
|
470
|
+
collapsed: true
|
|
471
|
+
}));
|
|
447
472
|
}
|
|
448
473
|
groupEnd(logLevel) {
|
|
449
474
|
return this._getLogFunction(logLevel, "", console.groupEnd || noop);
|
|
450
475
|
}
|
|
451
|
-
// EXPERIMENTAL
|
|
452
476
|
withGroup(logLevel, message, func) {
|
|
453
477
|
this.group(logLevel, message)();
|
|
454
478
|
try {
|
|
@@ -462,14 +486,17 @@ var __exports__ = (() => {
|
|
|
462
486
|
console.trace();
|
|
463
487
|
}
|
|
464
488
|
}
|
|
465
|
-
// PRIVATE METHODS
|
|
466
|
-
/** Deduces log level from a variety of arguments */
|
|
467
489
|
_shouldLog(logLevel) {
|
|
468
490
|
return this.isEnabled() && this.getLevel() >= normalizeLogLevel(logLevel);
|
|
469
491
|
}
|
|
470
492
|
_getLogFunction(logLevel, message, method, args, opts) {
|
|
471
493
|
if (this._shouldLog(logLevel)) {
|
|
472
|
-
opts = normalizeArguments({
|
|
494
|
+
opts = normalizeArguments({
|
|
495
|
+
logLevel,
|
|
496
|
+
message,
|
|
497
|
+
args,
|
|
498
|
+
opts
|
|
499
|
+
});
|
|
473
500
|
method = method || opts.method;
|
|
474
501
|
assert(method);
|
|
475
502
|
opts.total = this.getTotal();
|
|
@@ -509,7 +536,10 @@ var __exports__ = (() => {
|
|
|
509
536
|
return resolvedLevel;
|
|
510
537
|
}
|
|
511
538
|
function normalizeArguments(opts) {
|
|
512
|
-
const {
|
|
539
|
+
const {
|
|
540
|
+
logLevel,
|
|
541
|
+
message
|
|
542
|
+
} = opts;
|
|
513
543
|
opts.logLevel = normalizeLogLevel(logLevel);
|
|
514
544
|
const args = opts.args ? Array.from(opts.args) : [];
|
|
515
545
|
while (args.length && args.shift() !== message) {
|
|
@@ -532,7 +562,9 @@ var __exports__ = (() => {
|
|
|
532
562
|
}
|
|
533
563
|
const messageType = typeof opts.message;
|
|
534
564
|
assert(messageType === "string" || messageType === "object");
|
|
535
|
-
return Object.assign(opts, {
|
|
565
|
+
return Object.assign(opts, {
|
|
566
|
+
args
|
|
567
|
+
}, opts.opts);
|
|
536
568
|
}
|
|
537
569
|
function decorateMessage(id, message, opts) {
|
|
538
570
|
if (typeof message === "string") {
|
|
@@ -542,11 +574,21 @@ var __exports__ = (() => {
|
|
|
542
574
|
}
|
|
543
575
|
return message;
|
|
544
576
|
}
|
|
545
|
-
function logImageInNode(
|
|
577
|
+
function logImageInNode(_ref2) {
|
|
578
|
+
let {
|
|
579
|
+
image,
|
|
580
|
+
message = "",
|
|
581
|
+
scale = 1
|
|
582
|
+
} = _ref2;
|
|
546
583
|
console.warn("removed");
|
|
547
584
|
return noop;
|
|
548
585
|
}
|
|
549
|
-
function logImageInBrowser(
|
|
586
|
+
function logImageInBrowser(_ref3) {
|
|
587
|
+
let {
|
|
588
|
+
image,
|
|
589
|
+
message = "",
|
|
590
|
+
scale = 1
|
|
591
|
+
} = _ref3;
|
|
550
592
|
if (typeof image === "string") {
|
|
551
593
|
const img = new Image();
|
|
552
594
|
img.onload = () => {
|
|
@@ -578,11 +620,10 @@ var __exports__ = (() => {
|
|
|
578
620
|
return "empty";
|
|
579
621
|
}
|
|
580
622
|
|
|
581
|
-
// ../../node_modules/@probe.gl/log/dist/init.js
|
|
582
|
-
globalThis.probe = {};
|
|
583
|
-
|
|
584
623
|
// ../../node_modules/@probe.gl/log/dist/index.js
|
|
585
|
-
var dist_default = new Log({
|
|
624
|
+
var dist_default = new Log({
|
|
625
|
+
id: "@probe.gl/log"
|
|
626
|
+
});
|
|
586
627
|
|
|
587
628
|
// src/utils/log.ts
|
|
588
629
|
var log = new Log({ id: "luma.gl" });
|
|
@@ -604,6 +645,8 @@ var __exports__ = (() => {
|
|
|
604
645
|
// ../../node_modules/@probe.gl/stats/dist/lib/stat.js
|
|
605
646
|
var Stat = class {
|
|
606
647
|
constructor(name2, type) {
|
|
648
|
+
this.name = void 0;
|
|
649
|
+
this.type = void 0;
|
|
607
650
|
this.sampleSize = 1;
|
|
608
651
|
this.time = 0;
|
|
609
652
|
this.count = 0;
|
|
@@ -638,31 +681,26 @@ var __exports__ = (() => {
|
|
|
638
681
|
this.sampleSize = samples;
|
|
639
682
|
return this;
|
|
640
683
|
}
|
|
641
|
-
/** Call to increment count (+1) */
|
|
642
684
|
incrementCount() {
|
|
643
685
|
this.addCount(1);
|
|
644
686
|
return this;
|
|
645
687
|
}
|
|
646
|
-
/** Call to decrement count (-1) */
|
|
647
688
|
decrementCount() {
|
|
648
689
|
this.subtractCount(1);
|
|
649
690
|
return this;
|
|
650
691
|
}
|
|
651
|
-
/** Increase count */
|
|
652
692
|
addCount(value) {
|
|
653
693
|
this._count += value;
|
|
654
694
|
this._samples++;
|
|
655
695
|
this._checkSampling();
|
|
656
696
|
return this;
|
|
657
697
|
}
|
|
658
|
-
/** Decrease count */
|
|
659
698
|
subtractCount(value) {
|
|
660
699
|
this._count -= value;
|
|
661
700
|
this._samples++;
|
|
662
701
|
this._checkSampling();
|
|
663
702
|
return this;
|
|
664
703
|
}
|
|
665
|
-
/** Add an arbitrary timing and bump the count */
|
|
666
704
|
addTime(time) {
|
|
667
705
|
this._time += time;
|
|
668
706
|
this.lastTiming = time;
|
|
@@ -670,13 +708,11 @@ var __exports__ = (() => {
|
|
|
670
708
|
this._checkSampling();
|
|
671
709
|
return this;
|
|
672
710
|
}
|
|
673
|
-
/** Start a timer */
|
|
674
711
|
timeStart() {
|
|
675
712
|
this._startTime = getHiResTimestamp2();
|
|
676
713
|
this._timerPending = true;
|
|
677
714
|
return this;
|
|
678
715
|
}
|
|
679
|
-
/** End a timer. Adds to time and bumps the timing count. */
|
|
680
716
|
timeEnd() {
|
|
681
717
|
if (!this._timerPending) {
|
|
682
718
|
return this;
|
|
@@ -689,22 +725,18 @@ var __exports__ = (() => {
|
|
|
689
725
|
getSampleAverageCount() {
|
|
690
726
|
return this.sampleSize > 0 ? this.lastSampleCount / this.sampleSize : 0;
|
|
691
727
|
}
|
|
692
|
-
/** Calculate average time / count for the previous window */
|
|
693
728
|
getSampleAverageTime() {
|
|
694
729
|
return this.sampleSize > 0 ? this.lastSampleTime / this.sampleSize : 0;
|
|
695
730
|
}
|
|
696
|
-
/** Calculate counts per second for the previous window */
|
|
697
731
|
getSampleHz() {
|
|
698
732
|
return this.lastSampleTime > 0 ? this.sampleSize / (this.lastSampleTime / 1e3) : 0;
|
|
699
733
|
}
|
|
700
734
|
getAverageCount() {
|
|
701
735
|
return this.samples > 0 ? this.count / this.samples : 0;
|
|
702
736
|
}
|
|
703
|
-
/** Calculate average time / count */
|
|
704
737
|
getAverageTime() {
|
|
705
738
|
return this.samples > 0 ? this.time / this.samples : 0;
|
|
706
739
|
}
|
|
707
|
-
/** Calculate counts per second */
|
|
708
740
|
getHz() {
|
|
709
741
|
return this.time > 0 ? this.samples / (this.time / 1e3) : 0;
|
|
710
742
|
}
|
|
@@ -725,20 +757,23 @@ var __exports__ = (() => {
|
|
|
725
757
|
// ../../node_modules/@probe.gl/stats/dist/lib/stats.js
|
|
726
758
|
var Stats = class {
|
|
727
759
|
constructor(options) {
|
|
760
|
+
this.id = void 0;
|
|
728
761
|
this.stats = {};
|
|
729
762
|
this.id = options.id;
|
|
730
763
|
this.stats = {};
|
|
731
764
|
this._initializeStats(options.stats);
|
|
732
765
|
Object.seal(this);
|
|
733
766
|
}
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
return this._getOrCreate({
|
|
767
|
+
get(name2) {
|
|
768
|
+
let type = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "count";
|
|
769
|
+
return this._getOrCreate({
|
|
770
|
+
name: name2,
|
|
771
|
+
type
|
|
772
|
+
});
|
|
737
773
|
}
|
|
738
774
|
get size() {
|
|
739
775
|
return Object.keys(this.stats).length;
|
|
740
776
|
}
|
|
741
|
-
/** Reset all stats */
|
|
742
777
|
reset() {
|
|
743
778
|
for (const stat of Object.values(this.stats)) {
|
|
744
779
|
stat.reset();
|
|
@@ -762,11 +797,15 @@ var __exports__ = (() => {
|
|
|
762
797
|
});
|
|
763
798
|
return table;
|
|
764
799
|
}
|
|
765
|
-
_initializeStats(
|
|
800
|
+
_initializeStats() {
|
|
801
|
+
let stats = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
766
802
|
stats.forEach((stat) => this._getOrCreate(stat));
|
|
767
803
|
}
|
|
768
804
|
_getOrCreate(stat) {
|
|
769
|
-
const {
|
|
805
|
+
const {
|
|
806
|
+
name: name2,
|
|
807
|
+
type
|
|
808
|
+
} = stat;
|
|
770
809
|
let result = this.stats[name2];
|
|
771
810
|
if (!result) {
|
|
772
811
|
if (stat instanceof Stat) {
|
|
@@ -3158,7 +3197,7 @@ ${htmlLog}
|
|
|
3158
3197
|
|
|
3159
3198
|
// src/index.ts
|
|
3160
3199
|
var glsl = (x) => `${x}`;
|
|
3161
|
-
return __toCommonJS(
|
|
3200
|
+
return __toCommonJS(bundle_exports);
|
|
3162
3201
|
})();
|
|
3163
3202
|
return __exports__;
|
|
3164
3203
|
});
|
package/dist/dist.min.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
+
if (typeof exports === 'object' && typeof module === 'object')
|
|
3
|
+
module.exports = factory();
|
|
4
|
+
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
|
+
else if (typeof exports === 'object') exports['luma'] = factory();
|
|
6
|
+
else root['luma'] = factory();})(globalThis, function () {
|
|
7
|
+
"use strict";var __exports__=(()=>{var et=Object.defineProperty;var Ie=Object.getOwnPropertyDescriptor;var Le=Object.getOwnPropertyNames;var Re=Object.prototype.hasOwnProperty;var Me=(r,t,e)=>t in r?et(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var $e=(r,t)=>{for(var e in t)et(r,e,{get:t[e],enumerable:!0})},Ne=(r,t,e,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Le(t))!Re.call(r,n)&&n!==e&&et(r,n,{get:()=>t[n],enumerable:!(o=Ie(t,n))||o.enumerable});return r};var Fe=r=>Ne(et({},"__esModule",{value:!0}),r);var u=(r,t,e)=>(Me(r,typeof t!="symbol"?t+"":t,e),e);var Pr={};$e(Pr,{Buffer:()=>m,CanvasContext:()=>D,CommandBuffer:()=>q,CommandEncoder:()=>X,ComputePass:()=>Y,ComputePipeline:()=>j,Device:()=>x,DeviceFeatures:()=>ct,DeviceLimits:()=>ut,ExternalTexture:()=>H,Framebuffer:()=>V,QuerySet:()=>J,RenderPass:()=>W,RenderPipeline:()=>O,Resource:()=>c,Sampler:()=>G,Shader:()=>k,StatsManager:()=>F,Texture:()=>h,TextureView:()=>z,TransformFeedback:()=>Z,UniformBlock:()=>$,UniformBufferLayout:()=>M,UniformStore:()=>pt,VERSION:()=>it,VertexArray:()=>Q,assert:()=>L,cancelAnimationFrame:()=>Ce,cast:()=>be,checkProps:()=>Se,decodeShaderAttributeType:()=>mt,decodeShaderUniformType:()=>dt,decodeTextureFormat:()=>oe,decodeVertexFormat:()=>K,deepEqual:()=>yt,fillArray:()=>me,formatCompilerLog:()=>lt,formatValue:()=>kt,getAttributeInfosFromLayouts:()=>Nt,getDataTypeFromTypedArray:()=>zt,getScratchArray:()=>le,getScratchArrayBuffer:()=>tt,getTypedArrayFromDataType:()=>ge,getVertexFormatFromAttribute:()=>ye,glsl:()=>_r,isNumberArray:()=>y,isObjectEmpty:()=>te,isTypedArray:()=>xt,isUniformValue:()=>Ht,loadFile:()=>Ae,loadImage:()=>Ee,loadImageBitmap:()=>ve,loadScript:()=>_e,log:()=>l,luma:()=>R,makeRandomNumberGenerator:()=>Gt,mergeShaderLayout:()=>ce,random:()=>Pe,requestAnimationFrame:()=>Be,setPathPrefix:()=>Te,splitUniformsAndBindings:()=>xe,stubRemovedMethods:()=>we,uid:()=>S});function bt(r){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,e=r||t;return!!(e&&e.indexOf("Electron")>=0)}function d(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||bt()}var Ue=globalThis.self||globalThis.window||globalThis.global,_=globalThis.window||globalThis.self||globalThis.global,De=globalThis.document||{},T=globalThis.process||{},ze=globalThis.console,Rr=globalThis.navigator||{};var rt=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",Nr=d();function He(r){try{let t=window[r],e="__storage_test__";return t.setItem(e,e),t.removeItem(e),t}catch{return null}}var ot=class{constructor(t,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";this.storage=void 0,this.id=void 0,this.config=void 0,this.storage=He(o),this.id=t,this.config=e,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}}_loadConfiguration(){let t={};if(this.storage){let e=this.storage.getItem(this.id);t=e?JSON.parse(e):{}}return Object.assign(this.config,t),this}};function Wt(r){let t;return r<10?t=`${r.toFixed(2)}ms`:r<100?t=`${r.toFixed(1)}ms`:r<1e3?t=`${r.toFixed(0)}ms`:t=`${(r/1e3).toFixed(2)}s`,t}function jt(r){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,e=Math.max(t-r.length,0);return`${" ".repeat(e)}${r}`}function nt(r,t,e){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,n=r.src.replace(/\(/g,"%28").replace(/\)/g,"%29");r.width>o&&(e=Math.min(e,o/r.width));let s=r.width*e,i=r.height*e,a=["font-size:1px;",`padding:${Math.floor(i/2)}px ${Math.floor(s/2)}px;`,`line-height:${i}px;`,`background:url(${n});`,`background-size:${s}px ${i}px;`,"color:transparent;"].join("");return[`${t} %c+`,a]}var st;(function(r){r[r.BLACK=30]="BLACK",r[r.RED=31]="RED",r[r.GREEN=32]="GREEN",r[r.YELLOW=33]="YELLOW",r[r.BLUE=34]="BLUE",r[r.MAGENTA=35]="MAGENTA",r[r.CYAN=36]="CYAN",r[r.WHITE=37]="WHITE",r[r.BRIGHT_BLACK=90]="BRIGHT_BLACK",r[r.BRIGHT_RED=91]="BRIGHT_RED",r[r.BRIGHT_GREEN=92]="BRIGHT_GREEN",r[r.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",r[r.BRIGHT_BLUE=94]="BRIGHT_BLUE",r[r.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",r[r.BRIGHT_CYAN=96]="BRIGHT_CYAN",r[r.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(st||(st={}));var ke=10;function Yt(r){return typeof r!="string"?r:(r=r.toUpperCase(),st[r]||st.WHITE)}function Xt(r,t,e){return!d&&typeof r=="string"&&(t&&(r=`\x1B[${Yt(t)}m${r}\x1B[39m`),e&&(r=`\x1B[${Yt(e)+ke}m${r}\x1B[49m`)),r}function qt(r){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],e=Object.getPrototypeOf(r),o=Object.getOwnPropertyNames(e),n=r;for(let s of o){let i=n[s];typeof i=="function"&&(t.find(a=>s===a)||(n[s]=i.bind(r)))}}function P(r,t){if(!r)throw new Error(t||"Assertion failed")}function A(){let r;if(d()&&_.performance){var t,e;r=_===null||_===void 0||(t=_.performance)===null||t===void 0||(e=t.now)===null||e===void 0?void 0:e.call(t)}else if("hrtime"in T){var o;let n=T===null||T===void 0||(o=T.hrtime)===null||o===void 0?void 0:o.call(T);r=n[0]*1e3+n[1]/1e6}else r=Date.now();return r}var B={debug:d()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Ge={enabled:!0,level:0};function p(){}var Kt={},Qt={once:!0},w=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=rt,this._startTs=A(),this._deltaTs=A(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new ot(`__probe-${this.id}__`,Ge),this.timeStamp(`${this.id} started`),qt(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((A()-this._startTs).toPrecision(10))}getDelta(){return Number((A()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,e){this._storage.setConfiguration({[t]:e})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,e){P(t,e)}warn(t){return this._getLogFunction(0,t,B.warn,arguments,Qt)}error(t){return this._getLogFunction(0,t,B.error,arguments)}deprecated(t,e){return this.warn(`\`${t}\` is deprecated and will be removed in a later version. Use \`${e}\` instead`)}removed(t,e){return this.error(`\`${t}\` has been removed. Use \`${e}\` instead`)}probe(t,e){return this._getLogFunction(t,e,B.log,arguments,{time:!0,once:!0})}log(t,e){return this._getLogFunction(t,e,B.debug,arguments)}info(t,e){return this._getLogFunction(t,e,console.info,arguments)}once(t,e){return this._getLogFunction(t,e,B.debug||B.info,arguments,Qt)}table(t,e,o){return e?this._getLogFunction(t,e,console.table||p,o&&[o],{tag:je(e)}):p}image(t){let{logLevel:e,priority:o,image:n,message:s="",scale:i=1}=t;return this._shouldLog(e||o)?d()?We({image:n,message:s,scale:i}):Oe({image:n,message:s,scale:i}):p}time(t,e){return this._getLogFunction(t,e,console.time?console.time:console.info)}timeEnd(t,e){return this._getLogFunction(t,e,console.timeEnd?console.timeEnd:console.info)}timeStamp(t,e){return this._getLogFunction(t,e,console.timeStamp||p)}group(t,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},n=Zt({logLevel:t,message:e,opts:o}),{collapsed:s}=o;return n.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(n)}groupCollapsed(t,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,e,Object.assign({},o,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,"",console.groupEnd||p)}withGroup(t,e,o){this.group(t,e)();try{o()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=Jt(t)}_getLogFunction(t,e,o,n,s){if(this._shouldLog(t)){s=Zt({logLevel:t,message:e,args:n,opts:s}),o=o||s.method,P(o),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=A();let i=s.tag||s.message;if(s.once&&i)if(!Kt[i])Kt[i]=A();else return p;return e=Ve(this.id,s.message,s),o.bind(console,e,...s.args)}return p}};w.VERSION=rt;function Jt(r){if(!r)return 0;let t;switch(typeof r){case"number":t=r;break;case"object":t=r.logLevel||r.priority||0;break;default:return 0}return P(Number.isFinite(t)&&t>=0),t}function Zt(r){let{logLevel:t,message:e}=r;r.logLevel=Jt(t);let o=r.args?Array.from(r.args):[];for(;o.length&&o.shift()!==e;);switch(typeof t){case"string":case"function":e!==void 0&&o.unshift(e),r.message=t;break;case"object":Object.assign(r,t);break;default:}typeof r.message=="function"&&(r.message=r.message());let n=typeof r.message;return P(n==="string"||n==="object"),Object.assign(r,{args:o},r.opts)}function Ve(r,t,e){if(typeof t=="string"){let o=e.time?jt(Wt(e.total)):"";t=e.time?`${r}: ${o} ${t}`:`${r}: ${t}`,t=Xt(t,e.color,e.background)}return t}function Oe(r){let{image:t,message:e="",scale:o=1}=r;return console.warn("removed"),p}function We(r){let{image:t,message:e="",scale:o=1}=r;if(typeof t=="string"){let s=new Image;return s.onload=()=>{let i=nt(s,e,o);console.log(...i)},s.src=t,p}let n=t.nodeName||"";if(n.toLowerCase()==="img")return console.log(...nt(t,e,o)),p;if(n.toLowerCase()==="canvas"){let s=new Image;return s.onload=()=>console.log(...nt(s,e,o)),s.src=t.toDataURL(),p}return p}function je(r){for(let t in r)for(let e in r[t])return e||"untitled";return"empty"}var io=new w({id:"@probe.gl/log"});var l=new w({id:"luma.gl"});function N(){let r;if(typeof window<"u"&&window.performance)r=window.performance.now();else if(typeof process<"u"&&process.hrtime){let t=process.hrtime();r=t[0]*1e3+t[1]/1e6}else r=Date.now();return r}var v=class{constructor(t,e){this.name=void 0,this.type=void 0,this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=t,this.type=e,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=N(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(N()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var C=class{constructor(t){this.id=void 0,this.stats={},this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:t,type:e})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let e of Object.values(this.stats))t(e)}getTable(){let t={};return this.forEach(e=>{t[e.name]={time:e.time||0,count:e.count||0,average:e.getAverageTime()||0,hz:e.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(e=>this._getOrCreate(e))}_getOrCreate(t){let{name:e,type:o}=t,n=this.stats[e];return n||(t instanceof v?n=t:n=new v(e,o),this.stats[e]=n),n}};var F=class{stats=new Map;getStats(t){return this.get(t)}get(t){return this.stats.has(t)||this.stats.set(t,new C({id:t})),this.stats.get(t)}},I=new F;function Ye(){let r="9.0.0-beta.7",t="set luma.log.level=1 (or higher) to trace rendering";if(globalThis.luma&&globalThis.luma.VERSION!==r)throw new Error(`luma.gl - multiple VERSIONs detected: ${globalThis.luma.VERSION} vs ${r}`);return globalThis.luma||(d()&&l.log(1,`${r} - ${t}`)(),globalThis.luma=globalThis.luma||{VERSION:r,version:r,log:l,stats:I}),r}var it=Ye();function xt(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)?r:null}function y(r){return Array.isArray(r)?r.length===0||typeof r[0]=="number"?r:null:xt(r)}var wt={};function S(r="id"){wt[r]=wt[r]||1;let t=wt[r]++;return`${r}-${t}`}function te(r){let t=!0;for(let e in r){t=!1;break}return t}var c=class{id;props;userData={};_device;destroyed=!1;allocatedBytes=0;_attachedResources=new Set;constructor(t,e,o){if(!t)throw new Error("no device");this._device=t,this.props=Xe(e,o);let n=this.props.id!=="undefined"?this.props.id:S(this[Symbol.toStringTag]);this.props.id=n,this.id=n,this.userData=this.props.userData||{},this.addStats()}destroy(){this.destroyResource()}delete(){return this.destroy(),this}toString(){return`${this[Symbol.toStringTag]||this.constructor.name}(${this.id})`}getProps(){return this.props}attachResource(t){this._attachedResources.add(t)}detachResource(t){this._attachedResources.delete(t)}destroyAttachedResource(t){this._attachedResources.delete(t)&&t.destroy()}destroyAttachedResources(){for(let t of Object.values(this._attachedResources))t.destroy();this._attachedResources=new Set}destroyResource(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0}removeStats(){let t=this._device.statsManager.getStats("Resource Counts"),e=this[Symbol.toStringTag];t.get(`${e}s Active`).decrementCount()}trackAllocatedMemory(t,e=this[Symbol.toStringTag]){let o=this._device.statsManager.getStats("Resource Counts");o.get("GPU Memory").addCount(t),o.get(`${e} Memory`).addCount(t),this.allocatedBytes=t}trackDeallocatedMemory(t=this[Symbol.toStringTag]){let e=this._device.statsManager.getStats("Resource Counts");e.get("GPU Memory").subtractCount(this.allocatedBytes),e.get(`${t} Memory`).subtractCount(this.allocatedBytes),this.allocatedBytes=0}addStats(){let t=this._device.statsManager.getStats("Resource Counts"),e=this[Symbol.toStringTag];t.get("Resources Created").incrementCount(),t.get(`${e}s Created`).incrementCount(),t.get(`${e}s Active`).incrementCount()}};u(c,"defaultProps",{id:"undefined",handle:void 0,userData:void 0});function Xe(r,t){let e={...t};for(let o in r)r[o]!==void 0&&(e[o]=r[o]);return e}var U=class extends c{get[Symbol.toStringTag](){return"Buffer"}usage;indexType;updateTimestamp;constructor(t,e){let o={...e};(e.usage||0)&U.INDEX&&!e.indexType&&(e.data instanceof Uint32Array?o.indexType="uint32":e.data instanceof Uint16Array&&(o.indexType="uint16")),super(t,o,U.defaultProps),this.usage=e.usage||0,this.indexType=o.indexType,this.updateTimestamp=t.incrementTimestamp()}readSyncWebGL(t,e){throw new Error("not implemented")}debugData=new ArrayBuffer(0);_setDebugData(t,e,o){let n=ArrayBuffer.isView(t)?t.buffer:t,s=Math.min(t?t.byteLength:o,U.DEBUG_DATA_MAX_LENGTH);t===null?this.debugData=new ArrayBuffer(s):e===0&&o===t.byteLength?this.debugData=n.slice(0,s):this.debugData=n.slice(e,e+s)}},m=U;u(m,"defaultProps",{...c.defaultProps,usage:0,byteLength:0,byteOffset:0,data:null,indexType:"uint16",mappedAtCreation:!1}),u(m,"MAP_READ",1),u(m,"MAP_WRITE",2),u(m,"COPY_SRC",4),u(m,"COPY_DST",8),u(m,"INDEX",16),u(m,"VERTEX",32),u(m,"UNIFORM",64),u(m,"STORAGE",128),u(m,"INDIRECT",256),u(m,"QUERY_RESOLVE",512),u(m,"DEBUG_DATA_MAX_LENGTH",32);function at(r){let t=ee[r],e=qe(t),o=r.includes("norm"),n=!o&&!r.startsWith("float"),s=r.startsWith("s");return{dataType:ee[r],byteLength:e,integer:n,signed:s,normalized:o}}function qe(r){return Ke[r]}var ee={uint8:"uint8",sint8:"sint8",unorm8:"uint8",snorm8:"sint8",uint16:"uint16",sint16:"sint16",unorm16:"uint16",snorm16:"sint16",float16:"float16",float32:"float32",uint32:"uint32",sint32:"sint32"},Ke={uint8:1,sint8:1,uint16:2,sint16:2,float16:2,float32:4,uint32:4,sint32:4};var Qe=["bc1","bc2","bc3","bc4","bc5","bc6","bc7","etc1","etc2","eac","atc","astc","pvrtc"],Ze=/^(rg?b?a?)([0-9]*)([a-z]*)(-srgb)?(-webgl|-unsized)?$/;function re(r){return Qe.some(t=>r.startsWith(t))}function oe(r){let t=Ze.exec(r);if(t){let[,e,o,n,s,i]=t;if(e){let a=`${n}${o}`,f=at(a);return{format:e,components:e.length,srgb:s==="-srgb",unsized:i==="-unsized",webgl:i==="-webgl",...f}}}return tr(r)}var Je={"rgba4unorm-webgl":{format:"rgba",bpp:2},"rgb565unorm-webgl":{format:"rgb",bpp:2},"rgb5a1unorm-webgl":{format:"rgba",bbp:2},rgb9e5ufloat:{format:"rgb",bbp:4},rg11b10ufloat:{format:"rgb",bbp:4},rgb10a2unorm:{format:"rgba",bbp:4},"rgb10a2uint-webgl":{format:"rgba",bbp:4},stencil8:{components:1,bpp:1,a:"stencil"},depth16unorm:{components:1,bpp:2,a:"depth"},depth24plus:{components:1,bpp:3,a:"depth"},depth32float:{components:1,bpp:4,a:"depth"},"depth24plus-stencil8":{components:2,bpp:4,a:"depth-stencil"},"depth24unorm-stencil8":{components:2,bpp:4,a:"depth-stencil"},"depth32float-stencil8":{components:2,bpp:4,a:"depth-stencil"}};function tr(r){let t=Je[r];if(!t)throw new Error(`Unknown format ${r}`);return{format:t.format||"",components:t.components||t.format?.length||1,byteLength:t.bpp||1,srgb:!1,unsized:!1}}var ut=class{},ct=class{features;disabledFeatures;constructor(t=[],e){this.features=new Set(t),this.disabledFeatures=e||{}}*[Symbol.iterator](){yield*this.features}has(t){return!this.disabledFeatures[t]&&this.features.has(t)}},St=class{get[Symbol.toStringTag](){return"Device"}constructor(t){this.props={...St.defaultProps,...t},this.id=this.props.id||S(this[Symbol.toStringTag].toLowerCase())}id;props;userData={};statsManager=I;_lumaData={};isTextureFormatCompressed(t){return re(t)}loseDevice(){return!1}getCanvasContext(){if(!this.canvasContext)throw new Error("Device has no CanvasContext");return this.canvasContext}createTexture(t){return(t instanceof Promise||typeof t=="string")&&(t={data:t}),this._createTexture(t)}createCommandEncoder(t={}){throw new Error("not implemented")}readPixelsToArrayWebGL(t,e){throw new Error("not implemented")}readPixelsToBufferWebGL(t,e){throw new Error("not implemented")}setParametersWebGL(t){throw new Error("not implemented")}getParametersWebGL(t){throw new Error("not implemented")}withParametersWebGL(t,e){throw new Error("not implemented")}clearWebGL(t){throw new Error("not implemented")}timestamp=0;incrementTimestamp(){return this.timestamp++}onError(t){this.props.onError(t)}_getBufferProps(t){(t instanceof ArrayBuffer||ArrayBuffer.isView(t))&&(t={data:t});let e={...t};return(t.usage||0)&m.INDEX&&!t.indexType&&(t.data instanceof Uint32Array?e.indexType="uint32":t.data instanceof Uint16Array?e.indexType="uint16":l.warn("indices buffer content must be of integer type")()),e}},x=St;u(x,"defaultProps",{id:null,canvas:null,container:null,manageState:!0,width:800,height:600,requestMaxLimits:!0,debug:Boolean(l.get("debug")),spector:Boolean(l.get("spector")),break:[],initalizeFeatures:!0,disabledFeatures:{"compilation-status-async-webgl":!0},gl:null,onError:t=>l.error(t.message)}),u(x,"VERSION",it);function L(r,t){if(!r)throw new Error(t||"luma.gl: assertion failed.")}var E=new Map,R=class{static registerDevices(t){for(let e of t)L(e.type&&e.isSupported&&e.create),E.set(e.type,e)}static getAvailableDevices(){return Array.from(E).map(t=>t.type)}static getSupportedDevices(){return Array.from(E).filter(t=>t.isSupported()).map(t=>t.type)}static setDefaultDeviceProps(t){Object.assign(x.defaultProps,t)}static async createDevice(t={}){t={...x.defaultProps,...t},t.gl&&(t.type="webgl");let e;switch(t.type){case"webgpu":if(e=E.get("webgpu"),e)return await e.create(t);break;case"webgl":if(e=E.get("webgl"),e)return await e.create(t);break;case"best-available":if(e=E.get("webgpu"),e&&e.isSupported())return await e.create(t);if(e=E.get("webgl"),e&&e.isSupported())return await e.create(t);break}throw new Error("No matching device found. Ensure `@luma.gl/webgl` and/or `@luma.gl/webgpu` modules are imported.")}};u(R,"stats",I),u(R,"log",l);var er=d()&&typeof document<"u",ft=()=>er&&document.readyState==="complete",rr={canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,colorSpace:"srgb",alphaMode:"opaque"},D=class{id;props;canvas;htmlCanvas;offscreenCanvas;type;width=1;height=1;resizeObserver;_canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1};static get isPageLoaded(){return ft()}constructor(t){if(this.props={...rr,...t},t=this.props,!d()){this.id="node-canvas-context",this.type="node",this.width=this.props.width,this.height=this.props.height,this.canvas=null;return}if(t.canvas)typeof t.canvas=="string"?this.canvas=sr(t.canvas):this.canvas=t.canvas;else{let e=ir(t),o=nr(t?.container||null);o.insertBefore(e,o.firstChild),this.canvas=e,t?.visible||(this.canvas.style.visibility="hidden")}this.canvas instanceof HTMLCanvasElement?(this.id=this.canvas.id,this.type="html-canvas",this.htmlCanvas=this.canvas):(this.id="offscreen-canvas",this.type="offscreen-canvas",this.offscreenCanvas=this.canvas),this.canvas instanceof HTMLCanvasElement&&t.autoResize&&(this.resizeObserver=new ResizeObserver(e=>{for(let o of e)o.target===this.canvas&&this.update()}),this.resizeObserver.observe(this.canvas))}getDevicePixelRatio(t){return typeof OffscreenCanvas<"u"&&this.canvas instanceof OffscreenCanvas||(t=t===void 0?this.props.useDevicePixels:t,!t||t<=0)?1:t===!0?typeof window<"u"&&window.devicePixelRatio||1:t}getPixelSize(){switch(this.type){case"node":return[this.width,this.height];case"offscreen-canvas":return[this.canvas.width,this.canvas.height];case"html-canvas":let t=this.getDevicePixelRatio(),e=this.canvas;return e.parentElement?[e.clientWidth*t,e.clientHeight*t]:[this.canvas.width,this.canvas.height];default:throw new Error(this.type)}}getAspect(){let[t,e]=this.getPixelSize();return t/e}cssToDeviceRatio(){try{let[t]=this.getDrawingBufferSize(),{clientWidth:e}=this._canvasSizeInfo;return e?t/e:1}catch{return 1}}cssToDevicePixels(t,e=!0){let o=this.cssToDeviceRatio(),[n,s]=this.getDrawingBufferSize();return ar(t,o,n,s,e)}setDevicePixelRatio(t,e={}){if(!this.htmlCanvas)return;let o="width"in e?e.width:this.htmlCanvas.clientWidth,n="height"in e?e.height:this.htmlCanvas.clientHeight;(!o||!n)&&(l.log(1,"Canvas clientWidth/clientHeight is 0")(),t=1,o=this.htmlCanvas.width||1,n=this.htmlCanvas.height||1);let s=this._canvasSizeInfo;if(s.clientWidth!==o||s.clientHeight!==n||s.devicePixelRatio!==t){let i=t,a=Math.floor(o*i),f=Math.floor(n*i);this.htmlCanvas.width=a,this.htmlCanvas.height=f;let[g,b]=this.getDrawingBufferSize();(g!==a||b!==f)&&(i=Math.min(g/o,b/n),this.htmlCanvas.width=Math.floor(o*i),this.htmlCanvas.height=Math.floor(n*i),l.warn("Device pixel ratio clamped")()),this._canvasSizeInfo.clientWidth=o,this._canvasSizeInfo.clientHeight=n,this._canvasSizeInfo.devicePixelRatio=t}}getDrawingBufferSize(){let t=this.device.gl;if(!t)throw new Error("canvas size");return[t.drawingBufferWidth,t.drawingBufferHeight]}_setAutoCreatedCanvasId(t){this.htmlCanvas?.id==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=t)}};u(D,"pageLoaded",or());function or(){return ft()||typeof window>"u"?Promise.resolve():new Promise(r=>{window.addEventListener("load",()=>r())})}function nr(r){if(typeof r=="string"){let t=document.getElementById(r);if(!t&&!ft())throw new Error(`Accessing '${r}' before page was loaded`);if(!t)throw new Error(`${r} is not an HTML element`);return t}else if(r)return r;return document.body}function sr(r){let t=document.getElementById(r);if(!t&&!ft())throw new Error(`Accessing '${r}' before page was loaded`);if(!(t instanceof HTMLCanvasElement))throw new Error("Object is not a canvas element");return t}function ir(r){let{width:t,height:e}=r,o=document.createElement("canvas");return o.id="lumagl-auto-created-canvas",o.width=t||1,o.height=e||1,o.style.width=Number.isFinite(t)?`${t}px`:"100%",o.style.height=Number.isFinite(e)?`${e}px`:"100%",o}function ar(r,t,e,o,n){let s=r,i=ne(s[0],t,e),a=se(s[1],t,o,n),f=ne(s[0]+1,t,e),g=f===e-1?f:f-1;f=se(s[1]+1,t,o,n);let b;return n?(f=f===0?f:f+1,b=a,a=f):b=f===o-1?f:f-1,{x:i,y:a,width:Math.max(g-i+1,1),height:Math.max(b-a+1,1)}}function ne(r,t,e){return Math.min(Math.round(r*t),e-1)}function se(r,t,e,o){return o?Math.max(0,e-1-Math.round(r*t)):Math.min(Math.round(r*t),e-1)}var Tt=class extends c{get[Symbol.toStringTag](){return"Texture"}dimension;format;width;height;depth;updateTimestamp;constructor(t,e,o=Tt.defaultProps){super(t,e,o),this.dimension=this.props.dimension,this.format=this.props.format,this.width=this.props.width,this.height=this.props.height,this.depth=this.props.depth,this.updateTimestamp=t.incrementTimestamp()}},h=Tt;u(h,"defaultProps",{...c.defaultProps,data:null,dimension:"2d",format:"rgba8unorm",width:void 0,height:void 0,depth:1,mipmaps:!0,compressed:!1,usage:0,mipLevels:void 0,samples:void 0,type:void 0,sampler:{},view:void 0}),u(h,"COPY_SRC",1),u(h,"COPY_DST",2),u(h,"TEXTURE_BINDING",4),u(h,"STORAGE_BINDING",8),u(h,"RENDER_ATTACHMENT",16);var At=class extends c{get[Symbol.toStringTag](){return"TextureView"}constructor(t,e){super(t,e,At.defaultProps)}},z=At;u(z,"defaultProps",{...c.defaultProps,format:void 0,dimension:void 0,aspect:"all",baseMipLevel:0,mipLevelCount:void 0,baseArrayLayer:0,arrayLayerCount:void 0});var vt=class extends c{get[Symbol.toStringTag](){return"ExternalTexture"}constructor(t,e){super(t,e,vt.defaultProps)}},H=vt;u(H,"defaultProps",{...c.defaultProps,source:null,colorSpace:"srgb"});function lt(r,t,e){let o="",n=t.split(/\r?\n/),s=r.slice().sort((i,a)=>i.lineNum-a.lineNum);switch(e?.showSourceCode||"no"){case"all":let i=0;for(let a=1;a<=n.length;a++)for(o+=ae(n[a-1],a,e);s.length>i&&s[i].lineNum===a;){let f=s[i++];o+=ie(f,n,f.lineNum,{...e,inlineSource:!1})}return o;case"issues":case"no":for(let a of r)o+=ie(a,n,a.lineNum,{inlineSource:e?.showSourceCode!=="no"});return o}}function ie(r,t,e,o){if(o?.inlineSource){let n=ur(t,e),s=r.linePos>0?`${" ".repeat(r.linePos+5)}^^^
|
|
8
|
+
`:"";return`
|
|
9
|
+
${n}${s}${r.type.toUpperCase()}: ${r.message}
|
|
10
|
+
|
|
11
|
+
`}return o?.html?`<div class='luma-compiler-log-error' style="color:red;"><b> ${r.type.toUpperCase()}: ${r.message}</b></div>`:`${r.type.toUpperCase()}: ${r.message}`}function ur(r,t,e){let o="";for(let n=t-2;n<=t;n++){let s=r[n-1];s!==void 0&&(o+=ae(s,t,e))}return o}function ae(r,t,e){let o=e?.html?fr(r):r;return`${cr(String(t),4)}: ${o}${e?.html?"<br/>":`
|
|
12
|
+
`}`}function cr(r,t){let e="";for(let o=r.length;o<t;++o)e+=" ";return e+r}function fr(r){return r.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function Et(r,t){return{name:lr(r,t),language:"glsl",version:mr(r)}}function lr(r,t="unnamed"){let o=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/.exec(r);return o?o[1]:t}function mr(r){let t=100,e=r.match(/[^\s]+/g);if(e&&e.length>=2&&e[0]==="#version"){let o=parseInt(e[1],10);Number.isFinite(o)&&(t=o)}return t}var _t=class extends c{get[Symbol.toStringTag](){return"Shader"}stage;source;compilationStatus="pending";constructor(t,e){super(t,{id:dr(e),...e},_t.defaultProps),this.stage=this.props.stage,this.source=this.props.source}getCompilationInfoSync(){return null}getTranslatedSource(){return null}async debugShader(t=this.props.debug){switch(t){case"never":return;case"errors":if(this.compilationStatus==="success")return;break;case"warnings":case"always":break}let e=await this.getCompilationInfo();this.props.debug==="warnings"&&e?.length===0||this._displayShaderLog(e)}_displayShaderLog(t){if(typeof document>"u"||!document?.createElement)return;let e=Et(this.source).name,o=`${this.stage} ${e}`,n=lt(t,this.source,{showSourceCode:"all",html:!0}),s=this.getTranslatedSource();s&&(n+=`<br /><br /><h1>Translated Source</h1><br /><br /><code style="user-select:text;"><pre>${s}</pre></code>`);let i=document.createElement("Button");i.innerHTML=`
|
|
13
|
+
<h1>Shader Compilation Error in ${o}</h1><br /><br />
|
|
14
|
+
<code style="user-select:text;"><pre>
|
|
15
|
+
${n}
|
|
16
|
+
</pre></code>`,i.style.top="10px",i.style.left="10px",i.style.position="absolute",i.style.zIndex="9999",i.style.width="100%",i.style.textAlign="left",document.body.appendChild(i);let a=document.getElementsByClassName("luma-compiler-log-error");a[0]?.scrollIntoView&&a[0].scrollIntoView(),i.onclick=()=>{let f=`data:text/plain,${encodeURIComponent(this.source)}`;navigator.clipboard.writeText(f)}}},k=_t;u(k,"defaultProps",{...c.defaultProps,language:"auto",stage:void 0,source:"",sourceMap:null,entryPoint:"main",debug:"errors"});function dr(r){return Et(r.source).name||r.id||S(`unnamed ${r.stage}-shader`)}var Pt=class extends c{get[Symbol.toStringTag](){return"Sampler"}constructor(t,e){super(t,e,Pt.defaultProps)}},G=Pt;u(G,"defaultProps",{...c.defaultProps,type:"color-sampler",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"nearest",lodMinClamp:0,lodMaxClamp:32,compare:"less-equal",maxAnisotropy:1});var Bt=class extends c{get[Symbol.toStringTag](){return"Framebuffer"}width;height;colorAttachments=[];depthStencilAttachment=null;constructor(t,e={}){super(t,e,Bt.defaultProps),this.width=this.props.width,this.height=this.props.height}resize(t){let e=!t;if(t){let[o,n]=Array.isArray(t)?t:[t.width,t.height];e=e||n!==this.height||o!==this.width,this.width=o,this.height=n}e&&(l.log(2,`Resizing framebuffer ${this.id} to ${this.width}x${this.height}`)(),this.resizeAttachments(this.width,this.height))}autoCreateAttachmentTextures(){if(this.props.colorAttachments.length===0&&!this.props.depthStencilAttachment)throw new Error("Framebuffer has noattachments");this.colorAttachments=this.props.colorAttachments.map(e=>{if(typeof e=="string"){let o=this.createColorTexture(e);return this.attachResource(o),o.view}return e instanceof h?e.view:e});let t=this.props.depthStencilAttachment;if(t)if(typeof t=="string"){let e=this.createDepthStencilTexture(t);this.attachResource(e),this.depthStencilAttachment=e.view}else t instanceof h?this.depthStencilAttachment=t.view:this.depthStencilAttachment=t}createColorTexture(t){return this.device.createTexture({id:"color-attachment",usage:h.RENDER_ATTACHMENT,format:t,width:this.width,height:this.height})}createDepthStencilTexture(t){return this.device.createTexture({id:"depth-stencil-attachment",usage:h.RENDER_ATTACHMENT,format:t,width:this.width,height:this.height})}resizeAttachments(t,e){for(let o=0;o<this.colorAttachments.length;++o)if(this.colorAttachments[o]){let n=this.device._createTexture({...this.colorAttachments[o].props,width:t,height:e});this.destroyAttachedResource(this.colorAttachments[o]),this.colorAttachments[o]=n.view,this.attachResource(n.view)}if(this.depthStencilAttachment){let o=this.device._createTexture({...this.depthStencilAttachment.props,width:t,height:e});this.destroyAttachedResource(this.depthStencilAttachment),this.depthStencilAttachment=o.view,this.attachResource(o)}}},V=Bt;u(V,"defaultProps",{...c.defaultProps,width:1,height:1,colorAttachments:[],depthStencilAttachment:null});var Ct=class extends c{get[Symbol.toStringTag](){return"RenderPipeline"}shaderLayout;bufferLayout;linkStatus="pending";hash="";constructor(t,e){super(t,e,Ct.defaultProps),this.shaderLayout=this.props.shaderLayout,this.bufferLayout=this.props.bufferLayout||[]}setUniformsWebGL(t){throw new Error("Use uniform blocks")}},O=Ct;u(O,"defaultProps",{...c.defaultProps,vs:null,vertexEntryPoint:"vertexMain",vsConstants:{},fs:null,fragmentEntryPoint:"fragmentMain",fsConstants:{},shaderLayout:null,bufferLayout:[],topology:"triangle-list",parameters:{},vertexCount:0,instanceCount:0,bindings:{},uniforms:{}});var It=class extends c{get[Symbol.toStringTag](){return"RenderPass"}constructor(t,e){super(t,e,It.defaultProps)}},W=It;u(W,"defaultProps",{...c.defaultProps,framebuffer:null,parameters:void 0,clearColor:[0,0,0,0],clearDepth:1,clearStencil:0,depthReadOnly:!1,stencilReadOnly:!1,discard:!1,occlusionQuerySet:void 0,timestampQuerySet:void 0,beginTimestampIndex:void 0,endTimestampIndex:void 0});var Lt=class extends c{get[Symbol.toStringTag](){return"ComputePipeline"}hash="";constructor(t,e){super(t,e,Lt.defaultProps)}},j=Lt;u(j,"defaultProps",{...c.defaultProps,shader:void 0,entryPoint:void 0,constants:{},shaderLayout:void 0});var Rt=class extends c{get[Symbol.toStringTag](){return"ComputePass"}constructor(t,e){super(t,e,Rt.defaultProps)}},Y=Rt;u(Y,"defaultProps",{...c.defaultProps,timestampQuerySet:void 0,beginTimestampIndex:void 0,endTimestampIndex:void 0});var Mt=class extends c{get[Symbol.toStringTag](){return"CommandEncoder"}constructor(t,e){super(t,e,Mt.defaultProps)}},X=Mt;u(X,"defaultProps",{...c.defaultProps,measureExecutionTime:void 0});var $t=class extends c{get[Symbol.toStringTag](){return"CommandBuffer"}constructor(t,e){super(t,e,$t.defaultProps)}},q=$t;u(q,"defaultProps",{...c.defaultProps});function mt(r){let[t,e]=pr[r],o=t==="i32"||t==="u32",n=t!=="u32",s=gr[t]*e,i=hr(t,e);return{dataType:t,components:e,defaultVertexFormat:i,byteLength:s,integer:o,signed:n}}function hr(r,t){let e;switch(r){case"f32":e="float32";break;case"i32":e="sint32";break;case"u32":e="uint32";break;case"f16":return t<=2?"float16x2":"float16x4"}return t===1?e:`${e}x${t}`}var pr={f32:["f32",1],"vec2<f32>":["f32",2],"vec3<f32>":["f32",3],"vec4<f32>":["f32",4],f16:["f16",1],"vec2<f16>":["f16",2],"vec3<f16>":["f16",3],"vec4<f16>":["f16",4],i32:["i32",1],"vec2<i32>":["i32",2],"vec3<i32>":["i32",3],"vec4<i32>":["i32",4],u32:["u32",1],"vec2<u32>":["u32",2],"vec3<u32>":["u32",3],"vec4<u32>":["u32",4]},gr={f32:4,f16:2,i32:4,u32:4};function K(r){let t;r.endsWith("-webgl")&&(r.replace("-webgl",""),t=!0);let[e,o]=r.split("x"),n=e,s=o?parseInt(o):1,i=at(n),a={type:n,components:s,byteLength:i.byteLength*s,integer:i.integer,signed:i.signed,normalized:i.normalized};return t&&(a.webglOnly=!0),a}function Nt(r,t){let e={};for(let o of r.attributes)e[o.name]=yr(r,t,o.name);return e}function ue(r,t,e=16){let o=Nt(r,t),n=new Array(e).fill(null);for(let s of Object.values(o))n[s.location]=s;return n}function yr(r,t,e){let o=br(r,e),n=xr(t,e);if(!o)return null;let s=mt(o.type),i=n?.vertexFormat||s.defaultVertexFormat,a=K(i);return{attributeName:n?.attributeName||o.name,bufferName:n?.bufferName||o.name,location:o.location,shaderType:o.type,shaderDataType:s.dataType,shaderComponents:s.components,vertexFormat:i,bufferDataType:a.type,bufferComponents:a.components,normalized:a.normalized,integer:s.integer,stepMode:n?.stepMode||o.stepMode,byteOffset:n?.byteOffset||0,byteStride:n?.byteStride||0}}function br(r,t){let e=r.attributes.find(o=>o.name===t);return e||l.warn(`shader layout attribute "${t}" not present in shader`),e||null}function xr(r,t){wr(r);let e=Sr(r,t);return e||(e=Tr(r,t),e)?e:(l.warn(`layout for attribute "${t}" not present in buffer layout`),null)}function wr(r){for(let t of r)(t.attributes&&t.format||!t.attributes&&!t.format)&&l.warn(`BufferLayout ${name} must have either 'attributes' or 'format' field`)}function Sr(r,t){for(let e of r)if(e.format&&e.name===t)return{attributeName:e.name,bufferName:t,stepMode:e.stepMode,vertexFormat:e.format,byteOffset:0,byteStride:e.byteStride||0};return null}function Tr(r,t){for(let e of r){let o=e.byteStride;if(typeof e.byteStride!="number")for(let s of e.attributes||[]){let i=K(s.format);o+=i.byteLength}let n=e.attributes?.find(s=>s.attribute===t);if(n)return{attributeName:n.attribute,bufferName:e.name,stepMode:e.stepMode,vertexFormat:n.format,byteOffset:n.byteOffset,byteStride:o}}return null}function ce(r,t){let e={...r,attributes:r.attributes.map(o=>({...o}))};for(let o of t?.attributes||[]){let n=e.attributes.find(s=>s.name===o.name);n?(n.type=o.type||n.type,n.stepMode=o.stepMode||n.stepMode):l.warn(`shader layout attribute ${o.name} not present in shader`)}return e}var Ft=class extends c{get[Symbol.toStringTag](){return"VertexArray"}maxVertexAttributes;attributeInfos;indexBuffer=null;attributes;constructor(t,e){super(t,e,Ft.defaultProps),this.maxVertexAttributes=t.limits.maxVertexAttributes,this.attributes=new Array(this.maxVertexAttributes).fill(null),this.attributeInfos=ue(e.renderPipeline.shaderLayout,e.renderPipeline.bufferLayout,this.maxVertexAttributes)}setConstantWebGL(t,e){throw new Error("constant attributes not supported")}},Q=Ft;u(Q,"defaultProps",{...c.defaultProps,renderPipeline:null});var Ut=class extends c{get[Symbol.toStringTag](){return"TransformFeedback"}constructor(t,e){super(t,e,Ut.defaultProps)}},Z=Ut;u(Z,"defaultProps",{...c.defaultProps,layout:void 0,buffers:{}});var Dt=class extends c{get[Symbol.toStringTag](){return"QuerySet"}constructor(t,e){super(t,e,Dt.defaultProps)}},J=Dt;u(J,"defaultProps",{...c.defaultProps,type:void 0,count:void 0});var Ar={f32:{type:"f32",components:1},i32:{type:"i32",components:1},u32:{type:"u32",components:1},"vec2<f32>":{type:"f32",components:2},"vec3<f32>":{type:"f32",components:3},"vec4<f32>":{type:"f32",components:4},"vec2<i32>":{type:"i32",components:2},"vec3<i32>":{type:"i32",components:3},"vec4<i32>":{type:"i32",components:4},"vec2<u32>":{type:"u32",components:2},"vec3<u32>":{type:"u32",components:3},"vec4<u32>":{type:"u32",components:4},"mat2x2<f32>":{type:"f32",components:4},"mat2x3<f32>":{type:"f32",components:6},"mat2x4<f32>":{type:"f32",components:8},"mat3x2<f32>":{type:"f32",components:6},"mat3x3<f32>":{type:"f32",components:9},"mat3x4<f32>":{type:"f32",components:12},"mat4x2<f32>":{type:"f32",components:8},"mat4x3<f32>":{type:"f32",components:12},"mat4x4<f32>":{type:"f32",components:16}};function dt(r){let t=Ar[r];return L(r),t}function fe(r,t){switch(t){case 1:return r;case 2:return r+r%2;default:return r+(4-r%4)%4}}var ht;function tt(r){return(!ht||ht.byteLength<r)&&(ht=new ArrayBuffer(r)),ht}function le(r,t){let e=tt(r.BYTES_PER_ELEMENT*t);return new r(e,0,t)}function me(r){let{target:t,source:e,start:o=0,count:n=1}=r,s=e.length,i=n*s,a=0;for(let f=o;a<s;a++)t[f++]=e[a];for(;a<i;)a<i-a?(t.copyWithin(o+a,o,o+a),a*=2):(t.copyWithin(o+a,o,o+i-a),a=i);return r.target}var de=1024,M=class{layout={};byteLength;constructor(t){let e=0;for(let[n,s]of Object.entries(t)){let i=dt(s),{type:a,components:f}=i;e=fe(e,f);let g=e;e+=f,this.layout[n]={type:a,size:f,offset:g}}e+=(4-e%4)%4;let o=e*4;this.byteLength=Math.max(o,de)}getData(t){let e=Math.max(this.byteLength,de),o=tt(e),n={i32:new Int32Array(o),u32:new Uint32Array(o),f32:new Float32Array(o),f16:new Uint16Array(o)};for(let[s,i]of Object.entries(t)){let a=this.layout[s];if(!a){l.warn(`Supplied uniform value ${s} not present in uniform block layout`)();continue}let{type:f,size:g,offset:b}=a,Vt=n[f];if(g===1){if(typeof i!="number"&&typeof i!="boolean"){l.warn(`Supplied value for single component uniform ${s} is not a number: ${i}`)();continue}Vt[b]=Number(i)}else{let Ot=y(i);if(!Ot){l.warn(`Supplied value for multi component / array uniform ${s} is not a numeric array: ${i}`)();continue}Vt.set(Ot,b)}}return new Uint8Array(o)}has(t){return Boolean(this.layout[t])}get(t){return this.layout[t]}};function he(r,t,e=16){if(r!==t)return!1;let o=y(r);if(!o)return!1;let n=y(t);if(n&&o.length===n.length){for(let s=0;s<o.length;++s)if(n[s]!==o[s])return!1}return!0}function pe(r){let t=y(r);return t?t.slice():r}var $=class{name;uniforms={};modifiedUniforms={};modified=!0;bindingLayout={};needsRedraw="initialized";constructor(t){if(this.name=t?.name,t?.name&&t?.shaderLayout){let e=t?.shaderLayout.bindings?.find(n=>n.type==="uniform"&&n.name===t?.name);if(!e)throw new Error(t?.name);let o=e;for(let n of o.uniforms||[])this.bindingLayout[n.name]=n}}setUniforms(t){for(let[e,o]of Object.entries(t))this._setUniform(e,o),this.needsRedraw||this.setNeedsRedraw(`${this.name}.${e}=${o}`)}setNeedsRedraw(t){this.needsRedraw=this.needsRedraw||t}getAllUniforms(){return this.modifiedUniforms={},this.needsRedraw=!1,this.uniforms||{}}_setUniform(t,e){he(this.uniforms[t],e)||(this.uniforms[t]=pe(e),this.modifiedUniforms[t]=!0,this.modified=!0)}};var pt=class{uniformBlocks=new Map;uniformBufferLayouts=new Map;uniformBuffers=new Map;constructor(t){for(let[e,o]of Object.entries(t)){let n=e,s=new M(o.uniformTypes||{});this.uniformBufferLayouts.set(n,s);let i=new $({name:e});i.setUniforms(o.defaultUniforms||{}),this.uniformBlocks.set(n,i)}}destroy(){for(let t of this.uniformBuffers.values())t.destroy()}setUniforms(t){for(let[e,o]of Object.entries(t))this.uniformBlocks.get(e).setUniforms(o);this.updateUniformBuffers()}getUniformBufferByteLength(t){return this.uniformBufferLayouts.get(t).byteLength}getUniformBufferData(t){let e=this.uniformBlocks.get(t).getAllUniforms();return this.uniformBufferLayouts.get(t).getData(e)}createUniformBuffer(t,e,o){o&&this.setUniforms(o);let n=this.getUniformBufferByteLength(e),s=t.createBuffer({usage:m.UNIFORM|m.COPY_DST,byteLength:n}),i=this.getUniformBufferData(e);return s.write(i),s}getManagedUniformBuffer(t,e){if(!this.uniformBuffers.get(e)){let o=this.getUniformBufferByteLength(e),n=t.createBuffer({usage:m.UNIFORM|m.COPY_DST,byteLength:o});this.uniformBuffers.set(e,n)}return this.uniformBuffers.get(e)}updateUniformBuffers(){let t=!1;for(let e of this.uniformBlocks.keys()){let o=this.updateUniformBuffer(e);t||=o}return t&&l.log(3,`UniformStore.updateUniformBuffers(): ${t}`)(),t}updateUniformBuffer(t){let e=this.uniformBlocks.get(t),o=this.uniformBuffers.get(t),n=!1;if(o&&e.needsRedraw){n||=e.needsRedraw;let s=this.getUniformBufferData(t);this.uniformBuffers.get(t).write(s);let a=this.uniformBlocks.get(t).getAllUniforms();l.log(4,`Writing to uniform buffer ${String(t)}`,s,a)()}return n}};function zt(r){let t=ArrayBuffer.isView(r)?r.constructor:r;switch(t){case Float32Array:return"float32";case Uint16Array:return"uint16";case Uint32Array:return"uint32";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int8Array:return"sint8";case Int16Array:return"sint16";case Int32Array:return"sint32";default:throw new Error(t.constructor.name)}}function ge(r){switch(r){case"float32":return Float32Array;case"uint32":return Uint32Array;case"sint32":return Int32Array;case"uint16":case"unorm16":return Uint16Array;case"sint16":case"snorm16":return Int16Array;case"uint8":case"unorm8":return Uint8Array;case"sint8":case"snorm8":return Int8Array;default:throw new Error(r)}}function ye(r,t,e){if(!t||t>4)throw new Error(`size ${t}`);let o=t,n=zt(r);if(n==="uint8"||n==="sint8"){if(o===1||o===3)throw new Error(`size: ${t}`);return e&&(n=n.replace("int","norm")),`${n}x${o}`}if(n==="uint16"||n==="sint16"){if(o===1||o===3)throw new Error(`size: ${t}`);return e&&(n=n.replace("int","norm")),`${n}x${o}`}return o===1?n:`${n}x${o}`}function be(r){return r}function Ht(r){return y(r)!==null||typeof r=="number"||typeof r=="boolean"}function xe(r){let t={bindings:{},uniforms:{}};return Object.keys(r).forEach(e=>{let o=r[e];Ht(o)?t.uniforms[e]=o:t.bindings[e]=o}),t}function vr(r,t={}){let{maxElts:e=16,size:o=1}=t,n="[";for(let i=0;i<r.length&&i<e;++i)i>0&&(n+=`,${i%o===0?" ":""}`),n+=kt(r[i],t);let s=r.length>e?"...":"]";return`${n}${s}`}function kt(r,t={}){let{isInteger:o=!1}=t;if(Array.isArray(r)||ArrayBuffer.isView(r))return vr(r,t);if(typeof r!="number")return String(r);if(Math.abs(r)<1e-16)return o?"0":"0.";if(o||Math.abs(r)>100&&Math.abs(r)<1e4)return r.toFixed(0);let n=r.toPrecision(2);return n.indexOf(".0")===n.length-2?n.slice(0,-1):n}function we(r,t,e,o){let n=`See luma.gl ${e} Upgrade Guide at https://luma.gl/docs/upgrade-guide`,s=Object.getPrototypeOf(r);o.forEach(i=>{s.methodName||(s[i]=()=>{throw l.removed(`Calling removed method ${t}.${i}: `,n)(),new Error(i)})})}function Se(r,t,e){let{removedProps:o={},deprecatedProps:n={},replacedProps:s={}}=e;for(let a in o)if(a in t){let g=o[a]?`${r}.${o[a]}`:"N/A";l.removed(`${r}.${a}`,g)()}for(let a in n)if(a in t){let f=n[a];l.deprecated(`${r}.${a}`,`${r}.${f}`)()}let i=null;for(let[a,f]of Object.entries(s))a in t&&(l.deprecated(`${r}.${a}`,`${r}.${f}`)(),i=i||Object.assign({},t),i[f]=t[a],delete i[a]);return i||t}var gt="";function Te(r){gt=r}async function Ae(r,t){r=r.startsWith("http")?r:gt+r;let e=t?.dataType||"text";return await(await fetch(r,t))[e]()}async function ve(r,t){let e=new Image;return e.crossOrigin=t?.crossOrigin||"anonymous",e.src=r.startsWith("http")?r:gt+r,await e.decode(),await createImageBitmap(e)}async function Ee(r,t){return await new Promise((e,o)=>{try{let n=new Image;n.onload=()=>e(n),n.onerror=()=>o(new Error(`Could not load image ${r}.`)),n.crossOrigin=t?.crossOrigin||"anonymous",n.src=r.startsWith("http")?r:gt+r}catch(n){o(n)}})}async function _e(r,t){let e=document.getElementsByTagName("head")[0];if(!e)throw new Error("loadScript");let o=document.createElement("script");return o.setAttribute("type","text/javascript"),o.setAttribute("src",r),t&&(o.id=t),new Promise((n,s)=>{o.onload=n,o.onerror=i=>s(new Error(`Unable to load script '${r}': ${i}`)),e.appendChild(o)})}function Gt(){let r=1,t=1;return()=>(r=Math.sin(t*17.23),t=Math.cos(r*27.92),Er(Math.abs(r*t)*1432.71))}function Er(r){return r-Math.floor(r)}var Pe=Gt();function yt(r,t,e){if(r===t)return!0;if(!e||!r||!t)return!1;if(Array.isArray(r)){if(!Array.isArray(t)||r.length!==t.length)return!1;for(let o=0;o<r.length;o++)if(!yt(r[o],t[o],e-1))return!1;return!0}if(Array.isArray(t))return!1;if(typeof r=="object"&&typeof t=="object"){let o=Object.keys(r),n=Object.keys(t);if(o.length!==n.length)return!1;for(let s of o)if(!t.hasOwnProperty(s)||!yt(r[s],t[s],e-1))return!1;return!0}return!1}function Be(r){return typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame(r):setTimeout(r,1e3/60)}function Ce(r){return typeof window<"u"&&window.cancelAnimationFrame?window.cancelAnimationFrame(r):clearTimeout(r)}var _r=r=>`${r}`;return Fe(Pr);})();
|
|
17
|
+
return __exports__;
|
|
18
|
+
});
|
package/dist/index.cjs
CHANGED
|
@@ -116,7 +116,7 @@ var lumaStats = new StatsManager();
|
|
|
116
116
|
|
|
117
117
|
// dist/init.js
|
|
118
118
|
function initializeLuma() {
|
|
119
|
-
const VERSION2 = true ? "9.0.0-beta.
|
|
119
|
+
const VERSION2 = true ? "9.0.0-beta.7" : "running from source";
|
|
120
120
|
const STARTUP_MESSAGE = "set luma.log.level=1 (or higher) to trace rendering";
|
|
121
121
|
if (globalThis.luma && globalThis.luma.VERSION !== VERSION2) {
|
|
122
122
|
throw new Error(`luma.gl - multiple VERSIONs detected: ${globalThis.luma.VERSION} vs ${VERSION2}`);
|