@luma.gl/core 9.0.0-beta.2 → 9.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -192,7 +192,7 @@ export declare abstract class Device {
192
192
  sourceType?: number;
193
193
  }): Uint8Array | Uint16Array | Float32Array;
194
194
  /** @deprecated - will be removed - should use command encoder */
195
- readPixelsToBufferWebGL2(source: Framebuffer | Texture, options?: {
195
+ readPixelsToBufferWebGL(source: Framebuffer | Texture, options?: {
196
196
  sourceX?: number;
197
197
  sourceY?: number;
198
198
  sourceFormat?: number;
@@ -205,6 +205,8 @@ export declare abstract class Device {
205
205
  /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */
206
206
  setParametersWebGL(parameters: any): void;
207
207
  /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */
208
+ getParametersWebGL(parameters: any): void;
209
+ /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */
208
210
  withParametersWebGL(parameters: any, func: any): any;
209
211
  /** @deprecated - will be removed - should use clear arguments in RenderPass */
210
212
  clearWebGL(options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/adapter/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/adapter/device.ts"],"names":[],"mappings":"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"}
@@ -48,12 +48,15 @@ export class Device {
48
48
  readPixelsToArrayWebGL(source, options) {
49
49
  throw new Error('not implemented');
50
50
  }
51
- readPixelsToBufferWebGL2(source, options) {
51
+ readPixelsToBufferWebGL(source, options) {
52
52
  throw new Error('not implemented');
53
53
  }
54
54
  setParametersWebGL(parameters) {
55
55
  throw new Error('not implemented');
56
56
  }
57
+ getParametersWebGL(parameters) {
58
+ throw new Error('not implemented');
59
+ }
57
60
  withParametersWebGL(parameters, func) {
58
61
  throw new Error('not implemented');
59
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","names":["VERSION","lumaStats","log","uid","Buffer","_Symbol$toStringTag","Symbol","toStringTag","Device","constructor","props","id","statsManager","userData","_lumaData","info","lost","canvasContext","defaultProps","toLowerCase","loseDevice","getCanvasContext","Error","createTexture","Promise","data","_createTexture","createCommandEncoder","arguments","length","undefined","readPixelsToArrayWebGL","source","options","readPixelsToBufferWebGL2","setParametersWebGL","parameters","withParametersWebGL","func","clearWebGL","_getBufferProps","ArrayBuffer","isView","newProps","usage","INDEX","indexType","Uint32Array","Uint16Array","warn","type","canvas","container","webgl2","webgl1","manageState","width","height","debug","Boolean","get","break","gl"],"sources":["../../src/adapter/device.ts"],"sourcesContent":["// luma.gl, MIT license\nimport {VERSION} from '../init';\nimport {StatsManager, lumaStats} from '../utils/stats-manager';\nimport {log} from '../utils/log';\nimport {uid} from '../utils/utils';\nimport type {TextureFormat} from './types/texture-formats';\nimport type {CanvasContext, CanvasContextProps} from './canvas-context';\nimport type {BufferProps} from './resources/buffer';\nimport {Buffer} from './resources/buffer';\nimport type {RenderPipeline, RenderPipelineProps} from './resources/render-pipeline';\nimport type {ComputePipeline, ComputePipelineProps} from './resources/compute-pipeline';\nimport type {Sampler, SamplerProps} from './resources/sampler';\nimport type {Shader, ShaderProps} from './resources/shader';\nimport type {Texture, TextureProps, TextureData} from './resources/texture';\nimport type {ExternalTexture, ExternalTextureProps} from './resources/external-texture';\nimport type {Framebuffer, FramebufferProps} from './resources/framebuffer';\nimport type {RenderPass, RenderPassProps} from './resources/render-pass';\nimport type {ComputePass, ComputePassProps} from './resources/compute-pass';\nimport type {CommandEncoder, CommandEncoderProps} from './resources/command-encoder';\nimport type {VertexArray, VertexArrayProps} from './resources/vertex-array';\nimport type {TransformFeedback, TransformFeedbackProps} from './resources/transform-feedback';\n\n/** Device properties */\nexport type DeviceProps = {\n id?: string;\n\n type?: 'webgl' | 'webgl1' | 'webgl2' | 'webgpu' | 'best-available';\n\n // Common parameters\n canvas?: HTMLCanvasElement | OffscreenCanvas | string | null; // A canvas element or a canvas string id\n container?: HTMLElement | string | null;\n width?: number /** width is only used when creating a new canvas */;\n height?: number /** height is only used when creating a new canvas */;\n\n // WebGLDevice parameters\n webgl2?: boolean; // Set to false to not create a WebGL2 context (force webgl1)\n webgl1?: boolean; // set to false to not create a WebGL1 context (fails if webgl2 not available)\n\n // WebGLContext PARAMETERS - Can only be set on context creation...\n // alpha?: boolean; // Default render target has an alpha buffer.\n // depth?: boolean; // Default render target has a depth buffer of at least 16 bits.\n // stencil?: boolean; // Default render target has a stencil buffer of at least 8 bits.\n // antialias?: boolean; // Boolean that indicates whether or not to perform anti-aliasing.\n // premultipliedAlpha?: boolean; // Boolean that indicates that the page compositor will assume the drawing buffer contains colors with pre-multiplied alpha.\n // preserveDrawingBuffer?: boolean; // Default render target buffers will not be automatically cleared and will preserve their values until cleared or overwritten\n // failIfMajorPerformanceCaveat?: boolean; // Do not create if the system performance is low.\n\n // Unclear if these are still supported\n debug?: boolean; // Instrument context (at the expense of performance)\n manageState?: boolean; // Set to false to disable WebGL state management instrumentation\n break?: string[]; // TODO: types\n\n // @deprecated Attach to existing context\n gl?: WebGLRenderingContext | WebGL2RenderingContext | null;\n};\n\n/**\n * Identifies the GPU vendor and driver.\n * @note Chrome WebGPU does not provide much information, though more can be enabled with\n * @see https://developer.chrome.com/blog/new-in-webgpu-120#adapter_information_updates\n * chrome://flags/#enable-webgpu-developer-features\n */\nexport type DeviceInfo = {\n /** Type of device */\n type: 'webgl' | 'webgl2' | 'webgpu';\n /** Vendor (name of GPU vendor, Apple, nVidia etc */\n vendor: string;\n /** Renderer (usually driver name) */\n renderer: string;\n /** version of driver */\n version: string;\n /** family of GPU */\n gpu: 'nvidia' | 'amd' | 'intel' | 'apple' | 'software' | 'unknown';\n /** Type of GPU () */\n gpuType: 'discrete' | 'integrated' | 'cpu' | 'unknown';\n /** GPU architecture */\n gpuArchitecture?: string; // 'common-3' on Apple\n /** GPU driver backend. Can sometimes be sniffed */\n gpuBackend?: 'opengl' | 'opengles' | 'metal' | 'd3d11' | 'd3d12' | 'vulkan' | 'unknown';\n /** If this is a fallback adapter */\n fallback?: boolean;\n /** Shader language supported by device.createShader() */\n shadingLanguage: 'wgsl' | 'glsl';\n /** Highest supported shader language version (GLSL 3.00 = 300, GLSL 1.00 = 100) */\n shadingLanguageVersion: number;\n};\n\n/** Limits for a device */\nexport type DeviceLimits = {\n readonly maxTextureDimension1D?: number;\n readonly maxTextureDimension2D?: number;\n readonly maxTextureDimension3D?: number;\n readonly maxTextureArrayLayers?: number;\n readonly maxBindGroups: number;\n readonly maxDynamicUniformBuffersPerPipelineLayout: number;\n readonly maxDynamicStorageBuffersPerPipelineLayout: number;\n readonly maxSampledTexturesPerShaderStage: number;\n readonly maxSamplersPerShaderStage: number;\n readonly maxStorageBuffersPerShaderStage: number;\n readonly maxStorageTexturesPerShaderStage: number;\n readonly maxUniformBuffersPerShaderStage: number;\n readonly maxUniformBufferBindingSize: number;\n readonly maxStorageBufferBindingSize?: number;\n readonly minUniformBufferOffsetAlignment?: number;\n readonly minStorageBufferOffsetAlignment?: number;\n readonly maxVertexBuffers?: number;\n readonly maxVertexAttributes: number;\n readonly maxVertexBufferArrayStride?: number;\n readonly maxInterStageShaderComponents?: number;\n readonly maxComputeWorkgroupStorageSize?: number;\n readonly maxComputeInvocationsPerWorkgroup?: number;\n readonly maxComputeWorkgroupSizeX?: number;\n readonly maxComputeWorkgroupSizeY?: number;\n readonly maxComputeWorkgroupSizeZ?: number;\n readonly maxComputeWorkgroupsPerDimension?: number;\n};\n\nexport type WebGPUDeviceFeature =\n | 'depth-clip-control'\n | 'depth24unorm-stencil8'\n | 'depth32float-stencil8'\n | 'timestamp-query'\n | 'indirect-first-instance'\n | 'texture-compression-bc'\n | 'texture-compression-etc2'\n | 'texture-compression-astc';\n\n// obsolete...\n// 'depth-clamping' |\n// 'depth24unorm-stencil8' |\n// 'depth32float-stencil8' |\n// 'pipeline-statistics-query' |\n// 'timestamp-query' |\n// 'texture-compression-bc'\n\nexport type WebGLDeviceFeature =\n | 'webgpu'\n | 'webgl2'\n | 'webgl'\n\n // api support (unify with WebGPU timestamp-query?)\n | 'timer-query-webgl'\n | 'uniform-buffers-webgl'\n | 'uniforms-webgl'\n\n // texture filtering\n | 'texture-filter-linear-float32-webgl'\n | 'texture-filter-linear-float16-webgl'\n | 'texture-filter-anisotropic-webgl'\n\n // texture rendering\n | 'texture-renderable-float32-webgl'\n | 'texture-renderable-float16-webgl'\n | 'texture-renderable-rgba32float-webgl' // TODO - remove\n\n // texture blending\n | 'texture-blend-float-webgl1'\n\n // texture format support\n | 'texture-formats-norm16-webgl'\n | 'texture-formats-srgb-webgl1'\n | 'texture-formats-depth-webgl1'\n | 'texture-formats-float32-webgl1'\n | 'texture-formats-float16-webgl1'\n\n // api support\n | 'vertex-array-object-webgl1'\n | 'instanced-rendering-webgl1'\n | 'multiple-render-targets-webgl1'\n | 'index-uint32-webgl1'\n | 'blend-minmax-webgl1'\n | 'transform-feedback-webgl2'\n\n // glsl extensions\n | 'glsl-frag-data'\n | 'glsl-frag-depth'\n | 'glsl-derivatives'\n | 'glsl-texture-lod';\n\ntype WebGLCompressedTextureFeatures =\n | 'texture-compression-bc5-webgl'\n | 'texture-compression-etc1-webgl'\n | 'texture-compression-pvrtc-webgl'\n | 'texture-compression-atc-webgl';\n\n/** Valid feature strings */\nexport type DeviceFeature =\n | WebGPUDeviceFeature\n | WebGLDeviceFeature\n | WebGLCompressedTextureFeatures;\n\n/**\n * WebGPU Device/WebGL context abstraction\n */\nexport abstract class Device {\n\n static defaultProps: Required<DeviceProps> = {\n id: null!,\n type: 'best-available',\n canvas: null,\n container: null,\n webgl2: true, // Attempt to create a WebGL2 context\n webgl1: true, // Attempt to create a WebGL1 context (false to fail if webgl2 not available)\n manageState: true,\n width: 800, // width are height are only used by headless gl\n height: 600,\n debug: Boolean(log.get('debug')), // Instrument context (at the expense of performance)\n break: [],\n \n // alpha: undefined,\n // depth: undefined,\n // stencil: undefined,\n // antialias: undefined,\n // premultipliedAlpha: undefined,\n // preserveDrawingBuffer: undefined,\n // failIfMajorPerformanceCaveat: undefined\n \n gl: null\n };\n \n\n get [Symbol.toStringTag](): string {\n return 'Device';\n }\n\n static VERSION = VERSION;\n\n constructor(props: DeviceProps) {\n this.props = {...Device.defaultProps, ...props};\n this.id = this.props.id || uid(this[Symbol.toStringTag].toLowerCase());\n }\n\n /** id of this device, primarily for debugging */\n readonly id: string;\n /** stats */\n readonly statsManager: StatsManager = lumaStats;\n /** A copy of the device props */\n readonly props: Required<DeviceProps>;\n /** Available for the application to store data on the device */\n userData: {[key: string]: unknown} = {};\n /** Used by other luma.gl modules to store data on the device */\n _lumaData: {[key: string]: unknown} = {};\n\n abstract destroy(): void;\n\n // Capabilities\n\n /** Information about the device (vendor, versions etc) */\n abstract info: DeviceInfo;\n\n /** Optional capability discovery */\n abstract get features(): Set<DeviceFeature>;\n\n /** WebGPU style device limits */\n abstract get limits(): DeviceLimits;\n\n /** Check if device supports a specific texture format (creation and `nearest` sampling) */\n abstract isTextureFormatSupported(format: TextureFormat): boolean;\n\n /** Check if linear filtering (sampler interpolation) is supported for a specific texture format */\n abstract isTextureFormatFilterable(format: TextureFormat): boolean;\n\n /** Check if device supports rendering to a specific texture format */\n abstract isTextureFormatRenderable(format: TextureFormat): boolean;\n\n // Device loss\n\n /** `true` if device is already lost */\n abstract get isLost(): boolean;\n\n /** Promise that resolves when device is lost */\n abstract readonly lost: Promise<{reason: 'destroyed'; message: string}>;\n\n /**\n * Trigger device loss.\n * @returns `true` if context loss could actually be triggered.\n * @note primarily intended for testing how application reacts to device loss\n */\n loseDevice(): boolean {\n return false;\n }\n\n // Canvas context\n\n /** Default / primary canvas context. Can be null as WebGPU devices can be created without a CanvasContext */\n abstract canvasContext: CanvasContext | null;\n\n /** Returns the default / primary canvas context. Throws an error if no canvas context is available (a WebGPU compute device) */\n getCanvasContext(): CanvasContext {\n if (!this.canvasContext) {\n throw new Error('Device has no CanvasContext');\n }\n return this.canvasContext;\n }\n\n /** Creates a new CanvasContext (WebGPU only) */\n abstract createCanvasContext(props?: CanvasContextProps): CanvasContext;\n\n /** Call after rendering a frame (necessary e.g. on WebGL OffscreenCanvas) */\n abstract submit(): void;\n\n // Resource creation\n\n /** Create a buffer */\n abstract createBuffer(props: BufferProps | ArrayBuffer | ArrayBufferView): Buffer;\n\n /** Create a texture */\n abstract _createTexture(props: TextureProps): Texture;\n createTexture(props: TextureProps): Texture;\n createTexture(data: Promise<TextureData>): Texture;\n createTexture(url: string): Texture;\n\n createTexture(props: TextureProps | Promise<TextureData> | string): Texture {\n // Signature: new Texture2D(gl, url | Promise)\n if (props instanceof Promise || typeof props === 'string') {\n props = {data: props};\n }\n return this._createTexture(props);\n }\n\n /** Create a temporary texture view of a video source */\n abstract createExternalTexture(props: ExternalTextureProps): ExternalTexture;\n\n /** Create a sampler */\n abstract createSampler(props: SamplerProps): Sampler;\n\n /** Create a Framebuffer. Must have at least one attachment. */\n abstract createFramebuffer(props: FramebufferProps): Framebuffer;\n\n /** Create a shader */\n abstract createShader(props: ShaderProps): Shader;\n\n /** Create a render pipeline (aka program) */\n abstract createRenderPipeline(props: RenderPipelineProps): RenderPipeline;\n\n /** Create a compute pipeline (aka program). WebGPU only. */\n abstract createComputePipeline(props: ComputePipelineProps): ComputePipeline;\n\n /** Create a vertex array */\n abstract createVertexArray(props: VertexArrayProps): VertexArray;\n\n /** Create a RenderPass */\n abstract beginRenderPass(props?: RenderPassProps): RenderPass;\n\n /** Create a ComputePass */\n abstract beginComputePass(props?: ComputePassProps): ComputePass;\n\n /** Get a renderpass that is set up to render to the primary CanvasContext */\n abstract getDefaultRenderPass(): RenderPass;\n\n /** Create a transform feedback (immutable set of output buffer bindings). WebGL 2 only. */\n abstract createTransformFeedback(props: TransformFeedbackProps): TransformFeedback;\n\n createCommandEncoder(props: CommandEncoderProps = {}): CommandEncoder {\n throw new Error('not implemented');\n }\n\n // WebGL specific HACKS - enables app to remove webgl import\n // Use until we have a better way to handle these\n\n /** @deprecated - will be removed - should use command encoder */\n readPixelsToArrayWebGL(\n source: Framebuffer | Texture,\n options?: {\n sourceX?: number;\n sourceY?: number;\n sourceFormat?: number;\n sourceAttachment?: number;\n target?: Uint8Array | Uint16Array | Float32Array;\n // following parameters are auto deduced if not provided\n sourceWidth?: number;\n sourceHeight?: number;\n sourceType?: number;\n }\n ): Uint8Array | Uint16Array | Float32Array {\n throw new Error('not implemented');\n }\n \n /** @deprecated - will be removed - should use command encoder */\n readPixelsToBufferWebGL2(\n source: Framebuffer | Texture,\n options?: {\n sourceX?: number;\n sourceY?: number;\n sourceFormat?: number;\n target?: Buffer; // A new Buffer object is created when not provided.\n targetByteOffset?: number; // byte offset in buffer object\n // following parameters are auto deduced if not provided\n sourceWidth?: number;\n sourceHeight?: number;\n sourceType?: number;\n }\n ): Buffer {\n throw new Error('not implemented');\n }\n\n /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */\n setParametersWebGL(parameters: any): void {\n throw new Error('not implemented');\n }\n\n /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */\n withParametersWebGL(parameters: any, func: any): any {\n throw new Error('not implemented');\n }\n\n /** @deprecated - will be removed - should use clear arguments in RenderPass */\n clearWebGL(options?: {framebuffer?: Framebuffer; color?: any; depth?: any; stencil?: any}): void {\n throw new Error('not implemented');\n }\n\n // Implementation\n\n protected _getBufferProps(props: BufferProps | ArrayBuffer | ArrayBufferView): BufferProps {\n if (props instanceof ArrayBuffer || ArrayBuffer.isView(props)) {\n props = {data: props};\n }\n\n // TODO - fragile, as this is done before we merge with default options\n // inside the Buffer constructor\n\n const newProps = {...props};\n // Deduce indexType\n if ((props.usage || 0) & Buffer.INDEX && !props.indexType) {\n if (props.data instanceof Uint32Array) {\n newProps.indexType = 'uint32';\n } else if (props.data instanceof Uint16Array) {\n newProps.indexType = 'uint16';\n } else {\n log.warn('indices buffer content must be of integer type')();\n }\n }\n return newProps;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"device.js","names":["VERSION","lumaStats","log","uid","Buffer","_Symbol$toStringTag","Symbol","toStringTag","Device","constructor","props","id","statsManager","userData","_lumaData","info","lost","canvasContext","defaultProps","toLowerCase","loseDevice","getCanvasContext","Error","createTexture","Promise","data","_createTexture","createCommandEncoder","arguments","length","undefined","readPixelsToArrayWebGL","source","options","readPixelsToBufferWebGL","setParametersWebGL","parameters","getParametersWebGL","withParametersWebGL","func","clearWebGL","_getBufferProps","ArrayBuffer","isView","newProps","usage","INDEX","indexType","Uint32Array","Uint16Array","warn","type","canvas","container","webgl2","webgl1","manageState","width","height","debug","Boolean","get","break","gl"],"sources":["../../src/adapter/device.ts"],"sourcesContent":["// luma.gl, MIT license\nimport {VERSION} from '../init';\nimport {StatsManager, lumaStats} from '../utils/stats-manager';\nimport {log} from '../utils/log';\nimport {uid} from '../utils/utils';\nimport type {TextureFormat} from './types/texture-formats';\nimport type {CanvasContext, CanvasContextProps} from './canvas-context';\nimport type {BufferProps} from './resources/buffer';\nimport {Buffer} from './resources/buffer';\nimport type {RenderPipeline, RenderPipelineProps} from './resources/render-pipeline';\nimport type {ComputePipeline, ComputePipelineProps} from './resources/compute-pipeline';\nimport type {Sampler, SamplerProps} from './resources/sampler';\nimport type {Shader, ShaderProps} from './resources/shader';\nimport type {Texture, TextureProps, TextureData} from './resources/texture';\nimport type {ExternalTexture, ExternalTextureProps} from './resources/external-texture';\nimport type {Framebuffer, FramebufferProps} from './resources/framebuffer';\nimport type {RenderPass, RenderPassProps} from './resources/render-pass';\nimport type {ComputePass, ComputePassProps} from './resources/compute-pass';\nimport type {CommandEncoder, CommandEncoderProps} from './resources/command-encoder';\nimport type {VertexArray, VertexArrayProps} from './resources/vertex-array';\nimport type {TransformFeedback, TransformFeedbackProps} from './resources/transform-feedback';\n\n/** Device properties */\nexport type DeviceProps = {\n id?: string;\n\n type?: 'webgl' | 'webgl1' | 'webgl2' | 'webgpu' | 'best-available';\n\n // Common parameters\n canvas?: HTMLCanvasElement | OffscreenCanvas | string | null; // A canvas element or a canvas string id\n container?: HTMLElement | string | null;\n width?: number /** width is only used when creating a new canvas */;\n height?: number /** height is only used when creating a new canvas */;\n\n // WebGLDevice parameters\n webgl2?: boolean; // Set to false to not create a WebGL2 context (force webgl1)\n webgl1?: boolean; // set to false to not create a WebGL1 context (fails if webgl2 not available)\n\n // WebGLContext PARAMETERS - Can only be set on context creation...\n // alpha?: boolean; // Default render target has an alpha buffer.\n // depth?: boolean; // Default render target has a depth buffer of at least 16 bits.\n // stencil?: boolean; // Default render target has a stencil buffer of at least 8 bits.\n // antialias?: boolean; // Boolean that indicates whether or not to perform anti-aliasing.\n // premultipliedAlpha?: boolean; // Boolean that indicates that the page compositor will assume the drawing buffer contains colors with pre-multiplied alpha.\n // preserveDrawingBuffer?: boolean; // Default render target buffers will not be automatically cleared and will preserve their values until cleared or overwritten\n // failIfMajorPerformanceCaveat?: boolean; // Do not create if the system performance is low.\n\n // Unclear if these are still supported\n debug?: boolean; // Instrument context (at the expense of performance)\n manageState?: boolean; // Set to false to disable WebGL state management instrumentation\n break?: string[]; // TODO: types\n\n // @deprecated Attach to existing context\n gl?: WebGLRenderingContext | WebGL2RenderingContext | null;\n};\n\n/**\n * Identifies the GPU vendor and driver.\n * @note Chrome WebGPU does not provide much information, though more can be enabled with\n * @see https://developer.chrome.com/blog/new-in-webgpu-120#adapter_information_updates\n * chrome://flags/#enable-webgpu-developer-features\n */\nexport type DeviceInfo = {\n /** Type of device */\n type: 'webgl' | 'webgl2' | 'webgpu';\n /** Vendor (name of GPU vendor, Apple, nVidia etc */\n vendor: string;\n /** Renderer (usually driver name) */\n renderer: string;\n /** version of driver */\n version: string;\n /** family of GPU */\n gpu: 'nvidia' | 'amd' | 'intel' | 'apple' | 'software' | 'unknown';\n /** Type of GPU () */\n gpuType: 'discrete' | 'integrated' | 'cpu' | 'unknown';\n /** GPU architecture */\n gpuArchitecture?: string; // 'common-3' on Apple\n /** GPU driver backend. Can sometimes be sniffed */\n gpuBackend?: 'opengl' | 'opengles' | 'metal' | 'd3d11' | 'd3d12' | 'vulkan' | 'unknown';\n /** If this is a fallback adapter */\n fallback?: boolean;\n /** Shader language supported by device.createShader() */\n shadingLanguage: 'wgsl' | 'glsl';\n /** Highest supported shader language version (GLSL 3.00 = 300, GLSL 1.00 = 100) */\n shadingLanguageVersion: number;\n};\n\n/** Limits for a device */\nexport type DeviceLimits = {\n readonly maxTextureDimension1D?: number;\n readonly maxTextureDimension2D?: number;\n readonly maxTextureDimension3D?: number;\n readonly maxTextureArrayLayers?: number;\n readonly maxBindGroups: number;\n readonly maxDynamicUniformBuffersPerPipelineLayout: number;\n readonly maxDynamicStorageBuffersPerPipelineLayout: number;\n readonly maxSampledTexturesPerShaderStage: number;\n readonly maxSamplersPerShaderStage: number;\n readonly maxStorageBuffersPerShaderStage: number;\n readonly maxStorageTexturesPerShaderStage: number;\n readonly maxUniformBuffersPerShaderStage: number;\n readonly maxUniformBufferBindingSize: number;\n readonly maxStorageBufferBindingSize?: number;\n readonly minUniformBufferOffsetAlignment?: number;\n readonly minStorageBufferOffsetAlignment?: number;\n readonly maxVertexBuffers?: number;\n readonly maxVertexAttributes: number;\n readonly maxVertexBufferArrayStride?: number;\n readonly maxInterStageShaderComponents?: number;\n readonly maxComputeWorkgroupStorageSize?: number;\n readonly maxComputeInvocationsPerWorkgroup?: number;\n readonly maxComputeWorkgroupSizeX?: number;\n readonly maxComputeWorkgroupSizeY?: number;\n readonly maxComputeWorkgroupSizeZ?: number;\n readonly maxComputeWorkgroupsPerDimension?: number;\n};\n\nexport type WebGPUDeviceFeature =\n | 'depth-clip-control'\n | 'depth24unorm-stencil8'\n | 'depth32float-stencil8'\n | 'timestamp-query'\n | 'indirect-first-instance'\n | 'texture-compression-bc'\n | 'texture-compression-etc2'\n | 'texture-compression-astc';\n\n// obsolete...\n// 'depth-clamping' |\n// 'depth24unorm-stencil8' |\n// 'depth32float-stencil8' |\n// 'pipeline-statistics-query' |\n// 'timestamp-query' |\n// 'texture-compression-bc'\n\nexport type WebGLDeviceFeature =\n | 'webgpu'\n | 'webgl2'\n | 'webgl'\n\n // api support (unify with WebGPU timestamp-query?)\n | 'timer-query-webgl'\n | 'uniform-buffers-webgl'\n | 'uniforms-webgl'\n\n // texture filtering\n | 'texture-filter-linear-float32-webgl'\n | 'texture-filter-linear-float16-webgl'\n | 'texture-filter-anisotropic-webgl'\n\n // texture rendering\n | 'texture-renderable-float32-webgl'\n | 'texture-renderable-float16-webgl'\n | 'texture-renderable-rgba32float-webgl' // TODO - remove\n\n // texture blending\n | 'texture-blend-float-webgl1'\n\n // texture format support\n | 'texture-formats-norm16-webgl'\n | 'texture-formats-srgb-webgl1'\n | 'texture-formats-depth-webgl1'\n | 'texture-formats-float32-webgl1'\n | 'texture-formats-float16-webgl1'\n\n // api support\n | 'vertex-array-object-webgl1'\n | 'instanced-rendering-webgl1'\n | 'multiple-render-targets-webgl1'\n | 'index-uint32-webgl1'\n | 'blend-minmax-webgl1'\n | 'transform-feedback-webgl2'\n\n // glsl extensions\n | 'glsl-frag-data'\n | 'glsl-frag-depth'\n | 'glsl-derivatives'\n | 'glsl-texture-lod';\n\ntype WebGLCompressedTextureFeatures =\n | 'texture-compression-bc5-webgl'\n | 'texture-compression-etc1-webgl'\n | 'texture-compression-pvrtc-webgl'\n | 'texture-compression-atc-webgl';\n\n/** Valid feature strings */\nexport type DeviceFeature =\n | WebGPUDeviceFeature\n | WebGLDeviceFeature\n | WebGLCompressedTextureFeatures;\n\n/**\n * WebGPU Device/WebGL context abstraction\n */\nexport abstract class Device {\n\n static defaultProps: Required<DeviceProps> = {\n id: null!,\n type: 'best-available',\n canvas: null,\n container: null,\n webgl2: true, // Attempt to create a WebGL2 context\n webgl1: true, // Attempt to create a WebGL1 context (false to fail if webgl2 not available)\n manageState: true,\n width: 800, // width are height are only used by headless gl\n height: 600,\n debug: Boolean(log.get('debug')), // Instrument context (at the expense of performance)\n break: [],\n \n // alpha: undefined,\n // depth: undefined,\n // stencil: undefined,\n // antialias: undefined,\n // premultipliedAlpha: undefined,\n // preserveDrawingBuffer: undefined,\n // failIfMajorPerformanceCaveat: undefined\n \n gl: null\n };\n \n\n get [Symbol.toStringTag](): string {\n return 'Device';\n }\n\n static VERSION = VERSION;\n\n constructor(props: DeviceProps) {\n this.props = {...Device.defaultProps, ...props};\n this.id = this.props.id || uid(this[Symbol.toStringTag].toLowerCase());\n }\n\n /** id of this device, primarily for debugging */\n readonly id: string;\n /** stats */\n readonly statsManager: StatsManager = lumaStats;\n /** A copy of the device props */\n readonly props: Required<DeviceProps>;\n /** Available for the application to store data on the device */\n userData: {[key: string]: unknown} = {};\n /** Used by other luma.gl modules to store data on the device */\n _lumaData: {[key: string]: unknown} = {};\n\n abstract destroy(): void;\n\n // Capabilities\n\n /** Information about the device (vendor, versions etc) */\n abstract info: DeviceInfo;\n\n /** Optional capability discovery */\n abstract get features(): Set<DeviceFeature>;\n\n /** WebGPU style device limits */\n abstract get limits(): DeviceLimits;\n\n /** Check if device supports a specific texture format (creation and `nearest` sampling) */\n abstract isTextureFormatSupported(format: TextureFormat): boolean;\n\n /** Check if linear filtering (sampler interpolation) is supported for a specific texture format */\n abstract isTextureFormatFilterable(format: TextureFormat): boolean;\n\n /** Check if device supports rendering to a specific texture format */\n abstract isTextureFormatRenderable(format: TextureFormat): boolean;\n\n // Device loss\n\n /** `true` if device is already lost */\n abstract get isLost(): boolean;\n\n /** Promise that resolves when device is lost */\n abstract readonly lost: Promise<{reason: 'destroyed'; message: string}>;\n\n /**\n * Trigger device loss.\n * @returns `true` if context loss could actually be triggered.\n * @note primarily intended for testing how application reacts to device loss\n */\n loseDevice(): boolean {\n return false;\n }\n\n // Canvas context\n\n /** Default / primary canvas context. Can be null as WebGPU devices can be created without a CanvasContext */\n abstract canvasContext: CanvasContext | null;\n\n /** Returns the default / primary canvas context. Throws an error if no canvas context is available (a WebGPU compute device) */\n getCanvasContext(): CanvasContext {\n if (!this.canvasContext) {\n throw new Error('Device has no CanvasContext');\n }\n return this.canvasContext;\n }\n\n /** Creates a new CanvasContext (WebGPU only) */\n abstract createCanvasContext(props?: CanvasContextProps): CanvasContext;\n\n /** Call after rendering a frame (necessary e.g. on WebGL OffscreenCanvas) */\n abstract submit(): void;\n\n // Resource creation\n\n /** Create a buffer */\n abstract createBuffer(props: BufferProps | ArrayBuffer | ArrayBufferView): Buffer;\n\n /** Create a texture */\n abstract _createTexture(props: TextureProps): Texture;\n createTexture(props: TextureProps): Texture;\n createTexture(data: Promise<TextureData>): Texture;\n createTexture(url: string): Texture;\n\n createTexture(props: TextureProps | Promise<TextureData> | string): Texture {\n // Signature: new Texture2D(gl, url | Promise)\n if (props instanceof Promise || typeof props === 'string') {\n props = {data: props};\n }\n return this._createTexture(props);\n }\n\n /** Create a temporary texture view of a video source */\n abstract createExternalTexture(props: ExternalTextureProps): ExternalTexture;\n\n /** Create a sampler */\n abstract createSampler(props: SamplerProps): Sampler;\n\n /** Create a Framebuffer. Must have at least one attachment. */\n abstract createFramebuffer(props: FramebufferProps): Framebuffer;\n\n /** Create a shader */\n abstract createShader(props: ShaderProps): Shader;\n\n /** Create a render pipeline (aka program) */\n abstract createRenderPipeline(props: RenderPipelineProps): RenderPipeline;\n\n /** Create a compute pipeline (aka program). WebGPU only. */\n abstract createComputePipeline(props: ComputePipelineProps): ComputePipeline;\n\n /** Create a vertex array */\n abstract createVertexArray(props: VertexArrayProps): VertexArray;\n\n /** Create a RenderPass */\n abstract beginRenderPass(props?: RenderPassProps): RenderPass;\n\n /** Create a ComputePass */\n abstract beginComputePass(props?: ComputePassProps): ComputePass;\n\n /** Get a renderpass that is set up to render to the primary CanvasContext */\n abstract getDefaultRenderPass(): RenderPass;\n\n /** Create a transform feedback (immutable set of output buffer bindings). WebGL 2 only. */\n abstract createTransformFeedback(props: TransformFeedbackProps): TransformFeedback;\n\n createCommandEncoder(props: CommandEncoderProps = {}): CommandEncoder {\n throw new Error('not implemented');\n }\n\n // WebGL specific HACKS - enables app to remove webgl import\n // Use until we have a better way to handle these\n\n /** @deprecated - will be removed - should use command encoder */\n readPixelsToArrayWebGL(\n source: Framebuffer | Texture,\n options?: {\n sourceX?: number;\n sourceY?: number;\n sourceFormat?: number;\n sourceAttachment?: number;\n target?: Uint8Array | Uint16Array | Float32Array;\n // following parameters are auto deduced if not provided\n sourceWidth?: number;\n sourceHeight?: number;\n sourceType?: number;\n }\n ): Uint8Array | Uint16Array | Float32Array {\n throw new Error('not implemented');\n }\n \n /** @deprecated - will be removed - should use command encoder */\n readPixelsToBufferWebGL(\n source: Framebuffer | Texture,\n options?: {\n sourceX?: number;\n sourceY?: number;\n sourceFormat?: number;\n target?: Buffer; // A new Buffer object is created when not provided.\n targetByteOffset?: number; // byte offset in buffer object\n // following parameters are auto deduced if not provided\n sourceWidth?: number;\n sourceHeight?: number;\n sourceType?: number;\n }\n ): Buffer {\n throw new Error('not implemented');\n }\n\n /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */\n setParametersWebGL(parameters: any): void {\n throw new Error('not implemented');\n }\n\n /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */\n getParametersWebGL(parameters: any): void {\n throw new Error('not implemented');\n }\n\n /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */\n withParametersWebGL(parameters: any, func: any): any {\n throw new Error('not implemented');\n }\n\n /** @deprecated - will be removed - should use clear arguments in RenderPass */\n clearWebGL(options?: {framebuffer?: Framebuffer; color?: any; depth?: any; stencil?: any}): void {\n throw new Error('not implemented');\n }\n\n // Implementation\n\n protected _getBufferProps(props: BufferProps | ArrayBuffer | ArrayBufferView): BufferProps {\n if (props instanceof ArrayBuffer || ArrayBuffer.isView(props)) {\n props = {data: props};\n }\n\n // TODO - fragile, as this is done before we merge with default options\n // inside the Buffer constructor\n\n const newProps = {...props};\n // Deduce indexType\n if ((props.usage || 0) & Buffer.INDEX && !props.indexType) {\n if (props.data instanceof Uint32Array) {\n newProps.indexType = 'uint32';\n } else if (props.data instanceof Uint16Array) {\n newProps.indexType = 'uint16';\n } else {\n log.warn('indices buffer content must be of integer type')();\n }\n }\n return newProps;\n }\n}\n"],"mappings":"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"}
package/dist/dist.dev.js CHANGED
@@ -1078,12 +1078,15 @@ var __exports__ = (() => {
1078
1078
  readPixelsToArrayWebGL(source, options) {
1079
1079
  throw new Error("not implemented");
1080
1080
  }
1081
- readPixelsToBufferWebGL2(source, options) {
1081
+ readPixelsToBufferWebGL(source, options) {
1082
1082
  throw new Error("not implemented");
1083
1083
  }
1084
1084
  setParametersWebGL(parameters) {
1085
1085
  throw new Error("not implemented");
1086
1086
  }
1087
+ getParametersWebGL(parameters) {
1088
+ throw new Error("not implemented");
1089
+ }
1087
1090
  withParametersWebGL(parameters, func) {
1088
1091
  throw new Error("not implemented");
1089
1092
  }
package/dist/index.cjs CHANGED
@@ -416,7 +416,7 @@ var _Device = class {
416
416
  throw new Error("not implemented");
417
417
  }
418
418
  /** @deprecated - will be removed - should use command encoder */
419
- readPixelsToBufferWebGL2(source, options) {
419
+ readPixelsToBufferWebGL(source, options) {
420
420
  throw new Error("not implemented");
421
421
  }
422
422
  /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */
@@ -424,6 +424,10 @@ var _Device = class {
424
424
  throw new Error("not implemented");
425
425
  }
426
426
  /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */
427
+ getParametersWebGL(parameters) {
428
+ throw new Error("not implemented");
429
+ }
430
+ /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */
427
431
  withParametersWebGL(parameters, func) {
428
432
  throw new Error("not implemented");
429
433
  }
package/dist.min.js CHANGED
@@ -4,7 +4,7 @@
4
4
  else if (typeof define === 'function' && define.amd) define([], factory);
5
5
  else if (typeof exports === 'object') exports['luma'] = factory();
6
6
  else root['luma'] = factory();})(globalThis, function () {
7
- "use strict";var __exports__=(()=>{var dt=Object.defineProperty;var Qo=Object.getOwnPropertyDescriptor;var ei=Object.getOwnPropertyNames;var ti=Object.prototype.hasOwnProperty;var ri=(e,t)=>{for(var r in t)dt(e,r,{get:t[r],enumerable:!0})},ni=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ei(t))!ti.call(e,o)&&o!==r&&dt(e,o,{get:()=>t[o],enumerable:!(n=Qo(t,o))||n.enumerable});return e};var oi=e=>ni(dt({},"__esModule",{value:!0}),e);var Qc={};ri(Qc,{Buffer:()=>R,CanvasContext:()=>Tt,CommandBuffer:()=>Xt,CommandEncoder:()=>Yt,ComputePass:()=>Wt,ComputePipeline:()=>Ft,Device:()=>Z,ExternalTexture:()=>At,Framebuffer:()=>Mt,RenderPass:()=>Ht,RenderPipeline:()=>Ut,Resource:()=>O,Sampler:()=>Nt,Shader:()=>Lt,StatsManager:()=>bt,Texture:()=>F,TransformFeedback:()=>tr,UniformBlock:()=>lt,UniformBufferLayout:()=>st,UniformStore:()=>Lo,VERSION:()=>Fe,VertexArray:()=>Qt,assert:()=>ae,cancelAnimationFrame:()=>Jo,cast:()=>Uo,checkProps:()=>Ho,decodeShaderAttributeType:()=>ot,decodeShaderUniformType:()=>ft,decodeTextureFormat:()=>Co,decodeVertexFormat:()=>Re,deepEqual:()=>ht,fillArray:()=>vo,formatCompilerLog:()=>$e,formatValue:()=>or,getAttributeInfosFromLayouts:()=>Zt,getDataTypeFromTypedArray:()=>rr,getScratchArray:()=>bo,getScratchArrayBuffer:()=>De,getTypedArrayFromDataType:()=>Mo,getVertexFormatFromAttribute:()=>ko,glsl:()=>Jc,isNumberArray:()=>z,isObjectEmpty:()=>Sr,isPowerOfTwo:()=>Or,isTypedArray:()=>vt,isUniformValue:()=>nr,loadFile:()=>Ko,loadImage:()=>$o,loadImageBitmap:()=>Yo,loadScript:()=>Xo,log:()=>_,luma:()=>He,makeRandomNumberGenerator:()=>sr,mergeShaderLayout:()=>io,random:()=>qo,requestAnimationFrame:()=>Zo,setPathPrefix:()=>Wo,splitUniformsAndBindings:()=>Go,stubRemovedMethods:()=>Fo,uid:()=>Y});function gt(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}function B(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||gt()}var ii=globalThis.self||globalThis.window||globalThis.global,ee=globalThis.window||globalThis.self||globalThis.global,ai=globalThis.document||{},$=globalThis.process||{},ui=globalThis.console,os=globalThis.navigator||{};var Me=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",us=B();function fi(e){try{let t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var ke=class{constructor(t,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=fi(n),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function lr(e){let t;return e<10?t="".concat(e.toFixed(2),"ms"):e<100?t="".concat(e.toFixed(1),"ms"):e<1e3?t="".concat(e.toFixed(0),"ms"):t="".concat((e/1e3).toFixed(2),"s"),t}function pr(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(t-e.length,0);return"".concat(" ".repeat(r)).concat(e)}function Ue(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,o=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>n&&(r=Math.min(r,n/e.width));let i=e.width*r,f=e.height*r,s=["font-size:1px;","padding:".concat(Math.floor(f/2),"px ").concat(Math.floor(i/2),"px;"),"line-height:".concat(f,"px;"),"background:url(".concat(o,");"),"background-size:".concat(i,"px ").concat(f,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),s]}var Ge;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Ge||(Ge={}));var ci=10;function yr(e){return typeof e!="string"?e:(e=e.toUpperCase(),Ge[e]||Ge.WHITE)}function mr(e,t,r){if(!B&&typeof e=="string"){if(t){let n=yr(t);e="\x1B[".concat(n,"m").concat(e,"\x1B[39m")}if(r){let n=yr(r);e="\x1B[".concat(n+ci,"m").concat(e,"\x1B[49m")}}return e}function hr(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],r=Object.getPrototypeOf(e),n=Object.getOwnPropertyNames(r),o=e;for(let i of n){let f=o[i];typeof f=="function"&&(t.find(s=>i===s)||(o[i]=f.bind(e)))}}function te(e,t){if(!e)throw new Error(t||"Assertion failed")}function X(){let e;if(B()&&ee.performance){var t,r;e=ee===null||ee===void 0||(t=ee.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if("hrtime"in $){var n;let o=$===null||$===void 0||(n=$.hrtime)===null||n===void 0?void 0:n.call($);e=o[0]*1e3+o[1]/1e6}else e=Date.now();return e}var re={debug:B()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},si={enabled:!0,level:0};function C(){}var dr={},gr={once:!0},K=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=Me,this._startTs=X(),this._deltaTs=X(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new ke("__probe-".concat(this.id,"__"),si),this.timeStamp("".concat(this.id," started")),hr(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((X()-this._startTs).toPrecision(10))}getDelta(){return Number((X()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){te(t,r)}warn(t){return this._getLogFunction(0,t,re.warn,arguments,gr)}error(t){return this._getLogFunction(0,t,re.error,arguments)}deprecated(t,r){return this.warn("`".concat(t,"` is deprecated and will be removed in a later version. Use `").concat(r,"` instead"))}removed(t,r){return this.error("`".concat(t,"` has been removed. Use `").concat(r,"` instead"))}probe(t,r){return this._getLogFunction(t,r,re.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,re.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){return this._getLogFunction(t,r,re.debug||re.info,arguments,gr)}table(t,r,n){return r?this._getLogFunction(t,r,console.table||C,n&&[n],{tag:mi(r)}):C}image(t){let{logLevel:r,priority:n,image:o,message:i="",scale:f=1}=t;return this._shouldLog(r||n)?B()?yi({image:o,message:i,scale:f}):pi({image:o,message:i,scale:f}):C}time(t,r){return this._getLogFunction(t,r,console.time?console.time:console.info)}timeEnd(t,r){return this._getLogFunction(t,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(t,r){return this._getLogFunction(t,r,console.timeStamp||C)}group(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},o=br({logLevel:t,message:r,opts:n}),{collapsed:i}=n;return o.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(o)}groupCollapsed(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,r,Object.assign({},n,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,"",console.groupEnd||C)}withGroup(t,r,n){this.group(t,r)();try{n()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=vr(t)}_getLogFunction(t,r,n,o,i){if(this._shouldLog(t)){i=br({logLevel:t,message:r,args:o,opts:i}),n=n||i.method,te(n),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=X();let f=i.tag||i.message;if(i.once&&f)if(!dr[f])dr[f]=X();else return C;return r=li(this.id,i.message,i),n.bind(console,r,...i.args)}return C}};K.VERSION=Me;function vr(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return te(Number.isFinite(t)&&t>=0),t}function br(e){let{logLevel:t,message:r}=e;e.logLevel=vr(t);let n=e.args?Array.from(e.args):[];for(;n.length&&n.shift()!==r;);switch(typeof t){case"string":case"function":r!==void 0&&n.unshift(r),e.message=t;break;case"object":Object.assign(e,t);break;default:}typeof e.message=="function"&&(e.message=e.message());let o=typeof e.message;return te(o==="string"||o==="object"),Object.assign(e,{args:n},e.opts)}function li(e,t,r){if(typeof t=="string"){let n=r.time?pr(lr(r.total)):"";t=r.time?"".concat(e,": ").concat(n," ").concat(t):"".concat(e,": ").concat(t),t=mr(t,r.color,r.background)}return t}function pi(e){let{image:t,message:r="",scale:n=1}=e;return console.warn("removed"),C}function yi(e){let{image:t,message:r="",scale:n=1}=e;if(typeof t=="string"){let i=new Image;return i.onload=()=>{let f=Ue(i,r,n);console.log(...f)},i.src=t,C}let o=t.nodeName||"";if(o.toLowerCase()==="img")return console.log(...Ue(t,r,n)),C;if(o.toLowerCase()==="canvas"){let i=new Image;return i.onload=()=>console.log(...Ue(i,r,n)),i.src=t.toDataURL(),C}return C}function mi(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}var Ds=new K({id:"@probe.gl/log"});var _=new K({id:"luma.gl"});function _e(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var q=class{constructor(t,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=t,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(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=_e(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(_e()-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 ne=class{constructor(t){this.id=void 0,this.stats={},this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let r of Object.values(this.stats))t(r)}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(t){let{name:r,type:n}=t,o=this.stats[r];return o||(t instanceof q?o=t:o=new q(r,n),this.stats[r]=o),o}};function Te(e){return Te=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Te(e)}function wr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,di(n.key),n)}}function hi(e,t,r){return t&&wr(e.prototype,t),r&&wr(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function di(e){var t=gi(e,"string");return Te(t)==="symbol"?t:String(t)}function gi(e,t){if(Te(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(Te(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function bi(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var bt=function(){function e(){bi(this,e),this.stats=new Map}var t=e.prototype;return t.getStats=function(n){return this.get(n)},t.get=function(n){return this.stats.has(n)||this.stats.set(n,new ne({id:n})),this.stats.get(n)},hi(e)}(),oe=new bt;function vi(){var e=typeof __VERSION__<"u"?__VERSION__:"running from source",t="set luma.log.level=1 (or higher) to trace rendering";if(globalThis.luma&&globalThis.luma.VERSION!==e)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat(e));return globalThis.luma||(B()&&_.log(1,"".concat(e," - ").concat(t))(),globalThis.luma=globalThis.luma||{VERSION:e,version:e,log:_,stats:oe}),e}var Fe=vi();function vt(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)?e:null}function z(e){return Array.isArray(e)?e.length===0||typeof e[0]=="number"?e:null:vt(e)}var wt={};function Y(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";wt[e]=wt[e]||1;var t=wt[e]++;return"".concat(e,"-").concat(t)}function Or(e){return e>0&&(e&e-1)===0}function Sr(e){var t=!0;for(var r in e){t=!1;break}return t}function je(e){return je=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},je(e)}function Pr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function wi(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Pr(Object(r),!0).forEach(function(n){Oi(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Pr(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Oi(e,t,r){return t=Tr(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Tr(n.key),n)}}function Si(e,t,r){return t&&_r(e.prototype,t),r&&_r(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Tr(e){var t=Pi(e,"string");return je(t)==="symbol"?t:String(t)}function Pi(e,t){if(je(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(je(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function _i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var O=function(){function e(r,n,o){if(_i(this,e),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=Ti(n,o);var i=this.props.id!=="undefined"?this.props.id:Y(this[Symbol.toStringTag]);this.props.id=i,this.id=i,this.userData=this.props.userData||{},this.addStats()}var t=e.prototype;return t.destroy=function(){this.destroyResource()},t.delete=function(){return this.destroy(),this},t.toString=function(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")},t.getProps=function(){return this.props},t.attachResource=function(n){this._attachedResources.add(n)},t.detachResource=function(n){this._attachedResources.delete(n)},t.destroyAttachedResource=function(n){this._attachedResources.delete(n)&&n.destroy()},t.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},t.destroyResource=function(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0},t.removeStats=function(){var n=this._device.statsManager.getStats("Resource Counts"),o=this[Symbol.toStringTag];n.get("".concat(o,"s Active")).decrementCount()},t.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},t.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},t.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()},Si(e)}();O.defaultProps={id:"undefined",handle:void 0,userData:void 0};function Ti(e,t){var r=wi({},t);for(var n in e)e[n]!==void 0&&(r[n]=e[n]);return r}function ie(e){return ie=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ie(e)}var Ar;function jr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Ot(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?jr(Object(r),!0).forEach(function(n){ji(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):jr(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ji(e,t,r){return t=xr(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ei(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Er(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,xr(n.key),n)}}function Ai(e,t,r){return t&&Er(e.prototype,t),r&&Er(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function xr(e){var t=xi(e,"string");return ie(t)==="symbol"?t:String(t)}function xi(e,t){if(ie(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(ie(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ri(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&St(e,t)}function St(e,t){return St=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},St(e,t)}function Ii(e){var t=Bi();return function(){var n=ze(e),o;if(t){var i=ze(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return Di(this,o)}}function Di(e,t){if(t&&(ie(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Li(e)}function Li(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Bi(){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 ze(e){return ze=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},ze(e)}Ar=Symbol.toStringTag;var R=function(e){Ri(r,e);var t=Ii(r);function r(o,i){var f;Ei(this,r);var s=Ot({},i);return(i.usage||0)&r.INDEX&&!i.indexType&&(i.data instanceof Uint32Array?s.indexType="uint32":i.data instanceof Uint16Array&&(s.indexType="uint16")),f=t.call(this,o,s,r.defaultProps),f.usage=void 0,f.indexType=void 0,f.byteLength=void 0,f.debugData=new ArrayBuffer(0),f.usage=i.usage||0,f.indexType=s.indexType,f}var n=r.prototype;return n.readSyncWebGL2=function(i,f){throw new Error("not implemented")},n._setDebugData=function(i,f,s){var u=ArrayBuffer.isView(i)?i.buffer:i,p=Math.min(i?i.byteLength:s,r.DEBUG_DATA_MAX_LENGTH);i===null?this.debugData=new ArrayBuffer(p):f===0&&s===i.byteLength?this.debugData=u.slice(0,p):this.debugData=u.slice(f,f+p)},Ai(r,[{key:Ar,get:function(){return"Buffer"}}]),r}(O);R.defaultProps=Ot(Ot({},O.defaultProps),{},{usage:0,byteLength:0,byteOffset:0,data:null,indexType:"uint16",mappedAtCreation:!1});R.MAP_READ=1;R.MAP_WRITE=2;R.COPY_SRC=4;R.COPY_DST=8;R.INDEX=16;R.VERTEX=32;R.UNIFORM=64;R.STORAGE=128;R.INDIRECT=256;R.QUERY_RESOLVE=512;R.DEBUG_DATA_MAX_LENGTH=32;function Ee(e){return Ee=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ee(e)}var Dr;function Rr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Pt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Rr(Object(r),!0).forEach(function(n){Ni(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Rr(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Ni(e,t,r){return t=Lr(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ci(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ir(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Lr(n.key),n)}}function Mi(e,t,r){return t&&Ir(e.prototype,t),r&&Ir(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Lr(e){var t=ki(e,"string");return Ee(t)==="symbol"?t:String(t)}function ki(e,t){if(Ee(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(Ee(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}Dr=Symbol.toStringTag;var Z=function(){function e(r){Ci(this,e),this.id=void 0,this.statsManager=oe,this.props=void 0,this.userData={},this._lumaData={},this.info=void 0,this.lost=void 0,this.canvasContext=void 0,this.props=Pt(Pt({},e.defaultProps),r),this.id=this.props.id||Y(this[Symbol.toStringTag].toLowerCase())}var t=e.prototype;return t.loseDevice=function(){return!1},t.getCanvasContext=function(){if(!this.canvasContext)throw new Error("Device has no CanvasContext");return this.canvasContext},t.createTexture=function(n){return(n instanceof Promise||typeof n=="string")&&(n={data:n}),this._createTexture(n)},t.createCommandEncoder=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};throw new Error("not implemented")},t.readPixelsToArrayWebGL=function(n,o){throw new Error("not implemented")},t.readPixelsToBufferWebGL2=function(n,o){throw new Error("not implemented")},t.setParametersWebGL=function(n){throw new Error("not implemented")},t.withParametersWebGL=function(n,o){throw new Error("not implemented")},t.clearWebGL=function(n){throw new Error("not implemented")},t._getBufferProps=function(n){(n instanceof ArrayBuffer||ArrayBuffer.isView(n))&&(n={data:n});var o=Pt({},n);return(n.usage||0)&R.INDEX&&!n.indexType&&(n.data instanceof Uint32Array?o.indexType="uint32":n.data instanceof Uint16Array?o.indexType="uint16":_.warn("indices buffer content must be of integer type")()),o},Mi(e,[{key:Dr,get:function(){return"Device"}}]),e}();Z.defaultProps={id:null,type:"best-available",canvas:null,container:null,webgl2:!0,webgl1:!0,manageState:!0,width:800,height:600,debug:Boolean(_.get("debug")),break:[],gl:null};Z.VERSION=Fe;function ae(e,t){if(!e)throw new Error(t||"luma.gl: assertion failed.")}function ue(e){return ue=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ue(e)}function _t(){"use strict";_t=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(l,a,c){l[a]=c.value},o=typeof Symbol=="function"?Symbol:{},i=o.iterator||"@@iterator",f=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function u(l,a,c){return Object.defineProperty(l,a,{value:c,enumerable:!0,configurable:!0,writable:!0}),l[a]}try{u({},"")}catch{u=function(c,y,h){return c[y]=h}}function p(l,a,c,y){var h=a&&a.prototype instanceof v?a:v,m=Object.create(h.prototype),d=new U(y||[]);return n(m,"_invoke",{value:Se(l,c,d)}),m}function g(l,a,c){try{return{type:"normal",arg:l.call(a,c)}}catch(y){return{type:"throw",arg:y}}}e.wrap=p;var b={};function v(){}function T(){}function P(){}var D={};u(D,i,function(){return this});var L=Object.getPrototypeOf,I=L&&L(L(G([])));I&&I!==t&&r.call(I,i)&&(D=I);var E=P.prototype=v.prototype=Object.create(D);function M(l){["next","throw","return"].forEach(function(a){u(l,a,function(c){return this._invoke(a,c)})})}function N(l,a){function c(h,m,d,w){var S=g(l[h],l,m);if(S.type!=="throw"){var A=S.arg,j=A.value;return j&&ue(j)=="object"&&r.call(j,"__await")?a.resolve(j.__await).then(function(x){c("next",x,d,w)},function(x){c("throw",x,d,w)}):a.resolve(j).then(function(x){A.value=x,d(A)},function(x){return c("throw",x,d,w)})}w(S.arg)}var y;n(this,"_invoke",{value:function(m,d){function w(){return new a(function(S,A){c(m,d,S,A)})}return y=y?y.then(w,w):w()}})}function Se(l,a,c){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 W()}for(c.method=h,c.arg=m;;){var d=c.delegate;if(d){var w=V(d,c);if(w){if(w===b)continue;return w}}if(c.method==="next")c.sent=c._sent=c.arg;else if(c.method==="throw"){if(y==="suspendedStart")throw y="completed",c.arg;c.dispatchException(c.arg)}else c.method==="return"&&c.abrupt("return",c.arg);y="executing";var S=g(l,a,c);if(S.type==="normal"){if(y=c.done?"completed":"suspendedYield",S.arg===b)continue;return{value:S.arg,done:c.done}}S.type==="throw"&&(y="completed",c.method="throw",c.arg=S.arg)}}}function V(l,a){var c=a.method,y=l.iterator[c];if(y===void 0)return a.delegate=null,c==="throw"&&l.iterator.return&&(a.method="return",a.arg=void 0,V(l,a),a.method==="throw")||c!=="return"&&(a.method="throw",a.arg=new TypeError("The iterator does not provide a '"+c+"' method")),b;var h=g(y,l.iterator,a.arg);if(h.type==="throw")return a.method="throw",a.arg=h.arg,a.delegate=null,b;var m=h.arg;return m?m.done?(a[l.resultName]=m.value,a.next=l.nextLoc,a.method!=="return"&&(a.method="next",a.arg=void 0),a.delegate=null,b):m:(a.method="throw",a.arg=new TypeError("iterator result is not an object"),a.delegate=null,b)}function Pe(l){var a={tryLoc:l[0]};1 in l&&(a.catchLoc=l[1]),2 in l&&(a.finallyLoc=l[2],a.afterLoc=l[3]),this.tryEntries.push(a)}function k(l){var a=l.completion||{};a.type="normal",delete a.arg,l.completion=a}function U(l){this.tryEntries=[{tryLoc:"root"}],l.forEach(Pe,this),this.reset(!0)}function G(l){if(l){var a=l[i];if(a)return a.call(l);if(typeof l.next=="function")return l;if(!isNaN(l.length)){var c=-1,y=function h(){for(;++c<l.length;)if(r.call(l,c))return h.value=l[c],h.done=!1,h;return h.value=void 0,h.done=!0,h};return y.next=y}}return{next:W}}function W(){return{value:void 0,done:!0}}return T.prototype=P,n(E,"constructor",{value:P,configurable:!0}),n(P,"constructor",{value:T,configurable:!0}),T.displayName=u(P,s,"GeneratorFunction"),e.isGeneratorFunction=function(l){var a=typeof l=="function"&&l.constructor;return!!a&&(a===T||(a.displayName||a.name)==="GeneratorFunction")},e.mark=function(l){return Object.setPrototypeOf?Object.setPrototypeOf(l,P):(l.__proto__=P,u(l,s,"GeneratorFunction")),l.prototype=Object.create(E),l},e.awrap=function(l){return{__await:l}},M(N.prototype),u(N.prototype,f,function(){return this}),e.AsyncIterator=N,e.async=function(l,a,c,y,h){h===void 0&&(h=Promise);var m=new N(p(l,a,c,y),h);return e.isGeneratorFunction(a)?m:m.next().then(function(d){return d.done?d.value:m.next()})},M(E),u(E,s,"Generator"),u(E,i,function(){return this}),u(E,"toString",function(){return"[object Generator]"}),e.keys=function(l){var a=Object(l),c=[];for(var y in a)c.push(y);return c.reverse(),function h(){for(;c.length;){var m=c.pop();if(m in a)return h.value=m,h.done=!1,h}return h.done=!0,h}},e.values=G,U.prototype={constructor:U,reset:function(a){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(k),!a)for(var c in this)c.charAt(0)==="t"&&r.call(this,c)&&!isNaN(+c.slice(1))&&(this[c]=void 0)},stop:function(){this.done=!0;var a=this.tryEntries[0].completion;if(a.type==="throw")throw a.arg;return this.rval},dispatchException:function(a){if(this.done)throw a;var c=this;function y(A,j){return d.type="throw",d.arg=a,c.next=A,j&&(c.method="next",c.arg=void 0),!!j}for(var h=this.tryEntries.length-1;h>=0;--h){var m=this.tryEntries[h],d=m.completion;if(m.tryLoc==="root")return y("end");if(m.tryLoc<=this.prev){var w=r.call(m,"catchLoc"),S=r.call(m,"finallyLoc");if(w&&S){if(this.prev<m.catchLoc)return y(m.catchLoc,!0);if(this.prev<m.finallyLoc)return y(m.finallyLoc)}else if(w){if(this.prev<m.catchLoc)return y(m.catchLoc,!0)}else{if(!S)throw new Error("try statement without catch or finally");if(this.prev<m.finallyLoc)return y(m.finallyLoc)}}}},abrupt:function(a,c){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&&(a==="break"||a==="continue")&&m.tryLoc<=c&&c<=m.finallyLoc&&(m=null);var d=m?m.completion:{};return d.type=a,d.arg=c,m?(this.method="next",this.next=m.finallyLoc,b):this.complete(d)},complete:function(a,c){if(a.type==="throw")throw a.arg;return a.type==="break"||a.type==="continue"?this.next=a.arg:a.type==="return"?(this.rval=this.arg=a.arg,this.method="return",this.next="end"):a.type==="normal"&&c&&(this.next=c),b},finish:function(a){for(var c=this.tryEntries.length-1;c>=0;--c){var y=this.tryEntries[c];if(y.finallyLoc===a)return this.complete(y.completion,y.afterLoc),k(y),b}},catch:function(a){for(var c=this.tryEntries.length-1;c>=0;--c){var y=this.tryEntries[c];if(y.tryLoc===a){var h=y.completion;if(h.type==="throw"){var m=h.arg;k(y)}return m}}throw new Error("illegal catch attempt")},delegateYield:function(a,c,y){return this.delegate={iterator:G(a),resultName:c,nextLoc:y},this.method==="next"&&(this.arg=void 0),b}},e}function Br(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Nr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Br(Object(r),!0).forEach(function(n){Ui(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Br(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Ui(e,t,r){return t=Ur(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Cr(e,t,r,n,o,i,f){try{var s=e[i](f),u=s.value}catch(p){r(p);return}s.done?t(u):Promise.resolve(u).then(n,o)}function Gi(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function f(u){Cr(i,n,o,f,s,"next",u)}function s(u){Cr(i,n,o,f,s,"throw",u)}f(void 0)})}}function Fi(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=zi(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(p){throw p},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
7
+ "use strict";var __exports__=(()=>{var dt=Object.defineProperty;var Qo=Object.getOwnPropertyDescriptor;var ei=Object.getOwnPropertyNames;var ti=Object.prototype.hasOwnProperty;var ri=(e,t)=>{for(var r in t)dt(e,r,{get:t[r],enumerable:!0})},ni=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ei(t))!ti.call(e,o)&&o!==r&&dt(e,o,{get:()=>t[o],enumerable:!(n=Qo(t,o))||n.enumerable});return e};var oi=e=>ni(dt({},"__esModule",{value:!0}),e);var Qc={};ri(Qc,{Buffer:()=>R,CanvasContext:()=>Tt,CommandBuffer:()=>Xt,CommandEncoder:()=>Yt,ComputePass:()=>Wt,ComputePipeline:()=>Ft,Device:()=>Z,ExternalTexture:()=>At,Framebuffer:()=>Mt,RenderPass:()=>Ht,RenderPipeline:()=>Ut,Resource:()=>O,Sampler:()=>Nt,Shader:()=>Lt,StatsManager:()=>bt,Texture:()=>F,TransformFeedback:()=>tr,UniformBlock:()=>lt,UniformBufferLayout:()=>st,UniformStore:()=>Lo,VERSION:()=>Fe,VertexArray:()=>Qt,assert:()=>ae,cancelAnimationFrame:()=>Jo,cast:()=>Uo,checkProps:()=>Ho,decodeShaderAttributeType:()=>ot,decodeShaderUniformType:()=>ft,decodeTextureFormat:()=>Co,decodeVertexFormat:()=>Re,deepEqual:()=>ht,fillArray:()=>vo,formatCompilerLog:()=>$e,formatValue:()=>or,getAttributeInfosFromLayouts:()=>Zt,getDataTypeFromTypedArray:()=>rr,getScratchArray:()=>bo,getScratchArrayBuffer:()=>De,getTypedArrayFromDataType:()=>Mo,getVertexFormatFromAttribute:()=>ko,glsl:()=>Jc,isNumberArray:()=>z,isObjectEmpty:()=>Sr,isPowerOfTwo:()=>Or,isTypedArray:()=>vt,isUniformValue:()=>nr,loadFile:()=>Ko,loadImage:()=>$o,loadImageBitmap:()=>Yo,loadScript:()=>Xo,log:()=>_,luma:()=>He,makeRandomNumberGenerator:()=>sr,mergeShaderLayout:()=>io,random:()=>qo,requestAnimationFrame:()=>Zo,setPathPrefix:()=>Wo,splitUniformsAndBindings:()=>Go,stubRemovedMethods:()=>Fo,uid:()=>Y});function gt(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}function B(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||gt()}var ii=globalThis.self||globalThis.window||globalThis.global,ee=globalThis.window||globalThis.self||globalThis.global,ai=globalThis.document||{},$=globalThis.process||{},ui=globalThis.console,os=globalThis.navigator||{};var Me=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",us=B();function fi(e){try{let t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var ke=class{constructor(t,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=fi(n),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function lr(e){let t;return e<10?t="".concat(e.toFixed(2),"ms"):e<100?t="".concat(e.toFixed(1),"ms"):e<1e3?t="".concat(e.toFixed(0),"ms"):t="".concat((e/1e3).toFixed(2),"s"),t}function pr(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(t-e.length,0);return"".concat(" ".repeat(r)).concat(e)}function Ue(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,o=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>n&&(r=Math.min(r,n/e.width));let i=e.width*r,f=e.height*r,s=["font-size:1px;","padding:".concat(Math.floor(f/2),"px ").concat(Math.floor(i/2),"px;"),"line-height:".concat(f,"px;"),"background:url(".concat(o,");"),"background-size:".concat(i,"px ").concat(f,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),s]}var Ge;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Ge||(Ge={}));var ci=10;function yr(e){return typeof e!="string"?e:(e=e.toUpperCase(),Ge[e]||Ge.WHITE)}function mr(e,t,r){if(!B&&typeof e=="string"){if(t){let n=yr(t);e="\x1B[".concat(n,"m").concat(e,"\x1B[39m")}if(r){let n=yr(r);e="\x1B[".concat(n+ci,"m").concat(e,"\x1B[49m")}}return e}function hr(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],r=Object.getPrototypeOf(e),n=Object.getOwnPropertyNames(r),o=e;for(let i of n){let f=o[i];typeof f=="function"&&(t.find(s=>i===s)||(o[i]=f.bind(e)))}}function te(e,t){if(!e)throw new Error(t||"Assertion failed")}function X(){let e;if(B()&&ee.performance){var t,r;e=ee===null||ee===void 0||(t=ee.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if("hrtime"in $){var n;let o=$===null||$===void 0||(n=$.hrtime)===null||n===void 0?void 0:n.call($);e=o[0]*1e3+o[1]/1e6}else e=Date.now();return e}var re={debug:B()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},si={enabled:!0,level:0};function C(){}var dr={},gr={once:!0},K=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=Me,this._startTs=X(),this._deltaTs=X(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new ke("__probe-".concat(this.id,"__"),si),this.timeStamp("".concat(this.id," started")),hr(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((X()-this._startTs).toPrecision(10))}getDelta(){return Number((X()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){te(t,r)}warn(t){return this._getLogFunction(0,t,re.warn,arguments,gr)}error(t){return this._getLogFunction(0,t,re.error,arguments)}deprecated(t,r){return this.warn("`".concat(t,"` is deprecated and will be removed in a later version. Use `").concat(r,"` instead"))}removed(t,r){return this.error("`".concat(t,"` has been removed. Use `").concat(r,"` instead"))}probe(t,r){return this._getLogFunction(t,r,re.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,re.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){return this._getLogFunction(t,r,re.debug||re.info,arguments,gr)}table(t,r,n){return r?this._getLogFunction(t,r,console.table||C,n&&[n],{tag:mi(r)}):C}image(t){let{logLevel:r,priority:n,image:o,message:i="",scale:f=1}=t;return this._shouldLog(r||n)?B()?yi({image:o,message:i,scale:f}):pi({image:o,message:i,scale:f}):C}time(t,r){return this._getLogFunction(t,r,console.time?console.time:console.info)}timeEnd(t,r){return this._getLogFunction(t,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(t,r){return this._getLogFunction(t,r,console.timeStamp||C)}group(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},o=br({logLevel:t,message:r,opts:n}),{collapsed:i}=n;return o.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(o)}groupCollapsed(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,r,Object.assign({},n,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,"",console.groupEnd||C)}withGroup(t,r,n){this.group(t,r)();try{n()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=vr(t)}_getLogFunction(t,r,n,o,i){if(this._shouldLog(t)){i=br({logLevel:t,message:r,args:o,opts:i}),n=n||i.method,te(n),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=X();let f=i.tag||i.message;if(i.once&&f)if(!dr[f])dr[f]=X();else return C;return r=li(this.id,i.message,i),n.bind(console,r,...i.args)}return C}};K.VERSION=Me;function vr(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return te(Number.isFinite(t)&&t>=0),t}function br(e){let{logLevel:t,message:r}=e;e.logLevel=vr(t);let n=e.args?Array.from(e.args):[];for(;n.length&&n.shift()!==r;);switch(typeof t){case"string":case"function":r!==void 0&&n.unshift(r),e.message=t;break;case"object":Object.assign(e,t);break;default:}typeof e.message=="function"&&(e.message=e.message());let o=typeof e.message;return te(o==="string"||o==="object"),Object.assign(e,{args:n},e.opts)}function li(e,t,r){if(typeof t=="string"){let n=r.time?pr(lr(r.total)):"";t=r.time?"".concat(e,": ").concat(n," ").concat(t):"".concat(e,": ").concat(t),t=mr(t,r.color,r.background)}return t}function pi(e){let{image:t,message:r="",scale:n=1}=e;return console.warn("removed"),C}function yi(e){let{image:t,message:r="",scale:n=1}=e;if(typeof t=="string"){let i=new Image;return i.onload=()=>{let f=Ue(i,r,n);console.log(...f)},i.src=t,C}let o=t.nodeName||"";if(o.toLowerCase()==="img")return console.log(...Ue(t,r,n)),C;if(o.toLowerCase()==="canvas"){let i=new Image;return i.onload=()=>console.log(...Ue(i,r,n)),i.src=t.toDataURL(),C}return C}function mi(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}var Ds=new K({id:"@probe.gl/log"});var _=new K({id:"luma.gl"});function _e(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var q=class{constructor(t,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=t,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(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=_e(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(_e()-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 ne=class{constructor(t){this.id=void 0,this.stats={},this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let r of Object.values(this.stats))t(r)}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(t){let{name:r,type:n}=t,o=this.stats[r];return o||(t instanceof q?o=t:o=new q(r,n),this.stats[r]=o),o}};function Te(e){return Te=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Te(e)}function wr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,di(n.key),n)}}function hi(e,t,r){return t&&wr(e.prototype,t),r&&wr(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function di(e){var t=gi(e,"string");return Te(t)==="symbol"?t:String(t)}function gi(e,t){if(Te(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(Te(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function bi(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var bt=function(){function e(){bi(this,e),this.stats=new Map}var t=e.prototype;return t.getStats=function(n){return this.get(n)},t.get=function(n){return this.stats.has(n)||this.stats.set(n,new ne({id:n})),this.stats.get(n)},hi(e)}(),oe=new bt;function vi(){var e=typeof __VERSION__<"u"?__VERSION__:"running from source",t="set luma.log.level=1 (or higher) to trace rendering";if(globalThis.luma&&globalThis.luma.VERSION!==e)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat(e));return globalThis.luma||(B()&&_.log(1,"".concat(e," - ").concat(t))(),globalThis.luma=globalThis.luma||{VERSION:e,version:e,log:_,stats:oe}),e}var Fe=vi();function vt(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)?e:null}function z(e){return Array.isArray(e)?e.length===0||typeof e[0]=="number"?e:null:vt(e)}var wt={};function Y(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";wt[e]=wt[e]||1;var t=wt[e]++;return"".concat(e,"-").concat(t)}function Or(e){return e>0&&(e&e-1)===0}function Sr(e){var t=!0;for(var r in e){t=!1;break}return t}function je(e){return je=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},je(e)}function Pr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function wi(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Pr(Object(r),!0).forEach(function(n){Oi(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Pr(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Oi(e,t,r){return t=Tr(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Tr(n.key),n)}}function Si(e,t,r){return t&&_r(e.prototype,t),r&&_r(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Tr(e){var t=Pi(e,"string");return je(t)==="symbol"?t:String(t)}function Pi(e,t){if(je(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(je(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function _i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var O=function(){function e(r,n,o){if(_i(this,e),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=Ti(n,o);var i=this.props.id!=="undefined"?this.props.id:Y(this[Symbol.toStringTag]);this.props.id=i,this.id=i,this.userData=this.props.userData||{},this.addStats()}var t=e.prototype;return t.destroy=function(){this.destroyResource()},t.delete=function(){return this.destroy(),this},t.toString=function(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")},t.getProps=function(){return this.props},t.attachResource=function(n){this._attachedResources.add(n)},t.detachResource=function(n){this._attachedResources.delete(n)},t.destroyAttachedResource=function(n){this._attachedResources.delete(n)&&n.destroy()},t.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},t.destroyResource=function(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0},t.removeStats=function(){var n=this._device.statsManager.getStats("Resource Counts"),o=this[Symbol.toStringTag];n.get("".concat(o,"s Active")).decrementCount()},t.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},t.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},t.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()},Si(e)}();O.defaultProps={id:"undefined",handle:void 0,userData:void 0};function Ti(e,t){var r=wi({},t);for(var n in e)e[n]!==void 0&&(r[n]=e[n]);return r}function ie(e){return ie=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ie(e)}var Ar;function jr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Ot(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?jr(Object(r),!0).forEach(function(n){ji(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):jr(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ji(e,t,r){return t=xr(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ei(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Er(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,xr(n.key),n)}}function Ai(e,t,r){return t&&Er(e.prototype,t),r&&Er(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function xr(e){var t=xi(e,"string");return ie(t)==="symbol"?t:String(t)}function xi(e,t){if(ie(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(ie(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ri(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&St(e,t)}function St(e,t){return St=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},St(e,t)}function Ii(e){var t=Bi();return function(){var n=ze(e),o;if(t){var i=ze(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return Di(this,o)}}function Di(e,t){if(t&&(ie(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Li(e)}function Li(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Bi(){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 ze(e){return ze=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},ze(e)}Ar=Symbol.toStringTag;var R=function(e){Ri(r,e);var t=Ii(r);function r(o,i){var f;Ei(this,r);var s=Ot({},i);return(i.usage||0)&r.INDEX&&!i.indexType&&(i.data instanceof Uint32Array?s.indexType="uint32":i.data instanceof Uint16Array&&(s.indexType="uint16")),f=t.call(this,o,s,r.defaultProps),f.usage=void 0,f.indexType=void 0,f.byteLength=void 0,f.debugData=new ArrayBuffer(0),f.usage=i.usage||0,f.indexType=s.indexType,f}var n=r.prototype;return n.readSyncWebGL2=function(i,f){throw new Error("not implemented")},n._setDebugData=function(i,f,s){var u=ArrayBuffer.isView(i)?i.buffer:i,p=Math.min(i?i.byteLength:s,r.DEBUG_DATA_MAX_LENGTH);i===null?this.debugData=new ArrayBuffer(p):f===0&&s===i.byteLength?this.debugData=u.slice(0,p):this.debugData=u.slice(f,f+p)},Ai(r,[{key:Ar,get:function(){return"Buffer"}}]),r}(O);R.defaultProps=Ot(Ot({},O.defaultProps),{},{usage:0,byteLength:0,byteOffset:0,data:null,indexType:"uint16",mappedAtCreation:!1});R.MAP_READ=1;R.MAP_WRITE=2;R.COPY_SRC=4;R.COPY_DST=8;R.INDEX=16;R.VERTEX=32;R.UNIFORM=64;R.STORAGE=128;R.INDIRECT=256;R.QUERY_RESOLVE=512;R.DEBUG_DATA_MAX_LENGTH=32;function Ee(e){return Ee=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ee(e)}var Dr;function Rr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Pt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Rr(Object(r),!0).forEach(function(n){Ni(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Rr(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Ni(e,t,r){return t=Lr(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ci(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ir(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Lr(n.key),n)}}function Mi(e,t,r){return t&&Ir(e.prototype,t),r&&Ir(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Lr(e){var t=ki(e,"string");return Ee(t)==="symbol"?t:String(t)}function ki(e,t){if(Ee(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(Ee(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}Dr=Symbol.toStringTag;var Z=function(){function e(r){Ci(this,e),this.id=void 0,this.statsManager=oe,this.props=void 0,this.userData={},this._lumaData={},this.info=void 0,this.lost=void 0,this.canvasContext=void 0,this.props=Pt(Pt({},e.defaultProps),r),this.id=this.props.id||Y(this[Symbol.toStringTag].toLowerCase())}var t=e.prototype;return t.loseDevice=function(){return!1},t.getCanvasContext=function(){if(!this.canvasContext)throw new Error("Device has no CanvasContext");return this.canvasContext},t.createTexture=function(n){return(n instanceof Promise||typeof n=="string")&&(n={data:n}),this._createTexture(n)},t.createCommandEncoder=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};throw new Error("not implemented")},t.readPixelsToArrayWebGL=function(n,o){throw new Error("not implemented")},t.readPixelsToBufferWebGL=function(n,o){throw new Error("not implemented")},t.setParametersWebGL=function(n){throw new Error("not implemented")},t.getParametersWebGL=function(n){throw new Error("not implemented")},t.withParametersWebGL=function(n,o){throw new Error("not implemented")},t.clearWebGL=function(n){throw new Error("not implemented")},t._getBufferProps=function(n){(n instanceof ArrayBuffer||ArrayBuffer.isView(n))&&(n={data:n});var o=Pt({},n);return(n.usage||0)&R.INDEX&&!n.indexType&&(n.data instanceof Uint32Array?o.indexType="uint32":n.data instanceof Uint16Array?o.indexType="uint16":_.warn("indices buffer content must be of integer type")()),o},Mi(e,[{key:Dr,get:function(){return"Device"}}]),e}();Z.defaultProps={id:null,type:"best-available",canvas:null,container:null,webgl2:!0,webgl1:!0,manageState:!0,width:800,height:600,debug:Boolean(_.get("debug")),break:[],gl:null};Z.VERSION=Fe;function ae(e,t){if(!e)throw new Error(t||"luma.gl: assertion failed.")}function ue(e){return ue=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ue(e)}function _t(){"use strict";_t=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(l,a,c){l[a]=c.value},o=typeof Symbol=="function"?Symbol:{},i=o.iterator||"@@iterator",f=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function u(l,a,c){return Object.defineProperty(l,a,{value:c,enumerable:!0,configurable:!0,writable:!0}),l[a]}try{u({},"")}catch{u=function(c,y,h){return c[y]=h}}function p(l,a,c,y){var h=a&&a.prototype instanceof v?a:v,m=Object.create(h.prototype),d=new U(y||[]);return n(m,"_invoke",{value:Se(l,c,d)}),m}function g(l,a,c){try{return{type:"normal",arg:l.call(a,c)}}catch(y){return{type:"throw",arg:y}}}e.wrap=p;var b={};function v(){}function T(){}function P(){}var D={};u(D,i,function(){return this});var L=Object.getPrototypeOf,I=L&&L(L(G([])));I&&I!==t&&r.call(I,i)&&(D=I);var E=P.prototype=v.prototype=Object.create(D);function M(l){["next","throw","return"].forEach(function(a){u(l,a,function(c){return this._invoke(a,c)})})}function N(l,a){function c(h,m,d,w){var S=g(l[h],l,m);if(S.type!=="throw"){var A=S.arg,j=A.value;return j&&ue(j)=="object"&&r.call(j,"__await")?a.resolve(j.__await).then(function(x){c("next",x,d,w)},function(x){c("throw",x,d,w)}):a.resolve(j).then(function(x){A.value=x,d(A)},function(x){return c("throw",x,d,w)})}w(S.arg)}var y;n(this,"_invoke",{value:function(m,d){function w(){return new a(function(S,A){c(m,d,S,A)})}return y=y?y.then(w,w):w()}})}function Se(l,a,c){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 W()}for(c.method=h,c.arg=m;;){var d=c.delegate;if(d){var w=V(d,c);if(w){if(w===b)continue;return w}}if(c.method==="next")c.sent=c._sent=c.arg;else if(c.method==="throw"){if(y==="suspendedStart")throw y="completed",c.arg;c.dispatchException(c.arg)}else c.method==="return"&&c.abrupt("return",c.arg);y="executing";var S=g(l,a,c);if(S.type==="normal"){if(y=c.done?"completed":"suspendedYield",S.arg===b)continue;return{value:S.arg,done:c.done}}S.type==="throw"&&(y="completed",c.method="throw",c.arg=S.arg)}}}function V(l,a){var c=a.method,y=l.iterator[c];if(y===void 0)return a.delegate=null,c==="throw"&&l.iterator.return&&(a.method="return",a.arg=void 0,V(l,a),a.method==="throw")||c!=="return"&&(a.method="throw",a.arg=new TypeError("The iterator does not provide a '"+c+"' method")),b;var h=g(y,l.iterator,a.arg);if(h.type==="throw")return a.method="throw",a.arg=h.arg,a.delegate=null,b;var m=h.arg;return m?m.done?(a[l.resultName]=m.value,a.next=l.nextLoc,a.method!=="return"&&(a.method="next",a.arg=void 0),a.delegate=null,b):m:(a.method="throw",a.arg=new TypeError("iterator result is not an object"),a.delegate=null,b)}function Pe(l){var a={tryLoc:l[0]};1 in l&&(a.catchLoc=l[1]),2 in l&&(a.finallyLoc=l[2],a.afterLoc=l[3]),this.tryEntries.push(a)}function k(l){var a=l.completion||{};a.type="normal",delete a.arg,l.completion=a}function U(l){this.tryEntries=[{tryLoc:"root"}],l.forEach(Pe,this),this.reset(!0)}function G(l){if(l){var a=l[i];if(a)return a.call(l);if(typeof l.next=="function")return l;if(!isNaN(l.length)){var c=-1,y=function h(){for(;++c<l.length;)if(r.call(l,c))return h.value=l[c],h.done=!1,h;return h.value=void 0,h.done=!0,h};return y.next=y}}return{next:W}}function W(){return{value:void 0,done:!0}}return T.prototype=P,n(E,"constructor",{value:P,configurable:!0}),n(P,"constructor",{value:T,configurable:!0}),T.displayName=u(P,s,"GeneratorFunction"),e.isGeneratorFunction=function(l){var a=typeof l=="function"&&l.constructor;return!!a&&(a===T||(a.displayName||a.name)==="GeneratorFunction")},e.mark=function(l){return Object.setPrototypeOf?Object.setPrototypeOf(l,P):(l.__proto__=P,u(l,s,"GeneratorFunction")),l.prototype=Object.create(E),l},e.awrap=function(l){return{__await:l}},M(N.prototype),u(N.prototype,f,function(){return this}),e.AsyncIterator=N,e.async=function(l,a,c,y,h){h===void 0&&(h=Promise);var m=new N(p(l,a,c,y),h);return e.isGeneratorFunction(a)?m:m.next().then(function(d){return d.done?d.value:m.next()})},M(E),u(E,s,"Generator"),u(E,i,function(){return this}),u(E,"toString",function(){return"[object Generator]"}),e.keys=function(l){var a=Object(l),c=[];for(var y in a)c.push(y);return c.reverse(),function h(){for(;c.length;){var m=c.pop();if(m in a)return h.value=m,h.done=!1,h}return h.done=!0,h}},e.values=G,U.prototype={constructor:U,reset:function(a){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(k),!a)for(var c in this)c.charAt(0)==="t"&&r.call(this,c)&&!isNaN(+c.slice(1))&&(this[c]=void 0)},stop:function(){this.done=!0;var a=this.tryEntries[0].completion;if(a.type==="throw")throw a.arg;return this.rval},dispatchException:function(a){if(this.done)throw a;var c=this;function y(A,j){return d.type="throw",d.arg=a,c.next=A,j&&(c.method="next",c.arg=void 0),!!j}for(var h=this.tryEntries.length-1;h>=0;--h){var m=this.tryEntries[h],d=m.completion;if(m.tryLoc==="root")return y("end");if(m.tryLoc<=this.prev){var w=r.call(m,"catchLoc"),S=r.call(m,"finallyLoc");if(w&&S){if(this.prev<m.catchLoc)return y(m.catchLoc,!0);if(this.prev<m.finallyLoc)return y(m.finallyLoc)}else if(w){if(this.prev<m.catchLoc)return y(m.catchLoc,!0)}else{if(!S)throw new Error("try statement without catch or finally");if(this.prev<m.finallyLoc)return y(m.finallyLoc)}}}},abrupt:function(a,c){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&&(a==="break"||a==="continue")&&m.tryLoc<=c&&c<=m.finallyLoc&&(m=null);var d=m?m.completion:{};return d.type=a,d.arg=c,m?(this.method="next",this.next=m.finallyLoc,b):this.complete(d)},complete:function(a,c){if(a.type==="throw")throw a.arg;return a.type==="break"||a.type==="continue"?this.next=a.arg:a.type==="return"?(this.rval=this.arg=a.arg,this.method="return",this.next="end"):a.type==="normal"&&c&&(this.next=c),b},finish:function(a){for(var c=this.tryEntries.length-1;c>=0;--c){var y=this.tryEntries[c];if(y.finallyLoc===a)return this.complete(y.completion,y.afterLoc),k(y),b}},catch:function(a){for(var c=this.tryEntries.length-1;c>=0;--c){var y=this.tryEntries[c];if(y.tryLoc===a){var h=y.completion;if(h.type==="throw"){var m=h.arg;k(y)}return m}}throw new Error("illegal catch attempt")},delegateYield:function(a,c,y){return this.delegate={iterator:G(a),resultName:c,nextLoc:y},this.method==="next"&&(this.arg=void 0),b}},e}function Br(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Nr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Br(Object(r),!0).forEach(function(n){Ui(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Br(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Ui(e,t,r){return t=Ur(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Cr(e,t,r,n,o,i,f){try{var s=e[i](f),u=s.value}catch(p){r(p);return}s.done?t(u):Promise.resolve(u).then(n,o)}function Gi(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function f(u){Cr(i,n,o,f,s,"next",u)}function s(u){Cr(i,n,o,f,s,"throw",u)}f(void 0)})}}function Fi(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=zi(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(p){throw p},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,f=!1,s;return{s:function(){r=r.call(e)},n:function(){var p=r.next();return i=p.done,p},e:function(p){f=!0,s=p},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(f)throw s}}}}function zi(e,t){if(e){if(typeof e=="string")return Mr(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Mr(e,t)}}function Mr(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function kr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Ur(n.key),n)}}function Hi(e,t,r){return t&&kr(e.prototype,t),r&&kr(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Ur(e){var t=Vi(e,"string");return ue(t)==="symbol"?t:String(t)}function Vi(e,t){if(ue(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(ue(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Wi(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var J=new Map,He=function(){function e(){Wi(this,e)}return e.registerDevices=function(r){var n=Fi(r),o;try{for(n.s();!(o=n.n()).done;){var i=o.value;ae(i.type&&i.isSupported&&i.create),J.set(i.type,i)}}catch(f){n.e(f)}finally{n.f()}},e.getAvailableDevices=function(){return Array.from(J).map(function(r){return r.type})},e.getSupportedDevices=function(){return Array.from(J).filter(function(r){return r.isSupported()}).map(function(r){return r.type})},e.setDefaultDeviceProps=function(r){Object.assign(Z.defaultProps,r)},e.createDevice=function(){var t=Gi(_t().mark(function n(){var o,i,f=arguments;return _t().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:o=f.length>0&&f[0]!==void 0?f[0]:{},o=Nr(Nr({},Z.defaultProps),o),o.gl&&(o.type="webgl"),u.t0=o.type,u.next=u.t0==="webgpu"?6:u.t0==="webgl"||u.t0==="webgl1"||u.t0==="webgl2"?12:u.t0==="best-available"?18:29;break;case 6:if(i=J.get("webgpu"),!i){u.next=11;break}return u.next=10,i.create(o);case 10:return u.abrupt("return",u.sent);case 11:return u.abrupt("break",29);case 12:if(i=J.get("webgl"),!i){u.next=17;break}return u.next=16,i.create(o);case 16:return u.abrupt("return",u.sent);case 17:return u.abrupt("break",29);case 18:if(i=J.get("webgpu"),!(i&&i.isSupported())){u.next=23;break}return u.next=22,i.create(o);case 22:return u.abrupt("return",u.sent);case 23:if(i=J.get("webgl"),!(i&&i.isSupported())){u.next=28;break}return u.next=27,i.create(o);case 27:return u.abrupt("return",u.sent);case 28:return u.abrupt("break",29);case 29:throw new Error("No matching device found. Ensure `@luma.gl/webgl` and/or `@luma.gl/webgpu` modules are imported.");case 30:case"end":return u.stop()}},n)}));function r(){return t.apply(this,arguments)}return r}(),Hi(e)}();He.stats=oe;He.log=_;function Ae(e){return Ae=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ae(e)}function Ve(e,t){return $i(e)||Yi(e,t)||Kr(e,t)||Ki()}function Ki(){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 Yi(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,o,i,f,s=[],u=!0,p=!1;try{if(i=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(g){p=!0,o=g}finally{try{if(!u&&r.return!=null&&(f=r.return(),Object(f)!==f))return}finally{if(p)throw o}}return s}}function $i(e){if(Array.isArray(e))return e}function Xi(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Kr(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(p){throw p},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
10
10
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,f=!1,s;return{s:function(){r=r.call(e)},n:function(){var p=r.next();return i=p.done,p},e:function(p){f=!0,s=p},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(f)throw s}}}}function Kr(e,t){if(e){if(typeof e=="string")return Gr(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Gr(e,t)}}function Gr(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Fr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function zr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Fr(Object(r),!0).forEach(function(n){qi(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Fr(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function qi(e,t,r){return t=Yr(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Zi(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Hr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Yr(n.key),n)}}function Ji(e,t,r){return t&&Hr(e.prototype,t),r&&Hr(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Yr(e){var t=Qi(e,"string");return Ae(t)==="symbol"?t:String(t)}function Qi(e,t){if(Ae(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(Ae(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var ea=B()&&typeof document<"u",We=function(){return ea&&document.readyState==="complete"},ta={canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,colorSpace:"srgb",alphaMode:"opaque"},Tt=function(){function e(r){var n=this;if(Zi(this,e),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=zr(zr({},ta),r),r=this.props,!B()){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=oa(r.canvas):this.canvas=r.canvas;else{var o,i,f=ia(r),s=na(((o=r)===null||o===void 0?void 0:o.container)||null);s.insertBefore(f,s.firstChild),this.canvas=f,(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(u){var p=Xi(u),g;try{for(p.s();!(g=p.n()).done;){var b=g.value;b.target===n.canvas&&n.update()}}catch(v){p.e(v)}finally{p.f()}}),this.resizeObserver.observe(this.canvas))}var t=e.prototype;return t.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},t.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)}},t.getAspect=function(){var n=this.getPixelSize(),o=Ve(n,2),i=o[0],f=o[1];return i/f},t.cssToDeviceRatio=function(){try{var n=this.getDrawingBufferSize(),o=Ve(n,1),i=o[0],f=this._canvasSizeInfo.clientWidth;return f?i/f:1}catch{return 1}},t.cssToDevicePixels=function(n){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=this.cssToDeviceRatio(),f=this.getDrawingBufferSize(),s=Ve(f,2),u=s[0],p=s[1];return aa(n,i,u,p,o)},t.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,f="height"in o?o.height:this.htmlCanvas.clientHeight;(!i||!f)&&(_.log(1,"Canvas clientWidth/clientHeight is 0")(),n=1,i=this.htmlCanvas.width||1,f=this.htmlCanvas.height||1);var s=this._canvasSizeInfo;if(s.clientWidth!==i||s.clientHeight!==f||s.devicePixelRatio!==n){var u=n,p=Math.floor(i*u),g=Math.floor(f*u);this.htmlCanvas.width=p,this.htmlCanvas.height=g;var b=this.getDrawingBufferSize(),v=Ve(b,2),T=v[0],P=v[1];(T!==p||P!==g)&&(u=Math.min(T/i,P/f),this.htmlCanvas.width=Math.floor(i*u),this.htmlCanvas.height=Math.floor(f*u),_.warn("Device pixel ratio clamped")()),this._canvasSizeInfo.clientWidth=i,this._canvasSizeInfo.clientHeight=f,this._canvasSizeInfo.devicePixelRatio=n}}},t.getDrawingBufferSize=function(){var n=this.device.gl;if(!n)throw new Error("canvas size");return[n.drawingBufferWidth,n.drawingBufferHeight]},t._setAutoCreatedCanvasId=function(n){var o;((o=this.htmlCanvas)===null||o===void 0?void 0:o.id)==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=n)},Ji(e,null,[{key:"isPageLoaded",get:function(){return We()}}]),e}();Tt.pageLoaded=ra();function ra(){return We()||typeof window>"u"?Promise.resolve():new Promise(function(e){window.addEventListener("load",function(){return e()})})}function na(e){if(typeof e=="string"){var t=document.getElementById(e);if(!t&&!We())throw new Error("Accessing '".concat(e,"' before page was loaded"));if(!t)throw new Error("".concat(e," is not an HTML element"));return t}else if(e)return e;return document.body}function oa(e){var t=document.getElementById(e);if(!t&&!We())throw new Error("Accessing '".concat(e,"' before page was loaded"));if(!(t instanceof HTMLCanvasElement))throw new Error("Object is not a canvas element");return t}function ia(e){var t=e.width,r=e.height,n=document.createElement("canvas");return n.id="lumagl-auto-created-canvas",n.width=t||1,n.height=r||1,n.style.width=Number.isFinite(t)?"".concat(t,"px"):"100%",n.style.height=Number.isFinite(r)?"".concat(r,"px"):"100%",n}function aa(e,t,r,n,o){var i=e,f=Vr(i[0],t,r),s=Wr(i[1],t,n,o),u=Vr(i[0]+1,t,r),p=u===r-1?u:u-1;u=Wr(i[1]+1,t,n,o);var g;return o?(u=u===0?u:u+1,g=s,s=u):g=u===n-1?u:u-1,{x:f,y:s,width:Math.max(p-f+1,1),height:Math.max(g-s+1,1)}}function Vr(e,t,r){var n=Math.min(Math.round(e*t),r-1);return n}function Wr(e,t,r,n){return n?Math.max(0,r-1-Math.round(e*t)):Math.min(Math.round(e*t),r-1)}function fe(e){return fe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fe(e)}var Zr;function $r(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Xr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$r(Object(r),!0).forEach(function(n){ua(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$r(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ua(e,t,r){return t=Jr(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function fa(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function qr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Jr(n.key),n)}}function ca(e,t,r){return t&&qr(e.prototype,t),r&&qr(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Jr(e){var t=sa(e,"string");return fe(t)==="symbol"?t:String(t)}function sa(e,t){if(fe(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(fe(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function la(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&jt(e,t)}function jt(e,t){return jt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},jt(e,t)}function pa(e){var t=ha();return function(){var n=Ke(e),o;if(t){var i=Ke(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return ya(this,o)}}function ya(e,t){if(t&&(fe(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ma(e)}function ma(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ha(){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 Ke(e){return Ke=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Ke(e)}Zr=Symbol.toStringTag;var F=function(e){la(r,e);var t=pa(r);function r(n,o){var i,f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:r.defaultProps;return fa(this,r),i=t.call(this,n,o,f),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 ca(r,[{key:Zr,get:function(){return"Texture"}}]),r}(O);F.defaultProps=Xr(Xr({},O.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});F.COPY_SRC=1;F.COPY_DST=2;F.TEXTURE_BINDING=4;F.STORAGE_BINDING=8;F.RENDER_ATTACHMENT=16;function ce(e){return ce=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ce(e)}var rn;function Qr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function en(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Qr(Object(r),!0).forEach(function(n){da(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Qr(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function da(e,t,r){return t=nn(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ga(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function tn(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,nn(n.key),n)}}function ba(e,t,r){return t&&tn(e.prototype,t),r&&tn(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function nn(e){var t=va(e,"string");return ce(t)==="symbol"?t:String(t)}function va(e,t){if(ce(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(ce(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function wa(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Et(e,t)}function Et(e,t){return Et=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},Et(e,t)}function Oa(e){var t=_a();return function(){var n=Ye(e),o;if(t){var i=Ye(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return Sa(this,o)}}function Sa(e,t){if(t&&(ce(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Pa(e)}function Pa(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}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 Ye(e){return Ye=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},Ye(e)}rn=Symbol.toStringTag;var At=function(e){wa(r,e);var t=Oa(r);function r(n,o){return ga(this,r),t.call(this,n,o,r.defaultProps)}return ba(r,[{key:rn,get:function(){return"ExternalTexture"}}]),r}(O);At.defaultProps=en(en({},O.defaultProps),{},{source:null,colorSpace:"srgb"});function xe(e){return xe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},xe(e)}function Ta(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ja(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(p){throw p},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luma.gl/core",
3
- "version": "9.0.0-beta.2",
3
+ "version": "9.0.0-beta.4",
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": "d90ddd6231c3d405d88dfb9e8c232c4dfefcc056"
45
+ "gitHead": "bf6bb45b25d59de5b3d05dab4b2e91ad583059e6"
46
46
  }
@@ -377,7 +377,7 @@ export abstract class Device {
377
377
  }
378
378
 
379
379
  /** @deprecated - will be removed - should use command encoder */
380
- readPixelsToBufferWebGL2(
380
+ readPixelsToBufferWebGL(
381
381
  source: Framebuffer | Texture,
382
382
  options?: {
383
383
  sourceX?: number;
@@ -399,6 +399,11 @@ export abstract class Device {
399
399
  throw new Error('not implemented');
400
400
  }
401
401
 
402
+ /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */
403
+ getParametersWebGL(parameters: any): void {
404
+ throw new Error('not implemented');
405
+ }
406
+
402
407
  /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */
403
408
  withParametersWebGL(parameters: any, func: any): any {
404
409
  throw new Error('not implemented');