@luma.gl/core 9.0.0-alpha.48 → 9.0.0-alpha.50
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/adapter/canvas-context.js +1 -1
- package/dist/adapter/canvas-context.js.map +1 -1
- package/dist/adapter/type-utils/decode-texture-format.d.ts +2 -2
- package/dist/adapter/type-utils/decode-texture-format.d.ts.map +1 -1
- package/dist/adapter/type-utils/decode-texture-format.js +4 -3
- package/dist/adapter/type-utils/decode-texture-format.js.map +1 -1
- package/dist/dist.dev.js +3 -3
- package/dist/index.cjs +4 -3
- package/dist/lib/uniforms/uniform-buffer-layout.d.ts.map +1 -1
- package/dist/lib/uniforms/uniform-buffer-layout.js.map +1 -1
- package/dist/lib/utils/load-file.js.map +1 -1
- package/dist.min.js +2 -2
- package/package.json +2 -2
- package/src/adapter/canvas-context.ts +1 -1
- package/src/adapter/type-utils/decode-texture-format.ts +5 -5
- package/src/lib/uniforms/uniform-buffer-layout.ts +3 -0
- package/src/lib/utils/load-file.ts +1 -1
|
@@ -205,7 +205,7 @@ function getCanvasFromDOM(canvasId) {
|
|
|
205
205
|
throw new Error(`Accessing '${canvasId}' before page was loaded`);
|
|
206
206
|
}
|
|
207
207
|
if (!(canvas instanceof HTMLCanvasElement)) {
|
|
208
|
-
throw new Error(
|
|
208
|
+
throw new Error('Object is not a canvas element');
|
|
209
209
|
}
|
|
210
210
|
return canvas;
|
|
211
211
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-context.js","names":["isBrowser","log","isPage","document","isPageLoaded","readyState","DEFAULT_CANVAS_CONTEXT_PROPS","canvas","width","height","useDevicePixels","autoResize","container","visible","colorSpace","alphaMode","CanvasContext","constructor","props","device","id","htmlCanvas","offscreenCanvas","type","resizeObserver","_canvasSizeInfo","clientWidth","clientHeight","devicePixelRatio","_props","_props2","createCanvas","getContainer","insertBefore","firstChild","style","visibility","getCanvasFromDOM","HTMLCanvasElement","ResizeObserver","entries","entry","target","update","observe","getDevicePixelRatio","OffscreenCanvas","undefined","dpr","window","getPixelSize","parentElement","Error","getAspect","cssToDeviceRatio","drawingBufferWidth","getDrawingBufferSize","cssToDevicePixels","cssPixel","yInvert","arguments","length","ratio","scalePixels","setDevicePixelRatio","options","cachedSize","clampedPixelRatio","canvasWidth","Math","floor","canvasHeight","drawingBufferHeight","min","warn","gl","_setAutoCreatedCanvasId","_this$htmlCanvas","pageLoaded","getPageLoadPromise","Promise","resolve","addEventListener","element","getElementById","body","canvasId","targetCanvas","createElement","Number","isFinite","pixel","point","x","scaleX","y","scaleY","t","xHigh","yHigh","max","r","round"],"sources":["../../src/adapter/canvas-context.ts"],"sourcesContent":["// luma.gl, MIT license\nimport {isBrowser} from '@probe.gl/env';\nimport type {Device} from './device';\nimport type {Framebuffer} from './resources/framebuffer';\nimport {log} from '../lib/utils/log';\n\nconst isPage: boolean = isBrowser() && typeof document !== 'undefined';\nconst isPageLoaded: () => boolean = () => isPage && document.readyState === 'complete';\n\n/** Properties for a CanvasContext */\nexport type CanvasContextProps = {\n /** If canvas not supplied, will be created and added to the DOM. If string, will be looked up in the DOM */\n canvas?: HTMLCanvasElement | OffscreenCanvas | string | null;\n /** If new canvas is created, it will be created in the specified container, otherwise appended to body */\n container?: HTMLElement | string | null;\n /** Width in pixels of the canvas */\n width?: number;\n /** Height in pixels of the canvas */\n height?: number;\n /** Whether to apply a device pixels scale factor (`true` uses browser DPI) */\n useDevicePixels?: boolean | number;\n /** Whether to track resizes (if not ) */\n autoResize?: boolean;\n /** Visibility (only used if new canvas is created). */\n visible?: boolean;\n /** WebGPU only https://www.w3.org/TR/webgpu/#canvas-configuration */\n colorSpace?: 'srgb'; // GPUPredefinedColorSpace\n /** WebGPU only https://www.w3.org/TR/webgpu/#canvas-configuration */\n alphaMode?: 'opaque' | 'premultiplied';\n};\n\nconst DEFAULT_CANVAS_CONTEXT_PROPS: Required<CanvasContextProps> = {\n canvas: null,\n width: 800, // width are height are only used by headless gl\n height: 600,\n useDevicePixels: true,\n autoResize: true,\n container: null,\n visible: true,\n colorSpace: 'srgb',\n alphaMode: 'opaque'\n};\n\n/**\n * Manages a canvas. Supports both HTML or offscreen canvas\n * - Creates a new canvas or looks up a canvas from the DOM\n * - Provides check for DOM loaded\n * @todo commit(): https://github.com/w3ctag/design-reviews/issues/288\n * @todo transferControlToOffscreen: https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/transferControlToOffscreen\n */\nexport abstract class CanvasContext {\n abstract readonly device: Device;\n readonly id: string;\n readonly props: Required<CanvasContextProps>;\n readonly canvas: HTMLCanvasElement | OffscreenCanvas;\n readonly htmlCanvas?: HTMLCanvasElement;\n readonly offscreenCanvas?: OffscreenCanvas;\n readonly type: 'html-canvas' | 'offscreen-canvas' | 'node';\n\n width: number = 1;\n height: number = 1;\n\n readonly resizeObserver: ResizeObserver | undefined;\n\n /** State used by luma.gl classes: TODO - move to canvasContext*/\n readonly _canvasSizeInfo = {clientWidth: 0, clientHeight: 0, devicePixelRatio: 1};\n\n /** Check if the DOM is loaded */\n static get isPageLoaded(): boolean {\n return isPageLoaded();\n }\n\n /**\n * Get a 'lazy' promise that resolves when the DOM is loaded.\n * @note Since there may be limitations on number of `load` event listeners,\n * it is recommended avoid calling this function until actually needed.\n * I.e. don't call it until you know that you will be looking up a string in the DOM.\n */\n static pageLoaded: Promise<void> = getPageLoadPromise();\n\n constructor(props?: CanvasContextProps) {\n this.props = {...DEFAULT_CANVAS_CONTEXT_PROPS, ...props};\n props = this.props;\n\n if (!isBrowser()) {\n this.id = 'node-canvas-context';\n this.type = 'node';\n this.width = this.props.width;\n this.height = this.props.height;\n // TODO - does this prevent app from using jsdom style polyfills?\n this.canvas = null!;\n return;\n }\n\n if (!props.canvas) {\n const canvas = createCanvas(props);\n const container = getContainer(props?.container || null);\n container.insertBefore(canvas, container.firstChild);\n\n this.canvas = canvas;\n\n if (!props?.visible) {\n this.canvas.style.visibility = 'hidden';\n }\n } else if (typeof props.canvas === 'string') {\n this.canvas = getCanvasFromDOM(props.canvas);\n } else {\n this.canvas = props.canvas;\n }\n\n if (this.canvas instanceof HTMLCanvasElement) {\n this.id = this.canvas.id;\n this.type = 'html-canvas';\n this.htmlCanvas = this.canvas;\n } else {\n this.id = 'offscreen-canvas';\n this.type = 'offscreen-canvas';\n this.offscreenCanvas = this.canvas;\n }\n\n // React to size changes\n if (this.canvas instanceof HTMLCanvasElement && props.autoResize) {\n this.resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === this.canvas) {\n this.update();\n }\n }\n });\n this.resizeObserver.observe(this.canvas);\n }\n }\n\n /** Returns a framebuffer with properly resized current 'swap chain' textures */\n abstract getCurrentFramebuffer(): Framebuffer;\n\n /**\n * Returns the current DPR, if props.useDevicePixels is true\n * Device refers to physical\n */\n getDevicePixelRatio(useDevicePixels?: boolean | number): number {\n if (typeof OffscreenCanvas !== 'undefined' && this.canvas instanceof OffscreenCanvas) {\n return 1;\n }\n\n useDevicePixels = useDevicePixels === undefined ? this.props.useDevicePixels : useDevicePixels;\n\n if (!useDevicePixels || useDevicePixels as number <= 0) {\n return 1;\n }\n\n // The param was mainly provide to support the test cases, could be removed\n if (useDevicePixels === true) {\n const dpr = typeof window !== 'undefined' && window.devicePixelRatio;\n return dpr || 1;\n }\n\n return useDevicePixels;\n }\n\n /**\n * Returns the size of drawing buffer in device pixels.\n * @note This can be different from the 'CSS' size of a canvas, and also from the\n * canvas' internal drawing buffer size (.width, .height).\n * This is the size required to cover the canvas, adjusted for DPR\n */\n getPixelSize(): [number, number] {\n switch (this.type) {\n case 'node':\n return [this.width, this.height];\n case 'offscreen-canvas':\n return [this.canvas.width, this.canvas.height];\n case 'html-canvas':\n const dpr = this.getDevicePixelRatio();\n const canvas = this.canvas as HTMLCanvasElement;\n // If not attached to DOM client size can be 0\n return canvas.parentElement\n ? [canvas.clientWidth * dpr, canvas.clientHeight * dpr]\n : [this.canvas.width, this.canvas.height];\n default:\n throw new Error(this.type);\n }\n }\n\n getAspect(): number {\n const [width, height] = this.getPixelSize();\n return width / height;\n }\n\n /**\n * Returns multiplier need to convert CSS size to Device size\n */\n cssToDeviceRatio(): number {\n try {\n // For headless gl we might have used custom width and height\n // hence use cached clientWidth\n const [drawingBufferWidth] = this.getDrawingBufferSize();\n const {clientWidth} = this._canvasSizeInfo;\n return clientWidth ? drawingBufferWidth / clientWidth : 1;\n } catch {\n return 1;\n }\n }\n\n /**\n * Maps CSS pixel position to device pixel position\n */\n cssToDevicePixels(\n cssPixel: number[],\n yInvert: boolean = true\n ): {\n x: number;\n y: number;\n width: number;\n height: number;\n } {\n const ratio = this.cssToDeviceRatio();\n const [width, height] = this.getDrawingBufferSize();\n return scalePixels(cssPixel, ratio, width, height, yInvert);\n }\n\n /**\n * Use devicePixelRatio to set canvas width and height\n * @note this is a raw port of luma.gl v8 code. Might be worth a review\n */\n setDevicePixelRatio(\n devicePixelRatio: number,\n options: {width?: number; height?: number} = {}\n ): void {\n if (!this.htmlCanvas) {\n return;\n }\n\n // NOTE: if options.width and options.height not used remove in v8\n let clientWidth = 'width' in options ? options.width : this.htmlCanvas.clientWidth;\n let clientHeight = 'height' in options ? options.height : this.htmlCanvas.clientHeight;\n\n if (!clientWidth || !clientHeight) {\n log.log(1, 'Canvas clientWidth/clientHeight is 0')();\n // by forcing devicePixel ratio to 1, we do not scale canvas.width and height in each frame.\n devicePixelRatio = 1;\n clientWidth = this.htmlCanvas.width || 1;\n clientHeight = this.htmlCanvas.height || 1;\n }\n\n const cachedSize = this._canvasSizeInfo;\n // Check if canvas needs to be resized\n if (\n cachedSize.clientWidth !== clientWidth ||\n cachedSize.clientHeight !== clientHeight ||\n cachedSize.devicePixelRatio !== devicePixelRatio\n ) {\n let clampedPixelRatio = devicePixelRatio;\n\n const canvasWidth = Math.floor(clientWidth * clampedPixelRatio);\n const canvasHeight = Math.floor(clientHeight * clampedPixelRatio);\n this.htmlCanvas.width = canvasWidth;\n this.htmlCanvas.height = canvasHeight;\n\n // Note: when devicePixelRatio is too high, it is possible we might hit system limit for\n // drawing buffer width and hight, in those cases they get clamped and resulting aspect ration may not be maintained\n // for those cases, reduce devicePixelRatio.\n const [drawingBufferWidth, drawingBufferHeight] = this.getDrawingBufferSize();\n\n if (drawingBufferWidth !== canvasWidth || drawingBufferHeight !== canvasHeight) {\n clampedPixelRatio = Math.min(\n drawingBufferWidth / clientWidth,\n drawingBufferHeight / clientHeight\n );\n\n this.htmlCanvas.width = Math.floor(clientWidth * clampedPixelRatio);\n this.htmlCanvas.height = Math.floor(clientHeight * clampedPixelRatio);\n\n log.warn('Device pixel ratio clamped')();\n }\n\n this._canvasSizeInfo.clientWidth = clientWidth;\n this._canvasSizeInfo.clientHeight = clientHeight;\n this._canvasSizeInfo.devicePixelRatio = devicePixelRatio;\n }\n }\n\n // PRIVATE\n\n /** @todo Major hack done to port the CSS methods above, base canvas context should not depend on WebGL */\n getDrawingBufferSize(): [number, number] {\n // @ts-expect-error This only works for WebGL\n const gl = this.device.gl;\n if (!gl) {\n // use default device pixel ratio\n throw new Error('canvas size');\n }\n return [gl.drawingBufferWidth, gl.drawingBufferHeight];\n }\n\n abstract resize(options?: {\n width?: number;\n height?: number;\n useDevicePixels?: boolean | number;\n }): void;\n\n /** Perform platform specific updates (WebGPU vs WebGL) */\n protected abstract update(): void;\n\n /**\n * Allows subclass constructor to override the canvas id for auto created canvases.\n * This can really help when debugging DOM in apps that create multiple devices\n */\n protected _setAutoCreatedCanvasId(id: string) {\n if (this.htmlCanvas?.id === 'lumagl-auto-created-canvas') {\n this.htmlCanvas.id = id;\n }\n }\n}\n\n// HELPER FUNCTIONS\n\n/** Returns a promise that resolves when the page is loaded */\nfunction getPageLoadPromise(): Promise<void> {\n if (isPageLoaded() || typeof window === 'undefined') {\n return Promise.resolve();\n }\n return new Promise((resolve) => {\n window.addEventListener('load', () => resolve());\n });\n}\n\nfunction getContainer(container: HTMLElement | string | null): HTMLElement {\n if (typeof container === 'string') {\n const element = document.getElementById(container);\n if (!element && !isPageLoaded()) {\n throw new Error(`Accessing '${container}' before page was loaded`);\n }\n if (!element) {\n throw new Error(`${container} is not an HTML element`);\n }\n return element;\n } else if (container) {\n return container;\n }\n return document.body;\n}\n\n/** Get a Canvas element from DOM id */\nfunction getCanvasFromDOM(canvasId: string): HTMLCanvasElement {\n const canvas = document.getElementById(canvasId);\n if (!canvas && !isPageLoaded()) {\n throw new Error(`Accessing '${canvasId}' before page was loaded`);\n }\n if (!(canvas instanceof HTMLCanvasElement)) {\n throw new Error(`'${canvas}' is not a canvas element`);\n }\n return canvas;\n}\n\n/** Create a new canvas */\nfunction createCanvas(props: CanvasContextProps) {\n const {width, height} = props;\n const targetCanvas = document.createElement('canvas');\n targetCanvas.id = 'lumagl-auto-created-canvas';\n targetCanvas.width = width || 1;\n targetCanvas.height = height || 1;\n targetCanvas.style.width = Number.isFinite(width) ? `${width}px` : '100%';\n targetCanvas.style.height = Number.isFinite(height) ? `${height}px` : '100%';\n return targetCanvas;\n}\n\n/**\n *\n * @param pixel\n * @param ratio\n * @param width\n * @param height\n * @param yInvert\n * @returns\n */\nfunction scalePixels(\n pixel: number[],\n ratio: number,\n width: number,\n height: number,\n yInvert: boolean\n): {\n x: number;\n y: number;\n width: number;\n height: number;\n} {\n const point = pixel as [number, number];\n \n const x = scaleX(point[0], ratio, width);\n let y = scaleY(point[1], ratio, height, yInvert);\n\n // Find boundaries of next pixel to provide valid range of device pixel locations\n\n let t = scaleX(point[0] + 1, ratio, width);\n // If next pixel's position is clamped to boundary, use it as is, otherwise subtract 1 for current pixel boundary\n const xHigh = t === width - 1 ? t : t - 1;\n\n t = scaleY(point[1] + 1, ratio, height, yInvert);\n let yHigh;\n if (yInvert) {\n // If next pixel's position is clamped to boundary, use it as is, otherwise clamp it to valid range\n t = t === 0 ? t : t + 1;\n // swap y and yHigh\n yHigh = y;\n y = t;\n } else {\n // If next pixel's position is clamped to boundary, use it as is, otherwise clamp it to valid range\n yHigh = t === height - 1 ? t : t - 1;\n // y remains same\n }\n return {\n x,\n y,\n // when ratio < 1, current css pixel and next css pixel may point to same device pixel, set width/height to 1 in those cases.\n width: Math.max(xHigh - x + 1, 1),\n height: Math.max(yHigh - y + 1, 1)\n };\n}\n\nfunction scaleX(x: number, ratio: number, width: number): number {\n // since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit\n const r = Math.min(Math.round(x * ratio), width - 1);\n return r;\n}\n\nfunction scaleY(y: number, ratio: number, height: number, yInvert: boolean): number {\n // since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit\n return yInvert\n ? Math.max(0, height - 1 - Math.round(y * ratio))\n : Math.min(Math.round(y * ratio), height - 1);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"canvas-context.js","names":["isBrowser","log","isPage","document","isPageLoaded","readyState","DEFAULT_CANVAS_CONTEXT_PROPS","canvas","width","height","useDevicePixels","autoResize","container","visible","colorSpace","alphaMode","CanvasContext","constructor","props","device","id","htmlCanvas","offscreenCanvas","type","resizeObserver","_canvasSizeInfo","clientWidth","clientHeight","devicePixelRatio","_props","_props2","createCanvas","getContainer","insertBefore","firstChild","style","visibility","getCanvasFromDOM","HTMLCanvasElement","ResizeObserver","entries","entry","target","update","observe","getDevicePixelRatio","OffscreenCanvas","undefined","dpr","window","getPixelSize","parentElement","Error","getAspect","cssToDeviceRatio","drawingBufferWidth","getDrawingBufferSize","cssToDevicePixels","cssPixel","yInvert","arguments","length","ratio","scalePixels","setDevicePixelRatio","options","cachedSize","clampedPixelRatio","canvasWidth","Math","floor","canvasHeight","drawingBufferHeight","min","warn","gl","_setAutoCreatedCanvasId","_this$htmlCanvas","pageLoaded","getPageLoadPromise","Promise","resolve","addEventListener","element","getElementById","body","canvasId","targetCanvas","createElement","Number","isFinite","pixel","point","x","scaleX","y","scaleY","t","xHigh","yHigh","max","r","round"],"sources":["../../src/adapter/canvas-context.ts"],"sourcesContent":["// luma.gl, MIT license\nimport {isBrowser} from '@probe.gl/env';\nimport type {Device} from './device';\nimport type {Framebuffer} from './resources/framebuffer';\nimport {log} from '../lib/utils/log';\n\nconst isPage: boolean = isBrowser() && typeof document !== 'undefined';\nconst isPageLoaded: () => boolean = () => isPage && document.readyState === 'complete';\n\n/** Properties for a CanvasContext */\nexport type CanvasContextProps = {\n /** If canvas not supplied, will be created and added to the DOM. If string, will be looked up in the DOM */\n canvas?: HTMLCanvasElement | OffscreenCanvas | string | null;\n /** If new canvas is created, it will be created in the specified container, otherwise appended to body */\n container?: HTMLElement | string | null;\n /** Width in pixels of the canvas */\n width?: number;\n /** Height in pixels of the canvas */\n height?: number;\n /** Whether to apply a device pixels scale factor (`true` uses browser DPI) */\n useDevicePixels?: boolean | number;\n /** Whether to track resizes (if not ) */\n autoResize?: boolean;\n /** Visibility (only used if new canvas is created). */\n visible?: boolean;\n /** WebGPU only https://www.w3.org/TR/webgpu/#canvas-configuration */\n colorSpace?: 'srgb'; // GPUPredefinedColorSpace\n /** WebGPU only https://www.w3.org/TR/webgpu/#canvas-configuration */\n alphaMode?: 'opaque' | 'premultiplied';\n};\n\nconst DEFAULT_CANVAS_CONTEXT_PROPS: Required<CanvasContextProps> = {\n canvas: null,\n width: 800, // width are height are only used by headless gl\n height: 600,\n useDevicePixels: true,\n autoResize: true,\n container: null,\n visible: true,\n colorSpace: 'srgb',\n alphaMode: 'opaque'\n};\n\n/**\n * Manages a canvas. Supports both HTML or offscreen canvas\n * - Creates a new canvas or looks up a canvas from the DOM\n * - Provides check for DOM loaded\n * @todo commit(): https://github.com/w3ctag/design-reviews/issues/288\n * @todo transferControlToOffscreen: https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/transferControlToOffscreen\n */\nexport abstract class CanvasContext {\n abstract readonly device: Device;\n readonly id: string;\n readonly props: Required<CanvasContextProps>;\n readonly canvas: HTMLCanvasElement | OffscreenCanvas;\n readonly htmlCanvas?: HTMLCanvasElement;\n readonly offscreenCanvas?: OffscreenCanvas;\n readonly type: 'html-canvas' | 'offscreen-canvas' | 'node';\n\n width: number = 1;\n height: number = 1;\n\n readonly resizeObserver: ResizeObserver | undefined;\n\n /** State used by luma.gl classes: TODO - move to canvasContext*/\n readonly _canvasSizeInfo = {clientWidth: 0, clientHeight: 0, devicePixelRatio: 1};\n\n /** Check if the DOM is loaded */\n static get isPageLoaded(): boolean {\n return isPageLoaded();\n }\n\n /**\n * Get a 'lazy' promise that resolves when the DOM is loaded.\n * @note Since there may be limitations on number of `load` event listeners,\n * it is recommended avoid calling this function until actually needed.\n * I.e. don't call it until you know that you will be looking up a string in the DOM.\n */\n static pageLoaded: Promise<void> = getPageLoadPromise();\n\n constructor(props?: CanvasContextProps) {\n this.props = {...DEFAULT_CANVAS_CONTEXT_PROPS, ...props};\n props = this.props;\n\n if (!isBrowser()) {\n this.id = 'node-canvas-context';\n this.type = 'node';\n this.width = this.props.width;\n this.height = this.props.height;\n // TODO - does this prevent app from using jsdom style polyfills?\n this.canvas = null!;\n return;\n }\n\n if (!props.canvas) {\n const canvas = createCanvas(props);\n const container = getContainer(props?.container || null);\n container.insertBefore(canvas, container.firstChild);\n\n this.canvas = canvas;\n\n if (!props?.visible) {\n this.canvas.style.visibility = 'hidden';\n }\n } else if (typeof props.canvas === 'string') {\n this.canvas = getCanvasFromDOM(props.canvas);\n } else {\n this.canvas = props.canvas;\n }\n\n if (this.canvas instanceof HTMLCanvasElement) {\n this.id = this.canvas.id;\n this.type = 'html-canvas';\n this.htmlCanvas = this.canvas;\n } else {\n this.id = 'offscreen-canvas';\n this.type = 'offscreen-canvas';\n this.offscreenCanvas = this.canvas;\n }\n\n // React to size changes\n if (this.canvas instanceof HTMLCanvasElement && props.autoResize) {\n this.resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === this.canvas) {\n this.update();\n }\n }\n });\n this.resizeObserver.observe(this.canvas);\n }\n }\n\n /** Returns a framebuffer with properly resized current 'swap chain' textures */\n abstract getCurrentFramebuffer(): Framebuffer;\n\n /**\n * Returns the current DPR, if props.useDevicePixels is true\n * Device refers to physical\n */\n getDevicePixelRatio(useDevicePixels?: boolean | number): number {\n if (typeof OffscreenCanvas !== 'undefined' && this.canvas instanceof OffscreenCanvas) {\n return 1;\n }\n\n useDevicePixels = useDevicePixels === undefined ? this.props.useDevicePixels : useDevicePixels;\n\n if (!useDevicePixels || useDevicePixels as number <= 0) {\n return 1;\n }\n\n // The param was mainly provide to support the test cases, could be removed\n if (useDevicePixels === true) {\n const dpr = typeof window !== 'undefined' && window.devicePixelRatio;\n return dpr || 1;\n }\n\n return useDevicePixels;\n }\n\n /**\n * Returns the size of drawing buffer in device pixels.\n * @note This can be different from the 'CSS' size of a canvas, and also from the\n * canvas' internal drawing buffer size (.width, .height).\n * This is the size required to cover the canvas, adjusted for DPR\n */\n getPixelSize(): [number, number] {\n switch (this.type) {\n case 'node':\n return [this.width, this.height];\n case 'offscreen-canvas':\n return [this.canvas.width, this.canvas.height];\n case 'html-canvas':\n const dpr = this.getDevicePixelRatio();\n const canvas = this.canvas as HTMLCanvasElement;\n // If not attached to DOM client size can be 0\n return canvas.parentElement\n ? [canvas.clientWidth * dpr, canvas.clientHeight * dpr]\n : [this.canvas.width, this.canvas.height];\n default:\n throw new Error(this.type);\n }\n }\n\n getAspect(): number {\n const [width, height] = this.getPixelSize();\n return width / height;\n }\n\n /**\n * Returns multiplier need to convert CSS size to Device size\n */\n cssToDeviceRatio(): number {\n try {\n // For headless gl we might have used custom width and height\n // hence use cached clientWidth\n const [drawingBufferWidth] = this.getDrawingBufferSize();\n const {clientWidth} = this._canvasSizeInfo;\n return clientWidth ? drawingBufferWidth / clientWidth : 1;\n } catch {\n return 1;\n }\n }\n\n /**\n * Maps CSS pixel position to device pixel position\n */\n cssToDevicePixels(\n cssPixel: number[],\n yInvert: boolean = true\n ): {\n x: number;\n y: number;\n width: number;\n height: number;\n } {\n const ratio = this.cssToDeviceRatio();\n const [width, height] = this.getDrawingBufferSize();\n return scalePixels(cssPixel, ratio, width, height, yInvert);\n }\n\n /**\n * Use devicePixelRatio to set canvas width and height\n * @note this is a raw port of luma.gl v8 code. Might be worth a review\n */\n setDevicePixelRatio(\n devicePixelRatio: number,\n options: {width?: number; height?: number} = {}\n ): void {\n if (!this.htmlCanvas) {\n return;\n }\n\n // NOTE: if options.width and options.height not used remove in v8\n let clientWidth = 'width' in options ? options.width : this.htmlCanvas.clientWidth;\n let clientHeight = 'height' in options ? options.height : this.htmlCanvas.clientHeight;\n\n if (!clientWidth || !clientHeight) {\n log.log(1, 'Canvas clientWidth/clientHeight is 0')();\n // by forcing devicePixel ratio to 1, we do not scale canvas.width and height in each frame.\n devicePixelRatio = 1;\n clientWidth = this.htmlCanvas.width || 1;\n clientHeight = this.htmlCanvas.height || 1;\n }\n\n const cachedSize = this._canvasSizeInfo;\n // Check if canvas needs to be resized\n if (\n cachedSize.clientWidth !== clientWidth ||\n cachedSize.clientHeight !== clientHeight ||\n cachedSize.devicePixelRatio !== devicePixelRatio\n ) {\n let clampedPixelRatio = devicePixelRatio;\n\n const canvasWidth = Math.floor(clientWidth * clampedPixelRatio);\n const canvasHeight = Math.floor(clientHeight * clampedPixelRatio);\n this.htmlCanvas.width = canvasWidth;\n this.htmlCanvas.height = canvasHeight;\n\n // Note: when devicePixelRatio is too high, it is possible we might hit system limit for\n // drawing buffer width and hight, in those cases they get clamped and resulting aspect ration may not be maintained\n // for those cases, reduce devicePixelRatio.\n const [drawingBufferWidth, drawingBufferHeight] = this.getDrawingBufferSize();\n\n if (drawingBufferWidth !== canvasWidth || drawingBufferHeight !== canvasHeight) {\n clampedPixelRatio = Math.min(\n drawingBufferWidth / clientWidth,\n drawingBufferHeight / clientHeight\n );\n\n this.htmlCanvas.width = Math.floor(clientWidth * clampedPixelRatio);\n this.htmlCanvas.height = Math.floor(clientHeight * clampedPixelRatio);\n\n log.warn('Device pixel ratio clamped')();\n }\n\n this._canvasSizeInfo.clientWidth = clientWidth;\n this._canvasSizeInfo.clientHeight = clientHeight;\n this._canvasSizeInfo.devicePixelRatio = devicePixelRatio;\n }\n }\n\n // PRIVATE\n\n /** @todo Major hack done to port the CSS methods above, base canvas context should not depend on WebGL */\n getDrawingBufferSize(): [number, number] {\n // @ts-expect-error This only works for WebGL\n const gl = this.device.gl;\n if (!gl) {\n // use default device pixel ratio\n throw new Error('canvas size');\n }\n return [gl.drawingBufferWidth, gl.drawingBufferHeight];\n }\n\n abstract resize(options?: {\n width?: number;\n height?: number;\n useDevicePixels?: boolean | number;\n }): void;\n\n /** Perform platform specific updates (WebGPU vs WebGL) */\n protected abstract update(): void;\n\n /**\n * Allows subclass constructor to override the canvas id for auto created canvases.\n * This can really help when debugging DOM in apps that create multiple devices\n */\n protected _setAutoCreatedCanvasId(id: string) {\n if (this.htmlCanvas?.id === 'lumagl-auto-created-canvas') {\n this.htmlCanvas.id = id;\n }\n }\n}\n\n// HELPER FUNCTIONS\n\n/** Returns a promise that resolves when the page is loaded */\nfunction getPageLoadPromise(): Promise<void> {\n if (isPageLoaded() || typeof window === 'undefined') {\n return Promise.resolve();\n }\n return new Promise((resolve) => {\n window.addEventListener('load', () => resolve());\n });\n}\n\nfunction getContainer(container: HTMLElement | string | null): HTMLElement {\n if (typeof container === 'string') {\n const element = document.getElementById(container);\n if (!element && !isPageLoaded()) {\n throw new Error(`Accessing '${container}' before page was loaded`);\n }\n if (!element) {\n throw new Error(`${container} is not an HTML element`);\n }\n return element;\n } else if (container) {\n return container;\n }\n return document.body;\n}\n\n/** Get a Canvas element from DOM id */\nfunction getCanvasFromDOM(canvasId: string): HTMLCanvasElement {\n const canvas = document.getElementById(canvasId);\n if (!canvas && !isPageLoaded()) {\n throw new Error(`Accessing '${canvasId}' before page was loaded`);\n }\n if (!(canvas instanceof HTMLCanvasElement)) {\n throw new Error('Object is not a canvas element');\n }\n return canvas;\n}\n\n/** Create a new canvas */\nfunction createCanvas(props: CanvasContextProps) {\n const {width, height} = props;\n const targetCanvas = document.createElement('canvas');\n targetCanvas.id = 'lumagl-auto-created-canvas';\n targetCanvas.width = width || 1;\n targetCanvas.height = height || 1;\n targetCanvas.style.width = Number.isFinite(width) ? `${width}px` : '100%';\n targetCanvas.style.height = Number.isFinite(height) ? `${height}px` : '100%';\n return targetCanvas;\n}\n\n/**\n *\n * @param pixel\n * @param ratio\n * @param width\n * @param height\n * @param yInvert\n * @returns\n */\nfunction scalePixels(\n pixel: number[],\n ratio: number,\n width: number,\n height: number,\n yInvert: boolean\n): {\n x: number;\n y: number;\n width: number;\n height: number;\n} {\n const point = pixel as [number, number];\n \n const x = scaleX(point[0], ratio, width);\n let y = scaleY(point[1], ratio, height, yInvert);\n\n // Find boundaries of next pixel to provide valid range of device pixel locations\n\n let t = scaleX(point[0] + 1, ratio, width);\n // If next pixel's position is clamped to boundary, use it as is, otherwise subtract 1 for current pixel boundary\n const xHigh = t === width - 1 ? t : t - 1;\n\n t = scaleY(point[1] + 1, ratio, height, yInvert);\n let yHigh;\n if (yInvert) {\n // If next pixel's position is clamped to boundary, use it as is, otherwise clamp it to valid range\n t = t === 0 ? t : t + 1;\n // swap y and yHigh\n yHigh = y;\n y = t;\n } else {\n // If next pixel's position is clamped to boundary, use it as is, otherwise clamp it to valid range\n yHigh = t === height - 1 ? t : t - 1;\n // y remains same\n }\n return {\n x,\n y,\n // when ratio < 1, current css pixel and next css pixel may point to same device pixel, set width/height to 1 in those cases.\n width: Math.max(xHigh - x + 1, 1),\n height: Math.max(yHigh - y + 1, 1)\n };\n}\n\nfunction scaleX(x: number, ratio: number, width: number): number {\n // since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit\n const r = Math.min(Math.round(x * ratio), width - 1);\n return r;\n}\n\nfunction scaleY(y: number, ratio: number, height: number, yInvert: boolean): number {\n // since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit\n return yInvert\n ? Math.max(0, height - 1 - Math.round(y * ratio))\n : Math.min(Math.round(y * ratio), height - 1);\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { TextureFormat } from '../types/texture-formats';
|
|
2
2
|
import { VertexType } from '../types/vertex-formats';
|
|
3
3
|
export type DecodedTextureFormat = {
|
|
4
|
-
format:
|
|
5
|
-
components:
|
|
4
|
+
format: 'r' | 'rg' | 'rgb' | 'rgba';
|
|
5
|
+
components: 1 | 2 | 3 | 4;
|
|
6
6
|
dataType?: VertexType;
|
|
7
7
|
srgb: boolean;
|
|
8
8
|
webgl: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode-texture-format.d.ts","sourceRoot":"","sources":["../../../src/adapter/type-utils/decode-texture-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAKnD,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"decode-texture-format.d.ts","sourceRoot":"","sources":["../../../src/adapter/type-utils/decode-texture-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAKnD,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;IACpC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,oBAAoB,CAoB/E"}
|
|
@@ -8,8 +8,8 @@ export function decodeTextureFormat(format) {
|
|
|
8
8
|
const dataType = `${type}${length}`;
|
|
9
9
|
const decodedType = decodeVertexType(dataType);
|
|
10
10
|
return {
|
|
11
|
-
format,
|
|
12
|
-
components:
|
|
11
|
+
format: format,
|
|
12
|
+
components: format.length,
|
|
13
13
|
srgb: srgb === '-srgb',
|
|
14
14
|
unsized: suffix === '-unsized',
|
|
15
15
|
webgl: suffix === '-webgl',
|
|
@@ -85,13 +85,14 @@ const EXCEPTIONS = {
|
|
|
85
85
|
}
|
|
86
86
|
};
|
|
87
87
|
function decodeNonStandardFormat(format) {
|
|
88
|
+
var _data$format;
|
|
88
89
|
const data = EXCEPTIONS[format];
|
|
89
90
|
if (!data) {
|
|
90
91
|
throw new Error(`Unknown format ${format}`);
|
|
91
92
|
}
|
|
92
93
|
return {
|
|
93
94
|
format: data.format || '',
|
|
94
|
-
components: data.components || 1,
|
|
95
|
+
components: data.components || ((_data$format = data.format) === null || _data$format === void 0 ? void 0 : _data$format.length) || 1,
|
|
95
96
|
byteLength: data.bpp || 1,
|
|
96
97
|
srgb: false,
|
|
97
98
|
unsized: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode-texture-format.js","names":["decodeVertexType","REGEX","decodeTextureFormat","format","matches","exec","length","type","srgb","suffix","dataType","decodedType","components","unsized","webgl","decodeNonStandardFormat","EXCEPTIONS","bpp","bbp","a","data","Error","byteLength"],"sources":["../../../src/adapter/type-utils/decode-texture-format.ts"],"sourcesContent":["import {TextureFormat} from '../types/texture-formats';\nimport {VertexType} from '../types/vertex-formats';\nimport {decodeVertexType} from './decode-data-type';\n\nconst REGEX = /^(rg?b?a?)([0-9]*)([a-z]*)(-srgb)?(-webgl|-unsized)?$/;\n\nexport type DecodedTextureFormat = {\n format:
|
|
1
|
+
{"version":3,"file":"decode-texture-format.js","names":["decodeVertexType","REGEX","decodeTextureFormat","format","matches","exec","length","type","srgb","suffix","dataType","decodedType","components","unsized","webgl","decodeNonStandardFormat","EXCEPTIONS","bpp","bbp","a","_data$format","data","Error","byteLength"],"sources":["../../../src/adapter/type-utils/decode-texture-format.ts"],"sourcesContent":["import {TextureFormat} from '../types/texture-formats';\nimport {VertexType} from '../types/vertex-formats';\nimport {decodeVertexType} from './decode-data-type';\n\nconst REGEX = /^(rg?b?a?)([0-9]*)([a-z]*)(-srgb)?(-webgl|-unsized)?$/;\n\nexport type DecodedTextureFormat = {\n format: 'r' | 'rg' | 'rgb' | 'rgba';\n components: 1 | 2 | 3 | 4;\n dataType?: VertexType;\n srgb: boolean;\n webgl: boolean;\n unsized: boolean;\n byteLength: number;\n integer: boolean;\n signed: boolean;\n normalized: boolean;\n}\n\n/**\n * Decodes a vertex format, returning type, components, byte length and flags (integer, signed, normalized)\n */\nexport function decodeTextureFormat(format: TextureFormat): DecodedTextureFormat {\n const matches = REGEX.exec((format as string));\n if (matches) {\n const [, format, length, type, srgb, suffix] = matches;\n if (format) {\n const dataType = `${type}${length}` as VertexType;\n const decodedType = decodeVertexType(dataType);\n return {\n format: format as 'r' | 'rg' | 'rgb' | 'rgba',\n components: format.length as 1 | 2 | 3 | 4,\n // dataType - overwritten by decodedType\n srgb: srgb === '-srgb',\n unsized: suffix === '-unsized',\n webgl: suffix === '-webgl',\n ...decodedType\n };\n }\n }\n\n return decodeNonStandardFormat(format);\n}\n\n// https://www.w3.org/TR/webgpu/#texture-format-caps\n\nconst EXCEPTIONS: Partial<Record<TextureFormat, any>> = {\n // Packed 16 bit formats\n 'rgba4unorm-webgl': {format: 'rgba', bpp: 2}, \n 'rgb565unorm-webgl': {format: 'rgb', bpp: 2},\n 'rgb5a1unorm-webgl': {format: 'rgba', bbp: 2}, \n // Packed 32 bit formats\n 'rgb9e5ufloat': {format: 'rgb', bbp: 4},\n 'rg11b10ufloat': {format: 'rgb', bbp: 4},\n 'rgb10a2unorm': {format: 'rgba', bbp: 4},\n 'rgb10a2unorm-webgl': {format: 'rgba', bbp: 4},\n // Depth/stencil\n 'stencil8': {components: 1, bpp: 1, a: 'stencil'},\n 'depth16unorm': {components: 1, bpp: 2, a: 'depth'},\n 'depth24plus': {components: 1, bpp: 3, a: 'depth'},\n 'depth32float': {components: 1, bpp: 4, a: 'depth'},\n 'depth24plus-stencil8': {components: 2, bpp: 4, a: 'depth-stencil'},\n // \"depth24unorm-stencil8\" feature\n 'depth24unorm-stencil8': {components: 2, bpp: 4, a: 'depth-stencil'},\n // \"depth32float-stencil8\" feature\n 'depth32float-stencil8': {components: 2, bpp: 4, a: 'depth-stencil'}\n};\n\nfunction decodeNonStandardFormat(format: TextureFormat): DecodedTextureFormat {\n const data = EXCEPTIONS[format];\n if (!data) {\n throw new Error(`Unknown format ${format}`);\n }\n return {\n format: data.format || '',\n components: data.components || data.format?.length || 1,\n byteLength: data.bpp || 1,\n srgb: false,\n unsized: false \n } as DecodedTextureFormat;\n}\n\n/*\n'r8unorm':\t{s: \"float\"}, // \t✓\t✓\t✓\t},\n'r8snorm':\t{s: \"float\"}, // \t\t✓\t\t},\n'r8uint':\t{s: \"uint\"}, // \t✓\t✓\t\t},\n'r8sint':\t{s: \"sint\"}, // \t✓\t✓\t\t},\n'rg8unorm':\t{s: \"float\"}, // \t✓\t✓\t✓\t},\n'rg8snorm':\t{s: \"float\"}, // \t\t✓\t\t},\n'rg8uint':\t{s: \"uint\"}, // \t✓\t✓\t\t},\n'rg8sint':\t{s: \"sint\"}, // \t✓\t✓\t\t},\n'rgba8unorm':\t{s: \"float\"}, // \t✓\t✓\t✓\t✓},\n'rgba8unorm-srgb': {s: \"float\"}, // \t✓\t✓\t✓\t},\n'rgba8snorm':\t{s: \"float\"}, // \t\t✓\t\t✓},\n'rgba8uint':\t{s: \"uint\"}, // \t✓\t✓\t\t✓},\n'rgba8sint':\t{s: \"sint\"}, // \t✓\t✓\t\t✓},\n'bgra8unorm':\t{s: \"float\"}, // \t✓\t✓\t✓\t},\n'bgra8unorm-srgb': {s: \"float\"}, // \t✓\t✓\t✓\t},\n// 16-bit per component\t\t\t\t\t\n'r16uint': {s: \"uint\"}, // \t✓\t✓\t\t},\n'r16sint': {s: \"sint\"}, // \t✓\t✓\t\t},\n'r16float': {s: \"float\"}, // \t✓\t✓\t✓\t},\n'rg16uint': {s: \"uint\"}, // \t✓\t✓\t\t},\n'rg16sint': {s: \"sint\"}, // \t✓\t✓\t\t},\n'rg16float': {s: \"float\"}, // \t✓\t✓\t✓\t},\n'rgba16uint': {s: \"uint\"}, // \t✓\t✓\t\t✓},\n'rgba16sint': {s: \"sint\"}, // \t✓\t✓\t\t✓},\n'rgba16float': {s: \"float\"}, // \t✓\t✓\t✓\t✓},\n// 32-bit per component\t\t\t\t\t\n'r32uint': {s: \"uint\"}, // \t✓\t\t\t✓},\n'r32sint': {s: \"sint\"}, // \t✓\t\t\t✓},\n'r32float': {\"unfilterable-float\"\t✓\t✓\t\t✓},\n'rg32uint': {s: \"uint\"}, // \t✓\t\t\t✓},\n'rg32sint': {s: \"sint\"}, // \t✓\t\t\t✓},\n'rg32float': {\"unfilterable-float\"\t✓\t\t\t✓},\n'rgba32uint': {s: \"uint\"}, // \t✓\t\t\t✓},\n'rgba32sint': {s: \"sint\"}, // \t✓\t\t\t✓},\n'rgba32float': {\"unfilterable-float\"\t✓\t\t\t✓},\n// mixed component width\t\t\t\t\t\n'rgb10a2unorm': {s: \"float\"}, // \t✓\t✓\t✓\t}\n'rg11b10ufloat': {s: \"float\"}, // \t\t✓\t\t}\n// Format\tBytes per texel\tAspect\tGPUTextureSampleType\tValid image copy source\tValid image copy destination\n'stencil8': {1 − 4\tstencil\t\"uint\"\t✓}\n'depth16unorm': {2\tdepth\t\"depth\"\t✓}\n'depth24plus': {4\tdepth\t\"depth\"\t✗}\n'depth24plus': {stencil8\t4 − 8\tdepth\t\"depth\"\t✗}\n'stencil': {s: \"uint\"}, // \t✓}\n'depth32float': {4\tdepth\t\"depth\"\t✓\t✗}\n'depth24unorm': {stencil8\t4\tdepth\t\"depth\"\t✗}\n'stencil': {s: \"uint\"}, // \t✓}\n'depth32float': {stencil8}\n\n// Format\tBytes per block\tGPUTextureSampleType\tBlock Size\tFeature\n'rgb9e5ufloat': {c: 4, s: \"float\",\tbpp: 4/(1*1)},\n\n'bc1-rgba-unorm': {c: 4. s: \"float\", bpp: 8/(4 * 4) f: 'texture-compression-bc'},\n'bc1-rgba-unorm-srgb': {c: 4. s: \"float\", bpp: 8/(4 * 4) f: 'texture-compression-bc'},\n'bc2-rgba-unorm': {c: 4. s: \"float\", bpp: 16/(4 * 4) f: 'texture-compression-bc'},\n'bc2-rgba-unorm-srgb': {c: 4. s: \"float\", bpp: 16/(4 * 4) f: 'texture-compression-bc'},\n'bc3-rgba-unorm': {c: 4. s: \"float\", bpp: 16/(4 * 4) f: 'texture-compression-bc'},\n'bc3-rgba-unorm-srgb': {c: 4. s: \"float\", bpp: 16/(4 * 4) f: 'texture-compression-bc'},\n'bc4-r-unorm': {c: 1. s: \"float\", bpp: 8/(4 * 4) f: 'texture-compression-bc'},\n'bc4-r-snorm': {c: 1. s: \"float\", bpp: 8/(4 * 4) f: 'texture-compression-bc'},\n'bc5-rg-unorm': {c: 2. s: \"float\", bpp: 16/(4 * 4) f: 'texture-compression-bc'},\n'bc5-rg-snorm': { },\n'bc6h-rgb-ufloat': {\t16 },\n'bc6h-rgb-float': { },\n'bc7-rgba-unorm': {\t16 },\n'bc7-rgba-unorm-srgb': { },\n\n'etc2-rgb8unorm': {\t8\t\"float\"\t4 × 4\ttexture-compression-etc2 },\n'etc2-rgb8unorm-srgb': { },\n'etc2-rgb8a1unorm': {\t8 },\n'etc2-rgb8a1unorm-srgb': { },\n'etc2-rgba8unorm': {\t16 },\n'etc2-rgba8unorm-srgb': { },\n\n'eac-r11unorm': {\t8 },\n'eac-r11snorm': { },\n'eac-rg11unorm': {\t16 },\n'eac-rg11snorm': { },\n\n'astc-4x4-unorm': {\t16\t\"float\"\t4 × 4\ttexture-compression-astc },\n'astc-4x4-unorm-srgb': { },\n'astc-5x4-unorm': {\t16\t5 × 4 },\n'astc-5x4-unorm-srgb': { },\n'astc-5x5-unorm': {\t16\t5 × 5 },\n'astc-5x5-unorm-srgb': { },\n'astc-6x5-unorm': {\t16\t6 × 5 },\n'astc-6x5-unorm-srgb': { },\n'astc-6x6-unorm': {\t16\t6 × 6 },\n'astc-6x6-unorm-srgb': { },\n'astc-8x5-unorm': {\t16\t8 × 5 },\n'astc-8x5-unorm-srgb': { },\n'astc-8x6-unorm': {\t16\t8 × 6 },\n'astc-8x6-unorm-srgb': { },\n'astc-8x8-unorm': {\t16\t8 × 8 },\n'astc-8x8-unorm-srgb': { },\n'astc-10x5-unorm': {\t16\t10 × 5 },\n'astc-10x5-unorm-srgb': { },\n'astc-10x6-unorm': {\t16\t10 × 6 },\n'astc-10x6-unorm-srgb': { },\n'astc-10x8-unorm': {\t16\t10 × 8 },\n'astc-10x8-unorm-srgb': { },\n'astc-10x10-unorm': {\t16\t10 × 10 },\n'astc-10x10-unorm-srgb': { },\n'astc-12x10-unorm': {\t16\t12 × 10 },\n'astc-12x10-unorm-srgb': { },\n'astc-12x12-unorm': {\t16 },\n*/\n"],"mappings":"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"}
|
package/dist/dist.dev.js
CHANGED
|
@@ -1355,7 +1355,7 @@ var __exports__ = (() => {
|
|
|
1355
1355
|
throw new Error(`Accessing '${canvasId}' before page was loaded`);
|
|
1356
1356
|
}
|
|
1357
1357
|
if (!(canvas instanceof HTMLCanvasElement)) {
|
|
1358
|
-
throw new Error(
|
|
1358
|
+
throw new Error("Object is not a canvas element");
|
|
1359
1359
|
}
|
|
1360
1360
|
return canvas;
|
|
1361
1361
|
}
|
|
@@ -2397,7 +2397,7 @@ var __exports__ = (() => {
|
|
|
2397
2397
|
const decodedType = decodeVertexType(dataType);
|
|
2398
2398
|
return {
|
|
2399
2399
|
format: format2,
|
|
2400
|
-
components:
|
|
2400
|
+
components: format2.length,
|
|
2401
2401
|
srgb: srgb === "-srgb",
|
|
2402
2402
|
unsized: suffix === "-unsized",
|
|
2403
2403
|
webgl: suffix === "-webgl",
|
|
@@ -2479,7 +2479,7 @@ var __exports__ = (() => {
|
|
|
2479
2479
|
}
|
|
2480
2480
|
return {
|
|
2481
2481
|
format: data.format || "",
|
|
2482
|
-
components: data.components || 1,
|
|
2482
|
+
components: data.components || data.format?.length || 1,
|
|
2483
2483
|
byteLength: data.bpp || 1,
|
|
2484
2484
|
srgb: false,
|
|
2485
2485
|
unsized: false
|
package/dist/index.cjs
CHANGED
|
@@ -776,7 +776,7 @@ function getCanvasFromDOM(canvasId) {
|
|
|
776
776
|
throw new Error(`Accessing '${canvasId}' before page was loaded`);
|
|
777
777
|
}
|
|
778
778
|
if (!(canvas instanceof HTMLCanvasElement)) {
|
|
779
|
-
throw new Error(
|
|
779
|
+
throw new Error("Object is not a canvas element");
|
|
780
780
|
}
|
|
781
781
|
return canvas;
|
|
782
782
|
}
|
|
@@ -1946,7 +1946,7 @@ function decodeTextureFormat(format) {
|
|
|
1946
1946
|
const decodedType = decodeVertexType(dataType);
|
|
1947
1947
|
return {
|
|
1948
1948
|
format: format2,
|
|
1949
|
-
components:
|
|
1949
|
+
components: format2.length,
|
|
1950
1950
|
// dataType - overwritten by decodedType
|
|
1951
1951
|
srgb: srgb === "-srgb",
|
|
1952
1952
|
unsized: suffix === "-unsized",
|
|
@@ -1979,13 +1979,14 @@ var EXCEPTIONS = {
|
|
|
1979
1979
|
"depth32float-stencil8": { components: 2, bpp: 4, a: "depth-stencil" }
|
|
1980
1980
|
};
|
|
1981
1981
|
function decodeNonStandardFormat(format) {
|
|
1982
|
+
var _a;
|
|
1982
1983
|
const data = EXCEPTIONS[format];
|
|
1983
1984
|
if (!data) {
|
|
1984
1985
|
throw new Error(`Unknown format ${format}`);
|
|
1985
1986
|
}
|
|
1986
1987
|
return {
|
|
1987
1988
|
format: data.format || "",
|
|
1988
|
-
components: data.components || 1,
|
|
1989
|
+
components: data.components || ((_a = data.format) == null ? void 0 : _a.length) || 1,
|
|
1989
1990
|
byteLength: data.bpp || 1,
|
|
1990
1991
|
srgb: false,
|
|
1991
1992
|
unsized: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniform-buffer-layout.d.ts","sourceRoot":"","sources":["../../../src/lib/uniforms/uniform-buffer-layout.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,iBAAiB,EAAE,cAAc,EAAC,MAAM,kCAAkC,CAAC;AACxF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAY5D;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,cAAc,CAAA;KAAC,CAAC,CAAM;IAE3F,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAG5B,kEAAkE;gBACtD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAsB3D,2CAA2C;IAC3C,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,UAAU;
|
|
1
|
+
{"version":3,"file":"uniform-buffer-layout.d.ts","sourceRoot":"","sources":["../../../src/lib/uniforms/uniform-buffer-layout.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,iBAAiB,EAAE,cAAc,EAAC,MAAM,kCAAkC,CAAC;AACxF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAY5D;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,cAAc,CAAA;KAAC,CAAC,CAAM;IAE3F,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAG5B,kEAAkE;gBACtD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAsB3D,2CAA2C;IAC3C,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,UAAU;IAiDhE,wDAAwD;IACxD,GAAG,CAAC,IAAI,EAAE,MAAM;IAIhB,0DAA0D;IAC1D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG,SAAS;CAI9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniform-buffer-layout.js","names":["decodeShaderUniformType","alignTo","getScratchArrayBuffer","isNumberArray","log","minBufferSize","UniformBufferLayout","constructor","uniformTypes","layout","byteLength","size","key","uniformType","Object","entries","typeAndComponents","type","components","count","offset","actualByteLength","Math","max","getData","uniformValues","bufferSize","arrayBuffer","typedArrays","i32","Int32Array","u32","Uint32Array","f32","Float32Array","f16","Uint16Array","name","value","uniformLayout","warn","typedArray","Number","numericArray","set","Uint8Array","has","Boolean","get"],"sources":["../../../src/lib/uniforms/uniform-buffer-layout.ts"],"sourcesContent":["// luma.gl, MIT license\nimport type {ShaderUniformType, ShaderDataType} from '../../adapter/types/shader-types';\nimport type {UniformValue} from '../../adapter/types/types';\nimport {decodeShaderUniformType, alignTo} from '../../adapter/type-utils/decode-shader-types';\nimport {getScratchArrayBuffer} from '../utils/array-utils-flat';\nimport {isNumberArray} from '../utils/is-array';\nimport { log } from '../utils/log';\n\n/** \n * Smallest buffer size that can be used for uniform buffers.\n * TODO - does this depend on device?\n */\nconst minBufferSize: number = 1024;\n\n/**\n * Std140 layout for uniform buffers\n * Supports manual listing of uniforms\n */\nexport class UniformBufferLayout {\n readonly layout: Record<string, {offset: number, size: number, type: ShaderDataType}> = {};\n\n /** number of bytes needed for buffer allocation */\n readonly byteLength: number;\n\n\n /** Create a new UniformBufferLayout given a map of attributes. */\n constructor(uniformTypes: Record<string, ShaderUniformType>) {\n /** number of 4 byte slots taken */\n let size: number = 0;\n\n // Add layout (type, size and offset) definitions for each uniform in the layout\n for (const [key, uniformType] of Object.entries(uniformTypes)) {\n const typeAndComponents = decodeShaderUniformType(uniformType);\n const {type, components: count} = typeAndComponents;\n // First, align (bump) current offset to an even multiple of current object (1, 2, 4)\n size = alignTo(size, count);\n // Use the aligned size as the offset of the current uniform.\n const offset = size;\n // Then, add our object's padded size ((1, 2, multiple of 4) to the current offset\n size += count;\n this.layout[key] = {type, size: count, offset};\n }\n size += (4 - (size % 4)) % 4;\n\n const actualByteLength = size * 4;\n this.byteLength = Math.max(actualByteLength, minBufferSize);\n }\n\n /** Get the data for the complete buffer */\n getData(uniformValues: Record<string, UniformValue>): Uint8Array {\n const bufferSize = Math.max(this.byteLength, minBufferSize);\n\n // Allocate three typed arrays pointing at same memory\n const arrayBuffer = getScratchArrayBuffer(bufferSize);\n const typedArrays = {\n i32: new Int32Array(arrayBuffer),\n u32: new Uint32Array(arrayBuffer),\n f32: new Float32Array(arrayBuffer),\n // TODO not implemented\n f16: new Uint16Array(arrayBuffer)\n };\n // TODO is this needed?\n // typedArrays.i32.fill(0);\n \n for (const [name, value] of Object.entries(uniformValues)) {\n const uniformLayout = this.layout[name];\n if (!uniformLayout) {\n log.warn(`Supplied uniform value ${name} not present in uniform block layout`)();\n continue;\n }\n\n const {type, size, offset} = uniformLayout;\n const typedArray = typedArrays[type];\n if (size === 1) {\n if (typeof value !== 'number' && typeof value !== 'boolean') {\n log.warn(`Supplied value for single component uniform ${name} is not a number: ${value}`)();\n continue;\n }\n // single value -> just set it\n typedArray[offset] = Number(value);\n } else {\n const numericArray = isNumberArray(value);\n if (!numericArray) {\n log.warn(`Supplied value for multi component / array uniform ${name} is not a numeric array: ${value}`)();\n continue;\n }\n // vector/matrix -> copy the supplied (typed) array, starting from offset\n // TODO: we should limit or check size in case the supplied data overflows\n typedArray.set(numericArray, offset);\n }\n }\n\n return new Uint8Array(arrayBuffer);\n } \n\n /** Does this layout have a field with specified name */\n has(name: string) {\n return Boolean(this.layout[name]);\n }\n\n /** Get offset and size for a field with specified name */\n get(name: string): {offset: number, size: number} | undefined {\n const layout = this.layout[name];\n return layout;\n }\n}\n"],"mappings":"SAGQA,uBAAuB,EAAEC,OAAO;AAAA,SAChCC,qBAAqB;AAAA,SACrBC,aAAa;AAAA,SACZC,GAAG;AAMZ,MAAMC,aAAqB,GAAG,IAAI;AAMlC,OAAO,MAAMC,mBAAmB,CAAC;EAQ/BC,WAAWA,CAACC,YAA+C,EAAE;IAAA,KAPpDC,MAAM,GAAyE,CAAC,CAAC;IAAA,KAGjFC,UAAU;IAMjB,IAAIC,IAAY,GAAG,CAAC;IAGpB,KAAK,MAAM,CAACC,GAAG,EAAEC,WAAW,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACP,YAAY,CAAC,EAAE;MAC7D,MAAMQ,iBAAiB,GAAGhB,uBAAuB,CAACa,WAAW,CAAC;MAC9D,MAAM;QAACI,IAAI;QAAEC,UAAU,EAAEC;MAAK,CAAC,GAAGH,iBAAiB;MAEnDL,IAAI,GAAGV,OAAO,CAACU,IAAI,EAAEQ,KAAK,CAAC;MAE3B,MAAMC,MAAM,GAAGT,IAAI;MAEnBA,IAAI,IAAIQ,KAAK;MACb,IAAI,CAACV,MAAM,CAACG,GAAG,CAAC,GAAG;QAACK,IAAI;QAAEN,IAAI,EAAEQ,KAAK;QAAEC;MAAM,CAAC;IAChD;IACAT,IAAI,IAAI,CAAC,CAAC,GAAIA,IAAI,GAAG,CAAE,IAAI,CAAC;IAE5B,MAAMU,gBAAgB,GAAGV,IAAI,GAAG,CAAC;IACjC,IAAI,CAACD,UAAU,GAAGY,IAAI,CAACC,GAAG,CAACF,gBAAgB,EAAEhB,aAAa,CAAC;EAC7D;EAGAmB,OAAOA,CAACC,aAA2C,EAAc;IAC/D,MAAMC,UAAU,GAAGJ,IAAI,CAACC,GAAG,CAAC,IAAI,CAACb,UAAU,EAAEL,aAAa,CAAC;IAG3D,MAAMsB,WAAW,GAAGzB,qBAAqB,CAACwB,UAAU,CAAC;IACrD,MAAME,WAAW,GAAG;MAClBC,GAAG,EAAE,IAAIC,UAAU,CAACH,WAAW,CAAC;MAChCI,GAAG,EAAE,IAAIC,WAAW,CAACL,WAAW,CAAC;MACjCM,GAAG,EAAE,IAAIC,YAAY,CAACP,WAAW,CAAC;MAElCQ,GAAG,EAAE,IAAIC,WAAW,CAACT,WAAW;IAClC,CAAC;IAID,KAAK,MAAM,CAACU,IAAI,EAAEC,KAAK,CAAC,IAAIxB,MAAM,CAACC,OAAO,CAACU,aAAa,CAAC,EAAE;MACzD,MAAMc,aAAa,GAAG,IAAI,CAAC9B,MAAM,CAAC4B,IAAI,CAAC;MACvC,IAAI,CAACE,aAAa,EAAE;QAClBnC,GAAG,CAACoC,IAAI,CAAE,0BAAyBH,IAAK,sCAAqC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"uniform-buffer-layout.js","names":["decodeShaderUniformType","alignTo","getScratchArrayBuffer","isNumberArray","log","minBufferSize","UniformBufferLayout","constructor","uniformTypes","layout","byteLength","size","key","uniformType","Object","entries","typeAndComponents","type","components","count","offset","actualByteLength","Math","max","getData","uniformValues","bufferSize","arrayBuffer","typedArrays","i32","Int32Array","u32","Uint32Array","f32","Float32Array","f16","Uint16Array","name","value","uniformLayout","warn","typedArray","Number","numericArray","set","Uint8Array","has","Boolean","get"],"sources":["../../../src/lib/uniforms/uniform-buffer-layout.ts"],"sourcesContent":["// luma.gl, MIT license\nimport type {ShaderUniformType, ShaderDataType} from '../../adapter/types/shader-types';\nimport type {UniformValue} from '../../adapter/types/types';\nimport {decodeShaderUniformType, alignTo} from '../../adapter/type-utils/decode-shader-types';\nimport {getScratchArrayBuffer} from '../utils/array-utils-flat';\nimport {isNumberArray} from '../utils/is-array';\nimport { log } from '../utils/log';\n\n/** \n * Smallest buffer size that can be used for uniform buffers.\n * TODO - does this depend on device?\n */\nconst minBufferSize: number = 1024;\n\n/**\n * Std140 layout for uniform buffers\n * Supports manual listing of uniforms\n */\nexport class UniformBufferLayout {\n readonly layout: Record<string, {offset: number, size: number, type: ShaderDataType}> = {};\n\n /** number of bytes needed for buffer allocation */\n readonly byteLength: number;\n\n\n /** Create a new UniformBufferLayout given a map of attributes. */\n constructor(uniformTypes: Record<string, ShaderUniformType>) {\n /** number of 4 byte slots taken */\n let size: number = 0;\n\n // Add layout (type, size and offset) definitions for each uniform in the layout\n for (const [key, uniformType] of Object.entries(uniformTypes)) {\n const typeAndComponents = decodeShaderUniformType(uniformType);\n const {type, components: count} = typeAndComponents;\n // First, align (bump) current offset to an even multiple of current object (1, 2, 4)\n size = alignTo(size, count);\n // Use the aligned size as the offset of the current uniform.\n const offset = size;\n // Then, add our object's padded size ((1, 2, multiple of 4) to the current offset\n size += count;\n this.layout[key] = {type, size: count, offset};\n }\n size += (4 - (size % 4)) % 4;\n\n const actualByteLength = size * 4;\n this.byteLength = Math.max(actualByteLength, minBufferSize);\n }\n\n /** Get the data for the complete buffer */\n getData(uniformValues: Record<string, UniformValue>): Uint8Array {\n const bufferSize = Math.max(this.byteLength, minBufferSize);\n\n // Allocate three typed arrays pointing at same memory\n const arrayBuffer = getScratchArrayBuffer(bufferSize);\n const typedArrays = {\n i32: new Int32Array(arrayBuffer),\n u32: new Uint32Array(arrayBuffer),\n f32: new Float32Array(arrayBuffer),\n // TODO not implemented\n f16: new Uint16Array(arrayBuffer)\n };\n // TODO is this needed?\n // typedArrays.i32.fill(0);\n \n for (const [name, value] of Object.entries(uniformValues)) {\n const uniformLayout = this.layout[name];\n if (!uniformLayout) {\n log.warn(`Supplied uniform value ${name} not present in uniform block layout`)();\n // eslint-disable-next-line no-continue\n continue;\n }\n\n const {type, size, offset} = uniformLayout;\n const typedArray = typedArrays[type];\n if (size === 1) {\n if (typeof value !== 'number' && typeof value !== 'boolean') {\n log.warn(`Supplied value for single component uniform ${name} is not a number: ${value}`)();\n // eslint-disable-next-line no-continue\n continue;\n }\n // single value -> just set it\n typedArray[offset] = Number(value);\n } else {\n const numericArray = isNumberArray(value);\n if (!numericArray) {\n log.warn(`Supplied value for multi component / array uniform ${name} is not a numeric array: ${value}`)();\n // eslint-disable-next-line no-continue\n continue;\n }\n // vector/matrix -> copy the supplied (typed) array, starting from offset\n // TODO: we should limit or check size in case the supplied data overflows\n typedArray.set(numericArray, offset);\n }\n }\n\n return new Uint8Array(arrayBuffer);\n } \n\n /** Does this layout have a field with specified name */\n has(name: string) {\n return Boolean(this.layout[name]);\n }\n\n /** Get offset and size for a field with specified name */\n get(name: string): {offset: number, size: number} | undefined {\n const layout = this.layout[name];\n return layout;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-file.js","names":["pathPrefix","setPathPrefix","prefix","loadFile","url","options","startsWith","dataType","response","fetch","loadImageBitmap","opts","image","Image","crossOrigin","src","decode","createImageBitmap","loadImage","Promise","resolve","reject","onload","onerror","Error","error","loadScript","scriptUrl","scriptId","head","document","getElementsByTagName","script","createElement","setAttribute","id","appendChild"],"sources":["../../../src/lib/utils/load-file.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nlet pathPrefix = '';\n\n/**\n * Set a relative path prefix\n */\nexport function setPathPrefix(prefix: string) {\n pathPrefix = prefix;\n}\n\n/**\n * Reads raw file data. Respects setPathPrefix.\n */\nexport async function loadFile(\n url: string,\n options?: {dataType?: 'text' | 'arrayBuffer'} & RequestInit\n): Promise<any> {\n url = url.startsWith('http') ? url : pathPrefix + url;\n const dataType = options?.dataType || 'text';\n const response = await fetch(url, options);\n return await response[dataType]();\n}\n\n/**\n * Loads ImageBitmap asynchronously. Respects setPathPrefix.\n * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'\n * @returns a promise tracking the load\n */\nexport async function loadImageBitmap(\n url: string,\n opts?: {crossOrigin?: string}\n): Promise<ImageBitmap> {\n const image = new Image();\n image.crossOrigin = opts?.crossOrigin || 'anonymous';\n image.src = url.startsWith('http') ? url : pathPrefix + url;\n await image.decode();\n return await createImageBitmap(image);\n}\n\n/**\n * Loads image asynchronously. Respects setPathPrefix.\n * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'\n * @returns a promise tracking the load\n * @deprecated Use `loadImageBitmap()` unless you are supporting old versions of Safari.\n */\nexport async function loadImage(\n url: string,\n opts?: {crossOrigin?: string}\n): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n try {\n const image = new Image();\n image.onload = () => resolve(image);\n image.onerror = () => reject(new Error(`Could not load image ${url}.`));\n image.crossOrigin = opts?.crossOrigin || 'anonymous';\n image.src = url.startsWith('http') ? url : pathPrefix + url;\n } catch (error) {\n reject(error);\n }\n });\n}\n\n/**\n * Load a script (identified by an url). When the url returns, the\n * content of this file is added into a new script element, attached to the DOM (body element)\n * @param scriptUrl defines the url of the script to laod\n * @param scriptId defines the id of the script element\n */\nexport async function loadScript(scriptUrl: string, scriptId?: string): Promise<Event> {\n const head = document.getElementsByTagName('head')[0];\n if (!head) {\n throw new Error('loadScript');\n }\n\n const script = document.createElement('script');\n script.setAttribute('type', 'text/javascript');\n script.setAttribute('src', scriptUrl);\n if (scriptId) {\n script.id = scriptId;\n }\n\n return new Promise((resolve, reject) => {\n script.onload = resolve;\n script.onerror = (error) => reject(new Error(`Unable to load script '${scriptUrl}': ${error}`));\n head.appendChild(script);\n });\n}\n"],"mappings":"AAGA,IAAIA,UAAU,GAAG,EAAE;AAKnB,OAAO,SAASC,aAAaA,CAACC,MAAc,EAAE;EAC5CF,UAAU,GAAGE,MAAM;AACrB;AAKA,OAAO,eAAeC,QAAQA,CAC5BC,GAAW,EACXC,OAA2D,EAC7C;EACdD,GAAG,GAAGA,GAAG,CAACE,UAAU,CAAC,MAAM,CAAC,GAAGF,GAAG,GAAGJ,UAAU,GAAGI,GAAG;EACrD,MAAMG,QAAQ,GAAG,CAAAF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,QAAQ,KAAI,MAAM;EAC5C,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAACL,GAAG,EAAEC,OAAO,CAAC;EAC1C,OAAO,MAAMG,QAAQ,CAACD,QAAQ,CAAC,CAAC,CAAC;AACnC;AAOA,OAAO,eAAeG,eAAeA,CACnCN,GAAW,EACXO,IAA6B,EACP;EACtB,MAAMC,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC;EACzBD,KAAK,CAACE,WAAW,GAAG,CAAAH,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,WAAW,KAAI,WAAW;EACpDF,KAAK,CAACG,GAAG,GAAGX,GAAG,CAACE,UAAU,CAAC,MAAM,CAAC,GAAGF,GAAG,GAAGJ,UAAU,GAAGI,GAAG;EAC3D,MAAMQ,KAAK,CAACI,MAAM,CAAC,CAAC;EACpB,OAAO,MAAMC,iBAAiB,CAACL,KAAK,CAAC;AACvC;AAQA,OAAO,eAAeM,SAASA,CAC7Bd,GAAW,EACXO,IAA6B,EACF;EAC3B,OAAO,IAAIQ,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtC,IAAI;MACF,MAAMT,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC;MACzBD,KAAK,CAACU,MAAM,GAAG,MAAMF,OAAO,CAACR,KAAK,CAAC;MACnCA,KAAK,CAACW,OAAO,GAAG,MAAMF,MAAM,CAAC,IAAIG,KAAK,CAAE,wBAAuBpB,GAAI,GAAE,CAAC,CAAC;MACvEQ,KAAK,CAACE,WAAW,GAAG,CAAAH,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,WAAW,KAAI,WAAW;MACpDF,KAAK,CAACG,GAAG,GAAGX,GAAG,CAACE,UAAU,CAAC,MAAM,CAAC,GAAGF,GAAG,GAAGJ,UAAU,GAAGI,GAAG;IAC7D,CAAC,CAAC,OAAOqB,KAAK,EAAE;MACdJ,MAAM,CAACI,KAAK,CAAC;IACf;EACF,CAAC,CAAC;AACJ;AAQA,OAAO,eAAeC,UAAUA,CAACC,SAAiB,EAAEC,QAAiB,EAAkB;EACrF,MAAMC,IAAI,GAAGC,QAAQ,CAACC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;EACrD,IAAI,CAACF,IAAI,EAAE;IACT,MAAM,IAAIL,KAAK,CAAC,YAAY,CAAC;EAC/B;EAEA,MAAMQ,MAAM,GAAGF,QAAQ,CAACG,aAAa,CAAC,QAAQ,CAAC;EAC/CD,MAAM,CAACE,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC;EAC9CF,MAAM,CAACE,YAAY,CAAC,KAAK,EAAEP,SAAS,CAAC;EACrC,IAAIC,QAAQ,EAAE;IACZI,MAAM,CAACG,EAAE,GAAGP,QAAQ;EACtB;EAEA,OAAO,IAAIT,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCW,MAAM,CAACV,MAAM,GAAGF,OAAO;IACvBY,MAAM,CAACT,OAAO,GAAIE,KAAK,IAAKJ,MAAM,CAAC,IAAIG,KAAK,CAAE,0BAAyBG,SAAU,MAAKF,
|
|
1
|
+
{"version":3,"file":"load-file.js","names":["pathPrefix","setPathPrefix","prefix","loadFile","url","options","startsWith","dataType","response","fetch","loadImageBitmap","opts","image","Image","crossOrigin","src","decode","createImageBitmap","loadImage","Promise","resolve","reject","onload","onerror","Error","error","loadScript","scriptUrl","scriptId","head","document","getElementsByTagName","script","createElement","setAttribute","id","appendChild"],"sources":["../../../src/lib/utils/load-file.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nlet pathPrefix = '';\n\n/**\n * Set a relative path prefix\n */\nexport function setPathPrefix(prefix: string) {\n pathPrefix = prefix;\n}\n\n/**\n * Reads raw file data. Respects setPathPrefix.\n */\nexport async function loadFile(\n url: string,\n options?: {dataType?: 'text' | 'arrayBuffer'} & RequestInit\n): Promise<any> {\n url = url.startsWith('http') ? url : pathPrefix + url;\n const dataType = options?.dataType || 'text';\n const response = await fetch(url, options);\n return await response[dataType]();\n}\n\n/**\n * Loads ImageBitmap asynchronously. Respects setPathPrefix.\n * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'\n * @returns a promise tracking the load\n */\nexport async function loadImageBitmap(\n url: string,\n opts?: {crossOrigin?: string}\n): Promise<ImageBitmap> {\n const image = new Image();\n image.crossOrigin = opts?.crossOrigin || 'anonymous';\n image.src = url.startsWith('http') ? url : pathPrefix + url;\n await image.decode();\n return await createImageBitmap(image);\n}\n\n/**\n * Loads image asynchronously. Respects setPathPrefix.\n * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'\n * @returns a promise tracking the load\n * @deprecated Use `loadImageBitmap()` unless you are supporting old versions of Safari.\n */\nexport async function loadImage(\n url: string,\n opts?: {crossOrigin?: string}\n): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n try {\n const image = new Image();\n image.onload = () => resolve(image);\n image.onerror = () => reject(new Error(`Could not load image ${url}.`));\n image.crossOrigin = opts?.crossOrigin || 'anonymous';\n image.src = url.startsWith('http') ? url : pathPrefix + url;\n } catch (error) {\n reject(error);\n }\n });\n}\n\n/**\n * Load a script (identified by an url). When the url returns, the\n * content of this file is added into a new script element, attached to the DOM (body element)\n * @param scriptUrl defines the url of the script to laod\n * @param scriptId defines the id of the script element\n */\nexport async function loadScript(scriptUrl: string, scriptId?: string): Promise<Event> {\n const head = document.getElementsByTagName('head')[0];\n if (!head) {\n throw new Error('loadScript');\n }\n\n const script = document.createElement('script');\n script.setAttribute('type', 'text/javascript');\n script.setAttribute('src', scriptUrl);\n if (scriptId) {\n script.id = scriptId;\n }\n\n return new Promise((resolve, reject) => {\n script.onload = resolve;\n script.onerror = (error) => reject(new Error(`Unable to load script '${scriptUrl}': ${error as string}`));\n head.appendChild(script);\n });\n}\n"],"mappings":"AAGA,IAAIA,UAAU,GAAG,EAAE;AAKnB,OAAO,SAASC,aAAaA,CAACC,MAAc,EAAE;EAC5CF,UAAU,GAAGE,MAAM;AACrB;AAKA,OAAO,eAAeC,QAAQA,CAC5BC,GAAW,EACXC,OAA2D,EAC7C;EACdD,GAAG,GAAGA,GAAG,CAACE,UAAU,CAAC,MAAM,CAAC,GAAGF,GAAG,GAAGJ,UAAU,GAAGI,GAAG;EACrD,MAAMG,QAAQ,GAAG,CAAAF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,QAAQ,KAAI,MAAM;EAC5C,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAACL,GAAG,EAAEC,OAAO,CAAC;EAC1C,OAAO,MAAMG,QAAQ,CAACD,QAAQ,CAAC,CAAC,CAAC;AACnC;AAOA,OAAO,eAAeG,eAAeA,CACnCN,GAAW,EACXO,IAA6B,EACP;EACtB,MAAMC,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC;EACzBD,KAAK,CAACE,WAAW,GAAG,CAAAH,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,WAAW,KAAI,WAAW;EACpDF,KAAK,CAACG,GAAG,GAAGX,GAAG,CAACE,UAAU,CAAC,MAAM,CAAC,GAAGF,GAAG,GAAGJ,UAAU,GAAGI,GAAG;EAC3D,MAAMQ,KAAK,CAACI,MAAM,CAAC,CAAC;EACpB,OAAO,MAAMC,iBAAiB,CAACL,KAAK,CAAC;AACvC;AAQA,OAAO,eAAeM,SAASA,CAC7Bd,GAAW,EACXO,IAA6B,EACF;EAC3B,OAAO,IAAIQ,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtC,IAAI;MACF,MAAMT,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC;MACzBD,KAAK,CAACU,MAAM,GAAG,MAAMF,OAAO,CAACR,KAAK,CAAC;MACnCA,KAAK,CAACW,OAAO,GAAG,MAAMF,MAAM,CAAC,IAAIG,KAAK,CAAE,wBAAuBpB,GAAI,GAAE,CAAC,CAAC;MACvEQ,KAAK,CAACE,WAAW,GAAG,CAAAH,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,WAAW,KAAI,WAAW;MACpDF,KAAK,CAACG,GAAG,GAAGX,GAAG,CAACE,UAAU,CAAC,MAAM,CAAC,GAAGF,GAAG,GAAGJ,UAAU,GAAGI,GAAG;IAC7D,CAAC,CAAC,OAAOqB,KAAK,EAAE;MACdJ,MAAM,CAACI,KAAK,CAAC;IACf;EACF,CAAC,CAAC;AACJ;AAQA,OAAO,eAAeC,UAAUA,CAACC,SAAiB,EAAEC,QAAiB,EAAkB;EACrF,MAAMC,IAAI,GAAGC,QAAQ,CAACC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;EACrD,IAAI,CAACF,IAAI,EAAE;IACT,MAAM,IAAIL,KAAK,CAAC,YAAY,CAAC;EAC/B;EAEA,MAAMQ,MAAM,GAAGF,QAAQ,CAACG,aAAa,CAAC,QAAQ,CAAC;EAC/CD,MAAM,CAACE,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC;EAC9CF,MAAM,CAACE,YAAY,CAAC,KAAK,EAAEP,SAAS,CAAC;EACrC,IAAIC,QAAQ,EAAE;IACZI,MAAM,CAACG,EAAE,GAAGP,QAAQ;EACtB;EAEA,OAAO,IAAIT,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCW,MAAM,CAACV,MAAM,GAAGF,OAAO;IACvBY,MAAM,CAACT,OAAO,GAAIE,KAAK,IAAKJ,MAAM,CAAC,IAAIG,KAAK,CAAE,0BAAyBG,SAAU,MAAKF,KAAgB,EAAC,CAAC,CAAC;IACzGI,IAAI,CAACO,WAAW,CAACJ,MAAM,CAAC;EAC1B,CAAC,CAAC;AACJ"}
|
package/dist.min.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"use strict";var __exports__=(()=>{var me=Object.defineProperty;var Ko=Object.getOwnPropertyDescriptor;var Wo=Object.getOwnPropertyNames;var Yo=Object.prototype.hasOwnProperty;var $o=(t,e)=>{for(var r in e)me(t,r,{get:e[r],enumerable:!0})},qo=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Wo(e))!Yo.call(t,o)&&o!==r&&me(t,o,{get:()=>e[o],enumerable:!(n=Ko(e,o))||n.enumerable});return t};var Xo=t=>qo(me({},"__esModule",{value:!0}),t);var Uc={};$o(Uc,{Buffer:()=>E,CanvasContext:()=>Pe,CommandBuffer:()=>Ve,CommandEncoder:()=>Ge,ComputePass:()=>Fe,ComputePipeline:()=>Me,Device:()=>$,ExternalTexture:()=>je,Framebuffer:()=>De,RenderPass:()=>Ue,RenderPipeline:()=>Ne,Resource:()=>g,Sampler:()=>Re,Shader:()=>Ae,StatsManager:()=>de,Texture:()=>M,TransformFeedback:()=>Xe,UniformBlock:()=>ue,UniformBufferLayout:()=>ae,UniformStore:()=>Po,VERSION:()=>Ut,VertexArray:()=>$e,assert:()=>ot,cancelAnimationFrame:()=>Vo,cast:()=>Io,checkProps:()=>Lo,decodeShaderAttributeType:()=>te,decodeShaderUniformType:()=>oe,decodeTextureFormat:()=>jo,decodeVertexFormat:()=>Et,deepEqual:()=>le,fillArray:()=>fo,formatCompilerLog:()=>Ro,formatValue:()=>Qe,getAttributeInfosFromLayouts:()=>We,getDataTypeFromTypedArray:()=>Je,getScratchArray:()=>uo,getScratchArrayBuffer:()=>xt,getTypedArrayFromDataType:()=>Eo,getVertexFormatFromAttribute:()=>Ao,glsl:()=>Cc,isNumberArray:()=>C,isObjectEmpty:()=>gr,isPowerOfTwo:()=>dr,isTypedArray:()=>ge,isUniformValue:()=>Ze,loadFile:()=>Uo,loadImage:()=>Fo,loadImageBitmap:()=>ko,loadScript:()=>zo,log:()=>w,luma:()=>Ft,makeRandomNumberGenerator:()=>ir,mergeShaderLayout:()=>qn,random:()=>Go,requestAnimationFrame:()=>Ho,setPathPrefix:()=>Co,splitUniformsAndBindings:()=>Do,stubRemovedMethods:()=>Bo,uid:()=>tt});function he(t){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 e=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=t||e;return!!(r&&r.indexOf("Electron")>=0)}function x(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||he()}var Jo=globalThis.self||globalThis.window||globalThis.global,q=globalThis.window||globalThis.self||globalThis.global,Zo=globalThis.document||{},K=globalThis.process||{},Qo=globalThis.console,Hc=globalThis.navigator||{};var Nt=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",Wc=x();function ti(t){try{let e=window[t],r="__storage_test__";return e.setItem(r,r),e.removeItem(r),e}catch{return null}}var Lt=class{constructor(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";this.storage=void 0,this.id=void 0,this.config=void 0,this.storage=ti(n),this.id=e,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let e={};if(this.storage){let r=this.storage.getItem(this.id);e=r?JSON.parse(r):{}}return Object.assign(this.config,e),this}};function ar(t){let e;return t<10?e="".concat(t.toFixed(2),"ms"):t<100?e="".concat(t.toFixed(1),"ms"):t<1e3?e="".concat(t.toFixed(0),"ms"):e="".concat((t/1e3).toFixed(2),"s"),e}function ur(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(e-t.length,0);return"".concat(" ".repeat(r)).concat(t)}function Mt(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,o=t.src.replace(/\(/g,"%28").replace(/\)/g,"%29");t.width>n&&(r=Math.min(r,n/t.width));let i=t.width*r,u=t.height*r,f=["font-size:1px;","padding:".concat(Math.floor(u/2),"px ").concat(Math.floor(i/2),"px;"),"line-height:".concat(u,"px;"),"background:url(".concat(o,");"),"background-size:".concat(i,"px ").concat(u,"px;"),"color:transparent;"].join("");return["".concat(e," %c+"),f]}var Ct;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Ct||(Ct={}));var ei=10;function fr(t){return typeof t!="string"?t:(t=t.toUpperCase(),Ct[t]||Ct.WHITE)}function cr(t,e,r){if(!x&&typeof t=="string"){if(e){let n=fr(e);t="\x1B[".concat(n,"m").concat(t,"\x1B[39m")}if(r){let n=fr(r);t="\x1B[".concat(n+ei,"m").concat(t,"\x1B[49m")}}return t}function sr(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],r=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(r),o=t;for(let i of n){let u=o[i];typeof u=="function"&&(e.find(f=>i===f)||(o[i]=u.bind(t)))}}function X(t,e){if(!t)throw new Error(e||"Assertion failed")}function W(){let t;if(x()&&q.performance){var e,r;t=q===null||q===void 0||(e=q.performance)===null||e===void 0||(r=e.now)===null||r===void 0?void 0:r.call(e)}else if("hrtime"in K){var n;let o=K===null||K===void 0||(n=K.hrtime)===null||n===void 0?void 0:n.call(K);t=o[0]*1e3+o[1]/1e6}else t=Date.now();return t}var J={debug:x()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},ri={enabled:!0,level:0};function L(){}var lr={},pr={once:!0},z=class{constructor(){let{id:e}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=Nt,this._startTs=W(),this._deltaTs=W(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new Lt("__probe-".concat(this.id,"__"),ri),this.timeStamp("".concat(this.id," started")),sr(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((W()-this._startTs).toPrecision(10))}getDelta(){return Number((W()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:e}),this}setLevel(e){return this._storage.setConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,r){this._storage.setConfiguration({[e]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,r){X(e,r)}warn(e){return this._getLogFunction(0,e,J.warn,arguments,pr)}error(e){return this._getLogFunction(0,e,J.error,arguments)}deprecated(e,r){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(r,"` instead"))}removed(e,r){return this.error("`".concat(e,"` has been removed. Use `").concat(r,"` instead"))}probe(e,r){return this._getLogFunction(e,r,J.log,arguments,{time:!0,once:!0})}log(e,r){return this._getLogFunction(e,r,J.debug,arguments)}info(e,r){return this._getLogFunction(e,r,console.info,arguments)}once(e,r){return this._getLogFunction(e,r,J.debug||J.info,arguments,pr)}table(e,r,n){return r?this._getLogFunction(e,r,console.table||L,n&&[n],{tag:ai(r)}):L}image(e){let{logLevel:r,priority:n,image:o,message:i="",scale:u=1}=e;return this._shouldLog(r||n)?x()?ii({image:o,message:i,scale:u}):oi({image:o,message:i,scale:u}):L}time(e,r){return this._getLogFunction(e,r,console.time?console.time:console.info)}timeEnd(e,r){return this._getLogFunction(e,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,r){return this._getLogFunction(e,r,console.timeStamp||L)}group(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},o=yr({logLevel:e,message:r,opts:n}),{collapsed:i}=n;return o.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(o)}groupCollapsed(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(e,r,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||L)}withGroup(e,r,n){this.group(e,r)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=mr(e)}_getLogFunction(e,r,n,o,i){if(this._shouldLog(e)){i=yr({logLevel:e,message:r,args:o,opts:i}),n=n||i.method,X(n),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=W();let u=i.tag||i.message;if(i.once&&u)if(!lr[u])lr[u]=W();else return L;return r=ni(this.id,i.message,i),n.bind(console,r,...i.args)}return L}};z.VERSION=Nt;function mr(t){if(!t)return 0;let e;switch(typeof t){case"number":e=t;break;case"object":e=t.logLevel||t.priority||0;break;default:return 0}return X(Number.isFinite(e)&&e>=0),e}function yr(t){let{logLevel:e,message:r}=t;t.logLevel=mr(e);let n=t.args?Array.from(t.args):[];for(;n.length&&n.shift()!==r;);switch(typeof e){case"string":case"function":r!==void 0&&n.unshift(r),t.message=e;break;case"object":Object.assign(t,e);break;default:}typeof t.message=="function"&&(t.message=t.message());let o=typeof t.message;return X(o==="string"||o==="object"),Object.assign(t,{args:n},t.opts)}function ni(t,e,r){if(typeof e=="string"){let n=r.time?ur(ar(r.total)):"";e=r.time?"".concat(t,": ").concat(n," ").concat(e):"".concat(t,": ").concat(e),e=cr(e,r.color,r.background)}return e}function oi(t){let{image:e,message:r="",scale:n=1}=t;return console.warn("removed"),L}function ii(t){let{image:e,message:r="",scale:n=1}=t;if(typeof e=="string"){let i=new Image;return i.onload=()=>{let u=Mt(i,r,n);console.log(...u)},i.src=e,L}let o=e.nodeName||"";if(o.toLowerCase()==="img")return console.log(...Mt(e,r,n)),L;if(o.toLowerCase()==="canvas"){let i=new Image;return i.onload=()=>console.log(...Mt(i,r,n)),i.src=e.toDataURL(),L}return L}function ai(t){for(let e in t)for(let r in t[e])return r||"untitled";return"empty"}var gs=new z({id:"@probe.gl/log"});var w=new z({id:"luma.gl"});function St(){let t;if(typeof window<"u"&&window.performance)t=window.performance.now();else if(typeof process<"u"&&process.hrtime){let e=process.hrtime();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var Y=class{constructor(e,r){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=e,this.type=r,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(e){return this.sampleSize=e,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(e){return this._count+=e,this._samples++,this._checkSampling(),this}subtractCount(e){return this._count-=e,this._samples++,this._checkSampling(),this}addTime(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=St(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(St()-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 Z=class{constructor(e){this.id=void 0,this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:e,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let e of Object.values(this.stats))e.reset();return this}forEach(e){for(let r of Object.values(this.stats))e(r)}getTable(){let e={};return this.forEach(r=>{e[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),e}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(e){let{name:r,type:n}=e,o=this.stats[r];return o||(e instanceof Y?o=e:o=new Y(r,n),this.stats[r]=o),o}};function Pt(t){return Pt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pt(t)}function hr(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,fi(n.key),n)}}function ui(t,e,r){return e&&hr(t.prototype,e),r&&hr(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function fi(t){var e=ci(t,"string");return Pt(e)==="symbol"?e:String(e)}function ci(t,e){if(Pt(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(Pt(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function si(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var de=function(){function t(){si(this,t),this.stats=new Map}var e=t.prototype;return e.getStats=function(n){return this.get(n)},e.get=function(n){return this.stats.has(n)||this.stats.set(n,new Z({id:n})),this.stats.get(n)},ui(t)}(),Q=new de;function li(){var t=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",e="set luma.log.level=1 (or higher) to trace rendering";if(globalThis.luma&&globalThis.luma.VERSION!==t)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat(t));return globalThis.luma||(x()&&w.log(1,"luma.gl ".concat(t," - ").concat(e))(),globalThis.luma=globalThis.luma||{VERSION:t,version:t,log:w,stats:Q}),t}var Ut=li();function ge(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)?t:null}function C(t){return Array.isArray(t)?t.length===0||typeof t[0]=="number"?t:null:ge(t)}var be={};function tt(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";be[t]=be[t]||1;var e=be[t]++;return"".concat(t,"-").concat(e)}function dr(t){return t>0&&(t&t-1)===0}function gr(t){var e=!0;for(var r in t){e=!1;break}return e}function _t(t){return _t=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_t(t)}function br(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function pi(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?br(Object(r),!0).forEach(function(n){yi(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):br(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function yi(t,e,r){return e=wr(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function vr(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,wr(n.key),n)}}function mi(t,e,r){return e&&vr(t.prototype,e),r&&vr(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function wr(t){var e=hi(t,"string");return _t(e)==="symbol"?e:String(e)}function hi(t,e){if(_t(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(_t(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function di(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var g=function(){function t(r,n,o){if(di(this,t),this.id=void 0,this.props=void 0,this.userData={},this.device=void 0,this._device=void 0,this.destroyed=!1,this.allocatedBytes=0,this._attachedResources=new Set,!r)throw new Error("no device");this._device=r,this.props=gi(n,o);var i=this.props.id!=="undefined"?this.props.id:tt(this[Symbol.toStringTag]);this.props.id=i,this.id=i,this.userData=this.props.userData||{},this.addStats()}var e=t.prototype;return e.destroy=function(){this.destroyResource()},e.delete=function(){return this.destroy(),this},e.toString=function(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")},e.getProps=function(){return this.props},e.attachResource=function(n){this._attachedResources.add(n)},e.detachResource=function(n){this._attachedResources.delete(n)},e.destroyAttachedResource=function(n){this._attachedResources.delete(n)&&n.destroy()},e.destroyAttachedResources=function(){for(var n=0,o=Object.values(this._attachedResources);n<o.length;n++){var i=o[n];i.destroy()}this._attachedResources=new Set},e.destroyResource=function(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0},e.removeStats=function(){var n=this._device.statsManager.getStats("Resource Counts"),o=this[Symbol.toStringTag];n.get("".concat(o,"s Active")).decrementCount()},e.trackAllocatedMemory=function(n){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag],i=this._device.statsManager.getStats("Resource Counts");i.get("GPU Memory").addCount(n),i.get("".concat(o," Memory")).addCount(n),this.allocatedBytes=n},e.trackDeallocatedMemory=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag],o=this._device.statsManager.getStats("Resource Counts");o.get("GPU Memory").subtractCount(this.allocatedBytes),o.get("".concat(n," Memory")).subtractCount(this.allocatedBytes),this.allocatedBytes=0},e.addStats=function(){var n=this._device.statsManager.getStats("Resource Counts"),o=this[Symbol.toStringTag];n.get("Resources Created").incrementCount(),n.get("".concat(o,"s Created")).incrementCount(),n.get("".concat(o,"s Active")).incrementCount()},mi(t)}();g.defaultProps={id:"undefined",handle:void 0,userData:void 0};function gi(t,e){var r=pi({},e);for(var n in t)t[n]!==void 0&&(r[n]=t[n]);return r}function et(t){return et=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},et(t)}var Pr;function Or(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function ve(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Or(Object(r),!0).forEach(function(n){bi(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Or(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function bi(t,e,r){return e=_r(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function vi(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Sr(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,_r(n.key),n)}}function wi(t,e,r){return e&&Sr(t.prototype,e),r&&Sr(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function _r(t){var e=Oi(t,"string");return et(e)==="symbol"?e:String(e)}function Oi(t,e){if(et(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(et(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Si(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&we(t,e)}function we(t,e){return we=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},we(t,e)}function Pi(t){var e=ji();return function(){var n=kt(t),o;if(e){var i=kt(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return _i(this,o)}}function _i(t,e){if(e&&(et(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ti(t)}function Ti(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function ji(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function kt(t){return kt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},kt(t)}Pr=Symbol.toStringTag;var E=function(t){Si(r,t);var e=Pi(r);function r(o,i){var u;vi(this,r);var f=ve({},i);return(i.usage||0)&r.INDEX&&!i.indexType&&(i.data instanceof Uint32Array?f.indexType="uint32":i.data instanceof Uint16Array&&(f.indexType="uint16")),u=e.call(this,o,f,r.defaultProps),u.usage=void 0,u.indexType=void 0,u.byteLength=void 0,u.usage=i.usage||0,u.indexType=f.indexType,u}var n=r.prototype;return n.write=function(i,u){throw new Error("not implemented")},n.readAsync=function(i,u){throw new Error("not implemented")},n.getData=function(){throw new Error("not implemented")},wi(r,[{key:Pr,get:function(){return"Buffer"}}]),r}(g);E.defaultProps=ve(ve({},g.defaultProps),{},{usage:0,byteLength:0,byteOffset:0,data:null,indexType:"uint16",mappedAtCreation:!1});E.MAP_READ=1;E.MAP_WRITE=2;E.COPY_SRC=4;E.COPY_DST=8;E.INDEX=16;E.VERTEX=32;E.UNIFORM=64;E.STORAGE=128;E.INDIRECT=256;E.QUERY_RESOLVE=512;function Tt(t){return Tt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Tt(t)}var Er;function Tr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Oe(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Tr(Object(r),!0).forEach(function(n){Ei(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Tr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Ei(t,e,r){return e=Ar(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ai(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function jr(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Ar(n.key),n)}}function xi(t,e,r){return e&&jr(t.prototype,e),r&&jr(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Ar(t){var e=Ri(t,"string");return Tt(e)==="symbol"?e:String(e)}function Ri(t,e){if(Tt(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(Tt(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}Er=Symbol.toStringTag;var $=function(){function t(r){Ai(this,t),this.id=void 0,this.statsManager=Q,this.props=void 0,this.userData={},this._lumaData={},this.info=void 0,this.lost=void 0,this.canvasContext=void 0,this.props=Oe(Oe({},t.defaultProps),r),this.id=this.props.id||tt(this[Symbol.toStringTag].toLowerCase())}var e=t.prototype;return e.loseDevice=function(){return!1},e.getCanvasContext=function(){if(!this.canvasContext)throw new Error("Device has no CanvasContext");return this.canvasContext},e.createTexture=function(n){return(n instanceof Promise||typeof n=="string")&&(n={data:n}),this._createTexture(n)},e.createCommandEncoder=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};throw new Error("not implemented")},e._getBufferProps=function(n){(n instanceof ArrayBuffer||ArrayBuffer.isView(n))&&(n={data:n});var o=Oe({},n);return(n.usage||0)&E.INDEX&&!n.indexType&&(n.data instanceof Uint32Array?o.indexType="uint32":n.data instanceof Uint16Array?o.indexType="uint16":w.warn("indices buffer content must be of integer type")()),o},xi(t,[{key:Er,get:function(){return"Device"}}]),t}();$.defaultProps={id:null,type:"best-available",canvas:null,container:null,webgl2:!0,webgl1:!0,manageState:!0,width:800,height:600,debug:Boolean(w.get("debug")),break:[],gl:null};$.VERSION=Ut;function nt(t){return nt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},nt(t)}function Se(){"use strict";Se=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(p,c,s){p[c]=s.value},o=typeof Symbol=="function"?Symbol:{},i=o.iterator||"@@iterator",u=o.asyncIterator||"@@asyncIterator",f=o.toStringTag||"@@toStringTag";function a(p,c,s){return Object.defineProperty(p,c,{value:s,enumerable:!0,configurable:!0,writable:!0}),p[c]}try{a({},"")}catch{a=function(s,y,h){return s[y]=h}}function l(p,c,s,y){var h=c&&c.prototype instanceof S?c:S,m=Object.create(h.prototype),v=new H(y||[]);return n(m,"_invoke",{value:pe(p,s,v)}),m}function d(p,c,s){try{return{type:"normal",arg:p.call(c,s)}}catch(y){return{type:"throw",arg:y}}}t.wrap=l;var b={};function S(){}function T(){}function _(){}var B={};a(B,i,function(){return this});var N=Object.getPrototypeOf,R=N&&N(N(V([])));R&&R!==e&&r.call(R,i)&&(B=R);var j=_.prototype=S.prototype=Object.create(B);function F(p){["next","throw","return"].forEach(function(c){a(p,c,function(s){return this._invoke(c,s)})})}function U(p,c){function s(h,m,v,O){var P=d(p[h],p,m);if(P.type!=="throw"){var I=P.arg,A=I.value;return A&&nt(A)=="object"&&r.call(A,"__await")?c.resolve(A.__await).then(function(D){s("next",D,v,O)},function(D){s("throw",D,v,O)}):c.resolve(A).then(function(D){I.value=D,v(I)},function(D){return s("throw",D,v,O)})}O(P.arg)}var y;n(this,"_invoke",{value:function(m,v){function O(){return new c(function(P,I){s(m,v,P,I)})}return y=y?y.then(O,O):O()}})}function pe(p,c,s){var y="suspendedStart";return function(h,m){if(y==="executing")throw new Error("Generator is already running");if(y==="completed"){if(h==="throw")throw m;return Ot()}for(s.method=h,s.arg=m;;){var v=s.delegate;if(v){var O=wt(v,s);if(O){if(O===b)continue;return O}}if(s.method==="next")s.sent=s._sent=s.arg;else if(s.method==="throw"){if(y==="suspendedStart")throw y="completed",s.arg;s.dispatchException(s.arg)}else s.method==="return"&&s.abrupt("return",s.arg);y="executing";var P=d(p,c,s);if(P.type==="normal"){if(y=s.done?"completed":"suspendedYield",P.arg===b)continue;return{value:P.arg,done:s.done}}P.type==="throw"&&(y="completed",s.method="throw",s.arg=P.arg)}}}function wt(p,c){var s=c.method,y=p.iterator[s];if(y===void 0)return c.delegate=null,s==="throw"&&p.iterator.return&&(c.method="return",c.arg=void 0,wt(p,c),c.method==="throw")||s!=="return"&&(c.method="throw",c.arg=new TypeError("The iterator does not provide a '"+s+"' method")),b;var h=d(y,p.iterator,c.arg);if(h.type==="throw")return c.method="throw",c.arg=h.arg,c.delegate=null,b;var m=h.arg;return m?m.done?(c[p.resultName]=m.value,c.next=p.nextLoc,c.method!=="return"&&(c.method="next",c.arg=void 0),c.delegate=null,b):m:(c.method="throw",c.arg=new TypeError("iterator result is not an object"),c.delegate=null,b)}function ye(p){var c={tryLoc:p[0]};1 in p&&(c.catchLoc=p[1]),2 in p&&(c.finallyLoc=p[2],c.afterLoc=p[3]),this.tryEntries.push(c)}function G(p){var c=p.completion||{};c.type="normal",delete c.arg,p.completion=c}function H(p){this.tryEntries=[{tryLoc:"root"}],p.forEach(ye,this),this.reset(!0)}function V(p){if(p){var c=p[i];if(c)return c.call(p);if(typeof p.next=="function")return p;if(!isNaN(p.length)){var s=-1,y=function h(){for(;++s<p.length;)if(r.call(p,s))return h.value=p[s],h.done=!1,h;return h.value=void 0,h.done=!0,h};return y.next=y}}return{next:Ot}}function Ot(){return{value:void 0,done:!0}}return T.prototype=_,n(j,"constructor",{value:_,configurable:!0}),n(_,"constructor",{value:T,configurable:!0}),T.displayName=a(_,f,"GeneratorFunction"),t.isGeneratorFunction=function(p){var c=typeof p=="function"&&p.constructor;return!!c&&(c===T||(c.displayName||c.name)==="GeneratorFunction")},t.mark=function(p){return Object.setPrototypeOf?Object.setPrototypeOf(p,_):(p.__proto__=_,a(p,f,"GeneratorFunction")),p.prototype=Object.create(j),p},t.awrap=function(p){return{__await:p}},F(U.prototype),a(U.prototype,u,function(){return this}),t.AsyncIterator=U,t.async=function(p,c,s,y,h){h===void 0&&(h=Promise);var m=new U(l(p,c,s,y),h);return t.isGeneratorFunction(c)?m:m.next().then(function(v){return v.done?v.value:m.next()})},F(j),a(j,f,"Generator"),a(j,i,function(){return this}),a(j,"toString",function(){return"[object Generator]"}),t.keys=function(p){var c=Object(p),s=[];for(var y in c)s.push(y);return s.reverse(),function h(){for(;s.length;){var m=s.pop();if(m in c)return h.value=m,h.done=!1,h}return h.done=!0,h}},t.values=V,H.prototype={constructor:H,reset:function(c){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(G),!c)for(var s in this)s.charAt(0)==="t"&&r.call(this,s)&&!isNaN(+s.slice(1))&&(this[s]=void 0)},stop:function(){this.done=!0;var c=this.tryEntries[0].completion;if(c.type==="throw")throw c.arg;return this.rval},dispatchException:function(c){if(this.done)throw c;var s=this;function y(I,A){return v.type="throw",v.arg=c,s.next=I,A&&(s.method="next",s.arg=void 0),!!A}for(var h=this.tryEntries.length-1;h>=0;--h){var m=this.tryEntries[h],v=m.completion;if(m.tryLoc==="root")return y("end");if(m.tryLoc<=this.prev){var O=r.call(m,"catchLoc"),P=r.call(m,"finallyLoc");if(O&&P){if(this.prev<m.catchLoc)return y(m.catchLoc,!0);if(this.prev<m.finallyLoc)return y(m.finallyLoc)}else if(O){if(this.prev<m.catchLoc)return y(m.catchLoc,!0)}else{if(!P)throw new Error("try statement without catch or finally");if(this.prev<m.finallyLoc)return y(m.finallyLoc)}}}},abrupt:function(c,s){for(var y=this.tryEntries.length-1;y>=0;--y){var h=this.tryEntries[y];if(h.tryLoc<=this.prev&&r.call(h,"finallyLoc")&&this.prev<h.finallyLoc){var m=h;break}}m&&(c==="break"||c==="continue")&&m.tryLoc<=s&&s<=m.finallyLoc&&(m=null);var v=m?m.completion:{};return v.type=c,v.arg=s,m?(this.method="next",this.next=m.finallyLoc,b):this.complete(v)},complete:function(c,s){if(c.type==="throw")throw c.arg;return c.type==="break"||c.type==="continue"?this.next=c.arg:c.type==="return"?(this.rval=this.arg=c.arg,this.method="return",this.next="end"):c.type==="normal"&&s&&(this.next=s),b},finish:function(c){for(var s=this.tryEntries.length-1;s>=0;--s){var y=this.tryEntries[s];if(y.finallyLoc===c)return this.complete(y.completion,y.afterLoc),G(y),b}},catch:function(c){for(var s=this.tryEntries.length-1;s>=0;--s){var y=this.tryEntries[s];if(y.tryLoc===c){var h=y.completion;if(h.type==="throw"){var m=h.arg;G(y)}return m}}throw new Error("illegal catch attempt")},delegateYield:function(c,s,y){return this.delegate={iterator:V(c),resultName:s,nextLoc:y},this.method==="next"&&(this.arg=void 0),b}},t}function xr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Rr(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?xr(Object(r),!0).forEach(function(n){Ii(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):xr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Ii(t,e,r){return e=Nr(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ir(t,e,r,n,o,i,u){try{var f=t[i](u),a=f.value}catch(l){r(l);return}f.done?e(a):Promise.resolve(a).then(n,o)}function Di(t){return function(){var e=this,r=arguments;return new Promise(function(n,o){var i=t.apply(e,r);function u(a){Ir(i,n,o,u,f,"next",a)}function f(a){Ir(i,n,o,u,f,"throw",a)}u(void 0)})}}function Bi(t,e){var r=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Ni(t))||e&&t&&typeof t.length=="number"){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
8
8
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,u=!1,f;return{s:function(){r=r.call(t)},n:function(){var l=r.next();return i=l.done,l},e:function(l){u=!0,f=l},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(u)throw f}}}}function Ni(t,e){if(t){if(typeof t=="string")return Dr(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Dr(t,e)}}function Dr(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function Br(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Nr(n.key),n)}}function Li(t,e,r){return e&&Br(t.prototype,e),r&&Br(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Nr(t){var e=Mi(t,"string");return nt(e)==="symbol"?e:String(e)}function Mi(t,e){if(nt(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(nt(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Ci(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var rt=new Map,Ft=function(){function t(){Ci(this,t)}return t.registerDevices=function(r){var n=Bi(r),o;try{for(n.s();!(o=n.n()).done;){var i=o.value;ot(i.type&&i.isSupported&&i.create),rt.set(i.type,i)}}catch(u){n.e(u)}finally{n.f()}},t.getAvailableDevices=function(){return Array.from(rt).map(function(r){return r.type})},t.getSupportedDevices=function(){return Array.from(rt).filter(function(r){return r.isSupported()}).map(function(r){return r.type})},t.setDefaultDeviceProps=function(r){Object.assign($.defaultProps,r)},t.createDevice=function(){var e=Di(Se().mark(function n(){var o,i,u=arguments;return Se().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:o=u.length>0&&u[0]!==void 0?u[0]:{},o=Rr(Rr({},$.defaultProps),o),o.gl&&(o.type="webgl"),a.t0=o.type,a.next=a.t0==="webgpu"?6:a.t0==="webgl"||a.t0==="webgl1"||a.t0==="webgl2"?12:a.t0==="best-available"?18:24;break;case 6:if(i=rt.get("webgpu"),!i){a.next=11;break}return a.next=10,i.create(o);case 10:return a.abrupt("return",a.sent);case 11:return a.abrupt("break",24);case 12:if(i=rt.get("webgl"),!i){a.next=17;break}return a.next=16,i.create(o);case 16:return a.abrupt("return",a.sent);case 17:return a.abrupt("break",24);case 18:if(i=rt.get("webgl"),!(i&&i.isSupported())){a.next=23;break}return a.next=22,i.create(o);case 22:return a.abrupt("return",a.sent);case 23:return a.abrupt("break",24);case 24:throw new Error("No matching device found. Ensure `@luma.gl/webgl` and/or `@luma.gl/webgpu` modules are imported.");case 25:case"end":return a.stop()}},n)}));function r(){return e.apply(this,arguments)}return r}(),Li(t)}();Ft.stats=Q;Ft.log=w;function jt(t){return jt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jt(t)}function zt(t,e){return Fi(t)||ki(t,e)||zr(t,e)||Ui()}function Ui(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
9
9
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ki(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n,o,i,u,f=[],a=!0,l=!1;try{if(i=(r=r.call(t)).next,e===0){if(Object(r)!==r)return;a=!1}else for(;!(a=(n=i.call(r)).done)&&(f.push(n.value),f.length!==e);a=!0);}catch(d){l=!0,o=d}finally{try{if(!a&&r.return!=null&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return f}}function Fi(t){if(Array.isArray(t))return t}function zi(t,e){var r=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=zr(t))||e&&t&&typeof t.length=="number"){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
10
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,u=!1,f;return{s:function(){r=r.call(t)},n:function(){var l=r.next();return i=l.done,l},e:function(l){u=!0,f=l},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(u)throw f}}}}function zr(t,e){if(t){if(typeof t=="string")return Lr(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Lr(t,e)}}function Lr(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function Mr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Cr(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Mr(Object(r),!0).forEach(function(n){Gi(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Mr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Gi(t,e,r){return e=Gr(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Hi(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Ur(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Gr(n.key),n)}}function Vi(t,e,r){return e&&Ur(t.prototype,e),r&&Ur(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Gr(t){var e=Ki(t,"string");return jt(e)==="symbol"?e:String(e)}function Ki(t,e){if(jt(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(jt(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var Wi=x()&&typeof document<"u",Gt=function(){return Wi&&document.readyState==="complete"},Yi={canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,colorSpace:"srgb",alphaMode:"opaque"},Pe=function(){function t(r){var n=this;if(Hi(this,t),this.device=void 0,this.id=void 0,this.props=void 0,this.canvas=void 0,this.htmlCanvas=void 0,this.offscreenCanvas=void 0,this.type=void 0,this.width=1,this.height=1,this.resizeObserver=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this.props=Cr(Cr({},Yi),r),r=this.props,!x()){this.id="node-canvas-context",this.type="node",this.width=this.props.width,this.height=this.props.height,this.canvas=null;return}if(r.canvas)typeof r.canvas=="string"?this.canvas=Xi(r.canvas):this.canvas=r.canvas;else{var o,i,u=Ji(r),f=qi(((o=r)===null||o===void 0?void 0:o.container)||null);f.insertBefore(u,f.firstChild),this.canvas=u,(i=r)!==null&&i!==void 0&&i.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&&r.autoResize&&(this.resizeObserver=new ResizeObserver(function(a){var l=zi(a),d;try{for(l.s();!(d=l.n()).done;){var b=d.value;b.target===n.canvas&&n.update()}}catch(S){l.e(S)}finally{l.f()}}),this.resizeObserver.observe(this.canvas))}var e=t.prototype;return e.getDevicePixelRatio=function(n){if(typeof OffscreenCanvas<"u"&&this.canvas instanceof OffscreenCanvas||(n=n===void 0?this.props.useDevicePixels:n,!n||n<=0))return 1;if(n===!0){var o=typeof window<"u"&&window.devicePixelRatio;return o||1}return n},e.getPixelSize=function(){switch(this.type){case"node":return[this.width,this.height];case"offscreen-canvas":return[this.canvas.width,this.canvas.height];case"html-canvas":var n=this.getDevicePixelRatio(),o=this.canvas;return o.parentElement?[o.clientWidth*n,o.clientHeight*n]:[this.canvas.width,this.canvas.height];default:throw new Error(this.type)}},e.getAspect=function(){var n=this.getPixelSize(),o=zt(n,2),i=o[0],u=o[1];return i/u},e.cssToDeviceRatio=function(){try{var n=this.getDrawingBufferSize(),o=zt(n,1),i=o[0],u=this._canvasSizeInfo.clientWidth;return u?i/u:1}catch{return 1}},e.cssToDevicePixels=function(n){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=this.cssToDeviceRatio(),u=this.getDrawingBufferSize(),f=zt(u,2),a=f[0],l=f[1];return Zi(n,i,a,l,o)},e.setDevicePixelRatio=function(n){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.htmlCanvas){var i="width"in o?o.width:this.htmlCanvas.clientWidth,u="height"in o?o.height:this.htmlCanvas.clientHeight;(!i||!u)&&(w.log(1,"Canvas clientWidth/clientHeight is 0")(),n=1,i=this.htmlCanvas.width||1,u=this.htmlCanvas.height||1);var f=this._canvasSizeInfo;if(f.clientWidth!==i||f.clientHeight!==u||f.devicePixelRatio!==n){var a=n,l=Math.floor(i*a),d=Math.floor(u*a);this.htmlCanvas.width=l,this.htmlCanvas.height=d;var b=this.getDrawingBufferSize(),S=zt(b,2),T=S[0],_=S[1];(T!==l||_!==d)&&(a=Math.min(T/i,_/u),this.htmlCanvas.width=Math.floor(i*a),this.htmlCanvas.height=Math.floor(u*a),w.warn("Device pixel ratio clamped")()),this._canvasSizeInfo.clientWidth=i,this._canvasSizeInfo.clientHeight=u,this._canvasSizeInfo.devicePixelRatio=n}}},e.getDrawingBufferSize=function(){var n=this.device.gl;if(!n)throw new Error("canvas size");return[n.drawingBufferWidth,n.drawingBufferHeight]},e._setAutoCreatedCanvasId=function(n){var o;((o=this.htmlCanvas)===null||o===void 0?void 0:o.id)==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=n)},Vi(t,null,[{key:"isPageLoaded",get:function(){return Gt()}}]),t}();Pe.pageLoaded=$i();function $i(){return Gt()||typeof window>"u"?Promise.resolve():new Promise(function(t){window.addEventListener("load",function(){return t()})})}function qi(t){if(typeof t=="string"){var e=document.getElementById(t);if(!e&&!Gt())throw new Error("Accessing '".concat(t,"' before page was loaded"));if(!e)throw new Error("".concat(t," is not an HTML element"));return e}else if(t)return t;return document.body}function Xi(t){var e=document.getElementById(t);if(!e&&!Gt())throw new Error("Accessing '".concat(t,"' before page was loaded"));if(!(e instanceof HTMLCanvasElement))throw new Error("'".concat(e,"' is not a canvas element"));return e}function Ji(t){var e=t.width,r=t.height,n=document.createElement("canvas");return n.id="lumagl-auto-created-canvas",n.width=e||1,n.height=r||1,n.style.width=Number.isFinite(e)?"".concat(e,"px"):"100%",n.style.height=Number.isFinite(r)?"".concat(r,"px"):"100%",n}function Zi(t,e,r,n,o){var i=t,u=kr(i[0],e,r),f=Fr(i[1],e,n,o),a=kr(i[0]+1,e,r),l=a===r-1?a:a-1;a=Fr(i[1]+1,e,n,o);var d;return o?(a=a===0?a:a+1,d=f,f=a):d=a===n-1?a:a-1,{x:u,y:f,width:Math.max(l-u+1,1),height:Math.max(d-f+1,1)}}function kr(t,e,r){var n=Math.min(Math.round(t*e),r-1);return n}function Fr(t,e,r,n){return n?Math.max(0,r-1-Math.round(t*e)):Math.min(Math.round(t*e),r-1)}function it(t){return it=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},it(t)}var Wr;function Hr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Vr(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Hr(Object(r),!0).forEach(function(n){Qi(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Hr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Qi(t,e,r){return e=Yr(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ta(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Kr(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Yr(n.key),n)}}function ea(t,e,r){return e&&Kr(t.prototype,e),r&&Kr(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Yr(t){var e=ra(t,"string");return it(e)==="symbol"?e:String(e)}function ra(t,e){if(it(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(it(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function na(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_e(t,e)}function _e(t,e){return _e=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},_e(t,e)}function oa(t){var e=ua();return function(){var n=Ht(t),o;if(e){var i=Ht(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return ia(this,o)}}function ia(t,e){if(e&&(it(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return aa(t)}function aa(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function ua(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ht(t){return Ht=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Ht(t)}Wr=Symbol.toStringTag;var M=function(t){na(r,t);var e=oa(r);function r(n,o){var i,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:r.defaultProps;return ta(this,r),i=e.call(this,n,o,u),i.dimension=void 0,i.format=void 0,i.width=void 0,i.height=void 0,i.depth=void 0,i.sampler=void 0,i.dimension=i.props.dimension,i.format=i.props.format,i.width=i.props.width,i.height=i.props.height,i.depth=i.props.depth,i}return ea(r,[{key:Wr,get:function(){return"Texture"}}]),r}(g);M.defaultProps=Vr(Vr({},g.defaultProps),{},{data:null,dimension:"2d",format:"rgba8unorm",width:void 0,height:void 0,depth:1,mipmaps:!0,sampler:{},compressed:!1,usage:0,mipLevels:void 0,samples:void 0,type:void 0});M.COPY_SRC=1;M.COPY_DST=2;M.TEXTURE_BINDING=4;M.STORAGE_BINDING=8;M.RENDER_ATTACHMENT=16;function at(t){return at=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},at(t)}var Jr;function $r(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function qr(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?$r(Object(r),!0).forEach(function(n){fa(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):$r(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function fa(t,e,r){return e=Zr(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ca(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Xr(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Zr(n.key),n)}}function sa(t,e,r){return e&&Xr(t.prototype,e),r&&Xr(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Zr(t){var e=la(t,"string");return at(e)==="symbol"?e:String(e)}function la(t,e){if(at(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(at(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function pa(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Te(t,e)}function Te(t,e){return Te=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},Te(t,e)}function ya(t){var e=da();return function(){var n=Vt(t),o;if(e){var i=Vt(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return ma(this,o)}}function ma(t,e){if(e&&(at(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ha(t)}function ha(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function da(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Vt(t){return Vt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Vt(t)}Jr=Symbol.toStringTag;var je=function(t){pa(r,t);var e=ya(r);function r(n,o){return ca(this,r),e.call(this,n,o,r.defaultProps)}return sa(r,[{key:Jr,get:function(){return"ExternalTexture"}}]),r}(g);je.defaultProps=qr(qr({},g.defaultProps),{},{source:null,colorSpace:"srgb"});function ut(t){return ut=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ut(t)}var rn;function Qr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function tn(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Qr(Object(r),!0).forEach(function(n){ga(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Qr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function ga(t,e,r){return e=nn(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ba(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function en(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,nn(n.key),n)}}function va(t,e,r){return e&&en(t.prototype,e),r&&en(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function nn(t){var e=wa(t,"string");return ut(e)==="symbol"?e:String(e)}function wa(t,e){if(ut(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(ut(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Oa(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Ee(t,e)}function Ee(t,e){return Ee=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},Ee(t,e)}function Sa(t){var e=Ta();return function(){var n=Kt(t),o;if(e){var i=Kt(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return Pa(this,o)}}function Pa(t,e){if(e&&(ut(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _a(t)}function _a(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Ta(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Kt(t){return Kt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Kt(t)}rn=Symbol.toStringTag;var Ae=function(t){Oa(r,t);var e=Sa(r);function r(n,o){var i;return ba(this,r),i=e.call(this,n,o,r.defaultProps),i.stage=void 0,i.source=void 0,i.stage=i.props.stage,i.source=i.props.source,i}return va(r,[{key:rn,get:function(){return"Shader"}}]),r}(g);Ae.defaultProps=tn(tn({},g.defaultProps),{},{stage:"vertex",source:"",sourceMap:null,language:"auto",shaderType:0});function ft(t){return ft=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ft(t)}var fn;function on(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function an(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?on(Object(r),!0).forEach(function(n){ja(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):on(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function ja(t,e,r){return e=cn(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ea(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function un(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,cn(n.key),n)}}function Aa(t,e,r){return e&&un(t.prototype,e),r&&un(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function cn(t){var e=xa(t,"string");return ft(e)==="symbol"?e:String(e)}function xa(t,e){if(ft(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(ft(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Ra(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&xe(t,e)}function xe(t,e){return xe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},xe(t,e)}function Ia(t){var e=Na();return function(){var n=Wt(t),o;if(e){var i=Wt(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return Da(this,o)}}function Da(t,e){if(e&&(ft(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ba(t)}function Ba(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Na(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Wt(t){return Wt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Wt(t)}fn=Symbol.toStringTag;var Re=function(t){Ra(r,t);var e=Ia(r);function r(n,o){return Ea(this,r),e.call(this,n,o,r.defaultProps)}return Aa(r,[{key:fn,get:function(){return"Sampler"}}]),r}(g);Re.defaultProps=an(an({},g.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});function st(t){return st=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},st(t)}var yn;function sn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function ct(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?sn(Object(r),!0).forEach(function(n){La(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):sn(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function La(t,e,r){return e=mn(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ma(t,e){return Fa(t)||ka(t,e)||Ua(t,e)||Ca()}function Ca(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
10
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,u=!1,f;return{s:function(){r=r.call(t)},n:function(){var l=r.next();return i=l.done,l},e:function(l){u=!0,f=l},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(u)throw f}}}}function zr(t,e){if(t){if(typeof t=="string")return Lr(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Lr(t,e)}}function Lr(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function Mr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Cr(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Mr(Object(r),!0).forEach(function(n){Gi(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Mr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Gi(t,e,r){return e=Gr(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Hi(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Ur(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Gr(n.key),n)}}function Vi(t,e,r){return e&&Ur(t.prototype,e),r&&Ur(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Gr(t){var e=Ki(t,"string");return jt(e)==="symbol"?e:String(e)}function Ki(t,e){if(jt(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(jt(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var Wi=x()&&typeof document<"u",Gt=function(){return Wi&&document.readyState==="complete"},Yi={canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,colorSpace:"srgb",alphaMode:"opaque"},Pe=function(){function t(r){var n=this;if(Hi(this,t),this.device=void 0,this.id=void 0,this.props=void 0,this.canvas=void 0,this.htmlCanvas=void 0,this.offscreenCanvas=void 0,this.type=void 0,this.width=1,this.height=1,this.resizeObserver=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this.props=Cr(Cr({},Yi),r),r=this.props,!x()){this.id="node-canvas-context",this.type="node",this.width=this.props.width,this.height=this.props.height,this.canvas=null;return}if(r.canvas)typeof r.canvas=="string"?this.canvas=Xi(r.canvas):this.canvas=r.canvas;else{var o,i,u=Ji(r),f=qi(((o=r)===null||o===void 0?void 0:o.container)||null);f.insertBefore(u,f.firstChild),this.canvas=u,(i=r)!==null&&i!==void 0&&i.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&&r.autoResize&&(this.resizeObserver=new ResizeObserver(function(a){var l=zi(a),d;try{for(l.s();!(d=l.n()).done;){var b=d.value;b.target===n.canvas&&n.update()}}catch(S){l.e(S)}finally{l.f()}}),this.resizeObserver.observe(this.canvas))}var e=t.prototype;return e.getDevicePixelRatio=function(n){if(typeof OffscreenCanvas<"u"&&this.canvas instanceof OffscreenCanvas||(n=n===void 0?this.props.useDevicePixels:n,!n||n<=0))return 1;if(n===!0){var o=typeof window<"u"&&window.devicePixelRatio;return o||1}return n},e.getPixelSize=function(){switch(this.type){case"node":return[this.width,this.height];case"offscreen-canvas":return[this.canvas.width,this.canvas.height];case"html-canvas":var n=this.getDevicePixelRatio(),o=this.canvas;return o.parentElement?[o.clientWidth*n,o.clientHeight*n]:[this.canvas.width,this.canvas.height];default:throw new Error(this.type)}},e.getAspect=function(){var n=this.getPixelSize(),o=zt(n,2),i=o[0],u=o[1];return i/u},e.cssToDeviceRatio=function(){try{var n=this.getDrawingBufferSize(),o=zt(n,1),i=o[0],u=this._canvasSizeInfo.clientWidth;return u?i/u:1}catch{return 1}},e.cssToDevicePixels=function(n){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=this.cssToDeviceRatio(),u=this.getDrawingBufferSize(),f=zt(u,2),a=f[0],l=f[1];return Zi(n,i,a,l,o)},e.setDevicePixelRatio=function(n){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.htmlCanvas){var i="width"in o?o.width:this.htmlCanvas.clientWidth,u="height"in o?o.height:this.htmlCanvas.clientHeight;(!i||!u)&&(w.log(1,"Canvas clientWidth/clientHeight is 0")(),n=1,i=this.htmlCanvas.width||1,u=this.htmlCanvas.height||1);var f=this._canvasSizeInfo;if(f.clientWidth!==i||f.clientHeight!==u||f.devicePixelRatio!==n){var a=n,l=Math.floor(i*a),d=Math.floor(u*a);this.htmlCanvas.width=l,this.htmlCanvas.height=d;var b=this.getDrawingBufferSize(),S=zt(b,2),T=S[0],_=S[1];(T!==l||_!==d)&&(a=Math.min(T/i,_/u),this.htmlCanvas.width=Math.floor(i*a),this.htmlCanvas.height=Math.floor(u*a),w.warn("Device pixel ratio clamped")()),this._canvasSizeInfo.clientWidth=i,this._canvasSizeInfo.clientHeight=u,this._canvasSizeInfo.devicePixelRatio=n}}},e.getDrawingBufferSize=function(){var n=this.device.gl;if(!n)throw new Error("canvas size");return[n.drawingBufferWidth,n.drawingBufferHeight]},e._setAutoCreatedCanvasId=function(n){var o;((o=this.htmlCanvas)===null||o===void 0?void 0:o.id)==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=n)},Vi(t,null,[{key:"isPageLoaded",get:function(){return Gt()}}]),t}();Pe.pageLoaded=$i();function $i(){return Gt()||typeof window>"u"?Promise.resolve():new Promise(function(t){window.addEventListener("load",function(){return t()})})}function qi(t){if(typeof t=="string"){var e=document.getElementById(t);if(!e&&!Gt())throw new Error("Accessing '".concat(t,"' before page was loaded"));if(!e)throw new Error("".concat(t," is not an HTML element"));return e}else if(t)return t;return document.body}function Xi(t){var e=document.getElementById(t);if(!e&&!Gt())throw new Error("Accessing '".concat(t,"' before page was loaded"));if(!(e instanceof HTMLCanvasElement))throw new Error("Object is not a canvas element");return e}function Ji(t){var e=t.width,r=t.height,n=document.createElement("canvas");return n.id="lumagl-auto-created-canvas",n.width=e||1,n.height=r||1,n.style.width=Number.isFinite(e)?"".concat(e,"px"):"100%",n.style.height=Number.isFinite(r)?"".concat(r,"px"):"100%",n}function Zi(t,e,r,n,o){var i=t,u=kr(i[0],e,r),f=Fr(i[1],e,n,o),a=kr(i[0]+1,e,r),l=a===r-1?a:a-1;a=Fr(i[1]+1,e,n,o);var d;return o?(a=a===0?a:a+1,d=f,f=a):d=a===n-1?a:a-1,{x:u,y:f,width:Math.max(l-u+1,1),height:Math.max(d-f+1,1)}}function kr(t,e,r){var n=Math.min(Math.round(t*e),r-1);return n}function Fr(t,e,r,n){return n?Math.max(0,r-1-Math.round(t*e)):Math.min(Math.round(t*e),r-1)}function it(t){return it=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},it(t)}var Wr;function Hr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Vr(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Hr(Object(r),!0).forEach(function(n){Qi(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Hr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Qi(t,e,r){return e=Yr(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ta(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Kr(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Yr(n.key),n)}}function ea(t,e,r){return e&&Kr(t.prototype,e),r&&Kr(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Yr(t){var e=ra(t,"string");return it(e)==="symbol"?e:String(e)}function ra(t,e){if(it(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(it(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function na(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_e(t,e)}function _e(t,e){return _e=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},_e(t,e)}function oa(t){var e=ua();return function(){var n=Ht(t),o;if(e){var i=Ht(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return ia(this,o)}}function ia(t,e){if(e&&(it(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return aa(t)}function aa(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function ua(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ht(t){return Ht=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Ht(t)}Wr=Symbol.toStringTag;var M=function(t){na(r,t);var e=oa(r);function r(n,o){var i,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:r.defaultProps;return ta(this,r),i=e.call(this,n,o,u),i.dimension=void 0,i.format=void 0,i.width=void 0,i.height=void 0,i.depth=void 0,i.sampler=void 0,i.dimension=i.props.dimension,i.format=i.props.format,i.width=i.props.width,i.height=i.props.height,i.depth=i.props.depth,i}return ea(r,[{key:Wr,get:function(){return"Texture"}}]),r}(g);M.defaultProps=Vr(Vr({},g.defaultProps),{},{data:null,dimension:"2d",format:"rgba8unorm",width:void 0,height:void 0,depth:1,mipmaps:!0,sampler:{},compressed:!1,usage:0,mipLevels:void 0,samples:void 0,type:void 0});M.COPY_SRC=1;M.COPY_DST=2;M.TEXTURE_BINDING=4;M.STORAGE_BINDING=8;M.RENDER_ATTACHMENT=16;function at(t){return at=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},at(t)}var Jr;function $r(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function qr(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?$r(Object(r),!0).forEach(function(n){fa(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):$r(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function fa(t,e,r){return e=Zr(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ca(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Xr(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Zr(n.key),n)}}function sa(t,e,r){return e&&Xr(t.prototype,e),r&&Xr(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Zr(t){var e=la(t,"string");return at(e)==="symbol"?e:String(e)}function la(t,e){if(at(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(at(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function pa(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Te(t,e)}function Te(t,e){return Te=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},Te(t,e)}function ya(t){var e=da();return function(){var n=Vt(t),o;if(e){var i=Vt(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return ma(this,o)}}function ma(t,e){if(e&&(at(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ha(t)}function ha(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function da(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Vt(t){return Vt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Vt(t)}Jr=Symbol.toStringTag;var je=function(t){pa(r,t);var e=ya(r);function r(n,o){return ca(this,r),e.call(this,n,o,r.defaultProps)}return sa(r,[{key:Jr,get:function(){return"ExternalTexture"}}]),r}(g);je.defaultProps=qr(qr({},g.defaultProps),{},{source:null,colorSpace:"srgb"});function ut(t){return ut=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ut(t)}var rn;function Qr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function tn(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Qr(Object(r),!0).forEach(function(n){ga(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Qr(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function ga(t,e,r){return e=nn(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ba(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function en(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,nn(n.key),n)}}function va(t,e,r){return e&&en(t.prototype,e),r&&en(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function nn(t){var e=wa(t,"string");return ut(e)==="symbol"?e:String(e)}function wa(t,e){if(ut(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(ut(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Oa(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Ee(t,e)}function Ee(t,e){return Ee=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},Ee(t,e)}function Sa(t){var e=Ta();return function(){var n=Kt(t),o;if(e){var i=Kt(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return Pa(this,o)}}function Pa(t,e){if(e&&(ut(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _a(t)}function _a(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Ta(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Kt(t){return Kt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Kt(t)}rn=Symbol.toStringTag;var Ae=function(t){Oa(r,t);var e=Sa(r);function r(n,o){var i;return ba(this,r),i=e.call(this,n,o,r.defaultProps),i.stage=void 0,i.source=void 0,i.stage=i.props.stage,i.source=i.props.source,i}return va(r,[{key:rn,get:function(){return"Shader"}}]),r}(g);Ae.defaultProps=tn(tn({},g.defaultProps),{},{stage:"vertex",source:"",sourceMap:null,language:"auto",shaderType:0});function ft(t){return ft=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ft(t)}var fn;function on(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function an(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?on(Object(r),!0).forEach(function(n){ja(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):on(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function ja(t,e,r){return e=cn(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ea(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function un(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,cn(n.key),n)}}function Aa(t,e,r){return e&&un(t.prototype,e),r&&un(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function cn(t){var e=xa(t,"string");return ft(e)==="symbol"?e:String(e)}function xa(t,e){if(ft(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(ft(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Ra(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&xe(t,e)}function xe(t,e){return xe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},xe(t,e)}function Ia(t){var e=Na();return function(){var n=Wt(t),o;if(e){var i=Wt(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return Da(this,o)}}function Da(t,e){if(e&&(ft(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ba(t)}function Ba(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Na(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Wt(t){return Wt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Wt(t)}fn=Symbol.toStringTag;var Re=function(t){Ra(r,t);var e=Ia(r);function r(n,o){return Ea(this,r),e.call(this,n,o,r.defaultProps)}return Aa(r,[{key:fn,get:function(){return"Sampler"}}]),r}(g);Re.defaultProps=an(an({},g.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});function st(t){return st=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},st(t)}var yn;function sn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function ct(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?sn(Object(r),!0).forEach(function(n){La(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):sn(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function La(t,e,r){return e=mn(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ma(t,e){return Fa(t)||ka(t,e)||Ua(t,e)||Ca()}function Ca(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
11
11
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ua(t,e){if(t){if(typeof t=="string")return ln(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ln(t,e)}}function ln(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function ka(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n,o,i,u,f=[],a=!0,l=!1;try{if(i=(r=r.call(t)).next,e===0){if(Object(r)!==r)return;a=!1}else for(;!(a=(n=i.call(r)).done)&&(f.push(n.value),f.length!==e);a=!0);}catch(d){l=!0,o=d}finally{try{if(!a&&r.return!=null&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return f}}function Fa(t){if(Array.isArray(t))return t}function za(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function pn(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,mn(n.key),n)}}function Ga(t,e,r){return e&&pn(t.prototype,e),r&&pn(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function mn(t){var e=Ha(t,"string");return st(e)==="symbol"?e:String(e)}function Ha(t,e){if(st(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(st(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Va(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Ie(t,e)}function Ie(t,e){return Ie=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},Ie(t,e)}function Ka(t){var e=$a();return function(){var n=Yt(t),o;if(e){var i=Yt(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return Wa(this,o)}}function Wa(t,e){if(e&&(st(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ya(t)}function Ya(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function $a(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Yt(t){return Yt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Yt(t)}yn=Symbol.toStringTag;var De=function(t){Va(r,t);var e=Ka(r);function r(o){var i,u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return za(this,r),i=e.call(this,o,u,r.defaultProps),i.width=void 0,i.height=void 0,i.colorAttachments=[],i.depthStencilAttachment=null,i.width=i.props.width,i.height=i.props.height,i}var n=r.prototype;return n.resize=function(i){var u=!i;if(i){var f=Array.isArray(i)?i:[i.width,i.height],a=Ma(f,2),l=a[0],d=a[1];u=u||d!==this.height||l!==this.width,this.width=l,this.height=d}u&&(w.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(this.width,"x").concat(this.height))(),this.resizeAttachments(this.width,this.height))},n.autoCreateAttachmentTextures=function(){var i=this;if(this.colorAttachments=this.props.colorAttachments.map(function(f){if(typeof f=="string"){var a=i.createColorTexture(f);return i.attachResource(a),a}return f}),this.props.depthStencilAttachment)if(typeof this.props.depthStencilAttachment=="string"){var u=this.createDepthStencilTexture(this.props.depthStencilAttachment);this.attachResource(u),this.depthStencilAttachment=u}else this.depthStencilAttachment=this.props.depthStencilAttachment},n.createColorTexture=function(i){return this.device.createTexture({id:"color-attachment",usage:M.RENDER_ATTACHMENT,format:i,width:this.width,height:this.height})},n.createDepthStencilTexture=function(i){return this.device.createTexture({id:"depth-stencil-attachment",usage:M.RENDER_ATTACHMENT,format:i,width:this.width,height:this.height})},n.resizeAttachments=function(i,u){for(var f=0;f<this.colorAttachments.length;++f)if(this.colorAttachments[f]){var a=this.device._createTexture(ct(ct({},this.colorAttachments[f].props),{},{width:i,height:u}));this.destroyAttachedResource(this.colorAttachments[f]),this.colorAttachments[f]=a,this.attachResource(a)}if(this.depthStencilAttachment){var l=this.device._createTexture(ct(ct({},this.depthStencilAttachment.props),{},{width:i,height:u}));this.destroyAttachedResource(this.depthStencilAttachment),this.depthStencilAttachment=l,this.attachResource(l)}},Ga(r,[{key:yn,get:function(){return"Framebuffer"}}]),r}(g);De.defaultProps=ct(ct({},g.defaultProps),{},{width:1,height:1,colorAttachments:[],depthStencilAttachment:null});function lt(t){return lt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},lt(t)}var bn;function hn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function dn(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?hn(Object(r),!0).forEach(function(n){qa(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):hn(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function qa(t,e,r){return e=vn(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Xa(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function gn(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,vn(n.key),n)}}function Ja(t,e,r){return e&&gn(t.prototype,e),r&&gn(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function vn(t){var e=Za(t,"string");return lt(e)==="symbol"?e:String(e)}function Za(t,e){if(lt(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(lt(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Qa(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Be(t,e)}function Be(t,e){return Be=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},Be(t,e)}function tu(t){var e=nu();return function(){var n=$t(t),o;if(e){var i=$t(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return eu(this,o)}}function eu(t,e){if(e&&(lt(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ru(t)}function ru(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function nu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function $t(t){return $t=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},$t(t)}bn=Symbol.toStringTag;var Ne=function(t){Qa(r,t);var e=tu(r);function r(n,o){var i;return Xa(this,r),i=e.call(this,n,o,r.defaultProps),i.hash="",i.vs=void 0,i.fs=void 0,i.shaderLayout=void 0,i.bufferLayout=void 0,i.shaderLayout=i.props.shaderLayout,i.bufferLayout=i.props.bufferLayout||[],i}return Ja(r,[{key:bn,get:function(){return"RenderPipeline"}}]),r}(g);Ne.defaultProps=dn(dn({},g.defaultProps),{},{vs:null,vsEntryPoint:"",vsConstants:{},fs:null,fsEntryPoint:"",fsConstants:{},shaderLayout:null,bufferLayout:[],topology:"triangle-list",parameters:{},vertexCount:0,instanceCount:0,bindings:{},uniforms:{}});function pt(t){return pt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pt(t)}var Pn;function wn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function On(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?wn(Object(r),!0).forEach(function(n){ou(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):wn(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function ou(t,e,r){return e=_n(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function iu(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Sn(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,_n(n.key),n)}}function au(t,e,r){return e&&Sn(t.prototype,e),r&&Sn(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function _n(t){var e=uu(t,"string");return pt(e)==="symbol"?e:String(e)}function uu(t,e){if(pt(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(pt(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function fu(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Le(t,e)}function Le(t,e){return Le=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},Le(t,e)}function cu(t){var e=pu();return function(){var n=qt(t),o;if(e){var i=qt(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return su(this,o)}}function su(t,e){if(e&&(pt(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return lu(t)}function lu(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function pu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function qt(t){return qt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},qt(t)}Pn=Symbol.toStringTag;var Me=function(t){fu(r,t);var e=cu(r);function r(n,o){var i;return iu(this,r),i=e.call(this,n,o,r.defaultProps),i.hash="",i}return au(r,[{key:Pn,get:function(){return"ComputePipeline"}}]),r}(g);Me.defaultProps=On(On({},g.defaultProps),{},{cs:void 0,csEntryPoint:void 0,csConstants:{},shaderLayout:[]});function yt(t){return yt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},yt(t)}var An;function Tn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function jn(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Tn(Object(r),!0).forEach(function(n){yu(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Tn(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function yu(t,e,r){return e=xn(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function mu(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function En(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,xn(n.key),n)}}function hu(t,e,r){return e&&En(t.prototype,e),r&&En(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function xn(t){var e=du(t,"string");return yt(e)==="symbol"?e:String(e)}function du(t,e){if(yt(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(yt(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function gu(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Ce(t,e)}function Ce(t,e){return Ce=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},Ce(t,e)}function bu(t){var e=Ou();return function(){var n=Xt(t),o;if(e){var i=Xt(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return vu(this,o)}}function vu(t,e){if(e&&(yt(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return wu(t)}function wu(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Ou(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Xt(t){return Xt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Xt(t)}An=Symbol.toStringTag;var Ue=function(t){gu(r,t);var e=bu(r);function r(n,o){return mu(this,r),e.call(this,n,o,r.defaultProps)}return hu(r,[{key:An,get:function(){return"RenderPass"}}]),r}(g);Ue.defaultProps=jn(jn({},g.defaultProps),{},{framebuffer:null,parameters:void 0,clearColor:[0,0,0,0],clearDepth:1,clearStencil:0,depthReadOnly:!1,stencilReadOnly:!1,discard:!1});function mt(t){return mt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},mt(t)}var Dn;function Rn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Su(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Rn(Object(r),!0).forEach(function(n){Pu(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Rn(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Pu(t,e,r){return e=Bn(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function _u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function In(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Bn(n.key),n)}}function Tu(t,e,r){return e&&In(t.prototype,e),r&&In(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Bn(t){var e=ju(t,"string");return mt(e)==="symbol"?e:String(e)}function ju(t,e){if(mt(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(mt(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Eu(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&ke(t,e)}function ke(t,e){return ke=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},ke(t,e)}function Au(t){var e=Iu();return function(){var n=Jt(t),o;if(e){var i=Jt(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return xu(this,o)}}function xu(t,e){if(e&&(mt(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ru(t)}function Ru(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Iu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Jt(t){return Jt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Jt(t)}Dn=Symbol.toStringTag;var Fe=function(t){Eu(r,t);var e=Au(r);function r(n,o){return _u(this,r),e.call(this,n,o,g.defaultProps)}return Tu(r,[{key:Dn,get:function(){return"ComputePass"}}]),r}(g);Fe.defaultProps=Su({},g.defaultProps);function ht(t){return ht=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ht(t)}var Cn;function Nn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Ln(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Nn(Object(r),!0).forEach(function(n){Du(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Nn(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Du(t,e,r){return e=Un(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Bu(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Mn(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Un(n.key),n)}}function Nu(t,e,r){return e&&Mn(t.prototype,e),r&&Mn(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Un(t){var e=Lu(t,"string");return ht(e)==="symbol"?e:String(e)}function Lu(t,e){if(ht(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(ht(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Mu(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&ze(t,e)}function ze(t,e){return ze=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},ze(t,e)}function Cu(t){var e=Fu();return function(){var n=Zt(t),o;if(e){var i=Zt(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return Uu(this,o)}}function Uu(t,e){if(e&&(ht(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ku(t)}function ku(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Fu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Zt(t){return Zt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Zt(t)}Cn=Symbol.toStringTag;var Ge=function(t){Mu(r,t);var e=Cu(r);function r(o,i){return Bu(this,r),e.call(this,o,i,r.defaultProps)}var n=r.prototype;return n.pushDebugGroup=function(i){},n.popDebugGroup=function(){},n.insertDebugMarker=function(i){},Nu(r,[{key:Cn,get:function(){return"CommandEncoder"}}]),r}(g);Ge.defaultProps=Ln(Ln({},g.defaultProps),{},{measureExecutionTime:void 0});function dt(t){return dt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},dt(t)}var zn;function kn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function zu(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?kn(Object(r),!0).forEach(function(n){Gu(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):kn(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Gu(t,e,r){return e=Gn(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Hu(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Fn(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Gn(n.key),n)}}function Vu(t,e,r){return e&&Fn(t.prototype,e),r&&Fn(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Gn(t){var e=Ku(t,"string");return dt(e)==="symbol"?e:String(e)}function Ku(t,e){if(dt(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(dt(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Wu(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&He(t,e)}function He(t,e){return He=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},He(t,e)}function Yu(t){var e=Xu();return function(){var n=Qt(t),o;if(e){var i=Qt(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return $u(this,o)}}function $u(t,e){if(e&&(dt(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return qu(t)}function qu(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Xu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Qt(t){return Qt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Qt(t)}zn=Symbol.toStringTag;var Ve=function(t){Wu(r,t);var e=Yu(r);function r(n,o){return Hu(this,r),e.call(this,n,o,r.defaultProps)}return Vu(r,[{key:zn,get:function(){return"CommandBuffer"}}]),r}(g);Ve.defaultProps=zu({},g.defaultProps);function Ju(t,e){return ef(t)||tf(t,e)||Qu(t,e)||Zu()}function Zu(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
12
12
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Qu(t,e){if(t){if(typeof t=="string")return Hn(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Hn(t,e)}}function Hn(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function tf(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n,o,i,u,f=[],a=!0,l=!1;try{if(i=(r=r.call(t)).next,e===0){if(Object(r)!==r)return;a=!1}else for(;!(a=(n=i.call(r)).done)&&(f.push(n.value),f.length!==e);a=!0);}catch(d){l=!0,o=d}finally{try{if(!a&&r.return!=null&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return f}}function ef(t){if(Array.isArray(t))return t}function te(t){var e=Ju(nf[t],2),r=e[0],n=e[1],o=r==="i32"||r==="u32",i=r!=="u32",u=of[r]*n,f=rf(r,n);return{dataType:r,components:n,defaultVertexFormat:f,byteLength:u,integer:o,signed:i}}function rf(t,e){var r;switch(t){case"f32":r="float32";break;case"i32":r="sint32";break;case"u32":r="uint32";break;case"f16":return e<=2?"float16x2":"float16x4"}return e===1?r:"".concat(r,"x").concat(e)}var nf={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]},of={f32:4,f16:2,i32:4,u32:4};function ee(t){var e=Vn[t],r=af(e),n=t.includes("norm"),o=!n&&!t.startsWith("float"),i=t.startsWith("s");return{dataType:Vn[t],byteLength:r,integer:o,signed:i,normalized:n}}function af(t){var e=uf[t];return e}var Vn={uint8:"uint8",sint8:"sint8",unorm8:"uint8",snorm8:"sint8",uint16:"uint16",sint16:"sint16",unorm16:"uint16",snorm16:"sint16",float16:"float16",float32:"float32",uint32:"uint32",sint32:"sint32"},uf={uint8:1,sint8:1,uint16:2,sint16:2,float16:2,float32:4,uint32:4,sint32:4};function ff(t,e){return pf(t)||lf(t,e)||sf(t,e)||cf()}function cf(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
13
13
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function sf(t,e){if(t){if(typeof t=="string")return Kn(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Kn(t,e)}}function Kn(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function lf(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n,o,i,u,f=[],a=!0,l=!1;try{if(i=(r=r.call(t)).next,e===0){if(Object(r)!==r)return;a=!1}else for(;!(a=(n=i.call(r)).done)&&(f.push(n.value),f.length!==e);a=!0);}catch(d){l=!0,o=d}finally{try{if(!a&&r.return!=null&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return f}}function pf(t){if(Array.isArray(t))return t}function Et(t){var e;t.endsWith("-webgl")&&(t.replace("-webgl",""),e=!0);var r=t.split("x"),n=ff(r,2),o=n[0],i=n[1],u=o,f=i?parseInt(i):1,a=ee(u),l={type:u,components:f,byteLength:a.byteLength*f,integer:a.integer,signed:a.signed,normalized:a.normalized};return e&&(l.webglOnly=!0),l}function At(t){return At=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},At(t)}function Wn(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Ke(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Wn(Object(r),!0).forEach(function(n){yf(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Wn(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function yf(t,e,r){return e=mf(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function mf(t){var e=hf(t,"string");return At(e)==="symbol"?e:String(e)}function hf(t,e){if(At(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(At(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function gt(t,e){var r=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=df(t))||e&&t&&typeof t.length=="number"){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
@@ -17,7 +17,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
17
17
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,u=!1,f;return{s:function(){r=r.call(t)},n:function(){var l=r.next();return i=l.done,l},e:function(l){u=!0,f=l},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(u)throw f}}}}function bo(t,e){if(t){if(typeof t=="string")return ho(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ho(t,e)}}function ho(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function go(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,rc(n.key),n)}}function ec(t,e,r){return e&&go(t.prototype,e),r&&go(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function rc(t){var e=nc(t,"string");return It(e)==="symbol"?e:String(e)}function nc(t,e){if(It(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(It(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function oc(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var ue=function(){function t(r){if(oc(this,t),this.name=void 0,this.uniforms={},this.modifiedUniforms={},this.modified=!0,this.bindingLayout={},this.needsRedraw="initialized",this.name=r?.name,r!=null&&r.name&&r!==null&&r!==void 0&&r.shaderLayout){var n,o=r==null||(n=r.shaderLayout.bindings)===null||n===void 0?void 0:n.find(function(l){return l.type==="uniform"&&l.name===r?.name});if(!o)throw new Error(r?.name);var i=o,u=tc(i.uniforms||[]),f;try{for(u.s();!(f=u.n()).done;){var a=f.value;this.bindingLayout[a.name]=a}}catch(l){u.e(l)}finally{u.f()}}}var e=t.prototype;return e.setUniforms=function(n){for(var o=0,i=Object.entries(n);o<i.length;o++){var u=Xf(i[o],2),f=u[0],a=u[1];this._setUniform(f,a),this.needsRedraw||this.setNeedsRedraw("".concat(this.name,".").concat(f,"=").concat(a))}},e.setNeedsRedraw=function(n){this.needsRedraw=this.needsRedraw||n},e.getAllUniforms=function(){return this.modifiedUniforms={},this.needsRedraw=!1,this.uniforms||{}},e._setUniform=function(n,o){yo(this.uniforms[n],o)||(this.uniforms[n]=mo(o),this.modifiedUniforms[n]=!0,this.modified=!0)},ec(t)}();function Dt(t){return Dt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Dt(t)}function ic(t,e){var r=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=So(t))||e&&t&&typeof t.length=="number"){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
18
18
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,u=!1,f;return{s:function(){r=r.call(t)},n:function(){var l=r.next();return i=l.done,l},e:function(l){u=!0,f=l},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(u)throw f}}}}function vo(t,e){return fc(t)||uc(t,e)||So(t,e)||ac()}function ac(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
19
19
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function So(t,e){if(t){if(typeof t=="string")return wo(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return wo(t,e)}}function wo(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function uc(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n,o,i,u,f=[],a=!0,l=!1;try{if(i=(r=r.call(t)).next,e===0){if(Object(r)!==r)return;a=!1}else for(;!(a=(n=i.call(r)).done)&&(f.push(n.value),f.length!==e);a=!0);}catch(d){l=!0,o=d}finally{try{if(!a&&r.return!=null&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return f}}function fc(t){if(Array.isArray(t))return t}function Oo(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,sc(n.key),n)}}function cc(t,e,r){return e&&Oo(t.prototype,e),r&&Oo(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function sc(t){var e=lc(t,"string");return Dt(e)==="symbol"?e:String(e)}function lc(t,e){if(Dt(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(Dt(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function pc(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var Po=function(){function t(r){pc(this,t),this.uniformBlocks=new Map,this.uniformBufferLayouts=new Map,this.uniformBuffers=new Map;for(var n=0,o=Object.entries(r);n<o.length;n++){var i=vo(o[n],2),u=i[0],f=i[1],a=u,l=new ae(f.uniformTypes||{});this.uniformBufferLayouts.set(a,l);var d=new ue({name:u});d.setUniforms(f.defaultUniforms||{}),this.uniformBlocks.set(a,d)}}var e=t.prototype;return e.destroy=function(){for(var n=0,o=Object.values(this.uniformBuffers);n<o.length;n++){var i=o[n];i.destroy()}},e.setUniforms=function(n){for(var o=0,i=Object.entries(n);o<i.length;o++){var u=vo(i[o],2),f=u[0],a=u[1];this.uniformBlocks.get(f).setUniforms(a)}this.updateUniformBuffers()},e.getUniformBufferByteLength=function(n){return this.uniformBufferLayouts.get(n).byteLength},e.getUniformBufferData=function(n){var o=this.uniformBlocks.get(n).getAllUniforms();return this.uniformBufferLayouts.get(n).getData(o)},e.createUniformBuffer=function(n,o,i){i&&this.setUniforms(i);var u=this.getUniformBufferByteLength(o),f=n.createBuffer({usage:E.UNIFORM,byteLength:u}),a=this.getUniformBufferData(o);return f.write(a),f},e.getManagedUniformBuffer=function(n,o){if(!this.uniformBuffers.get(o)){var i=this.getUniformBufferByteLength(o),u=n.createBuffer({usage:E.UNIFORM,byteLength:i});this.uniformBuffers.set(o,u)}return this.uniformBuffers.get(o)},e.updateUniformBuffers=function(){var n=!1,o=ic(this.uniformBlocks.keys()),i;try{for(o.s();!(i=o.n()).done;){var u=i.value,f=this.updateUniformBuffer(u);n||(n=f)}}catch(a){o.e(a)}finally{o.f()}return n&&w.log(3,"UniformStore.updateUniformBuffers(): ".concat(n))(),n},e.updateUniformBuffer=function(n){var o=this.uniformBlocks.get(n),i=this.uniformBuffers.get(n),u=!1;if(i&&o.needsRedraw){u||(u=o.needsRedraw);var f=this.getUniformBufferData(n),a=this.uniformBuffers.get(n);a.write(f);var l=this.uniformBlocks.get(n).getAllUniforms();w.log(4,"Writing to uniform buffer ".concat(String(n)),f,l)()}return u},cc(t)}();function Bt(t){return Bt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Bt(t)}function _o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function yc(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?_o(Object(r),!0).forEach(function(n){mc(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):_o(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function mc(t,e,r){return e=hc(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function hc(t){var e=dc(t,"string");return Bt(e)==="symbol"?e:String(e)}function dc(t,e){if(Bt(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(Bt(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function gc(t,e){return Oc(t)||wc(t,e)||vc(t,e)||bc()}function bc(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
20
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vc(t,e){if(t){if(typeof t=="string")return To(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return To(t,e)}}function To(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function wc(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n,o,i,u,f=[],a=!0,l=!1;try{if(i=(r=r.call(t)).next,e===0){if(Object(r)!==r)return;a=!1}else for(;!(a=(n=i.call(r)).done)&&(f.push(n.value),f.length!==e);a=!0);}catch(d){l=!0,o=d}finally{try{if(!a&&r.return!=null&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return f}}function Oc(t){if(Array.isArray(t))return t}var Sc=/^(rg?b?a?)([0-9]*)([a-z]*)(-srgb)?(-webgl|-unsized)?$/;function jo(t){var e=Sc.exec(t);if(e){var r=gc(e,6),n=r[1],o=r[2],i=r[3],u=r[4],f=r[5];if(n){var a="".concat(i).concat(o),l=ee(a);return yc({format:n,components:
|
|
20
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vc(t,e){if(t){if(typeof t=="string")return To(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return To(t,e)}}function To(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function wc(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n,o,i,u,f=[],a=!0,l=!1;try{if(i=(r=r.call(t)).next,e===0){if(Object(r)!==r)return;a=!1}else for(;!(a=(n=i.call(r)).done)&&(f.push(n.value),f.length!==e);a=!0);}catch(d){l=!0,o=d}finally{try{if(!a&&r.return!=null&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return f}}function Oc(t){if(Array.isArray(t))return t}var Sc=/^(rg?b?a?)([0-9]*)([a-z]*)(-srgb)?(-webgl|-unsized)?$/;function jo(t){var e=Sc.exec(t);if(e){var r=gc(e,6),n=r[1],o=r[2],i=r[3],u=r[4],f=r[5];if(n){var a="".concat(i).concat(o),l=ee(a);return yc({format:n,components:n.length,srgb:u==="-srgb",unsized:f==="-unsized",webgl:f==="-webgl"},l)}}return _c(t)}var Pc={"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},"rgb10a2unorm-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 _c(t){var e,r=Pc[t];if(!r)throw new Error("Unknown format ".concat(t));return{format:r.format||"",components:r.components||((e=r.format)===null||e===void 0?void 0:e.length)||1,byteLength:r.bpp||1,srgb:!1,unsized:!1}}function Je(t){var e=ArrayBuffer.isView(t)?t.constructor:t;switch(e){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(e.constructor.name)}}function Eo(t){switch(t){case"float32":return Float32Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"uint8":return Uint8Array;case"sint8":return Int8Array;case"sint16":return Int16Array;case"sint32":return Int32Array;default:throw new Error(t)}}function Ao(t,e,r){if(!e||e>4)throw new Error("size ".concat(e));var n=e,o=Je(t);if(o==="uint8"||o==="sint8"){if(n===1||n===3)throw new Error("size: ".concat(e));return r&&(o=o.replace("int","norm")),"".concat(o,"x").concat(n)}if(o==="uint16"||o==="sint16"){if(n===1||n===3)throw new Error("size: ".concat(e));return r&&(o=o.replace("int","norm")),"".concat(o,"x").concat(n)}return n===1?o:"".concat(o,"x").concat(n)}function Tc(t,e){var r=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=jc(t))||e&&t&&typeof t.length=="number"){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
21
21
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,u=!1,f;return{s:function(){r=r.call(t)},n:function(){var l=r.next();return i=l.done,l},e:function(l){u=!0,f=l},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(u)throw f}}}}function jc(t,e){if(t){if(typeof t=="string")return xo(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return xo(t,e)}}function xo(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function Ro(t,e,r){var n=e.split(/\r?\n/),o="",i=Tc(t),u;try{for(i.s();!(u=i.n()).done;){var f=u.value;o+=Ec(f,n,f.lineNum,r)}}catch(a){i.e(a)}finally{i.f()}return o}function Ec(t,e,r,n){if(n!=null&&n.showSourceCode){var o=t.linePos>0?"".concat(" ".repeat(t.linePos+5),`^^^
|
|
22
22
|
`):"",i=Ac(e,r);return"".concat(i).concat(o).concat(t.type.toUpperCase(),": ").concat(t.message,`
|
|
23
23
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luma.gl/core",
|
|
3
|
-
"version": "9.0.0-alpha.
|
|
3
|
+
"version": "9.0.0-alpha.50",
|
|
4
4
|
"description": "luma.gl API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"@babel/runtime": "^7.0.0",
|
|
43
43
|
"@types/offscreencanvas": "^2019.6.4"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "83899806fcfab67f97cc8b308f81e4844a05ca05"
|
|
46
46
|
}
|
|
@@ -348,7 +348,7 @@ function getCanvasFromDOM(canvasId: string): HTMLCanvasElement {
|
|
|
348
348
|
throw new Error(`Accessing '${canvasId}' before page was loaded`);
|
|
349
349
|
}
|
|
350
350
|
if (!(canvas instanceof HTMLCanvasElement)) {
|
|
351
|
-
throw new Error(
|
|
351
|
+
throw new Error('Object is not a canvas element');
|
|
352
352
|
}
|
|
353
353
|
return canvas;
|
|
354
354
|
}
|
|
@@ -5,8 +5,8 @@ import {decodeVertexType} from './decode-data-type';
|
|
|
5
5
|
const REGEX = /^(rg?b?a?)([0-9]*)([a-z]*)(-srgb)?(-webgl|-unsized)?$/;
|
|
6
6
|
|
|
7
7
|
export type DecodedTextureFormat = {
|
|
8
|
-
format:
|
|
9
|
-
components:
|
|
8
|
+
format: 'r' | 'rg' | 'rgb' | 'rgba';
|
|
9
|
+
components: 1 | 2 | 3 | 4;
|
|
10
10
|
dataType?: VertexType;
|
|
11
11
|
srgb: boolean;
|
|
12
12
|
webgl: boolean;
|
|
@@ -28,8 +28,8 @@ export function decodeTextureFormat(format: TextureFormat): DecodedTextureFormat
|
|
|
28
28
|
const dataType = `${type}${length}` as VertexType;
|
|
29
29
|
const decodedType = decodeVertexType(dataType);
|
|
30
30
|
return {
|
|
31
|
-
format,
|
|
32
|
-
components:
|
|
31
|
+
format: format as 'r' | 'rg' | 'rgb' | 'rgba',
|
|
32
|
+
components: format.length as 1 | 2 | 3 | 4,
|
|
33
33
|
// dataType - overwritten by decodedType
|
|
34
34
|
srgb: srgb === '-srgb',
|
|
35
35
|
unsized: suffix === '-unsized',
|
|
@@ -73,7 +73,7 @@ function decodeNonStandardFormat(format: TextureFormat): DecodedTextureFormat {
|
|
|
73
73
|
}
|
|
74
74
|
return {
|
|
75
75
|
format: data.format || '',
|
|
76
|
-
components: data.components || 1,
|
|
76
|
+
components: data.components || data.format?.length || 1,
|
|
77
77
|
byteLength: data.bpp || 1,
|
|
78
78
|
srgb: false,
|
|
79
79
|
unsized: false
|
|
@@ -66,6 +66,7 @@ export class UniformBufferLayout {
|
|
|
66
66
|
const uniformLayout = this.layout[name];
|
|
67
67
|
if (!uniformLayout) {
|
|
68
68
|
log.warn(`Supplied uniform value ${name} not present in uniform block layout`)();
|
|
69
|
+
// eslint-disable-next-line no-continue
|
|
69
70
|
continue;
|
|
70
71
|
}
|
|
71
72
|
|
|
@@ -74,6 +75,7 @@ export class UniformBufferLayout {
|
|
|
74
75
|
if (size === 1) {
|
|
75
76
|
if (typeof value !== 'number' && typeof value !== 'boolean') {
|
|
76
77
|
log.warn(`Supplied value for single component uniform ${name} is not a number: ${value}`)();
|
|
78
|
+
// eslint-disable-next-line no-continue
|
|
77
79
|
continue;
|
|
78
80
|
}
|
|
79
81
|
// single value -> just set it
|
|
@@ -82,6 +84,7 @@ export class UniformBufferLayout {
|
|
|
82
84
|
const numericArray = isNumberArray(value);
|
|
83
85
|
if (!numericArray) {
|
|
84
86
|
log.warn(`Supplied value for multi component / array uniform ${name} is not a numeric array: ${value}`)();
|
|
87
|
+
// eslint-disable-next-line no-continue
|
|
85
88
|
continue;
|
|
86
89
|
}
|
|
87
90
|
// vector/matrix -> copy the supplied (typed) array, starting from offset
|
|
@@ -83,7 +83,7 @@ export async function loadScript(scriptUrl: string, scriptId?: string): Promise<
|
|
|
83
83
|
|
|
84
84
|
return new Promise((resolve, reject) => {
|
|
85
85
|
script.onload = resolve;
|
|
86
|
-
script.onerror = (error) => reject(new Error(`Unable to load script '${scriptUrl}': ${error}`));
|
|
86
|
+
script.onerror = (error) => reject(new Error(`Unable to load script '${scriptUrl}': ${error as string}`));
|
|
87
87
|
head.appendChild(script);
|
|
88
88
|
});
|
|
89
89
|
}
|