@luma.gl/core 9.0.0-alpha.46 → 9.0.0-alpha.47

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.
@@ -103,6 +103,7 @@ export declare abstract class Device {
103
103
  _lumaData: {
104
104
  [key: string]: unknown;
105
105
  };
106
+ abstract destroy(): void;
106
107
  /** Information about the device (vendor, versions etc) */
107
108
  abstract info: DeviceInfo;
108
109
  /** Optional capability discovery */
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","names":["VERSION","lumaStats","log","uid","Buffer","DEFAULT_DEVICE_PROPS","id","type","canvas","container","webgl2","webgl1","manageState","width","height","debug","Boolean","get","break","gl","_Symbol$toStringTag","Symbol","toStringTag","Device","constructor","props","statsManager","userData","_lumaData","info","lost","canvasContext","toLowerCase","loseDevice","getCanvasContext","Error","createTexture","Promise","data","_createTexture","createCommandEncoder","arguments","length","undefined","_getBufferProps","ArrayBuffer","isView","newProps","usage","INDEX","indexType","Uint32Array","Uint16Array","warn"],"sources":["../../src/adapter/device.ts"],"sourcesContent":["// luma.gl, MIT license\nimport {VERSION} from '../init';\nimport {StatsManager, lumaStats} from '../lib/utils/stats-manager';\nimport {log} from '../lib/utils/log';\nimport {uid} from '../lib/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\nexport const DEFAULT_DEVICE_PROPS: 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\nexport type ShadingLanguage = 'glsl' | 'wgsl';\n\n/**\n * Identifies the GPU vendor and driver.\n * @see https://www.khronos.org/registry/webgl/extensions/WEBGL_debug_renderer_info/\n * @note Current WebGPU support is very limited\n */\nexport type DeviceInfo = {\n type: 'webgl' | 'webgl2' | 'webgpu';\n vendor: string;\n renderer: string;\n version: string;\n gpu: 'nvidia' | 'amd' | 'intel' | 'apple' | 'software' | 'unknown';\n shadingLanguages: ShadingLanguage[];\n shadingLanguageVersions: Record<string, string>;\n vendorMasked?: string;\n rendererMasked?: string;\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 get [Symbol.toStringTag](): string {\n return 'Device';\n }\n\n static VERSION = VERSION;\n\n constructor(props: DeviceProps) {\n this.props = {...DEFAULT_DEVICE_PROPS, ...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 // 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 createCommandEncoder(props: CommandEncoderProps = {}): CommandEncoder {\n throw new Error('not implemented');\n }\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 // 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","DEFAULT_DEVICE_PROPS","id","type","canvas","container","webgl2","webgl1","manageState","width","height","debug","Boolean","get","break","gl","_Symbol$toStringTag","Symbol","toStringTag","Device","constructor","props","statsManager","userData","_lumaData","info","lost","canvasContext","toLowerCase","loseDevice","getCanvasContext","Error","createTexture","Promise","data","_createTexture","createCommandEncoder","arguments","length","undefined","_getBufferProps","ArrayBuffer","isView","newProps","usage","INDEX","indexType","Uint32Array","Uint16Array","warn"],"sources":["../../src/adapter/device.ts"],"sourcesContent":["// luma.gl, MIT license\nimport {VERSION} from '../init';\nimport {StatsManager, lumaStats} from '../lib/utils/stats-manager';\nimport {log} from '../lib/utils/log';\nimport {uid} from '../lib/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\nexport const DEFAULT_DEVICE_PROPS: 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\nexport type ShadingLanguage = 'glsl' | 'wgsl';\n\n/**\n * Identifies the GPU vendor and driver.\n * @see https://www.khronos.org/registry/webgl/extensions/WEBGL_debug_renderer_info/\n * @note Current WebGPU support is very limited\n */\nexport type DeviceInfo = {\n type: 'webgl' | 'webgl2' | 'webgpu';\n vendor: string;\n renderer: string;\n version: string;\n gpu: 'nvidia' | 'amd' | 'intel' | 'apple' | 'software' | 'unknown';\n shadingLanguages: ShadingLanguage[];\n shadingLanguageVersions: Record<string, string>;\n vendorMasked?: string;\n rendererMasked?: string;\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 get [Symbol.toStringTag](): string {\n return 'Device';\n }\n\n static VERSION = VERSION;\n\n constructor(props: DeviceProps) {\n this.props = {...DEFAULT_DEVICE_PROPS, ...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 createCommandEncoder(props: CommandEncoderProps = {}): CommandEncoder {\n throw new Error('not implemented');\n }\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 // 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,9 +1,10 @@
1
1
  import type { Device } from '../device';
2
+ import { PrimitiveTopology } from '../types/parameters';
2
3
  import { ShaderLayout } from '../types/shader-layout';
3
4
  import type { Buffer } from './buffer';
4
5
  import { Resource, ResourceProps } from './resource';
5
6
  /** For bindRange */
6
- type BufferRange = {
7
+ export type BufferRange = {
7
8
  buffer: Buffer;
8
9
  byteOffset?: number;
9
10
  byteLength?: number;
@@ -20,6 +21,10 @@ export declare abstract class TransformFeedback extends Resource<TransformFeedba
20
21
  static defaultProps: Required<TransformFeedbackProps>;
21
22
  get [Symbol.toStringTag](): string;
22
23
  constructor(device: Device, props?: TransformFeedbackProps);
24
+ abstract begin(topology?: PrimitiveTopology): void;
25
+ abstract end(): void;
26
+ abstract setBuffers(buffers: Record<string, Buffer | BufferRange>): void;
27
+ abstract setBuffer(locationOrName: string | number, bufferOrRange: Buffer | BufferRange): void;
28
+ abstract getBuffer(locationOrName: string | number): Buffer | BufferRange | null;
23
29
  }
24
- export {};
25
30
  //# sourceMappingURL=transform-feedback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform-feedback.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/transform-feedback.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AACtC,OAAO,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AAEnD,oBAAoB;AACpB,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG;IACnD,sCAAsC;IACtC,MAAM,EAAE,YAAY,CAAC;IACrB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC;CAC/C,CAAC;AAEF,gEAAgE;AAChE,8BAAsB,iBAAkB,SAAQ,QAAQ,CAAC,sBAAsB,CAAC;IAC9E,OAAgB,YAAY,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAI5D;IAEF,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;gBAEW,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,sBAAsB;CAG3D"}
1
+ {"version":3,"file":"transform-feedback.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/transform-feedback.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AACtC,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AAEnD,oBAAoB;AACpB,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG;IACnD,sCAAsC;IACtC,MAAM,EAAE,YAAY,CAAC;IACrB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC;CAC/C,CAAC;AAEF,gEAAgE;AAChE,8BAAsB,iBAAkB,SAAQ,QAAQ,CAAC,sBAAsB,CAAC;IAC9E,OAAgB,YAAY,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAI5D;IAEF,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;gBAEW,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,sBAAsB;IAI1D,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAClD,QAAQ,CAAC,GAAG,IAAI,IAAI;IAEpB,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG,IAAI;IACxE,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAC9F,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,IAAI;CACjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"transform-feedback.js","names":["Resource","_Symbol$toStringTag","Symbol","toStringTag","TransformFeedback","constructor","device","props","defaultProps","layout","undefined","buffers"],"sources":["../../../src/adapter/resources/transform-feedback.ts"],"sourcesContent":["// luma.gl, MIT license\nimport type {Device} from '../device';\nimport {ShaderLayout} from '../types/shader-layout';\nimport type {Buffer} from './buffer';\nimport {Resource, ResourceProps} from './resource';\n\n/** For bindRange */\ntype BufferRange = {\n buffer: Buffer;\n byteOffset?: number;\n byteLength?: number;\n};\n\n/** Configures a set of output buffers for pipeline (WebGL 2 only) */\nexport type TransformFeedbackProps = ResourceProps & {\n /** Layout of shader (for varyings) */\n layout: ShaderLayout;\n /** Buffer bindings (for varyings) */\n buffers: Record<string, Buffer | BufferRange>;\n};\n\n/** Holds a set of output buffers for pipeline (WebGL 2 only) */\nexport abstract class TransformFeedback extends Resource<TransformFeedbackProps> {\n static override defaultProps: Required<TransformFeedbackProps> = {\n ...Resource.defaultProps,\n layout: undefined!,\n buffers: {}\n };\n\n get [Symbol.toStringTag](): string {\n return 'TransformFeedback';\n }\n\n constructor(device: Device, props?: TransformFeedbackProps) {\n super(device, props, TransformFeedback.defaultProps);\n }\n}\n"],"mappings":";SAIQA,QAAQ;AAAAC,mBAAA,GAyBTC,MAAM,CAACC,WAAW;AAPzB,OAAO,MAAeC,iBAAiB,SAASJ,QAAQ,CAAyB;EAO/E,KAAAC,mBAAA,IAAmC;IACjC,OAAO,mBAAmB;EAC5B;EAEAI,WAAWA,CAACC,MAAc,EAAEC,KAA8B,EAAE;IAC1D,KAAK,CAACD,MAAM,EAAEC,KAAK,EAAEH,iBAAiB,CAACI,YAAY,CAAC;EACtD;AACF;AAdsBJ,iBAAiB,CACrBI,YAAY,GAAqC;EAC/D,GAAGR,QAAQ,CAACQ,YAAY;EACxBC,MAAM,EAAEC,SAAU;EAClBC,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"transform-feedback.js","names":["Resource","_Symbol$toStringTag","Symbol","toStringTag","TransformFeedback","constructor","device","props","defaultProps","layout","undefined","buffers"],"sources":["../../../src/adapter/resources/transform-feedback.ts"],"sourcesContent":["// luma.gl, MIT license\nimport type {Device} from '../device';\nimport {PrimitiveTopology} from '../types/parameters';\nimport {ShaderLayout} from '../types/shader-layout';\nimport type {Buffer} from './buffer';\nimport {Resource, ResourceProps} from './resource';\n\n/** For bindRange */\nexport type BufferRange = {\n buffer: Buffer;\n byteOffset?: number;\n byteLength?: number;\n};\n\n/** Configures a set of output buffers for pipeline (WebGL 2 only) */\nexport type TransformFeedbackProps = ResourceProps & {\n /** Layout of shader (for varyings) */\n layout: ShaderLayout;\n /** Buffer bindings (for varyings) */\n buffers: Record<string, Buffer | BufferRange>;\n};\n\n/** Holds a set of output buffers for pipeline (WebGL 2 only) */\nexport abstract class TransformFeedback extends Resource<TransformFeedbackProps> {\n static override defaultProps: Required<TransformFeedbackProps> = {\n ...Resource.defaultProps,\n layout: undefined!,\n buffers: {}\n };\n\n get [Symbol.toStringTag](): string {\n return 'TransformFeedback';\n }\n\n constructor(device: Device, props?: TransformFeedbackProps) {\n super(device, props, TransformFeedback.defaultProps);\n }\n\n abstract begin(topology?: PrimitiveTopology): void;\n abstract end(): void;\n\n abstract setBuffers(buffers: Record<string, Buffer | BufferRange>): void;\n abstract setBuffer(locationOrName: string | number, bufferOrRange: Buffer | BufferRange): void;\n abstract getBuffer(locationOrName: string | number): Buffer | BufferRange | null;\n}\n"],"mappings":";SAKQA,QAAQ;AAAAC,mBAAA,GAyBTC,MAAM,CAACC,WAAW;AAPzB,OAAO,MAAeC,iBAAiB,SAASJ,QAAQ,CAAyB;EAO/E,KAAAC,mBAAA,IAAmC;IACjC,OAAO,mBAAmB;EAC5B;EAEAI,WAAWA,CAACC,MAAc,EAAEC,KAA8B,EAAE;IAC1D,KAAK,CAACD,MAAM,EAAEC,KAAK,EAAEH,iBAAiB,CAACI,YAAY,CAAC;EACtD;AAQF;AArBsBJ,iBAAiB,CACrBI,YAAY,GAAqC;EAC/D,GAAGR,QAAQ,CAACQ,YAAY;EACxBC,MAAM,EAAEC,SAAU;EAClBC,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { TypedArray, TypedArrayConstructor } from '../..';
2
+ import { VertexFormat } from '../types/vertex-formats';
3
+ type DataType = 'uint8' | 'sint8' | 'uint16' | 'sint16' | 'uint32' | 'sint32' | 'float32';
4
+ export declare function getDataTypeFromTypedArray(arrayOrType: TypedArray | TypedArrayConstructor): DataType;
5
+ export declare function getTypedArrayFromDataType(dataType: DataType): TypedArrayConstructor;
6
+ /** Get the vertex format for an attribute with TypedArray and size */
7
+ export declare function getVertexFormatFromAttribute(typedArray: TypedArray, size?: number): VertexFormat;
8
+ export {};
9
+ //# sourceMappingURL=vertex-format-from-attribute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertex-format-from-attribute.d.ts","sourceRoot":"","sources":["../../../src/adapter/type-utils/vertex-format-from-attribute.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAE,qBAAqB,EAAC,MAAM,OAAO,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAIrD,KAAK,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1F,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,UAAU,GAAG,qBAAqB,GAAG,QAAQ,CAsBnG;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,qBAAqB,CAoBnF;AAED,sEAAsE;AACtE,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CA4BhG"}
@@ -0,0 +1,66 @@
1
+ export function getDataTypeFromTypedArray(arrayOrType) {
2
+ const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
3
+ switch (type) {
4
+ case Float32Array:
5
+ return 'float32';
6
+ case Uint16Array:
7
+ return 'uint16';
8
+ case Uint32Array:
9
+ return 'uint32';
10
+ case Uint8Array:
11
+ case Uint8ClampedArray:
12
+ return 'uint8';
13
+ case Int8Array:
14
+ return 'sint8';
15
+ case Int16Array:
16
+ return 'sint16';
17
+ case Int32Array:
18
+ return 'sint32';
19
+ default:
20
+ throw new Error(type.constructor.name);
21
+ }
22
+ }
23
+ export function getTypedArrayFromDataType(dataType) {
24
+ switch (dataType) {
25
+ case 'float32':
26
+ return Float32Array;
27
+ case 'uint16':
28
+ return Uint16Array;
29
+ case 'uint32':
30
+ return Uint32Array;
31
+ case 'uint8':
32
+ return Uint8Array;
33
+ case 'sint8':
34
+ return Int8Array;
35
+ case 'sint16':
36
+ return Int16Array;
37
+ case 'sint32':
38
+ return Int32Array;
39
+ default:
40
+ throw new Error(dataType);
41
+ }
42
+ }
43
+ export function getVertexFormatFromAttribute(typedArray, size) {
44
+ if (!size || size > 4) {
45
+ throw new Error(`size ${size}`);
46
+ }
47
+ const components = size;
48
+ const dataType = getDataTypeFromTypedArray(typedArray);
49
+ if (dataType === 'uint8' || dataType === 'sint8') {
50
+ if (components === 1 || components === 3) {
51
+ throw new Error(`size: ${size}`);
52
+ }
53
+ return `${dataType}x${components}`;
54
+ }
55
+ if (dataType === 'uint16' || dataType === 'sint16') {
56
+ if (components === 1 || components === 3) {
57
+ throw new Error(`size: ${size}`);
58
+ }
59
+ return `${dataType}x${components}`;
60
+ }
61
+ if (components === 1) {
62
+ return dataType;
63
+ }
64
+ return `${dataType}x${components}`;
65
+ }
66
+ //# sourceMappingURL=vertex-format-from-attribute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertex-format-from-attribute.js","names":["getDataTypeFromTypedArray","arrayOrType","type","ArrayBuffer","isView","constructor","Float32Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","Int8Array","Int16Array","Int32Array","Error","name","getTypedArrayFromDataType","dataType","getVertexFormatFromAttribute","typedArray","size","components"],"sources":["../../../src/adapter/type-utils/vertex-format-from-attribute.ts"],"sourcesContent":["// luma.gl, MIT licese\nimport {TypedArray, TypedArrayConstructor} from '../..';\nimport {VertexFormat} from '../types/vertex-formats';\n\n// import {DataType} from '../types/vertex-formats';\n// type Omit<DataType, 'float16'> unfortunately breaks Typescript inferance\ntype DataType = 'uint8' | 'sint8' | 'uint16' | 'sint16' | 'uint32' | 'sint32' | 'float32';\n\nexport function getDataTypeFromTypedArray(arrayOrType: TypedArray | TypedArrayConstructor): DataType {\n const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;\n switch (type) {\n case Float32Array:\n return 'float32';\n case Uint16Array:\n return 'uint16';\n case Uint32Array:\n return 'uint32';\n case Uint8Array:\n case Uint8ClampedArray:\n return 'uint8';\n case Int8Array:\n return 'sint8';\n case Int16Array:\n return 'sint16';\n case Int32Array:\n return 'sint32';\n default:\n // Failed to deduce data type from typed array\n throw new Error(type.constructor.name);\n }\n}\n\nexport function getTypedArrayFromDataType(dataType: DataType): TypedArrayConstructor {\n switch (dataType) {\n case 'float32':\n return Float32Array;\n case 'uint16':\n return Uint16Array;\n case 'uint32':\n return Uint32Array;\n case 'uint8':\n return Uint8Array;\n case 'sint8':\n return Int8Array;\n case 'sint16':\n return Int16Array;\n case 'sint32':\n return Int32Array;\n default:\n // Failed to deduce typed array from data type\n throw new Error(dataType);\n }\n}\n\n/** Get the vertex format for an attribute with TypedArray and size */\nexport function getVertexFormatFromAttribute(typedArray: TypedArray, size?: number): VertexFormat {\n if(!size || size > 4) {\n throw new Error(`size ${size}`);\n }\n\n const components = size as 1 | 2 | 3 | 4;\n const dataType: DataType = getDataTypeFromTypedArray(typedArray);\n\n if (dataType === 'uint8' || dataType === 'sint8') {\n if (components === 1 || components === 3) {\n // WebGPU 8 bit formats must be aligned to 16 bit boundaries');\n throw new Error(`size: ${size}`);\n }\n return `${dataType}x${components}`;\n }\n if (dataType === 'uint16' || dataType === 'sint16') {\n if (components === 1 || components === 3) {\n // WebGPU 16 bit formats must be aligned to 32 bit boundaries\n throw new Error(`size: ${size}`);\n }\n return `${dataType}x${components}`;\n }\n\n if (components === 1) {\n return dataType;\n }\n\n return `${dataType}x${components}`;\n}\n\n"],"mappings":"AAQA,OAAO,SAASA,yBAAyBA,CAACC,WAA+C,EAAY;EACnG,MAAMC,IAAI,GAAGC,WAAW,CAACC,MAAM,CAACH,WAAW,CAAC,GAAGA,WAAW,CAACI,WAAW,GAAGJ,WAAW;EACpF,QAAQC,IAAI;IACV,KAAKI,YAAY;MACf,OAAO,SAAS;IAClB,KAAKC,WAAW;MACd,OAAO,QAAQ;IACjB,KAAKC,WAAW;MACd,OAAO,QAAQ;IACjB,KAAKC,UAAU;IACf,KAAKC,iBAAiB;MACpB,OAAO,OAAO;IAChB,KAAKC,SAAS;MACZ,OAAO,OAAO;IAChB,KAAKC,UAAU;MACb,OAAO,QAAQ;IACjB,KAAKC,UAAU;MACb,OAAO,QAAQ;IACjB;MAEE,MAAM,IAAIC,KAAK,CAACZ,IAAI,CAACG,WAAW,CAACU,IAAI,CAAC;EAC1C;AACF;AAEA,OAAO,SAASC,yBAAyBA,CAACC,QAAkB,EAAyB;EACnF,QAAQA,QAAQ;IACd,KAAK,SAAS;MACZ,OAAOX,YAAY;IACrB,KAAK,QAAQ;MACX,OAAOC,WAAW;IACpB,KAAK,QAAQ;MACX,OAAOC,WAAW;IACpB,KAAK,OAAO;MACV,OAAOC,UAAU;IACnB,KAAK,OAAO;MACV,OAAOE,SAAS;IAClB,KAAK,QAAQ;MACX,OAAOC,UAAU;IACnB,KAAK,QAAQ;MACX,OAAOC,UAAU;IACnB;MAEE,MAAM,IAAIC,KAAK,CAACG,QAAQ,CAAC;EAC7B;AACF;AAGA,OAAO,SAASC,4BAA4BA,CAACC,UAAsB,EAAEC,IAAa,EAAgB;EAChG,IAAG,CAACA,IAAI,IAAIA,IAAI,GAAG,CAAC,EAAE;IACpB,MAAM,IAAIN,KAAK,CAAE,QAAOM,IAAK,EAAC,CAAC;EACjC;EAEA,MAAMC,UAAU,GAAGD,IAAqB;EACxC,MAAMH,QAAkB,GAAGjB,yBAAyB,CAACmB,UAAU,CAAC;EAEhE,IAAIF,QAAQ,KAAK,OAAO,IAAIA,QAAQ,KAAK,OAAO,EAAE;IAChD,IAAII,UAAU,KAAK,CAAC,IAAIA,UAAU,KAAK,CAAC,EAAE;MAExC,MAAM,IAAIP,KAAK,CAAE,SAAQM,IAAK,EAAC,CAAC;IAClC;IACA,OAAQ,GAAEH,QAAS,IAAGI,UAAW,EAAC;EACpC;EACA,IAAIJ,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,QAAQ,EAAE;IAClD,IAAII,UAAU,KAAK,CAAC,IAAIA,UAAU,KAAK,CAAC,EAAE;MAExC,MAAM,IAAIP,KAAK,CAAE,SAAQM,IAAK,EAAC,CAAC;IAClC;IACA,OAAQ,GAAEH,QAAS,IAAGI,UAAW,EAAC;EACpC;EAEA,IAAIA,UAAU,KAAK,CAAC,EAAE;IACpB,OAAOJ,QAAQ;EACjB;EAEA,OAAQ,GAAEA,QAAS,IAAGI,UAAW,EAAC;AACpC"}
package/dist/dist.dev.js CHANGED
@@ -67,8 +67,11 @@ var __exports__ = (() => {
67
67
  formatCompilerLog: () => formatCompilerLog,
68
68
  formatValue: () => formatValue,
69
69
  getAttributeInfosFromLayouts: () => getAttributeInfosFromLayouts,
70
+ getDataTypeFromTypedArray: () => getDataTypeFromTypedArray,
70
71
  getScratchArray: () => getScratchArray,
71
72
  getScratchArrayBuffer: () => getScratchArrayBuffer,
73
+ getTypedArrayFromDataType: () => getTypedArrayFromDataType,
74
+ getVertexFormatFromAttribute: () => getVertexFormatFromAttribute,
72
75
  glsl: () => glsl,
73
76
  isNumberArray: () => isNumberArray,
74
77
  isObjectEmpty: () => isObjectEmpty,
@@ -2887,6 +2890,73 @@ var __exports__ = (() => {
2887
2890
  };
2888
2891
  }
2889
2892
 
2893
+ // src/adapter/type-utils/vertex-format-from-attribute.ts
2894
+ function getDataTypeFromTypedArray(arrayOrType) {
2895
+ const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
2896
+ switch (type) {
2897
+ case Float32Array:
2898
+ return "float32";
2899
+ case Uint16Array:
2900
+ return "uint16";
2901
+ case Uint32Array:
2902
+ return "uint32";
2903
+ case Uint8Array:
2904
+ case Uint8ClampedArray:
2905
+ return "uint8";
2906
+ case Int8Array:
2907
+ return "sint8";
2908
+ case Int16Array:
2909
+ return "sint16";
2910
+ case Int32Array:
2911
+ return "sint32";
2912
+ default:
2913
+ throw new Error(type.constructor.name);
2914
+ }
2915
+ }
2916
+ function getTypedArrayFromDataType(dataType) {
2917
+ switch (dataType) {
2918
+ case "float32":
2919
+ return Float32Array;
2920
+ case "uint16":
2921
+ return Uint16Array;
2922
+ case "uint32":
2923
+ return Uint32Array;
2924
+ case "uint8":
2925
+ return Uint8Array;
2926
+ case "sint8":
2927
+ return Int8Array;
2928
+ case "sint16":
2929
+ return Int16Array;
2930
+ case "sint32":
2931
+ return Int32Array;
2932
+ default:
2933
+ throw new Error(dataType);
2934
+ }
2935
+ }
2936
+ function getVertexFormatFromAttribute(typedArray, size) {
2937
+ if (!size || size > 4) {
2938
+ throw new Error(`size ${size}`);
2939
+ }
2940
+ const components = size;
2941
+ const dataType = getDataTypeFromTypedArray(typedArray);
2942
+ if (dataType === "uint8" || dataType === "sint8") {
2943
+ if (components === 1 || components === 3) {
2944
+ throw new Error(`size: ${size}`);
2945
+ }
2946
+ return `${dataType}x${components}`;
2947
+ }
2948
+ if (dataType === "uint16" || dataType === "sint16") {
2949
+ if (components === 1 || components === 3) {
2950
+ throw new Error(`size: ${size}`);
2951
+ }
2952
+ return `${dataType}x${components}`;
2953
+ }
2954
+ if (components === 1) {
2955
+ return dataType;
2956
+ }
2957
+ return `${dataType}x${components}`;
2958
+ }
2959
+
2890
2960
  // src/lib/compiler-log/format-compiler-log.ts
2891
2961
  function formatCompilerLog(shaderLog, source, options) {
2892
2962
  const lines = source.split(/\r?\n/);
package/dist/index.cjs CHANGED
@@ -92,8 +92,11 @@ __export(src_exports, {
92
92
  formatCompilerLog: () => formatCompilerLog,
93
93
  formatValue: () => formatValue,
94
94
  getAttributeInfosFromLayouts: () => getAttributeInfosFromLayouts,
95
+ getDataTypeFromTypedArray: () => getDataTypeFromTypedArray,
95
96
  getScratchArray: () => getScratchArray,
96
97
  getScratchArrayBuffer: () => getScratchArrayBuffer,
98
+ getTypedArrayFromDataType: () => getTypedArrayFromDataType,
99
+ getVertexFormatFromAttribute: () => getVertexFormatFromAttribute,
97
100
  glsl: () => glsl,
98
101
  isNumberArray: () => isNumberArray,
99
102
  isObjectEmpty: () => isObjectEmpty,
@@ -1954,6 +1957,73 @@ function decodeNonStandardFormat(format) {
1954
1957
  };
1955
1958
  }
1956
1959
 
1960
+ // src/adapter/type-utils/vertex-format-from-attribute.ts
1961
+ function getDataTypeFromTypedArray(arrayOrType) {
1962
+ const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
1963
+ switch (type) {
1964
+ case Float32Array:
1965
+ return "float32";
1966
+ case Uint16Array:
1967
+ return "uint16";
1968
+ case Uint32Array:
1969
+ return "uint32";
1970
+ case Uint8Array:
1971
+ case Uint8ClampedArray:
1972
+ return "uint8";
1973
+ case Int8Array:
1974
+ return "sint8";
1975
+ case Int16Array:
1976
+ return "sint16";
1977
+ case Int32Array:
1978
+ return "sint32";
1979
+ default:
1980
+ throw new Error(type.constructor.name);
1981
+ }
1982
+ }
1983
+ function getTypedArrayFromDataType(dataType) {
1984
+ switch (dataType) {
1985
+ case "float32":
1986
+ return Float32Array;
1987
+ case "uint16":
1988
+ return Uint16Array;
1989
+ case "uint32":
1990
+ return Uint32Array;
1991
+ case "uint8":
1992
+ return Uint8Array;
1993
+ case "sint8":
1994
+ return Int8Array;
1995
+ case "sint16":
1996
+ return Int16Array;
1997
+ case "sint32":
1998
+ return Int32Array;
1999
+ default:
2000
+ throw new Error(dataType);
2001
+ }
2002
+ }
2003
+ function getVertexFormatFromAttribute(typedArray, size) {
2004
+ if (!size || size > 4) {
2005
+ throw new Error(`size ${size}`);
2006
+ }
2007
+ const components = size;
2008
+ const dataType = getDataTypeFromTypedArray(typedArray);
2009
+ if (dataType === "uint8" || dataType === "sint8") {
2010
+ if (components === 1 || components === 3) {
2011
+ throw new Error(`size: ${size}`);
2012
+ }
2013
+ return `${dataType}x${components}`;
2014
+ }
2015
+ if (dataType === "uint16" || dataType === "sint16") {
2016
+ if (components === 1 || components === 3) {
2017
+ throw new Error(`size: ${size}`);
2018
+ }
2019
+ return `${dataType}x${components}`;
2020
+ }
2021
+ if (components === 1) {
2022
+ return dataType;
2023
+ }
2024
+ return `${dataType}x${components}`;
2025
+ }
2026
+
1957
2027
  // src/lib/compiler-log/format-compiler-log.ts
1958
2028
  function formatCompilerLog(shaderLog, source, options) {
1959
2029
  const lines = source.split(/\r?\n/);
package/dist/index.d.ts CHANGED
@@ -35,7 +35,7 @@ export type { CommandBufferProps } from './adapter/resources/command-buffer';
35
35
  export { CommandBuffer } from './adapter/resources/command-buffer';
36
36
  export type { VertexArrayProps } from './adapter/resources/vertex-array';
37
37
  export { VertexArray } from './adapter/resources/vertex-array';
38
- export type { TransformFeedbackProps } from './adapter/resources/transform-feedback';
38
+ export type { BufferRange, TransformFeedbackProps } from './adapter/resources/transform-feedback';
39
39
  export { TransformFeedback } from './adapter/resources/transform-feedback';
40
40
  export type { AccessorObject } from './adapter/types/accessor';
41
41
  export type { Parameters, PrimitiveTopology, IndexFormat, CullMode, FrontFace, RasterizationParameters, CompareFunction, StencilOperation, DepthStencilParameters, BlendFactor, BlendOperation, ColorParameters, MultisampleParameters, RenderPassParameters, RenderPipelineParameters } from './adapter/types/parameters';
@@ -52,6 +52,7 @@ export { UniformBlock } from './lib/uniforms/uniform-block';
52
52
  export { UniformStore } from './lib/uniforms/uniform-store';
53
53
  export { decodeVertexFormat } from './adapter/type-utils/decode-vertex-format';
54
54
  export { decodeTextureFormat } from './adapter/type-utils/decode-texture-format';
55
+ export { getDataTypeFromTypedArray, getTypedArrayFromDataType, getVertexFormatFromAttribute } from './adapter/type-utils/vertex-format-from-attribute';
55
56
  export { decodeShaderUniformType } from './adapter/type-utils/decode-shader-types';
56
57
  export { decodeShaderAttributeType } from './adapter/type-utils/decode-attribute-type';
57
58
  export type { CompilerMessage } from './lib/compiler-log/compiler-message';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ export { UniformBlock } from "./lib/uniforms/uniform-block.js";
23
23
  export { UniformStore } from "./lib/uniforms/uniform-store.js";
24
24
  export { decodeVertexFormat } from "./adapter/type-utils/decode-vertex-format.js";
25
25
  export { decodeTextureFormat } from "./adapter/type-utils/decode-texture-format.js";
26
+ export { getDataTypeFromTypedArray, getTypedArrayFromDataType, getVertexFormatFromAttribute } from "./adapter/type-utils/vertex-format-from-attribute.js";
26
27
  export { decodeShaderUniformType } from "./adapter/type-utils/decode-shader-types.js";
27
28
  export { decodeShaderAttributeType } from "./adapter/type-utils/decode-attribute-type.js";
28
29
  export { formatCompilerLog } from "./lib/compiler-log/format-compiler-log.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["VERSION","isTypedArray","isNumberArray","luma","Device","CanvasContext","Resource","Buffer","Texture","ExternalTexture","Shader","Sampler","Framebuffer","RenderPipeline","ComputePipeline","RenderPass","ComputePass","CommandEncoder","CommandBuffer","VertexArray","TransformFeedback","UniformBufferLayout","UniformBlock","UniformStore","decodeVertexFormat","decodeTextureFormat","decodeShaderUniformType","decodeShaderAttributeType","formatCompilerLog","getAttributeInfosFromLayouts","mergeShaderLayout","StatsManager","assert","cast","log","uid","isPowerOfTwo","isObjectEmpty","isUniformValue","splitUniformsAndBindings","formatValue","stubRemovedMethods","checkProps","setPathPrefix","loadFile","loadImage","loadImageBitmap","loadScript","getScratchArrayBuffer","getScratchArray","fillArray","makeRandomNumberGenerator","random","deepEqual","requestAnimationFrame","cancelAnimationFrame","glsl","x"],"sources":["../src/index.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nexport {VERSION} from './init';\n\n// GENERAL TYPES\nexport type {ConstructorOf, PartialBy} from './types';\n\n// NUMERIC TYPES - TODO: could be imported from @math.gl/types\nexport type {TypedArray, TypedArrayConstructor, NumberArray, BigIntOrNumberArray} from './types';\n\nexport {isTypedArray, isNumberArray} from './lib/utils/is-array';\n\n// MAIN API ACCESS POINTS\nexport {luma} from './lib/luma';\n\nexport type {DeviceProps, DeviceLimits, DeviceInfo, DeviceFeature} from './adapter/device';\nexport {Device} from './adapter/device';\nexport type {CanvasContextProps} from './adapter/canvas-context';\nexport {CanvasContext} from './adapter/canvas-context';\n\n// GPU RESOURCES\nexport type {ResourceProps} from './adapter/resources/resource';\nexport {Resource} from './adapter/resources/resource';\nexport type {BufferProps} from './adapter/resources/buffer';\nexport {Buffer} from './adapter/resources/buffer';\nexport type {TextureProps, TextureData} from './adapter/resources/texture';\nexport {Texture} from './adapter/resources/texture';\nexport type {ExternalTextureProps} from './adapter/resources/external-texture';\nexport {ExternalTexture} from './adapter/resources/external-texture';\nexport type {ShaderProps} from './adapter/resources/shader';\nexport {Shader} from './adapter/resources/shader';\nexport type {SamplerProps, SamplerParameters} from './adapter/resources/sampler';\nexport {Sampler} from './adapter/resources/sampler';\nexport type {FramebufferProps} from './adapter/resources/framebuffer';\nexport {Framebuffer} from './adapter/resources/framebuffer';\n\nexport type {RenderPipelineProps} from './adapter/resources/render-pipeline';\nexport {RenderPipeline} from './adapter/resources/render-pipeline';\n\nexport type {ComputePipelineProps} from './adapter/resources/compute-pipeline';\nexport {ComputePipeline} from './adapter/resources/compute-pipeline';\nexport type {RenderPassProps} from './adapter/resources/render-pass';\nexport {RenderPass} from './adapter/resources/render-pass';\nexport type {ComputePassProps} from './adapter/resources/compute-pass';\nexport {ComputePass} from './adapter/resources/compute-pass';\nexport type {CommandEncoderProps} from './adapter/resources/command-encoder';\nexport {CommandEncoder} from './adapter/resources/command-encoder';\nexport type {CommandBufferProps} from './adapter/resources/command-buffer';\nexport {CommandBuffer} from './adapter/resources/command-buffer';\n\nexport type {VertexArrayProps} from './adapter/resources/vertex-array';\nexport {VertexArray} from './adapter/resources/vertex-array';\n\nexport type {TransformFeedbackProps} from './adapter/resources/transform-feedback';\nexport {TransformFeedback} from './adapter/resources/transform-feedback';\n\n// API TYPES\nexport type {AccessorObject} from './adapter/types/accessor';\nexport type {\n Parameters,\n PrimitiveTopology,\n IndexFormat,\n CullMode,\n FrontFace,\n RasterizationParameters,\n CompareFunction,\n StencilOperation,\n DepthStencilParameters,\n BlendFactor,\n BlendOperation,\n ColorParameters,\n MultisampleParameters,\n RenderPassParameters,\n RenderPipelineParameters\n} from './adapter/types/parameters';\n\n// MEMORY LAYOUT TYPES\nexport type {VertexFormat, VertexType} from './adapter/types/vertex-formats';\nexport type {\n TextureFormat,\n ColorTextureFormat,\n DepthStencilTextureFormat\n} from './adapter/types/texture-formats';\nexport type {\n ShaderDataType,\n ShaderAttributeType,\n ShaderUniformType\n} from './adapter/types/shader-types';\n\nexport type {ColorAttachment, DepthStencilAttachment} from './adapter/types/types';\n\nexport type {\n ShaderLayout,\n AttributeDeclaration,\n BindingDeclaration,\n Binding\n} from './adapter/types/shader-layout';\nexport type {BufferLayout, BufferAttributeLayout} from './adapter/types/buffer-layout';\nexport type {\n // Deprecated, todo\n AttributeBinding,\n UniformBinding,\n UniformBlockBinding,\n VaryingBinding\n} from './adapter/types/shader-layout';\n\nexport type {UniformValue} from './adapter/types/types';\nexport {UniformBufferLayout} from './lib/uniforms/uniform-buffer-layout';\nexport {UniformBlock} from './lib/uniforms/uniform-block';\nexport {UniformStore} from './lib/uniforms/uniform-store';\n\n// TYPE UTILS\nexport {decodeVertexFormat} from './adapter/type-utils/decode-vertex-format';\nexport {decodeTextureFormat} from './adapter/type-utils/decode-texture-format';\n\n// SHADER TYPE UTILS\nexport {decodeShaderUniformType} from './adapter/type-utils/decode-shader-types';\nexport {decodeShaderAttributeType} from './adapter/type-utils/decode-attribute-type';\n\n// COMPILER LOG\nexport type {CompilerMessage} from './lib/compiler-log/compiler-message';\nexport {formatCompilerLog} from './lib/compiler-log/format-compiler-log';\n\n//\nexport type {AttributeInfo} from './adapter/attribute-utils/get-attribute-from-layouts';\nexport {\n getAttributeInfosFromLayouts,\n mergeShaderLayout\n} from './adapter/attribute-utils/get-attribute-from-layouts';\n\n// GENERAL UTILS\n\nexport {StatsManager} from './lib/utils/stats-manager';\nexport {assert} from './lib/utils/assert';\nexport {cast} from './lib/utils/cast';\nexport {log} from './lib/utils/log';\nexport {uid, isPowerOfTwo, isObjectEmpty} from './lib/utils/utils';\nexport {isUniformValue, splitUniformsAndBindings} from './lib/utils/uniform';\nexport {formatValue} from './lib/utils/format-value';\nexport {stubRemovedMethods} from './lib/utils/stub-methods';\nexport {checkProps} from './lib/utils/check-props';\nexport {\n setPathPrefix,\n loadFile,\n loadImage,\n loadImageBitmap,\n loadScript\n} from './lib/utils/load-file';\nexport {getScratchArrayBuffer, getScratchArray, fillArray} from './lib/utils/array-utils-flat';\nexport {makeRandomNumberGenerator, random} from './lib/utils/random';\nexport {deepEqual} from './lib/utils/deep-equal';\n\n// ENGINE - TODO/move to @luma.gl/engine once that module is webgl-independent?\nexport {requestAnimationFrame, cancelAnimationFrame} from './lib/request-animation-frame';\n\n// SHADER HELPERS\n\n/**\n * Marks GLSL shaders for syntax highlighting: glsl`...`\n * Install https://marketplace.visualstudio.com/items?itemName=boyswan.glsl-literal\n */\nexport const glsl = (x: TemplateStringsArray) => `${x}`;\n\n// INTERNAL\n\nexport type {\n CopyBufferToBufferOptions,\n CopyBufferToTextureOptions,\n CopyTextureToBufferOptions,\n CopyTextureToTextureOptions\n} from './adapter/resources/command-encoder';\n"],"mappings":"SAGQA,OAAO;AAAA,SAQPC,YAAY,EAAEC,aAAa;AAAA,SAG3BC,IAAI;AAAA,SAGJC,MAAM;AAAA,SAENC,aAAa;AAAA,SAIbC,QAAQ;AAAA,SAERC,MAAM;AAAA,SAENC,OAAO;AAAA,SAEPC,eAAe;AAAA,SAEfC,MAAM;AAAA,SAENC,OAAO;AAAA,SAEPC,WAAW;AAAA,SAGXC,cAAc;AAAA,SAGdC,eAAe;AAAA,SAEfC,UAAU;AAAA,SAEVC,WAAW;AAAA,SAEXC,cAAc;AAAA,SAEdC,aAAa;AAAA,SAGbC,WAAW;AAAA,SAGXC,iBAAiB;AAAA,SAqDjBC,mBAAmB;AAAA,SACnBC,YAAY;AAAA,SACZC,YAAY;AAAA,SAGZC,kBAAkB;AAAA,SAClBC,mBAAmB;AAAA,SAGnBC,uBAAuB;AAAA,SACvBC,yBAAyB;AAAA,SAIzBC,iBAAiB;AAAA,SAKvBC,4BAA4B,EAC5BC,iBAAiB;AAAA,SAKXC,YAAY;AAAA,SACZC,MAAM;AAAA,SACNC,IAAI;AAAA,SACJC,GAAG;AAAA,SACHC,GAAG,EAAEC,YAAY,EAAEC,aAAa;AAAA,SAChCC,cAAc,EAAEC,wBAAwB;AAAA,SACxCC,WAAW;AAAA,SACXC,kBAAkB;AAAA,SAClBC,UAAU;AAAA,SAEhBC,aAAa,EACbC,QAAQ,EACRC,SAAS,EACTC,eAAe,EACfC,UAAU;AAAA,SAEJC,qBAAqB,EAAEC,eAAe,EAAEC,SAAS;AAAA,SACjDC,yBAAyB,EAAEC,MAAM;AAAA,SACjCC,SAAS;AAAA,SAGTC,qBAAqB,EAAEC,oBAAoB;AAQnD,OAAO,MAAMC,IAAI,GAAIC,CAAuB,IAAM,GAAEA,CAAE,EAAC"}
1
+ {"version":3,"file":"index.js","names":["VERSION","isTypedArray","isNumberArray","luma","Device","CanvasContext","Resource","Buffer","Texture","ExternalTexture","Shader","Sampler","Framebuffer","RenderPipeline","ComputePipeline","RenderPass","ComputePass","CommandEncoder","CommandBuffer","VertexArray","TransformFeedback","UniformBufferLayout","UniformBlock","UniformStore","decodeVertexFormat","decodeTextureFormat","getDataTypeFromTypedArray","getTypedArrayFromDataType","getVertexFormatFromAttribute","decodeShaderUniformType","decodeShaderAttributeType","formatCompilerLog","getAttributeInfosFromLayouts","mergeShaderLayout","StatsManager","assert","cast","log","uid","isPowerOfTwo","isObjectEmpty","isUniformValue","splitUniformsAndBindings","formatValue","stubRemovedMethods","checkProps","setPathPrefix","loadFile","loadImage","loadImageBitmap","loadScript","getScratchArrayBuffer","getScratchArray","fillArray","makeRandomNumberGenerator","random","deepEqual","requestAnimationFrame","cancelAnimationFrame","glsl","x"],"sources":["../src/index.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nexport {VERSION} from './init';\n\n// GENERAL TYPES\nexport type {ConstructorOf, PartialBy} from './types';\n\n// NUMERIC TYPES - TODO: could be imported from @math.gl/types\nexport type {TypedArray, TypedArrayConstructor, NumberArray, BigIntOrNumberArray} from './types';\n\nexport {isTypedArray, isNumberArray} from './lib/utils/is-array';\n\n// MAIN API ACCESS POINTS\nexport {luma} from './lib/luma';\n\nexport type {DeviceProps, DeviceLimits, DeviceInfo, DeviceFeature} from './adapter/device';\nexport {Device} from './adapter/device';\nexport type {CanvasContextProps} from './adapter/canvas-context';\nexport {CanvasContext} from './adapter/canvas-context';\n\n// GPU RESOURCES\nexport type {ResourceProps} from './adapter/resources/resource';\nexport {Resource} from './adapter/resources/resource';\nexport type {BufferProps} from './adapter/resources/buffer';\nexport {Buffer} from './adapter/resources/buffer';\nexport type {TextureProps, TextureData} from './adapter/resources/texture';\nexport {Texture} from './adapter/resources/texture';\nexport type {ExternalTextureProps} from './adapter/resources/external-texture';\nexport {ExternalTexture} from './adapter/resources/external-texture';\nexport type {ShaderProps} from './adapter/resources/shader';\nexport {Shader} from './adapter/resources/shader';\nexport type {SamplerProps, SamplerParameters} from './adapter/resources/sampler';\nexport {Sampler} from './adapter/resources/sampler';\nexport type {FramebufferProps} from './adapter/resources/framebuffer';\nexport {Framebuffer} from './adapter/resources/framebuffer';\n\nexport type {RenderPipelineProps} from './adapter/resources/render-pipeline';\nexport {RenderPipeline} from './adapter/resources/render-pipeline';\n\nexport type {ComputePipelineProps} from './adapter/resources/compute-pipeline';\nexport {ComputePipeline} from './adapter/resources/compute-pipeline';\nexport type {RenderPassProps} from './adapter/resources/render-pass';\nexport {RenderPass} from './adapter/resources/render-pass';\nexport type {ComputePassProps} from './adapter/resources/compute-pass';\nexport {ComputePass} from './adapter/resources/compute-pass';\nexport type {CommandEncoderProps} from './adapter/resources/command-encoder';\nexport {CommandEncoder} from './adapter/resources/command-encoder';\nexport type {CommandBufferProps} from './adapter/resources/command-buffer';\nexport {CommandBuffer} from './adapter/resources/command-buffer';\n\nexport type {VertexArrayProps} from './adapter/resources/vertex-array';\nexport {VertexArray} from './adapter/resources/vertex-array';\n\nexport type {BufferRange, TransformFeedbackProps} from './adapter/resources/transform-feedback';\nexport {TransformFeedback} from './adapter/resources/transform-feedback';\n\n// API TYPES\nexport type {AccessorObject} from './adapter/types/accessor';\nexport type {\n Parameters,\n PrimitiveTopology,\n IndexFormat,\n CullMode,\n FrontFace,\n RasterizationParameters,\n CompareFunction,\n StencilOperation,\n DepthStencilParameters,\n BlendFactor,\n BlendOperation,\n ColorParameters,\n MultisampleParameters,\n RenderPassParameters,\n RenderPipelineParameters\n} from './adapter/types/parameters';\n\n// MEMORY LAYOUT TYPES\nexport type {VertexFormat, VertexType} from './adapter/types/vertex-formats';\nexport type {\n TextureFormat,\n ColorTextureFormat,\n DepthStencilTextureFormat\n} from './adapter/types/texture-formats';\nexport type {\n ShaderDataType,\n ShaderAttributeType,\n ShaderUniformType\n} from './adapter/types/shader-types';\n\nexport type {ColorAttachment, DepthStencilAttachment} from './adapter/types/types';\n\nexport type {\n ShaderLayout,\n AttributeDeclaration,\n BindingDeclaration,\n Binding\n} from './adapter/types/shader-layout';\nexport type {BufferLayout, BufferAttributeLayout} from './adapter/types/buffer-layout';\nexport type {\n // Deprecated, todo\n AttributeBinding,\n UniformBinding,\n UniformBlockBinding,\n VaryingBinding\n} from './adapter/types/shader-layout';\n\nexport type {UniformValue} from './adapter/types/types';\nexport {UniformBufferLayout} from './lib/uniforms/uniform-buffer-layout';\nexport {UniformBlock} from './lib/uniforms/uniform-block';\nexport {UniformStore} from './lib/uniforms/uniform-store';\n\n// TYPE UTILS\nexport {decodeVertexFormat} from './adapter/type-utils/decode-vertex-format';\nexport {decodeTextureFormat} from './adapter/type-utils/decode-texture-format';\nexport {getDataTypeFromTypedArray, getTypedArrayFromDataType, getVertexFormatFromAttribute} from './adapter/type-utils/vertex-format-from-attribute';\n\n// SHADER TYPE UTILS\nexport {decodeShaderUniformType} from './adapter/type-utils/decode-shader-types';\nexport {decodeShaderAttributeType} from './adapter/type-utils/decode-attribute-type';\n\n// COMPILER LOG\nexport type {CompilerMessage} from './lib/compiler-log/compiler-message';\nexport {formatCompilerLog} from './lib/compiler-log/format-compiler-log';\n\n//\nexport type {AttributeInfo} from './adapter/attribute-utils/get-attribute-from-layouts';\nexport {\n getAttributeInfosFromLayouts,\n mergeShaderLayout\n} from './adapter/attribute-utils/get-attribute-from-layouts';\n\n// GENERAL UTILS\n\nexport {StatsManager} from './lib/utils/stats-manager';\nexport {assert} from './lib/utils/assert';\nexport {cast} from './lib/utils/cast';\nexport {log} from './lib/utils/log';\nexport {uid, isPowerOfTwo, isObjectEmpty} from './lib/utils/utils';\nexport {isUniformValue, splitUniformsAndBindings} from './lib/utils/uniform';\nexport {formatValue} from './lib/utils/format-value';\nexport {stubRemovedMethods} from './lib/utils/stub-methods';\nexport {checkProps} from './lib/utils/check-props';\nexport {\n setPathPrefix,\n loadFile,\n loadImage,\n loadImageBitmap,\n loadScript\n} from './lib/utils/load-file';\nexport {getScratchArrayBuffer, getScratchArray, fillArray} from './lib/utils/array-utils-flat';\nexport {makeRandomNumberGenerator, random} from './lib/utils/random';\nexport {deepEqual} from './lib/utils/deep-equal';\n\n// ENGINE - TODO/move to @luma.gl/engine once that module is webgl-independent?\nexport {requestAnimationFrame, cancelAnimationFrame} from './lib/request-animation-frame';\n\n// SHADER HELPERS\n\n/**\n * Marks GLSL shaders for syntax highlighting: glsl`...`\n * Install https://marketplace.visualstudio.com/items?itemName=boyswan.glsl-literal\n */\nexport const glsl = (x: TemplateStringsArray) => `${x}`;\n\n// INTERNAL\n\nexport type {\n CopyBufferToBufferOptions,\n CopyBufferToTextureOptions,\n CopyTextureToBufferOptions,\n CopyTextureToTextureOptions\n} from './adapter/resources/command-encoder';\n"],"mappings":"SAGQA,OAAO;AAAA,SAQPC,YAAY,EAAEC,aAAa;AAAA,SAG3BC,IAAI;AAAA,SAGJC,MAAM;AAAA,SAENC,aAAa;AAAA,SAIbC,QAAQ;AAAA,SAERC,MAAM;AAAA,SAENC,OAAO;AAAA,SAEPC,eAAe;AAAA,SAEfC,MAAM;AAAA,SAENC,OAAO;AAAA,SAEPC,WAAW;AAAA,SAGXC,cAAc;AAAA,SAGdC,eAAe;AAAA,SAEfC,UAAU;AAAA,SAEVC,WAAW;AAAA,SAEXC,cAAc;AAAA,SAEdC,aAAa;AAAA,SAGbC,WAAW;AAAA,SAGXC,iBAAiB;AAAA,SAqDjBC,mBAAmB;AAAA,SACnBC,YAAY;AAAA,SACZC,YAAY;AAAA,SAGZC,kBAAkB;AAAA,SAClBC,mBAAmB;AAAA,SACnBC,yBAAyB,EAAEC,yBAAyB,EAAEC,4BAA4B;AAAA,SAGlFC,uBAAuB;AAAA,SACvBC,yBAAyB;AAAA,SAIzBC,iBAAiB;AAAA,SAKvBC,4BAA4B,EAC5BC,iBAAiB;AAAA,SAKXC,YAAY;AAAA,SACZC,MAAM;AAAA,SACNC,IAAI;AAAA,SACJC,GAAG;AAAA,SACHC,GAAG,EAAEC,YAAY,EAAEC,aAAa;AAAA,SAChCC,cAAc,EAAEC,wBAAwB;AAAA,SACxCC,WAAW;AAAA,SACXC,kBAAkB;AAAA,SAClBC,UAAU;AAAA,SAEhBC,aAAa,EACbC,QAAQ,EACRC,SAAS,EACTC,eAAe,EACfC,UAAU;AAAA,SAEJC,qBAAqB,EAAEC,eAAe,EAAEC,SAAS;AAAA,SACjDC,yBAAyB,EAAEC,MAAM;AAAA,SACjCC,SAAS;AAAA,SAGTC,qBAAqB,EAAEC,oBAAoB;AAQnD,OAAO,MAAMC,IAAI,GAAIC,CAAuB,IAAM,GAAEA,CAAE,EAAC"}
package/dist.min.js CHANGED
@@ -4,18 +4,18 @@
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 vn=Object.create;var yt=Object.defineProperty;var bn=Object.getOwnPropertyDescriptor;var wn=Object.getOwnPropertyNames;var On=Object.getPrototypeOf,Sn=Object.prototype.hasOwnProperty;var Ut=(t,r)=>()=>(r||t((r={exports:{}}).exports,r),r.exports),_n=(t,r)=>{for(var e in r)yt(t,e,{get:r[e],enumerable:!0})},xe=(t,r,e,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of wn(r))!Sn.call(t,o)&&o!==e&&yt(t,o,{get:()=>r[o],enumerable:!(n=bn(r,o))||n.enumerable});return t};var Te=(t,r,e)=>(e=t!=null?vn(On(t)):{},xe(r||!t||!t.__esModule?yt(e,"default",{value:t,enumerable:!0}):e,t)),Pn=t=>xe(yt({},"__esModule",{value:!0}),t);var Ne=Ut((ma,V)=>{function Ht(t){return V.exports=Ht=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},V.exports.__esModule=!0,V.exports.default=V.exports,Ht(t)}V.exports=Ht,V.exports.__esModule=!0,V.exports.default=V.exports});var ze=Ut((ha,H)=>{var Ue=Ne().default;function Fe(){"use strict";H.exports=Fe=function(){return t},H.exports.__esModule=!0,H.exports.default=H.exports;var t={},r=Object.prototype,e=r.hasOwnProperty,n=Object.defineProperty||function(p,c,l){p[c]=l.value},o=typeof Symbol=="function"?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function s(p,c,l){return Object.defineProperty(p,c,{value:l,enumerable:!0,configurable:!0,writable:!0}),p[c]}try{s({},"")}catch{s=function(l,m,b){return l[m]=b}}function f(p,c,l,m){var b=c&&c.prototype instanceof T?c:T,h=Object.create(b.prototype),A=new Mt(m||[]);return n(h,"_invoke",{value:gn(p,l,A)}),h}function O(p,c,l){try{return{type:"normal",arg:p.call(c,l)}}catch(m){return{type:"throw",arg:m}}}t.wrap=f;var _={};function T(){}function I(){}function E(){}var U={};s(U,i,function(){return this});var G=Object.getPrototypeOf,F=G&&G(G(Nt([])));F&&F!==r&&e.call(F,i)&&(U=F);var M=E.prototype=T.prototype=Object.create(U);function ct(p){["next","throw","return"].forEach(function(c){s(p,c,function(l){return this._invoke(c,l)})})}function gt(p,c){function l(b,h,A,D){var B=O(p[b],p,h);if(B.type!=="throw"){var X=B.arg,K=X.value;return K&&Ue(K)=="object"&&e.call(K,"__await")?c.resolve(K.__await).then(function($){l("next",$,A,D)},function($){l("throw",$,A,D)}):c.resolve(K).then(function($){X.value=$,A(X)},function($){return l("throw",$,A,D)})}D(B.arg)}var m;n(this,"_invoke",{value:function(h,A){function D(){return new c(function(B,X){l(h,A,B,X)})}return m=m?m.then(D,D):D()}})}function gn(p,c,l){var m="suspendedStart";return function(b,h){if(m==="executing")throw new Error("Generator is already running");if(m==="completed"){if(b==="throw")throw h;return{value:void 0,done:!0}}for(l.method=b,l.arg=h;;){var A=l.delegate;if(A){var D=Pe(A,l);if(D){if(D===_)continue;return D}}if(l.method==="next")l.sent=l._sent=l.arg;else if(l.method==="throw"){if(m==="suspendedStart")throw m="completed",l.arg;l.dispatchException(l.arg)}else l.method==="return"&&l.abrupt("return",l.arg);m="executing";var B=O(p,c,l);if(B.type==="normal"){if(m=l.done?"completed":"suspendedYield",B.arg===_)continue;return{value:B.arg,done:l.done}}B.type==="throw"&&(m="completed",l.method="throw",l.arg=B.arg)}}}function Pe(p,c){var l=c.method,m=p.iterator[l];if(m===void 0)return c.delegate=null,l==="throw"&&p.iterator.return&&(c.method="return",c.arg=void 0,Pe(p,c),c.method==="throw")||l!=="return"&&(c.method="throw",c.arg=new TypeError("The iterator does not provide a '"+l+"' method")),_;var b=O(m,p.iterator,c.arg);if(b.type==="throw")return c.method="throw",c.arg=b.arg,c.delegate=null,_;var h=b.arg;return h?h.done?(c[p.resultName]=h.value,c.next=p.nextLoc,c.method!=="return"&&(c.method="next",c.arg=void 0),c.delegate=null,_):h:(c.method="throw",c.arg=new TypeError("iterator result is not an object"),c.delegate=null,_)}function yn(p){var c={tryLoc:p[0]};1 in p&&(c.catchLoc=p[1]),2 in p&&(c.finallyLoc=p[2],c.afterLoc=p[3]),this.tryEntries.push(c)}function Lt(p){var c=p.completion||{};c.type="normal",delete c.arg,p.completion=c}function Mt(p){this.tryEntries=[{tryLoc:"root"}],p.forEach(yn,this),this.reset(!0)}function Nt(p){if(p||p===""){var c=p[i];if(c)return c.call(p);if(typeof p.next=="function")return p;if(!isNaN(p.length)){var l=-1,m=function b(){for(;++l<p.length;)if(e.call(p,l))return b.value=p[l],b.done=!1,b;return b.value=void 0,b.done=!0,b};return m.next=m}}throw new TypeError(Ue(p)+" is not iterable")}return I.prototype=E,n(M,"constructor",{value:E,configurable:!0}),n(E,"constructor",{value:I,configurable:!0}),I.displayName=s(E,u,"GeneratorFunction"),t.isGeneratorFunction=function(p){var c=typeof p=="function"&&p.constructor;return!!c&&(c===I||(c.displayName||c.name)==="GeneratorFunction")},t.mark=function(p){return Object.setPrototypeOf?Object.setPrototypeOf(p,E):(p.__proto__=E,s(p,u,"GeneratorFunction")),p.prototype=Object.create(M),p},t.awrap=function(p){return{__await:p}},ct(gt.prototype),s(gt.prototype,a,function(){return this}),t.AsyncIterator=gt,t.async=function(p,c,l,m,b){b===void 0&&(b=Promise);var h=new gt(f(p,c,l,m),b);return t.isGeneratorFunction(c)?h:h.next().then(function(A){return A.done?A.value:h.next()})},ct(M),s(M,u,"Generator"),s(M,i,function(){return this}),s(M,"toString",function(){return"[object Generator]"}),t.keys=function(p){var c=Object(p),l=[];for(var m in c)l.push(m);return l.reverse(),function b(){for(;l.length;){var h=l.pop();if(h in c)return b.value=h,b.done=!1,b}return b.done=!0,b}},t.values=Nt,Mt.prototype={constructor:Mt,reset:function(c){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(Lt),!c)for(var l in this)l.charAt(0)==="t"&&e.call(this,l)&&!isNaN(+l.slice(1))&&(this[l]=void 0)},stop:function(){this.done=!0;var c=this.tryEntries[0].completion;if(c.type==="throw")throw c.arg;return this.rval},dispatchException:function(c){if(this.done)throw c;var l=this;function m(X,K){return A.type="throw",A.arg=c,l.next=X,K&&(l.method="next",l.arg=void 0),!!K}for(var b=this.tryEntries.length-1;b>=0;--b){var h=this.tryEntries[b],A=h.completion;if(h.tryLoc==="root")return m("end");if(h.tryLoc<=this.prev){var D=e.call(h,"catchLoc"),B=e.call(h,"finallyLoc");if(D&&B){if(this.prev<h.catchLoc)return m(h.catchLoc,!0);if(this.prev<h.finallyLoc)return m(h.finallyLoc)}else if(D){if(this.prev<h.catchLoc)return m(h.catchLoc,!0)}else{if(!B)throw new Error("try statement without catch or finally");if(this.prev<h.finallyLoc)return m(h.finallyLoc)}}}},abrupt:function(c,l){for(var m=this.tryEntries.length-1;m>=0;--m){var b=this.tryEntries[m];if(b.tryLoc<=this.prev&&e.call(b,"finallyLoc")&&this.prev<b.finallyLoc){var h=b;break}}h&&(c==="break"||c==="continue")&&h.tryLoc<=l&&l<=h.finallyLoc&&(h=null);var A=h?h.completion:{};return A.type=c,A.arg=l,h?(this.method="next",this.next=h.finallyLoc,_):this.complete(A)},complete:function(c,l){if(c.type==="throw")throw c.arg;return c.type==="break"||c.type==="continue"?this.next=c.arg:c.type==="return"?(this.rval=this.arg=c.arg,this.method="return",this.next="end"):c.type==="normal"&&l&&(this.next=l),_},finish:function(c){for(var l=this.tryEntries.length-1;l>=0;--l){var m=this.tryEntries[l];if(m.finallyLoc===c)return this.complete(m.completion,m.afterLoc),Lt(m),_}},catch:function(c){for(var l=this.tryEntries.length-1;l>=0;--l){var m=this.tryEntries[l];if(m.tryLoc===c){var b=m.completion;if(b.type==="throw"){var h=b.arg;Lt(m)}return h}}throw new Error("illegal catch attempt")},delegateYield:function(c,l,m){return this.delegate={iterator:Nt(c),resultName:l,nextLoc:m},this.method==="next"&&(this.arg=void 0),_}},t}H.exports=Fe,H.exports.__esModule=!0,H.exports.default=H.exports});var Wt=Ut((da,Ge)=>{var _t=ze()();Ge.exports=_t;try{regeneratorRuntime=_t}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=_t:Function("r","regeneratorRuntime = r")(_t)}});var Qo={};_n(Qo,{Buffer:()=>R,CanvasContext:()=>re,CommandBuffer:()=>pe,CommandEncoder:()=>le,ComputePass:()=>ce,ComputePipeline:()=>ue,Device:()=>$t,ExternalTexture:()=>ne,Framebuffer:()=>ae,RenderPass:()=>fe,RenderPipeline:()=>se,Resource:()=>d,Sampler:()=>ie,Shader:()=>oe,StatsManager:()=>Gt,Texture:()=>N,TransformFeedback:()=>ge,UniformBlock:()=>Bt,UniformBufferLayout:()=>Dt,UniformStore:()=>Zr,VERSION:()=>St,VertexArray:()=>de,assert:()=>st,cancelAnimationFrame:()=>dn,cast:()=>nn,checkProps:()=>sn,decodeShaderAttributeType:()=>At,decodeShaderUniformType:()=>Rt,decodeTextureFormat:()=>tn,decodeVertexFormat:()=>ht,deepEqual:()=>kt,fillArray:()=>Yr,formatCompilerLog:()=>rn,formatValue:()=>ve,getAttributeInfosFromLayouts:()=>he,getScratchArray:()=>Kr,getScratchArrayBuffer:()=>dt,glsl:()=>Zo,isNumberArray:()=>z,isObjectEmpty:()=>He,isPowerOfTwo:()=>Ve,isTypedArray:()=>Vt,isUniformValue:()=>ye,loadFile:()=>fn,loadImage:()=>ln,loadImageBitmap:()=>cn,loadScript:()=>pn,log:()=>S,luma:()=>xt,makeRandomNumberGenerator:()=>_e,mergeShaderLayout:()=>Nr,random:()=>mn,requestAnimationFrame:()=>hn,setPathPrefix:()=>un,splitUniformsAndBindings:()=>on,stubRemovedMethods:()=>an,uid:()=>it});function Ft(t){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let r=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,e=t||r;return!!(e&&e.indexOf("Electron")>=0)}function C(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||Ft()}var xn=globalThis.self||globalThis.window||globalThis.global,tt=globalThis.window||globalThis.self||globalThis.global,Tn=globalThis.document||{},J=globalThis.process||{},jn=globalThis.console,oi=globalThis.navigator||{};var vt=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",si=C();function An(t){try{let r=window[t],e="__storage_test__";return r.setItem(e,e),r.removeItem(e),r}catch{return null}}var bt=class{constructor(r,e){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=An(n),this.id=r,this.config=e,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(r){if(Object.assign(this.config,r),this.storage){let e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}}_loadConfiguration(){let r={};if(this.storage){let e=this.storage.getItem(this.id);r=e?JSON.parse(e):{}}return Object.assign(this.config,r),this}};function je(t){let r;return t<10?r="".concat(t.toFixed(2),"ms"):t<100?r="".concat(t.toFixed(1),"ms"):t<1e3?r="".concat(t.toFixed(0),"ms"):r="".concat((t/1e3).toFixed(2),"s"),r}function Ae(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,e=Math.max(r-t.length,0);return"".concat(" ".repeat(e)).concat(t)}function wt(t,r,e){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,o=t.src.replace(/\(/g,"%28").replace(/\)/g,"%29");t.width>n&&(e=Math.min(e,n/t.width));let i=t.width*e,a=t.height*e,u=["font-size:1px;","padding:".concat(Math.floor(a/2),"px ").concat(Math.floor(i/2),"px;"),"line-height:".concat(a,"px;"),"background:url(".concat(o,");"),"background-size:".concat(i,"px ").concat(a,"px;"),"color:transparent;"].join("");return["".concat(r," %c+"),u]}var Ot;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Ot||(Ot={}));var En=10;function Ee(t){return typeof t!="string"?t:(t=t.toUpperCase(),Ot[t]||Ot.WHITE)}function Re(t,r,e){if(!C&&typeof t=="string"){if(r){let n=Ee(r);t="\x1B[".concat(n,"m").concat(t,"\x1B[39m")}if(e){let n=Ee(e);t="\x1B[".concat(n+En,"m").concat(t,"\x1B[49m")}}return t}function Ce(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],e=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(e),o=t;for(let i of n){let a=o[i];typeof a=="function"&&(r.find(u=>i===u)||(o[i]=a.bind(t)))}}function et(t,r){if(!t)throw new Error(r||"Assertion failed")}function Z(){let t;if(C()&&tt.performance){var r,e;t=tt===null||tt===void 0||(r=tt.performance)===null||r===void 0||(e=r.now)===null||e===void 0?void 0:e.call(r)}else if("hrtime"in J){var n;let o=J===null||J===void 0||(n=J.hrtime)===null||n===void 0?void 0:n.call(J);t=o[0]*1e3+o[1]/1e6}else t=Date.now();return t}var rt={debug:C()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Rn={enabled:!0,level:0};function L(){}var De={},Be={once:!0},Y=class{constructor(){let{id:r}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=vt,this._startTs=Z(),this._deltaTs=Z(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=r,this.userData={},this._storage=new bt("__probe-".concat(this.id,"__"),Rn),this.timeStamp("".concat(this.id," started")),Ce(this),Object.seal(this)}set level(r){this.setLevel(r)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((Z()-this._startTs).toPrecision(10))}getDelta(){return Number((Z()-this._deltaTs).toPrecision(10))}set priority(r){this.level=r}get priority(){return this.level}getPriority(){return this.level}enable(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:r}),this}setLevel(r){return this._storage.setConfiguration({level:r}),this}get(r){return this._storage.config[r]}set(r,e){this._storage.setConfiguration({[r]:e})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(r,e){et(r,e)}warn(r){return this._getLogFunction(0,r,rt.warn,arguments,Be)}error(r){return this._getLogFunction(0,r,rt.error,arguments)}deprecated(r,e){return this.warn("`".concat(r,"` is deprecated and will be removed in a later version. Use `").concat(e,"` instead"))}removed(r,e){return this.error("`".concat(r,"` has been removed. Use `").concat(e,"` instead"))}probe(r,e){return this._getLogFunction(r,e,rt.log,arguments,{time:!0,once:!0})}log(r,e){return this._getLogFunction(r,e,rt.debug,arguments)}info(r,e){return this._getLogFunction(r,e,console.info,arguments)}once(r,e){return this._getLogFunction(r,e,rt.debug||rt.info,arguments,Be)}table(r,e,n){return e?this._getLogFunction(r,e,console.table||L,n&&[n],{tag:In(e)}):L}image(r){let{logLevel:e,priority:n,image:o,message:i="",scale:a=1}=r;return this._shouldLog(e||n)?C()?Bn({image:o,message:i,scale:a}):Dn({image:o,message:i,scale:a}):L}time(r,e){return this._getLogFunction(r,e,console.time?console.time:console.info)}timeEnd(r,e){return this._getLogFunction(r,e,console.timeEnd?console.timeEnd:console.info)}timeStamp(r,e){return this._getLogFunction(r,e,console.timeStamp||L)}group(r,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},o=Ie({logLevel:r,message:e,opts:n}),{collapsed:i}=n;return o.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(o)}groupCollapsed(r,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(r,e,Object.assign({},n,{collapsed:!0}))}groupEnd(r){return this._getLogFunction(r,"",console.groupEnd||L)}withGroup(r,e,n){this.group(r,e)();try{n()}finally{this.groupEnd(r)()}}trace(){console.trace&&console.trace()}_shouldLog(r){return this.isEnabled()&&this.getLevel()>=ke(r)}_getLogFunction(r,e,n,o,i){if(this._shouldLog(r)){i=Ie({logLevel:r,message:e,args:o,opts:i}),n=n||i.method,et(n),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=Z();let a=i.tag||i.message;if(i.once&&a)if(!De[a])De[a]=Z();else return L;return e=Cn(this.id,i.message,i),n.bind(console,e,...i.args)}return L}};Y.VERSION=vt;function ke(t){if(!t)return 0;let r;switch(typeof t){case"number":r=t;break;case"object":r=t.logLevel||t.priority||0;break;default:return 0}return et(Number.isFinite(r)&&r>=0),r}function Ie(t){let{logLevel:r,message:e}=t;t.logLevel=ke(r);let n=t.args?Array.from(t.args):[];for(;n.length&&n.shift()!==e;);switch(typeof r){case"string":case"function":e!==void 0&&n.unshift(e),t.message=r;break;case"object":Object.assign(t,r);break;default:}typeof t.message=="function"&&(t.message=t.message());let o=typeof t.message;return et(o==="string"||o==="object"),Object.assign(t,{args:n},t.opts)}function Cn(t,r,e){if(typeof r=="string"){let n=e.time?Ae(je(e.total)):"";r=e.time?"".concat(t,": ").concat(n," ").concat(r):"".concat(t,": ").concat(r),r=Re(r,e.color,e.background)}return r}function Dn(t){let{image:r,message:e="",scale:n=1}=t;return console.warn("removed"),L}function Bn(t){let{image:r,message:e="",scale:n=1}=t;if(typeof r=="string"){let i=new Image;return i.onload=()=>{let a=wt(i,e,n);console.log(...a)},i.src=r,L}let o=r.nodeName||"";if(o.toLowerCase()==="img")return console.log(...wt(r,e,n)),L;if(o.toLowerCase()==="canvas"){let i=new Image;return i.onload=()=>console.log(...wt(i,e,n)),i.src=r.toDataURL(),L}return L}function In(t){for(let r in t)for(let e in t[r])return e||"untitled";return"empty"}var Di=new Y({id:"@probe.gl/log"});var S=new Y({id:"luma.gl"});function k(t){return k=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},k(t)}function zt(t,r){if(k(t)!=="object"||t===null)return t;var e=t[Symbol.toPrimitive];if(e!==void 0){var n=e.call(t,r||"default");if(k(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(t)}function lt(t){var r=zt(t,"string");return k(r)==="symbol"?r:String(r)}function Le(t,r){for(var e=0;e<r.length;e++){var n=r[e];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,lt(n.key),n)}}function g(t,r,e){return r&&Le(t.prototype,r),e&&Le(t,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function y(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function pt(){let t;if(typeof window<"u"&&window.performance)t=window.performance.now();else if(typeof process<"u"&&process.hrtime){let r=process.hrtime();t=r[0]*1e3+r[1]/1e6}else t=Date.now();return t}var Q=class{constructor(r,e){this.name=void 0,this.type=void 0,this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=r,this.type=e,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(r){return this.sampleSize=r,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(r){return this._count+=r,this._samples++,this._checkSampling(),this}subtractCount(r){return this._count-=r,this._samples++,this._checkSampling(),this}addTime(r){return this._time+=r,this.lastTiming=r,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=pt(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(pt()-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 nt=class{constructor(r){this.id=void 0,this.stats={},this.id=r.id,this.stats={},this._initializeStats(r.stats),Object.seal(this)}get(r){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:r,type:e})}get size(){return Object.keys(this.stats).length}reset(){for(let r of Object.values(this.stats))r.reset();return this}forEach(r){for(let e of Object.values(this.stats))r(e)}getTable(){let r={};return this.forEach(e=>{r[e.name]={time:e.time||0,count:e.count||0,average:e.getAverageTime()||0,hz:e.getHz()||0}}),r}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(e=>this._getOrCreate(e))}_getOrCreate(r){let{name:e,type:n}=r,o=this.stats[e];return o||(r instanceof Q?o=r:o=new Q(e,n),this.stats[e]=o),o}};var Gt=function(){function t(){y(this,t),this.stats=new Map}var r=t.prototype;return r.getStats=function(n){return this.get(n)},r.get=function(n){return this.stats.has(n)||this.stats.set(n,new nt({id:n})),this.stats.get(n)},g(t)}(),ot=new Gt;function kn(){var t=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",r="set luma.log.level=1 (or higher) to trace rendering";if(globalThis.luma&&globalThis.luma.VERSION!==t)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat(t));return globalThis.luma||(C()&&S.log(1,"luma.gl ".concat(t," - ").concat(r))(),globalThis.luma=globalThis.luma||{VERSION:t,version:t,log:S,stats:ot}),t}var St=kn();function Vt(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)?t:null}function z(t){return Array.isArray(t)?t.length===0||typeof t[0]=="number"?t:null:Vt(t)}function w(t,r,e){return r=lt(r),r in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function Me(t,r,e,n,o,i,a){try{var u=t[i](a),s=u.value}catch(f){e(f);return}u.done?r(s):Promise.resolve(s).then(n,o)}function q(t){return function(){var r=this,e=arguments;return new Promise(function(n,o){var i=t.apply(r,e);function a(s){Me(i,n,o,a,u,"next",s)}function u(s){Me(i,n,o,a,u,"throw",s)}a(void 0)})}}var Jt=Te(Wt(),1);var Kt={};function it(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";Kt[t]=Kt[t]||1;var r=Kt[t]++;return"".concat(t,"-").concat(r)}function Ve(t){return t>0&&(t&t-1)===0}function He(t){var r=!0;for(var e in t){r=!1;break}return r}function mt(t,r){return mt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},mt(t,r)}function P(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),r&&mt(t,r)}function Yt(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function x(t,r){if(r&&(k(r)==="object"||typeof r=="function"))return r;if(r!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Yt(t)}function v(t){return v=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},v(t)}function We(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Ln(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?We(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):We(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}var d=function(){function t(e,n,o){if(y(this,t),this.id=void 0,this.props=void 0,this.userData={},this.device=void 0,this._device=void 0,this.destroyed=!1,this.allocatedBytes=0,this._attachedResources=new Set,!e)throw new Error("no device");this._device=e,this.props=Mn(n,o);var i=this.props.id!=="undefined"?this.props.id:it(this[Symbol.toStringTag]);this.props.id=i,this.id=i,this.userData=this.props.userData||{},this.addStats()}var r=t.prototype;return r.destroy=function(){this.destroyResource()},r.delete=function(){return this.destroy(),this},r.toString=function(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")},r.getProps=function(){return this.props},r.attachResource=function(n){this._attachedResources.add(n)},r.detachResource=function(n){this._attachedResources.delete(n)},r.destroyAttachedResource=function(n){this._attachedResources.delete(n)&&n.destroy()},r.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},r.destroyResource=function(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0},r.removeStats=function(){var n=this._device.statsManager.getStats("Resource Counts"),o=this[Symbol.toStringTag];n.get("".concat(o,"s Active")).decrementCount()},r.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},r.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},r.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()},g(t)}();d.defaultProps={id:"undefined",handle:void 0,userData:void 0};function Mn(t,r){var e=Ln({},r);for(var n in t)t[n]!==void 0&&(e[n]=t[n]);return e}var Ye;function Ke(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function qt(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Ke(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Ke(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Nn(t){var r=Un();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function Un(){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}}Ye=Symbol.toStringTag;var R=function(t){P(e,t);var r=Nn(e);function e(o,i){var a;y(this,e);var u=qt({},i);return(i.usage||0)&e.INDEX&&!i.indexType&&(i.data instanceof Uint32Array?u.indexType="uint32":i.data instanceof Uint16Array&&(u.indexType="uint16")),a=r.call(this,o,u,e.defaultProps),a.usage=void 0,a.indexType=void 0,a.byteLength=void 0,a.usage=i.usage||0,a.indexType=u.indexType,a}var n=e.prototype;return n.write=function(i,a){throw new Error("not implemented")},n.readAsync=function(i,a){throw new Error("not implemented")},n.getData=function(){throw new Error("not implemented")},g(e,[{key:Ye,get:function(){return"Buffer"}}]),e}(d);R.defaultProps=qt(qt({},d.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;var Xe;function qe(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Xt(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?qe(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):qe(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}var Pt={id:null,type:"best-available",canvas:null,container:null,webgl2:!0,webgl1:!0,manageState:!0,width:800,height:600,debug:Boolean(S.get("debug")),break:[],gl:null};Xe=Symbol.toStringTag;var $t=function(){function t(e){y(this,t),this.id=void 0,this.statsManager=ot,this.props=void 0,this.userData={},this._lumaData={},this.info=void 0,this.lost=void 0,this.canvasContext=void 0,this.props=Xt(Xt({},Pt),e),this.id=this.props.id||it(this[Symbol.toStringTag].toLowerCase())}var r=t.prototype;return r.loseDevice=function(){return!1},r.getCanvasContext=function(){if(!this.canvasContext)throw new Error("Device has no CanvasContext");return this.canvasContext},r.createTexture=function(n){return(n instanceof Promise||typeof n=="string")&&(n={data:n}),this._createTexture(n)},r.createCommandEncoder=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};throw new Error("not implemented")},r._getBufferProps=function(n){(n instanceof ArrayBuffer||ArrayBuffer.isView(n))&&(n={data:n});var o=Xt({},n);return(n.usage||0)&R.INDEX&&!n.indexType&&(n.data instanceof Uint32Array?o.indexType="uint32":n.data instanceof Uint16Array?o.indexType="uint16":S.warn("indices buffer content must be of integer type")()),o},g(t,[{key:Xe,get:function(){return"Device"}}]),t}();$t.VERSION=St;function $e(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Je(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?$e(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):$e(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Fn(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=zn(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(f){throw f},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
8
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,u;return{s:function(){e=e.call(t)},n:function(){var f=e.next();return i=f.done,f},e:function(f){a=!0,u=f},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(a)throw u}}}}function zn(t,r){if(t){if(typeof t=="string")return Ze(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Ze(t,r)}}function Ze(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}var at=new Map,xt=function(){function t(){y(this,t)}return t.registerDevices=function(e){var n=Fn(e),o;try{for(n.s();!(o=n.n()).done;){var i=o.value;st(i.type&&i.isSupported&&i.create),at.set(i.type,i)}}catch(a){n.e(a)}finally{n.f()}},t.getAvailableDevices=function(){return Array.from(at).map(function(e){return e.type})},t.getSupportedDevices=function(){return Array.from(at).filter(function(e){return e.isSupported()}).map(function(e){return e.type})},t.setDefaultDeviceProps=function(e){Object.assign(Pt,e)},t.createDevice=function(){var r=q(Jt.default.mark(function n(){var o,i,a=arguments;return Jt.default.wrap(function(s){for(;;)switch(s.prev=s.next){case 0:o=a.length>0&&a[0]!==void 0?a[0]:{},o=Je(Je({},Pt),o),o.gl&&(o.type="webgl"),s.t0=o.type,s.next=s.t0==="webgpu"?6:s.t0==="webgl"||s.t0==="webgl1"||s.t0==="webgl2"?12:s.t0==="best-available"?18:24;break;case 6:if(i=at.get("webgpu"),!i){s.next=11;break}return s.next=10,i.create(o);case 10:return s.abrupt("return",s.sent);case 11:return s.abrupt("break",24);case 12:if(i=at.get("webgl"),!i){s.next=17;break}return s.next=16,i.create(o);case 16:return s.abrupt("return",s.sent);case 17:return s.abrupt("break",24);case 18:if(i=at.get("webgl"),!(i&&i.isSupported())){s.next=23;break}return s.next=22,i.create(o);case 22:return s.abrupt("return",s.sent);case 23:return s.abrupt("break",24);case 24:throw new Error("No matching device found. Ensure `@luma.gl/webgl` and/or `@luma.gl/webgpu` modules are imported.");case 25:case"end":return s.stop()}},n)}));function e(){return r.apply(this,arguments)}return e}(),g(t)}();xt.stats=ot;xt.log=S;function Zt(t){if(Array.isArray(t))return t}function Qt(t,r){var e=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(e!=null){var n,o,i,a,u=[],s=!0,f=!1;try{if(i=(e=e.call(t)).next,r===0){if(Object(e)!==e)return;s=!1}else for(;!(s=(n=i.call(e)).done)&&(u.push(n.value),u.length!==r);s=!0);}catch(O){f=!0,o=O}finally{try{if(!s&&e.return!=null&&(a=e.return(),Object(a)!==a))return}finally{if(f)throw o}}return u}}function Tt(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}function te(t,r){if(t){if(typeof t=="string")return Tt(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Tt(t,r)}}function ee(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
9
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function j(t,r){return Zt(t)||Qt(t,r)||te(t,r)||ee()}function Gn(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Vn(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(f){throw f},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
10
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,u;return{s:function(){e=e.call(t)},n:function(){var f=e.next();return i=f.done,f},e:function(f){a=!0,u=f},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(a)throw u}}}}function Vn(t,r){if(t){if(typeof t=="string")return Qe(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Qe(t,r)}}function Qe(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}function tr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function er(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?tr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):tr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}var Hn=C()&&typeof document<"u",jt=function(){return Hn&&document.readyState==="complete"},Wn={canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,colorSpace:"srgb",alphaMode:"opaque"},re=function(){function t(e){var n=this;if(y(this,t),this.device=void 0,this.id=void 0,this.props=void 0,this.canvas=void 0,this.htmlCanvas=void 0,this.offscreenCanvas=void 0,this.type=void 0,this.width=1,this.height=1,this.resizeObserver=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this.props=er(er({},Wn),e),e=this.props,!C()){this.id="node-canvas-context",this.type="node",this.width=this.props.width,this.height=this.props.height,this.canvas=null;return}if(e.canvas)typeof e.canvas=="string"?this.canvas=qn(e.canvas):this.canvas=e.canvas;else{var o,i,a=Xn(e),u=Yn(((o=e)===null||o===void 0?void 0:o.container)||null);u.insertBefore(a,u.firstChild),this.canvas=a,(i=e)!==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&&e.autoResize&&(this.resizeObserver=new ResizeObserver(function(s){var f=Gn(s),O;try{for(f.s();!(O=f.n()).done;){var _=O.value;_.target===n.canvas&&n.update()}}catch(T){f.e(T)}finally{f.f()}}),this.resizeObserver.observe(this.canvas))}var r=t.prototype;return r.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},r.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)}},r.getAspect=function(){var n=this.getPixelSize(),o=j(n,2),i=o[0],a=o[1];return i/a},r.cssToDeviceRatio=function(){try{var n=this.getDrawingBufferSize(),o=j(n,1),i=o[0],a=this._canvasSizeInfo.clientWidth;return a?i/a:1}catch{return 1}},r.cssToDevicePixels=function(n){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=this.cssToDeviceRatio(),a=this.getDrawingBufferSize(),u=j(a,2),s=u[0],f=u[1];return $n(n,i,s,f,o)},r.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,a="height"in o?o.height:this.htmlCanvas.clientHeight;(!i||!a)&&(S.log(1,"Canvas clientWidth/clientHeight is 0")(),n=1,i=this.htmlCanvas.width||1,a=this.htmlCanvas.height||1);var u=this._canvasSizeInfo;if(u.clientWidth!==i||u.clientHeight!==a||u.devicePixelRatio!==n){var s=n,f=Math.floor(i*s),O=Math.floor(a*s);this.htmlCanvas.width=f,this.htmlCanvas.height=O;var _=this.getDrawingBufferSize(),T=j(_,2),I=T[0],E=T[1];(I!==f||E!==O)&&(s=Math.min(I/i,E/a),this.htmlCanvas.width=Math.floor(i*s),this.htmlCanvas.height=Math.floor(a*s),S.warn("Device pixel ratio clamped")()),this._canvasSizeInfo.clientWidth=i,this._canvasSizeInfo.clientHeight=a,this._canvasSizeInfo.devicePixelRatio=n}}},r.getDrawingBufferSize=function(){var n=this.device.gl;if(!n)throw new Error("canvas size");return[n.drawingBufferWidth,n.drawingBufferHeight]},r._setAutoCreatedCanvasId=function(n){var o;((o=this.htmlCanvas)===null||o===void 0?void 0:o.id)==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=n)},g(t,null,[{key:"isPageLoaded",get:function(){return jt()}}]),t}();re.pageLoaded=Kn();function Kn(){return jt()||typeof window>"u"?Promise.resolve():new Promise(function(t){window.addEventListener("load",function(){return t()})})}function Yn(t){if(typeof t=="string"){var r=document.getElementById(t);if(!r&&!jt())throw new Error("Accessing '".concat(t,"' before page was loaded"));if(!r)throw new Error("".concat(t," is not an HTML element"));return r}else if(t)return t;return document.body}function qn(t){var r=document.getElementById(t);if(!r&&!jt())throw new Error("Accessing '".concat(t,"' before page was loaded"));if(!(r instanceof HTMLCanvasElement))throw new Error("'".concat(r,"' is not a canvas element"));return r}function Xn(t){var r=t.width,e=t.height,n=document.createElement("canvas");return n.id="lumagl-auto-created-canvas",n.width=r||1,n.height=e||1,n.style.width=Number.isFinite(r)?"".concat(r,"px"):"100%",n.style.height=Number.isFinite(e)?"".concat(e,"px"):"100%",n}function $n(t,r,e,n,o){var i=t,a=rr(i[0],r,e),u=nr(i[1],r,n,o),s=rr(i[0]+1,r,e),f=s===e-1?s:s-1;s=nr(i[1]+1,r,n,o);var O;return o?(s=s===0?s:s+1,O=u,u=s):O=s===n-1?s:s-1,{x:a,y:u,width:Math.max(f-a+1,1),height:Math.max(O-u+1,1)}}function rr(t,r,e){var n=Math.min(Math.round(t*r),e-1);return n}function nr(t,r,e,n){return n?Math.max(0,e-1-Math.round(t*r)):Math.min(Math.round(t*r),e-1)}var ar;function or(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function ir(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?or(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):or(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Jn(t){var r=Zn();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function Zn(){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}}ar=Symbol.toStringTag;var N=function(t){P(e,t);var r=Jn(e);function e(n,o){var i,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.defaultProps;return y(this,e),i=r.call(this,n,o,a),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 g(e,[{key:ar,get:function(){return"Texture"}}]),e}(d);N.defaultProps=ir(ir({},d.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});N.COPY_SRC=1;N.COPY_DST=2;N.TEXTURE_BINDING=4;N.STORAGE_BINDING=8;N.RENDER_ATTACHMENT=16;var fr;function sr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function ur(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?sr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):sr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Qn(t){var r=to();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function to(){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}}fr=Symbol.toStringTag;var ne=function(t){P(e,t);var r=Qn(e);function e(n,o){return y(this,e),r.call(this,n,o,e.defaultProps)}return g(e,[{key:fr,get:function(){return"ExternalTexture"}}]),e}(d);ne.defaultProps=ur(ur({},d.defaultProps),{},{source:null,colorSpace:"srgb"});var pr;function cr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function lr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?cr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):cr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function eo(t){var r=ro();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function ro(){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}}pr=Symbol.toStringTag;var oe=function(t){P(e,t);var r=eo(e);function e(n,o){var i;return y(this,e),i=r.call(this,n,o,e.defaultProps),i.stage=void 0,i.source=void 0,i.stage=i.props.stage,i.source=i.props.source,i}return g(e,[{key:pr,get:function(){return"Shader"}}]),e}(d);oe.defaultProps=lr(lr({},d.defaultProps),{},{stage:"vertex",source:"",sourceMap:null,language:"auto",shaderType:0});var dr;function mr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function hr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?mr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):mr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function no(t){var r=oo();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function oo(){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}}dr=Symbol.toStringTag;var ie=function(t){P(e,t);var r=no(e);function e(n,o){return y(this,e),r.call(this,n,o,e.defaultProps)}return g(e,[{key:dr,get:function(){return"Sampler"}}]),e}(d);ie.defaultProps=hr(hr({},d.defaultProps),{},{type:"color-sampler",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"nearest",lodMinClamp:0,lodMaxClamp:32,compare:"less-equal",maxAnisotropy:1});var yr;function gr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function ut(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?gr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):gr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function io(t){var r=ao();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function ao(){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}}yr=Symbol.toStringTag;var ae=function(t){P(e,t);var r=io(e);function e(o){var i,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return y(this,e),i=r.call(this,o,a,e.defaultProps),i.width=void 0,i.height=void 0,i.colorAttachments=[],i.depthStencilAttachment=null,i.width=i.props.width,i.height=i.props.height,i}var n=e.prototype;return n.resize=function(i){var a=!i;if(i){var u=Array.isArray(i)?i:[i.width,i.height],s=j(u,2),f=s[0],O=s[1];a=a||O!==this.height||f!==this.width,this.width=f,this.height=O}a&&(S.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(this.width,"x").concat(this.height))(),this.resizeAttachments(this.width,this.height))},n.autoCreateAttachmentTextures=function(){var i=this;if(this.colorAttachments=this.props.colorAttachments.map(function(u){if(typeof u=="string"){var s=i.createColorTexture(u);return i.attachResource(s),s}return u}),this.props.depthStencilAttachment)if(typeof this.props.depthStencilAttachment=="string"){var a=this.createDepthStencilTexture(this.props.depthStencilAttachment);this.attachResource(a),this.depthStencilAttachment=a}else this.depthStencilAttachment=this.props.depthStencilAttachment},n.createColorTexture=function(i){return this.device.createTexture({id:"color-attachment",usage:N.RENDER_ATTACHMENT,format:i,width:this.width,height:this.height})},n.createDepthStencilTexture=function(i){return this.device.createTexture({id:"depth-stencil-attachment",usage:N.RENDER_ATTACHMENT,format:i,width:this.width,height:this.height})},n.resizeAttachments=function(i,a){for(var u=0;u<this.colorAttachments.length;++u)if(this.colorAttachments[u]){var s=this.device._createTexture(ut(ut({},this.colorAttachments[u].props),{},{width:i,height:a}));this.destroyAttachedResource(this.colorAttachments[u]),this.colorAttachments[u]=s,this.attachResource(s)}if(this.depthStencilAttachment){var f=this.device._createTexture(ut(ut({},this.depthStencilAttachment.props),{},{width:i,height:a}));this.destroyAttachedResource(this.depthStencilAttachment),this.depthStencilAttachment=f,this.attachResource(f)}},g(e,[{key:yr,get:function(){return"Framebuffer"}}]),e}(d);ae.defaultProps=ut(ut({},d.defaultProps),{},{width:1,height:1,colorAttachments:[],depthStencilAttachment:null});var wr;function vr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function br(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?vr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):vr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function so(t){var r=uo();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function uo(){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}}wr=Symbol.toStringTag;var se=function(t){P(e,t);var r=so(e);function e(n,o){var i;return y(this,e),i=r.call(this,n,o,e.defaultProps),i.hash="",i.vs=void 0,i.fs=void 0,i.shaderLayout=void 0,i.bufferLayout=void 0,i.shaderLayout=i.props.shaderLayout,i.bufferLayout=i.props.bufferLayout||[],i}return g(e,[{key:wr,get:function(){return"RenderPipeline"}}]),e}(d);se.defaultProps=br(br({},d.defaultProps),{},{vs:null,vsEntryPoint:"",vsConstants:{},fs:null,fsEntryPoint:"",fsConstants:{},shaderLayout:null,bufferLayout:[],topology:"triangle-list",parameters:{},vertexCount:0,instanceCount:0,bindings:{},uniforms:{}});var _r;function Or(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Sr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Or(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Or(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function fo(t){var r=co();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function co(){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}}_r=Symbol.toStringTag;var ue=function(t){P(e,t);var r=fo(e);function e(n,o){var i;return y(this,e),i=r.call(this,n,o,e.defaultProps),i.hash="",i}return g(e,[{key:_r,get:function(){return"ComputePipeline"}}]),e}(d);ue.defaultProps=Sr(Sr({},d.defaultProps),{},{cs:void 0,csEntryPoint:void 0,csConstants:{},shaderLayout:[]});var Tr;function Pr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function xr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Pr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Pr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function lo(t){var r=po();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function po(){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}}Tr=Symbol.toStringTag;var fe=function(t){P(e,t);var r=lo(e);function e(n,o){return y(this,e),r.call(this,n,o,e.defaultProps)}return g(e,[{key:Tr,get:function(){return"RenderPass"}}]),e}(d);fe.defaultProps=xr(xr({},d.defaultProps),{},{framebuffer:null,parameters:void 0,clearColor:[0,0,0,0],clearDepth:1,clearStencil:0,depthReadOnly:!1,stencilReadOnly:!1,discard:!1});var Ar;function jr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function mo(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?jr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):jr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function ho(t){var r=go();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function go(){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}}Ar=Symbol.toStringTag;var ce=function(t){P(e,t);var r=ho(e);function e(n,o){return y(this,e),r.call(this,n,o,d.defaultProps)}return g(e,[{key:Ar,get:function(){return"ComputePass"}}]),e}(d);ce.defaultProps=mo({},d.defaultProps);var Cr;function Er(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Rr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Er(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Er(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function yo(t){var r=vo();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function vo(){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}}Cr=Symbol.toStringTag;var le=function(t){P(e,t);var r=yo(e);function e(o,i){return y(this,e),r.call(this,o,i,e.defaultProps)}var n=e.prototype;return n.pushDebugGroup=function(i){},n.popDebugGroup=function(){},n.insertDebugMarker=function(i){},g(e,[{key:Cr,get:function(){return"CommandEncoder"}}]),e}(d);le.defaultProps=Rr(Rr({},d.defaultProps),{},{measureExecutionTime:void 0});var Br;function Dr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function bo(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Dr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Dr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function wo(t){var r=Oo();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function Oo(){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}}Br=Symbol.toStringTag;var pe=function(t){P(e,t);var r=wo(e);function e(n,o){return y(this,e),r.call(this,n,o,e.defaultProps)}return g(e,[{key:Br,get:function(){return"CommandBuffer"}}]),e}(d);pe.defaultProps=bo({},d.defaultProps);function At(t){var r=j(_o[t],2),e=r[0],n=r[1],o=e==="i32"||e==="u32",i=e!=="u32",a=Po[e]*n,u=So(e,n);return{dataType:e,components:n,defaultVertexFormat:u,byteLength:a,integer:o,signed:i}}function So(t,r){var e;switch(t){case"f32":e="float32";break;case"i32":e="sint32";break;case"u32":e="uint32";break;case"f16":return r<=2?"float16x2":"float16x4"}return r===1?e:"".concat(e,"x").concat(r)}var _o={f32:["f32",1],"vec2<f32>":["f32",2],"vec3<f32>":["f32",3],"vec4<f32>":["f32",4],f16:["f16",1],"vec2<f16>":["f16",2],"vec3<f16>":["f16",3],"vec4<f16>":["f16",4],i32:["i32",1],"vec2<i32>":["i32",2],"vec3<i32>":["i32",3],"vec4<i32>":["i32",4],u32:["u32",1],"vec2<u32>":["u32",2],"vec3<u32>":["u32",3],"vec4<u32>":["u32",4]},Po={f32:4,f16:2,i32:4,u32:4};function Et(t){var r=Ir[t],e=xo(r),n=t.includes("norm"),o=!n&&!t.startsWith("float"),i=t.startsWith("s");return{dataType:Ir[t],byteLength:e,integer:o,signed:i,normalized:n}}function xo(t){var r=To[t];return r}var Ir={uint8:"uint8",sint8:"sint8",unorm8:"uint8",snorm8:"sint8",uint16:"uint16",sint16:"sint16",unorm16:"uint16",snorm16:"sint16",float16:"float16",float32:"float32",uint32:"uint32",sint32:"sint32"},To={uint8:1,sint8:1,uint16:2,sint16:2,float16:2,float32:4,uint32:4,sint32:4};function ht(t){var r;t.endsWith("-webgl")&&(t.replace("-webgl",""),r=!0);var e=t.split("x"),n=j(e,2),o=n[0],i=n[1],a=o,u=i?parseInt(i):1,s=Et(a),f={type:a,components:u,byteLength:s.byteLength*u,integer:s.integer,signed:s.signed,normalized:s.normalized};return r&&(f.webglOnly=!0),f}function kr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function me(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?kr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):kr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function ft(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=jo(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(f){throw f},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
11
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,u;return{s:function(){e=e.call(t)},n:function(){var f=e.next();return i=f.done,f},e:function(f){a=!0,u=f},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(a)throw u}}}}function jo(t,r){if(t){if(typeof t=="string")return Lr(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Lr(t,r)}}function Lr(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}function he(t,r){var e={},n=ft(t.attributes),o;try{for(n.s();!(o=n.n()).done;){var i=o.value;e[i.name]=Ao(t,r,i.name)}}catch(a){n.e(a)}finally{n.f()}return e}function Mr(t,r){for(var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:16,n=he(t,r),o=new Array(e).fill(null),i=0,a=Object.values(n);i<a.length;i++){var u=a[i];o[u.location]=u}return o}function Ao(t,r,e){var n=Eo(t,e),o=Ro(r,e);if(!n)return null;var i=At(n.type),a=o?.vertexFormat||i.defaultVertexFormat,u=ht(a);return{attributeName:o?.attributeName||n.name,bufferName:o?.bufferName||n.name,location:n.location,shaderType:n.type,shaderDataType:i.dataType,shaderComponents:i.components,vertexFormat:a,bufferDataType:u.type,bufferComponents:u.components,normalized:u.normalized,integer:i.integer,stepMode:o?.stepMode||n.stepMode,byteOffset:o?.byteOffset||0,byteStride:o?.byteStride||0}}function Eo(t,r){var e=t.attributes.find(function(n){return n.name===r});return e||S.warn('shader layout attribute "'.concat(r,'" not present in shader')),e||null}function Ro(t,r){Co(t);var e=Do(t,r);return e||(e=Bo(t,r),e)?e:(S.warn('layout for attribute "'.concat(r,'" not present in buffer layout')),null)}function Co(t){var r=ft(t),e;try{for(r.s();!(e=r.n()).done;){var n=e.value;(n.attributes&&n.format||!n.attributes&&!n.format)&&S.warn("BufferLayout ".concat(name," must have either 'attributes' or 'format' field"))}}catch(o){r.e(o)}finally{r.f()}}function Do(t,r){var e=ft(t),n;try{for(e.s();!(n=e.n()).done;){var o=n.value;if(o.format&&o.name===r)return{attributeName:o.name,bufferName:r,stepMode:o.stepMode,vertexFormat:o.format,byteOffset:0,byteStride:o.byteStride||0}}}catch(i){e.e(i)}finally{e.f()}return null}function Bo(t,r){var e=ft(t),n;try{for(e.s();!(n=e.n()).done;){var o,i=n.value,a=i.byteStride;if(typeof i.byteStride!="number"){var u=ft(i.attributes||[]),s;try{for(u.s();!(s=u.n()).done;){var f=s.value,O=ht(f.format);a+=O.byteLength}}catch(T){u.e(T)}finally{u.f()}}var _=(o=i.attributes)===null||o===void 0?void 0:o.find(function(T){return T.attribute===r});if(_)return{attributeName:_.attribute,bufferName:i.name,stepMode:i.stepMode,vertexFormat:_.format,byteOffset:_.byteOffset,byteStride:a}}}catch(T){e.e(T)}finally{e.f()}return null}function Nr(t,r){var e=me(me({},t),{},{attributes:t.attributes.map(function(a){return me({},a)})}),n=ft(r?.attributes||[]),o;try{var i=function(){var u=o.value,s=e.attributes.find(function(f){return f.name===u.name});s?(s.type=u.type||s.type,s.stepMode=u.stepMode||s.stepMode):S.warn("shader layout attribute ".concat(u.name," not present in shader"))};for(n.s();!(o=n.n()).done;)i()}catch(a){n.e(a)}finally{n.f()}return e}var zr;function Ur(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Fr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Ur(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Ur(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Io(t){var r=ko();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function ko(){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}}zr=Symbol.toStringTag;var de=function(t){P(e,t);var r=Io(e);function e(n,o){var i;return y(this,e),i=r.call(this,n,o,e.defaultProps),i.maxVertexAttributes=void 0,i.attributeInfos=void 0,i.indexBuffer=null,i.attributes=void 0,i.maxVertexAttributes=n.limits.maxVertexAttributes,i.attributes=new Array(i.maxVertexAttributes).fill(null),i.attributeInfos=Mr(o.renderPipeline.shaderLayout,o.renderPipeline.bufferLayout,i.maxVertexAttributes),i}return g(e,[{key:zr,get:function(){return"VertexArray"}}]),e}(d);de.defaultProps=Fr(Fr({},d.defaultProps),{},{renderPipeline:null});var Hr;function Gr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Vr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Gr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Gr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Lo(t){var r=Mo();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function Mo(){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}}Hr=Symbol.toStringTag;var ge=function(t){P(e,t);var r=Lo(e);function e(n,o){return y(this,e),r.call(this,n,o,e.defaultProps)}return g(e,[{key:Hr,get:function(){return"TransformFeedback"}}]),e}(d);ge.defaultProps=Vr(Vr({},d.defaultProps),{},{layout:void 0,buffers:{}});function st(t,r){if(!t)throw new Error(r||"luma.gl: assertion failed.")}var No={f32:{type:"f32",components:1},i32:{type:"i32",components:1},u32:{type:"u32",components:1},"vec2<f32>":{type:"f32",components:2},"vec3<f32>":{type:"f32",components:3},"vec4<f32>":{type:"f32",components:4},"vec2<i32>":{type:"i32",components:2},"vec3<i32>":{type:"i32",components:3},"vec4<i32>":{type:"i32",components:4},"vec2<u32>":{type:"u32",components:2},"vec3<u32>":{type:"u32",components:3},"vec4<u32>":{type:"u32",components:4},"mat2x2<f32>":{type:"f32",components:4},"mat2x3<f32>":{type:"f32",components:6},"mat2x4<f32>":{type:"f32",components:8},"mat3x2<f32>":{type:"f32",components:6},"mat3x3<f32>":{type:"f32",components:9},"mat3x4<f32>":{type:"f32",components:12},"mat4x2<f32>":{type:"f32",components:8},"mat4x3<f32>":{type:"f32",components:12},"mat4x4<f32>":{type:"f32",components:16}};function Rt(t){var r=No[t];return st(t),r}function Wr(t,r){switch(r){case 1:return t;case 2:return t+t%2;default:return t+(4-t%4)%4}}var Ct;function dt(t){return(!Ct||Ct.byteLength<t)&&(Ct=new ArrayBuffer(t)),Ct}function Kr(t,r){var e=dt(t.BYTES_PER_ELEMENT*r);return new t(e,0,r)}function Yr(t){for(var r=t.target,e=t.source,n=t.start,o=n===void 0?0:n,i=t.count,a=i===void 0?1:i,u=e.length,s=a*u,f=0,O=o;f<u;f++)r[O++]=e[f];for(;f<s;)f<s-f?(r.copyWithin(o+f,o,o+f),f*=2):(r.copyWithin(o+f,o,o+s-f),f=s);return t.target}var qr=1024,Dt=function(){function t(e){y(this,t),this.layout={},this.byteLength=void 0;for(var n=0,o=0,i=Object.entries(e);o<i.length;o++){var a=j(i[o],2),u=a[0],s=a[1],f=Rt(s),O=f.type,_=f.components;n=Wr(n,_);var T=n;n+=_,this.layout[u]={type:O,size:_,offset:T}}n+=(4-n%4)%4;var I=n*4;this.byteLength=Math.max(I,qr)}var r=t.prototype;return r.getData=function(n){for(var o=Math.max(this.byteLength,qr),i=dt(o),a={i32:new Int32Array(i),u32:new Uint32Array(i),f32:new Float32Array(i),f16:new Uint16Array(i)},u=0,s=Object.entries(n);u<s.length;u++){var f=j(s[u],2),O=f[0],_=f[1],T=this.layout[O];if(!T){S.warn("Supplied uniform value ".concat(O," not present in uniform block layout"))();continue}var I=T.type,E=T.size,U=T.offset,G=a[I];if(E===1){if(typeof _!="number"&&typeof _!="boolean"){S.warn("Supplied value for single component uniform ".concat(O," is not a number: ").concat(_))();continue}G[U]=Number(_)}else{var F=z(_);if(!F){S.warn("Supplied value for multi component / array uniform ".concat(O," is not a numeric array: ").concat(_))();continue}G.set(F,U)}}return new Uint8Array(i)},r.has=function(n){return Boolean(this.layout[n])},r.get=function(n){var o=this.layout[n];return o},g(t)}();function Xr(t,r){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:16;if(t!==r)return!1;var n=z(t);if(!n)return!1;var o=z(r);if(o&&n.length===o.length){for(var i=0;i<n.length;++i)if(o[i]!==n[i])return!1}return!0}function $r(t){var r=z(t);return r?r.slice():t}function Uo(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Fo(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(f){throw f},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
12
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,u;return{s:function(){e=e.call(t)},n:function(){var f=e.next();return i=f.done,f},e:function(f){a=!0,u=f},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(a)throw u}}}}function Fo(t,r){if(t){if(typeof t=="string")return Jr(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Jr(t,r)}}function Jr(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}var Bt=function(){function t(e){if(y(this,t),this.name=void 0,this.uniforms={},this.modifiedUniforms={},this.modified=!0,this.bindingLayout={},this.needsRedraw="initialized",this.name=e?.name,e!=null&&e.name&&e!==null&&e!==void 0&&e.shaderLayout){var n,o=e==null||(n=e.shaderLayout.bindings)===null||n===void 0?void 0:n.find(function(f){return f.type==="uniform"&&f.name===e?.name});if(!o)throw new Error(e?.name);var i=o,a=Uo(i.uniforms||[]),u;try{for(a.s();!(u=a.n()).done;){var s=u.value;this.bindingLayout[s.name]=s}}catch(f){a.e(f)}finally{a.f()}}}var r=t.prototype;return r.setUniforms=function(n){for(var o=0,i=Object.entries(n);o<i.length;o++){var a=j(i[o],2),u=a[0],s=a[1];this._setUniform(u,s),this.needsRedraw||this.setNeedsRedraw("".concat(this.name,".").concat(u,"=").concat(s))}},r.setNeedsRedraw=function(n){this.needsRedraw=this.needsRedraw||n},r.getAllUniforms=function(){return this.modifiedUniforms={},this.needsRedraw=!1,this.uniforms||{}},r._setUniform=function(n,o){Xr(this.uniforms[n],o)||(this.uniforms[n]=$r(o),this.modifiedUniforms[n]=!0,this.modified=!0)},g(t)}();var Zr=function(){function t(e){y(this,t),this.uniformBlocks=void 0,this.uniformBufferLayouts=void 0,this.uniformBuffers=void 0,this.uniformBlocks={},this.uniformBufferLayouts={},this.uniformBuffers={};for(var n=0,o=Object.entries(e);n<o.length;n++){var i=j(o[n],2),a=i[0],u=i[1],s=a,f=new Dt(u.uniformTypes||{});this.uniformBufferLayouts[s]=f;var O=new Bt({name:a});O.setUniforms(u.defaultUniforms||{}),this.uniformBlocks[s]=O}}var r=t.prototype;return r.destroy=function(){for(var n=0,o=Object.values(this.uniformBuffers);n<o.length;n++){var i=o[n];i.destroy()}},r.setUniforms=function(n){for(var o=0,i=Object.entries(n);o<i.length;o++){var a=j(i[o],2),u=a[0],s=a[1];this.uniformBlocks[u].setUniforms(s)}this.updateUniformBuffers()},r.getUniformBufferByteLength=function(n){return this.uniformBufferLayouts[n].byteLength},r.getUniformBufferData=function(n){var o=this.uniformBlocks[n].getAllUniforms();return this.uniformBufferLayouts[n].getData(o)},r.createUniformBuffer=function(n,o,i){i&&this.setUniforms(i);var a=this.getUniformBufferByteLength(o),u=n.createBuffer({usage:R.UNIFORM,byteLength:a}),s=this.getUniformBufferData(o);return u.write(s),u},r.getManagedUniformBuffer=function(n,o){if(!this.uniformBuffers[o]){var i=this.getUniformBufferByteLength(o),a=n.createBuffer({usage:R.UNIFORM,byteLength:i});this.uniformBuffers[o]=a}return this.updateUniformBuffers(),this.uniformBuffers[o]},r.updateUniformBuffer=function(n){var o=this.uniformBlocks[n],i=this.uniformBuffers[n],a=!1;if(i&&o.needsRedraw){a||(a=o.needsRedraw);var u=this.getUniformBufferData(n),s=this.uniformBuffers[n];s.write(u);var f=this.uniformBlocks[n].getAllUniforms();S.log(4,"Writing to uniform buffer ".concat(String(n)),u,f)()}return a},r.updateUniformBuffers=function(){for(var n=!1,o=0,i=Object.keys(this.uniformBlocks);o<i.length;o++){var a=i[o];n||(n=this.updateUniformBuffer(a))}return n&&S.log(3,"UniformStore.updateUniformBuffers(): ".concat(n))(),n},g(t)}();function Qr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function zo(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Qr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Qr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}var Go=/^(rg?b?a?)([0-9]*)([a-z]*)(-srgb)?(-webgl|-unsized)?$/;function tn(t){var r=Go.exec(t);if(r){var e=j(r,6),n=e[1],o=e[2],i=e[3],a=e[4],u=e[5];if(n){var s="".concat(i).concat(o),f=Et(s);return zo({format:n,components:0,srgb:a==="-srgb",unsized:u==="-unsized",webgl:u==="-webgl"},f)}}return Ho(t)}var Vo={"rgba4unorm-webgl":{format:"rgba",bpp:2},"rgb565unorm-webgl":{format:"rgb",bpp:2},"rgb5a1unorm-webgl":{format:"rgba",bbp:2},rgb9e5ufloat:{format:"rgb",bbp:4},rg11b10ufloat:{format:"rgb",bbp:4},rgb10a2unorm:{format:"rgba",bbp:4},"rgb10a2unorm-webgl":{format:"rgba",bbp:4},stencil8:{components:1,bpp:1,a:"stencil"},depth16unorm:{components:1,bpp:2,a:"depth"},depth24plus:{components:1,bpp:3,a:"depth"},depth32float:{components:1,bpp:4,a:"depth"},"depth24plus-stencil8":{components:2,bpp:4,a:"depth-stencil"},"depth24unorm-stencil8":{components:2,bpp:4,a:"depth-stencil"},"depth32float-stencil8":{components:2,bpp:4,a:"depth-stencil"}};function Ho(t){var r=Vo[t];if(!r)throw new Error("Unknown format ".concat(t));return{format:r.format||"",components:r.components||1,byteLength:r.bpp||1,srgb:!1,unsized:!1}}function Wo(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Ko(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(f){throw f},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
13
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,u;return{s:function(){e=e.call(t)},n:function(){var f=e.next();return i=f.done,f},e:function(f){a=!0,u=f},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(a)throw u}}}}function Ko(t,r){if(t){if(typeof t=="string")return en(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return en(t,r)}}function en(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}function rn(t,r,e){var n=r.split(/\r?\n/),o="",i=Wo(t),a;try{for(i.s();!(a=i.n()).done;){var u=a.value;o+=Yo(u,n,u.lineNum,e)}}catch(s){i.e(s)}finally{i.f()}return o}function Yo(t,r,e,n){if(n!=null&&n.showSourceCode){var o=t.linePos>0?"".concat(" ".repeat(t.linePos+5),`^^^
14
- `):"",i=qo(r,e);return"".concat(i).concat(o).concat(t.type.toUpperCase(),": ").concat(t.message,`
7
+ "use strict";var __exports__=(()=>{var On=Object.create;var yt=Object.defineProperty;var Sn=Object.getOwnPropertyDescriptor;var _n=Object.getOwnPropertyNames;var Pn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty;var Ut=(t,r)=>()=>(r||t((r={exports:{}}).exports,r),r.exports),Tn=(t,r)=>{for(var e in r)yt(t,e,{get:r[e],enumerable:!0})},Te=(t,r,e,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of _n(r))!xn.call(t,o)&&o!==e&&yt(t,o,{get:()=>r[o],enumerable:!(n=Sn(r,o))||n.enumerable});return t};var Ae=(t,r,e)=>(e=t!=null?On(Pn(t)):{},Te(r||!t||!t.__esModule?yt(e,"default",{value:t,enumerable:!0}):e,t)),An=t=>Te(yt({},"__esModule",{value:!0}),t);var Ue=Ut((ga,V)=>{function Ht(t){return V.exports=Ht=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},V.exports.__esModule=!0,V.exports.default=V.exports,Ht(t)}V.exports=Ht,V.exports.__esModule=!0,V.exports.default=V.exports});var Ge=Ut((ya,H)=>{var Fe=Ue().default;function ze(){"use strict";H.exports=ze=function(){return t},H.exports.__esModule=!0,H.exports.default=H.exports;var t={},r=Object.prototype,e=r.hasOwnProperty,n=Object.defineProperty||function(p,f,l){p[f]=l.value},o=typeof Symbol=="function"?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function s(p,f,l){return Object.defineProperty(p,f,{value:l,enumerable:!0,configurable:!0,writable:!0}),p[f]}try{s({},"")}catch{s=function(l,m,b){return l[m]=b}}function c(p,f,l,m){var b=f&&f.prototype instanceof T?f:T,h=Object.create(b.prototype),E=new Mt(m||[]);return n(h,"_invoke",{value:bn(p,l,E)}),h}function O(p,f,l){try{return{type:"normal",arg:p.call(f,l)}}catch(m){return{type:"throw",arg:m}}}t.wrap=c;var _={};function T(){}function I(){}function j(){}var U={};s(U,i,function(){return this});var G=Object.getPrototypeOf,F=G&&G(G(Nt([])));F&&F!==r&&e.call(F,i)&&(U=F);var M=j.prototype=T.prototype=Object.create(U);function ft(p){["next","throw","return"].forEach(function(f){s(p,f,function(l){return this._invoke(f,l)})})}function gt(p,f){function l(b,h,E,D){var B=O(p[b],p,h);if(B.type!=="throw"){var X=B.arg,K=X.value;return K&&Fe(K)=="object"&&e.call(K,"__await")?f.resolve(K.__await).then(function($){l("next",$,E,D)},function($){l("throw",$,E,D)}):f.resolve(K).then(function($){X.value=$,E(X)},function($){return l("throw",$,E,D)})}D(B.arg)}var m;n(this,"_invoke",{value:function(h,E){function D(){return new f(function(B,X){l(h,E,B,X)})}return m=m?m.then(D,D):D()}})}function bn(p,f,l){var m="suspendedStart";return function(b,h){if(m==="executing")throw new Error("Generator is already running");if(m==="completed"){if(b==="throw")throw h;return{value:void 0,done:!0}}for(l.method=b,l.arg=h;;){var E=l.delegate;if(E){var D=xe(E,l);if(D){if(D===_)continue;return D}}if(l.method==="next")l.sent=l._sent=l.arg;else if(l.method==="throw"){if(m==="suspendedStart")throw m="completed",l.arg;l.dispatchException(l.arg)}else l.method==="return"&&l.abrupt("return",l.arg);m="executing";var B=O(p,f,l);if(B.type==="normal"){if(m=l.done?"completed":"suspendedYield",B.arg===_)continue;return{value:B.arg,done:l.done}}B.type==="throw"&&(m="completed",l.method="throw",l.arg=B.arg)}}}function xe(p,f){var l=f.method,m=p.iterator[l];if(m===void 0)return f.delegate=null,l==="throw"&&p.iterator.return&&(f.method="return",f.arg=void 0,xe(p,f),f.method==="throw")||l!=="return"&&(f.method="throw",f.arg=new TypeError("The iterator does not provide a '"+l+"' method")),_;var b=O(m,p.iterator,f.arg);if(b.type==="throw")return f.method="throw",f.arg=b.arg,f.delegate=null,_;var h=b.arg;return h?h.done?(f[p.resultName]=h.value,f.next=p.nextLoc,f.method!=="return"&&(f.method="next",f.arg=void 0),f.delegate=null,_):h:(f.method="throw",f.arg=new TypeError("iterator result is not an object"),f.delegate=null,_)}function wn(p){var f={tryLoc:p[0]};1 in p&&(f.catchLoc=p[1]),2 in p&&(f.finallyLoc=p[2],f.afterLoc=p[3]),this.tryEntries.push(f)}function Lt(p){var f=p.completion||{};f.type="normal",delete f.arg,p.completion=f}function Mt(p){this.tryEntries=[{tryLoc:"root"}],p.forEach(wn,this),this.reset(!0)}function Nt(p){if(p||p===""){var f=p[i];if(f)return f.call(p);if(typeof p.next=="function")return p;if(!isNaN(p.length)){var l=-1,m=function b(){for(;++l<p.length;)if(e.call(p,l))return b.value=p[l],b.done=!1,b;return b.value=void 0,b.done=!0,b};return m.next=m}}throw new TypeError(Fe(p)+" is not iterable")}return I.prototype=j,n(M,"constructor",{value:j,configurable:!0}),n(j,"constructor",{value:I,configurable:!0}),I.displayName=s(j,u,"GeneratorFunction"),t.isGeneratorFunction=function(p){var f=typeof p=="function"&&p.constructor;return!!f&&(f===I||(f.displayName||f.name)==="GeneratorFunction")},t.mark=function(p){return Object.setPrototypeOf?Object.setPrototypeOf(p,j):(p.__proto__=j,s(p,u,"GeneratorFunction")),p.prototype=Object.create(M),p},t.awrap=function(p){return{__await:p}},ft(gt.prototype),s(gt.prototype,a,function(){return this}),t.AsyncIterator=gt,t.async=function(p,f,l,m,b){b===void 0&&(b=Promise);var h=new gt(c(p,f,l,m),b);return t.isGeneratorFunction(f)?h:h.next().then(function(E){return E.done?E.value:h.next()})},ft(M),s(M,u,"Generator"),s(M,i,function(){return this}),s(M,"toString",function(){return"[object Generator]"}),t.keys=function(p){var f=Object(p),l=[];for(var m in f)l.push(m);return l.reverse(),function b(){for(;l.length;){var h=l.pop();if(h in f)return b.value=h,b.done=!1,b}return b.done=!0,b}},t.values=Nt,Mt.prototype={constructor:Mt,reset:function(f){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(Lt),!f)for(var l in this)l.charAt(0)==="t"&&e.call(this,l)&&!isNaN(+l.slice(1))&&(this[l]=void 0)},stop:function(){this.done=!0;var f=this.tryEntries[0].completion;if(f.type==="throw")throw f.arg;return this.rval},dispatchException:function(f){if(this.done)throw f;var l=this;function m(X,K){return E.type="throw",E.arg=f,l.next=X,K&&(l.method="next",l.arg=void 0),!!K}for(var b=this.tryEntries.length-1;b>=0;--b){var h=this.tryEntries[b],E=h.completion;if(h.tryLoc==="root")return m("end");if(h.tryLoc<=this.prev){var D=e.call(h,"catchLoc"),B=e.call(h,"finallyLoc");if(D&&B){if(this.prev<h.catchLoc)return m(h.catchLoc,!0);if(this.prev<h.finallyLoc)return m(h.finallyLoc)}else if(D){if(this.prev<h.catchLoc)return m(h.catchLoc,!0)}else{if(!B)throw new Error("try statement without catch or finally");if(this.prev<h.finallyLoc)return m(h.finallyLoc)}}}},abrupt:function(f,l){for(var m=this.tryEntries.length-1;m>=0;--m){var b=this.tryEntries[m];if(b.tryLoc<=this.prev&&e.call(b,"finallyLoc")&&this.prev<b.finallyLoc){var h=b;break}}h&&(f==="break"||f==="continue")&&h.tryLoc<=l&&l<=h.finallyLoc&&(h=null);var E=h?h.completion:{};return E.type=f,E.arg=l,h?(this.method="next",this.next=h.finallyLoc,_):this.complete(E)},complete:function(f,l){if(f.type==="throw")throw f.arg;return f.type==="break"||f.type==="continue"?this.next=f.arg:f.type==="return"?(this.rval=this.arg=f.arg,this.method="return",this.next="end"):f.type==="normal"&&l&&(this.next=l),_},finish:function(f){for(var l=this.tryEntries.length-1;l>=0;--l){var m=this.tryEntries[l];if(m.finallyLoc===f)return this.complete(m.completion,m.afterLoc),Lt(m),_}},catch:function(f){for(var l=this.tryEntries.length-1;l>=0;--l){var m=this.tryEntries[l];if(m.tryLoc===f){var b=m.completion;if(b.type==="throw"){var h=b.arg;Lt(m)}return h}}throw new Error("illegal catch attempt")},delegateYield:function(f,l,m){return this.delegate={iterator:Nt(f),resultName:l,nextLoc:m},this.method==="next"&&(this.arg=void 0),_}},t}H.exports=ze,H.exports.__esModule=!0,H.exports.default=H.exports});var Wt=Ut((va,Ve)=>{var _t=Ge()();Ve.exports=_t;try{regeneratorRuntime=_t}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=_t:Function("r","regeneratorRuntime = r")(_t)}});var ri={};Tn(ri,{Buffer:()=>C,CanvasContext:()=>re,CommandBuffer:()=>pe,CommandEncoder:()=>le,ComputePass:()=>fe,ComputePipeline:()=>ue,Device:()=>$t,ExternalTexture:()=>ne,Framebuffer:()=>ae,RenderPass:()=>ce,RenderPipeline:()=>se,Resource:()=>d,Sampler:()=>ie,Shader:()=>oe,StatsManager:()=>Gt,Texture:()=>N,TransformFeedback:()=>ge,UniformBlock:()=>Bt,UniformBufferLayout:()=>Dt,UniformStore:()=>Qr,VERSION:()=>St,VertexArray:()=>de,assert:()=>st,cancelAnimationFrame:()=>vn,cast:()=>sn,checkProps:()=>fn,decodeShaderAttributeType:()=>Et,decodeShaderUniformType:()=>Ct,decodeTextureFormat:()=>en,decodeVertexFormat:()=>ht,deepEqual:()=>kt,fillArray:()=>qr,formatCompilerLog:()=>an,formatValue:()=>be,getAttributeInfosFromLayouts:()=>he,getDataTypeFromTypedArray:()=>ye,getScratchArray:()=>Yr,getScratchArrayBuffer:()=>dt,getTypedArrayFromDataType:()=>rn,getVertexFormatFromAttribute:()=>nn,glsl:()=>ei,isNumberArray:()=>z,isObjectEmpty:()=>We,isPowerOfTwo:()=>He,isTypedArray:()=>Vt,isUniformValue:()=>ve,loadFile:()=>pn,loadImage:()=>hn,loadImageBitmap:()=>mn,loadScript:()=>dn,log:()=>S,luma:()=>xt,makeRandomNumberGenerator:()=>Pe,mergeShaderLayout:()=>Ur,random:()=>gn,requestAnimationFrame:()=>yn,setPathPrefix:()=>ln,splitUniformsAndBindings:()=>un,stubRemovedMethods:()=>cn,uid:()=>it});function Ft(t){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let r=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,e=t||r;return!!(e&&e.indexOf("Electron")>=0)}function R(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||Ft()}var En=globalThis.self||globalThis.window||globalThis.global,tt=globalThis.window||globalThis.self||globalThis.global,jn=globalThis.document||{},J=globalThis.process||{},Cn=globalThis.console,si=globalThis.navigator||{};var vt=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",fi=R();function Rn(t){try{let r=window[t],e="__storage_test__";return r.setItem(e,e),r.removeItem(e),r}catch{return null}}var bt=class{constructor(r,e){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=Rn(n),this.id=r,this.config=e,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(r){if(Object.assign(this.config,r),this.storage){let e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}}_loadConfiguration(){let r={};if(this.storage){let e=this.storage.getItem(this.id);r=e?JSON.parse(e):{}}return Object.assign(this.config,r),this}};function Ee(t){let r;return t<10?r="".concat(t.toFixed(2),"ms"):t<100?r="".concat(t.toFixed(1),"ms"):t<1e3?r="".concat(t.toFixed(0),"ms"):r="".concat((t/1e3).toFixed(2),"s"),r}function je(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,e=Math.max(r-t.length,0);return"".concat(" ".repeat(e)).concat(t)}function wt(t,r,e){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,o=t.src.replace(/\(/g,"%28").replace(/\)/g,"%29");t.width>n&&(e=Math.min(e,n/t.width));let i=t.width*e,a=t.height*e,u=["font-size:1px;","padding:".concat(Math.floor(a/2),"px ").concat(Math.floor(i/2),"px;"),"line-height:".concat(a,"px;"),"background:url(".concat(o,");"),"background-size:".concat(i,"px ").concat(a,"px;"),"color:transparent;"].join("");return["".concat(r," %c+"),u]}var Ot;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Ot||(Ot={}));var Dn=10;function Ce(t){return typeof t!="string"?t:(t=t.toUpperCase(),Ot[t]||Ot.WHITE)}function Re(t,r,e){if(!R&&typeof t=="string"){if(r){let n=Ce(r);t="\x1B[".concat(n,"m").concat(t,"\x1B[39m")}if(e){let n=Ce(e);t="\x1B[".concat(n+Dn,"m").concat(t,"\x1B[49m")}}return t}function De(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],e=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(e),o=t;for(let i of n){let a=o[i];typeof a=="function"&&(r.find(u=>i===u)||(o[i]=a.bind(t)))}}function et(t,r){if(!t)throw new Error(r||"Assertion failed")}function Z(){let t;if(R()&&tt.performance){var r,e;t=tt===null||tt===void 0||(r=tt.performance)===null||r===void 0||(e=r.now)===null||e===void 0?void 0:e.call(r)}else if("hrtime"in J){var n;let o=J===null||J===void 0||(n=J.hrtime)===null||n===void 0?void 0:n.call(J);t=o[0]*1e3+o[1]/1e6}else t=Date.now();return t}var rt={debug:R()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Bn={enabled:!0,level:0};function L(){}var Be={},Ie={once:!0},Y=class{constructor(){let{id:r}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=vt,this._startTs=Z(),this._deltaTs=Z(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=r,this.userData={},this._storage=new bt("__probe-".concat(this.id,"__"),Bn),this.timeStamp("".concat(this.id," started")),De(this),Object.seal(this)}set level(r){this.setLevel(r)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((Z()-this._startTs).toPrecision(10))}getDelta(){return Number((Z()-this._deltaTs).toPrecision(10))}set priority(r){this.level=r}get priority(){return this.level}getPriority(){return this.level}enable(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:r}),this}setLevel(r){return this._storage.setConfiguration({level:r}),this}get(r){return this._storage.config[r]}set(r,e){this._storage.setConfiguration({[r]:e})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(r,e){et(r,e)}warn(r){return this._getLogFunction(0,r,rt.warn,arguments,Ie)}error(r){return this._getLogFunction(0,r,rt.error,arguments)}deprecated(r,e){return this.warn("`".concat(r,"` is deprecated and will be removed in a later version. Use `").concat(e,"` instead"))}removed(r,e){return this.error("`".concat(r,"` has been removed. Use `").concat(e,"` instead"))}probe(r,e){return this._getLogFunction(r,e,rt.log,arguments,{time:!0,once:!0})}log(r,e){return this._getLogFunction(r,e,rt.debug,arguments)}info(r,e){return this._getLogFunction(r,e,console.info,arguments)}once(r,e){return this._getLogFunction(r,e,rt.debug||rt.info,arguments,Ie)}table(r,e,n){return e?this._getLogFunction(r,e,console.table||L,n&&[n],{tag:Mn(e)}):L}image(r){let{logLevel:e,priority:n,image:o,message:i="",scale:a=1}=r;return this._shouldLog(e||n)?R()?Ln({image:o,message:i,scale:a}):kn({image:o,message:i,scale:a}):L}time(r,e){return this._getLogFunction(r,e,console.time?console.time:console.info)}timeEnd(r,e){return this._getLogFunction(r,e,console.timeEnd?console.timeEnd:console.info)}timeStamp(r,e){return this._getLogFunction(r,e,console.timeStamp||L)}group(r,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},o=ke({logLevel:r,message:e,opts:n}),{collapsed:i}=n;return o.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(o)}groupCollapsed(r,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(r,e,Object.assign({},n,{collapsed:!0}))}groupEnd(r){return this._getLogFunction(r,"",console.groupEnd||L)}withGroup(r,e,n){this.group(r,e)();try{n()}finally{this.groupEnd(r)()}}trace(){console.trace&&console.trace()}_shouldLog(r){return this.isEnabled()&&this.getLevel()>=Le(r)}_getLogFunction(r,e,n,o,i){if(this._shouldLog(r)){i=ke({logLevel:r,message:e,args:o,opts:i}),n=n||i.method,et(n),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=Z();let a=i.tag||i.message;if(i.once&&a)if(!Be[a])Be[a]=Z();else return L;return e=In(this.id,i.message,i),n.bind(console,e,...i.args)}return L}};Y.VERSION=vt;function Le(t){if(!t)return 0;let r;switch(typeof t){case"number":r=t;break;case"object":r=t.logLevel||t.priority||0;break;default:return 0}return et(Number.isFinite(r)&&r>=0),r}function ke(t){let{logLevel:r,message:e}=t;t.logLevel=Le(r);let n=t.args?Array.from(t.args):[];for(;n.length&&n.shift()!==e;);switch(typeof r){case"string":case"function":e!==void 0&&n.unshift(e),t.message=r;break;case"object":Object.assign(t,r);break;default:}typeof t.message=="function"&&(t.message=t.message());let o=typeof t.message;return et(o==="string"||o==="object"),Object.assign(t,{args:n},t.opts)}function In(t,r,e){if(typeof r=="string"){let n=e.time?je(Ee(e.total)):"";r=e.time?"".concat(t,": ").concat(n," ").concat(r):"".concat(t,": ").concat(r),r=Re(r,e.color,e.background)}return r}function kn(t){let{image:r,message:e="",scale:n=1}=t;return console.warn("removed"),L}function Ln(t){let{image:r,message:e="",scale:n=1}=t;if(typeof r=="string"){let i=new Image;return i.onload=()=>{let a=wt(i,e,n);console.log(...a)},i.src=r,L}let o=r.nodeName||"";if(o.toLowerCase()==="img")return console.log(...wt(r,e,n)),L;if(o.toLowerCase()==="canvas"){let i=new Image;return i.onload=()=>console.log(...wt(i,e,n)),i.src=r.toDataURL(),L}return L}function Mn(t){for(let r in t)for(let e in t[r])return e||"untitled";return"empty"}var ki=new Y({id:"@probe.gl/log"});var S=new Y({id:"luma.gl"});function k(t){return k=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},k(t)}function zt(t,r){if(k(t)!=="object"||t===null)return t;var e=t[Symbol.toPrimitive];if(e!==void 0){var n=e.call(t,r||"default");if(k(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(t)}function lt(t){var r=zt(t,"string");return k(r)==="symbol"?r:String(r)}function Me(t,r){for(var e=0;e<r.length;e++){var n=r[e];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,lt(n.key),n)}}function g(t,r,e){return r&&Me(t.prototype,r),e&&Me(t,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function y(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function pt(){let t;if(typeof window<"u"&&window.performance)t=window.performance.now();else if(typeof process<"u"&&process.hrtime){let r=process.hrtime();t=r[0]*1e3+r[1]/1e6}else t=Date.now();return t}var Q=class{constructor(r,e){this.name=void 0,this.type=void 0,this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=r,this.type=e,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(r){return this.sampleSize=r,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(r){return this._count+=r,this._samples++,this._checkSampling(),this}subtractCount(r){return this._count-=r,this._samples++,this._checkSampling(),this}addTime(r){return this._time+=r,this.lastTiming=r,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=pt(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(pt()-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 nt=class{constructor(r){this.id=void 0,this.stats={},this.id=r.id,this.stats={},this._initializeStats(r.stats),Object.seal(this)}get(r){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:r,type:e})}get size(){return Object.keys(this.stats).length}reset(){for(let r of Object.values(this.stats))r.reset();return this}forEach(r){for(let e of Object.values(this.stats))r(e)}getTable(){let r={};return this.forEach(e=>{r[e.name]={time:e.time||0,count:e.count||0,average:e.getAverageTime()||0,hz:e.getHz()||0}}),r}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(e=>this._getOrCreate(e))}_getOrCreate(r){let{name:e,type:n}=r,o=this.stats[e];return o||(r instanceof Q?o=r:o=new Q(e,n),this.stats[e]=o),o}};var Gt=function(){function t(){y(this,t),this.stats=new Map}var r=t.prototype;return r.getStats=function(n){return this.get(n)},r.get=function(n){return this.stats.has(n)||this.stats.set(n,new nt({id:n})),this.stats.get(n)},g(t)}(),ot=new Gt;function Nn(){var t=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",r="set luma.log.level=1 (or higher) to trace rendering";if(globalThis.luma&&globalThis.luma.VERSION!==t)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat(t));return globalThis.luma||(R()&&S.log(1,"luma.gl ".concat(t," - ").concat(r))(),globalThis.luma=globalThis.luma||{VERSION:t,version:t,log:S,stats:ot}),t}var St=Nn();function Vt(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)?t:null}function z(t){return Array.isArray(t)?t.length===0||typeof t[0]=="number"?t:null:Vt(t)}function w(t,r,e){return r=lt(r),r in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function Ne(t,r,e,n,o,i,a){try{var u=t[i](a),s=u.value}catch(c){e(c);return}u.done?r(s):Promise.resolve(s).then(n,o)}function q(t){return function(){var r=this,e=arguments;return new Promise(function(n,o){var i=t.apply(r,e);function a(s){Ne(i,n,o,a,u,"next",s)}function u(s){Ne(i,n,o,a,u,"throw",s)}a(void 0)})}}var Jt=Ae(Wt(),1);var Kt={};function it(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";Kt[t]=Kt[t]||1;var r=Kt[t]++;return"".concat(t,"-").concat(r)}function He(t){return t>0&&(t&t-1)===0}function We(t){var r=!0;for(var e in t){r=!1;break}return r}function mt(t,r){return mt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},mt(t,r)}function P(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),r&&mt(t,r)}function Yt(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function x(t,r){if(r&&(k(r)==="object"||typeof r=="function"))return r;if(r!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Yt(t)}function v(t){return v=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},v(t)}function Ke(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Un(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Ke(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Ke(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}var d=function(){function t(e,n,o){if(y(this,t),this.id=void 0,this.props=void 0,this.userData={},this.device=void 0,this._device=void 0,this.destroyed=!1,this.allocatedBytes=0,this._attachedResources=new Set,!e)throw new Error("no device");this._device=e,this.props=Fn(n,o);var i=this.props.id!=="undefined"?this.props.id:it(this[Symbol.toStringTag]);this.props.id=i,this.id=i,this.userData=this.props.userData||{},this.addStats()}var r=t.prototype;return r.destroy=function(){this.destroyResource()},r.delete=function(){return this.destroy(),this},r.toString=function(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")},r.getProps=function(){return this.props},r.attachResource=function(n){this._attachedResources.add(n)},r.detachResource=function(n){this._attachedResources.delete(n)},r.destroyAttachedResource=function(n){this._attachedResources.delete(n)&&n.destroy()},r.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},r.destroyResource=function(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0},r.removeStats=function(){var n=this._device.statsManager.getStats("Resource Counts"),o=this[Symbol.toStringTag];n.get("".concat(o,"s Active")).decrementCount()},r.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},r.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},r.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()},g(t)}();d.defaultProps={id:"undefined",handle:void 0,userData:void 0};function Fn(t,r){var e=Un({},r);for(var n in t)t[n]!==void 0&&(e[n]=t[n]);return e}var qe;function Ye(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function qt(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Ye(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Ye(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function zn(t){var r=Gn();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function Gn(){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}}qe=Symbol.toStringTag;var C=function(t){P(e,t);var r=zn(e);function e(o,i){var a;y(this,e);var u=qt({},i);return(i.usage||0)&e.INDEX&&!i.indexType&&(i.data instanceof Uint32Array?u.indexType="uint32":i.data instanceof Uint16Array&&(u.indexType="uint16")),a=r.call(this,o,u,e.defaultProps),a.usage=void 0,a.indexType=void 0,a.byteLength=void 0,a.usage=i.usage||0,a.indexType=u.indexType,a}var n=e.prototype;return n.write=function(i,a){throw new Error("not implemented")},n.readAsync=function(i,a){throw new Error("not implemented")},n.getData=function(){throw new Error("not implemented")},g(e,[{key:qe,get:function(){return"Buffer"}}]),e}(d);C.defaultProps=qt(qt({},d.defaultProps),{},{usage:0,byteLength:0,byteOffset:0,data:null,indexType:"uint16",mappedAtCreation:!1});C.MAP_READ=1;C.MAP_WRITE=2;C.COPY_SRC=4;C.COPY_DST=8;C.INDEX=16;C.VERTEX=32;C.UNIFORM=64;C.STORAGE=128;C.INDIRECT=256;C.QUERY_RESOLVE=512;var $e;function Xe(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Xt(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Xe(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Xe(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}var Pt={id:null,type:"best-available",canvas:null,container:null,webgl2:!0,webgl1:!0,manageState:!0,width:800,height:600,debug:Boolean(S.get("debug")),break:[],gl:null};$e=Symbol.toStringTag;var $t=function(){function t(e){y(this,t),this.id=void 0,this.statsManager=ot,this.props=void 0,this.userData={},this._lumaData={},this.info=void 0,this.lost=void 0,this.canvasContext=void 0,this.props=Xt(Xt({},Pt),e),this.id=this.props.id||it(this[Symbol.toStringTag].toLowerCase())}var r=t.prototype;return r.loseDevice=function(){return!1},r.getCanvasContext=function(){if(!this.canvasContext)throw new Error("Device has no CanvasContext");return this.canvasContext},r.createTexture=function(n){return(n instanceof Promise||typeof n=="string")&&(n={data:n}),this._createTexture(n)},r.createCommandEncoder=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};throw new Error("not implemented")},r._getBufferProps=function(n){(n instanceof ArrayBuffer||ArrayBuffer.isView(n))&&(n={data:n});var o=Xt({},n);return(n.usage||0)&C.INDEX&&!n.indexType&&(n.data instanceof Uint32Array?o.indexType="uint32":n.data instanceof Uint16Array?o.indexType="uint16":S.warn("indices buffer content must be of integer type")()),o},g(t,[{key:$e,get:function(){return"Device"}}]),t}();$t.VERSION=St;function Je(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Ze(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Je(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Je(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Vn(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Hn(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
8
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,u;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return i=c.done,c},e:function(c){a=!0,u=c},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(a)throw u}}}}function Hn(t,r){if(t){if(typeof t=="string")return Qe(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Qe(t,r)}}function Qe(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}var at=new Map,xt=function(){function t(){y(this,t)}return t.registerDevices=function(e){var n=Vn(e),o;try{for(n.s();!(o=n.n()).done;){var i=o.value;st(i.type&&i.isSupported&&i.create),at.set(i.type,i)}}catch(a){n.e(a)}finally{n.f()}},t.getAvailableDevices=function(){return Array.from(at).map(function(e){return e.type})},t.getSupportedDevices=function(){return Array.from(at).filter(function(e){return e.isSupported()}).map(function(e){return e.type})},t.setDefaultDeviceProps=function(e){Object.assign(Pt,e)},t.createDevice=function(){var r=q(Jt.default.mark(function n(){var o,i,a=arguments;return Jt.default.wrap(function(s){for(;;)switch(s.prev=s.next){case 0:o=a.length>0&&a[0]!==void 0?a[0]:{},o=Ze(Ze({},Pt),o),o.gl&&(o.type="webgl"),s.t0=o.type,s.next=s.t0==="webgpu"?6:s.t0==="webgl"||s.t0==="webgl1"||s.t0==="webgl2"?12:s.t0==="best-available"?18:24;break;case 6:if(i=at.get("webgpu"),!i){s.next=11;break}return s.next=10,i.create(o);case 10:return s.abrupt("return",s.sent);case 11:return s.abrupt("break",24);case 12:if(i=at.get("webgl"),!i){s.next=17;break}return s.next=16,i.create(o);case 16:return s.abrupt("return",s.sent);case 17:return s.abrupt("break",24);case 18:if(i=at.get("webgl"),!(i&&i.isSupported())){s.next=23;break}return s.next=22,i.create(o);case 22:return s.abrupt("return",s.sent);case 23:return s.abrupt("break",24);case 24:throw new Error("No matching device found. Ensure `@luma.gl/webgl` and/or `@luma.gl/webgpu` modules are imported.");case 25:case"end":return s.stop()}},n)}));function e(){return r.apply(this,arguments)}return e}(),g(t)}();xt.stats=ot;xt.log=S;function Zt(t){if(Array.isArray(t))return t}function Qt(t,r){var e=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(e!=null){var n,o,i,a,u=[],s=!0,c=!1;try{if(i=(e=e.call(t)).next,r===0){if(Object(e)!==e)return;s=!1}else for(;!(s=(n=i.call(e)).done)&&(u.push(n.value),u.length!==r);s=!0);}catch(O){c=!0,o=O}finally{try{if(!s&&e.return!=null&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}function Tt(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}function te(t,r){if(t){if(typeof t=="string")return Tt(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Tt(t,r)}}function ee(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
9
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function A(t,r){return Zt(t)||Qt(t,r)||te(t,r)||ee()}function Wn(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Kn(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
10
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,u;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return i=c.done,c},e:function(c){a=!0,u=c},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(a)throw u}}}}function Kn(t,r){if(t){if(typeof t=="string")return tr(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return tr(t,r)}}function tr(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}function er(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function rr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?er(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):er(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}var Yn=R()&&typeof document<"u",At=function(){return Yn&&document.readyState==="complete"},qn={canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,colorSpace:"srgb",alphaMode:"opaque"},re=function(){function t(e){var n=this;if(y(this,t),this.device=void 0,this.id=void 0,this.props=void 0,this.canvas=void 0,this.htmlCanvas=void 0,this.offscreenCanvas=void 0,this.type=void 0,this.width=1,this.height=1,this.resizeObserver=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this.props=rr(rr({},qn),e),e=this.props,!R()){this.id="node-canvas-context",this.type="node",this.width=this.props.width,this.height=this.props.height,this.canvas=null;return}if(e.canvas)typeof e.canvas=="string"?this.canvas=Jn(e.canvas):this.canvas=e.canvas;else{var o,i,a=Zn(e),u=$n(((o=e)===null||o===void 0?void 0:o.container)||null);u.insertBefore(a,u.firstChild),this.canvas=a,(i=e)!==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&&e.autoResize&&(this.resizeObserver=new ResizeObserver(function(s){var c=Wn(s),O;try{for(c.s();!(O=c.n()).done;){var _=O.value;_.target===n.canvas&&n.update()}}catch(T){c.e(T)}finally{c.f()}}),this.resizeObserver.observe(this.canvas))}var r=t.prototype;return r.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},r.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)}},r.getAspect=function(){var n=this.getPixelSize(),o=A(n,2),i=o[0],a=o[1];return i/a},r.cssToDeviceRatio=function(){try{var n=this.getDrawingBufferSize(),o=A(n,1),i=o[0],a=this._canvasSizeInfo.clientWidth;return a?i/a:1}catch{return 1}},r.cssToDevicePixels=function(n){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=this.cssToDeviceRatio(),a=this.getDrawingBufferSize(),u=A(a,2),s=u[0],c=u[1];return Qn(n,i,s,c,o)},r.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,a="height"in o?o.height:this.htmlCanvas.clientHeight;(!i||!a)&&(S.log(1,"Canvas clientWidth/clientHeight is 0")(),n=1,i=this.htmlCanvas.width||1,a=this.htmlCanvas.height||1);var u=this._canvasSizeInfo;if(u.clientWidth!==i||u.clientHeight!==a||u.devicePixelRatio!==n){var s=n,c=Math.floor(i*s),O=Math.floor(a*s);this.htmlCanvas.width=c,this.htmlCanvas.height=O;var _=this.getDrawingBufferSize(),T=A(_,2),I=T[0],j=T[1];(I!==c||j!==O)&&(s=Math.min(I/i,j/a),this.htmlCanvas.width=Math.floor(i*s),this.htmlCanvas.height=Math.floor(a*s),S.warn("Device pixel ratio clamped")()),this._canvasSizeInfo.clientWidth=i,this._canvasSizeInfo.clientHeight=a,this._canvasSizeInfo.devicePixelRatio=n}}},r.getDrawingBufferSize=function(){var n=this.device.gl;if(!n)throw new Error("canvas size");return[n.drawingBufferWidth,n.drawingBufferHeight]},r._setAutoCreatedCanvasId=function(n){var o;((o=this.htmlCanvas)===null||o===void 0?void 0:o.id)==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=n)},g(t,null,[{key:"isPageLoaded",get:function(){return At()}}]),t}();re.pageLoaded=Xn();function Xn(){return At()||typeof window>"u"?Promise.resolve():new Promise(function(t){window.addEventListener("load",function(){return t()})})}function $n(t){if(typeof t=="string"){var r=document.getElementById(t);if(!r&&!At())throw new Error("Accessing '".concat(t,"' before page was loaded"));if(!r)throw new Error("".concat(t," is not an HTML element"));return r}else if(t)return t;return document.body}function Jn(t){var r=document.getElementById(t);if(!r&&!At())throw new Error("Accessing '".concat(t,"' before page was loaded"));if(!(r instanceof HTMLCanvasElement))throw new Error("'".concat(r,"' is not a canvas element"));return r}function Zn(t){var r=t.width,e=t.height,n=document.createElement("canvas");return n.id="lumagl-auto-created-canvas",n.width=r||1,n.height=e||1,n.style.width=Number.isFinite(r)?"".concat(r,"px"):"100%",n.style.height=Number.isFinite(e)?"".concat(e,"px"):"100%",n}function Qn(t,r,e,n,o){var i=t,a=nr(i[0],r,e),u=or(i[1],r,n,o),s=nr(i[0]+1,r,e),c=s===e-1?s:s-1;s=or(i[1]+1,r,n,o);var O;return o?(s=s===0?s:s+1,O=u,u=s):O=s===n-1?s:s-1,{x:a,y:u,width:Math.max(c-a+1,1),height:Math.max(O-u+1,1)}}function nr(t,r,e){var n=Math.min(Math.round(t*r),e-1);return n}function or(t,r,e,n){return n?Math.max(0,e-1-Math.round(t*r)):Math.min(Math.round(t*r),e-1)}var sr;function ir(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function ar(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?ir(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):ir(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function to(t){var r=eo();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function eo(){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}}sr=Symbol.toStringTag;var N=function(t){P(e,t);var r=to(e);function e(n,o){var i,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.defaultProps;return y(this,e),i=r.call(this,n,o,a),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 g(e,[{key:sr,get:function(){return"Texture"}}]),e}(d);N.defaultProps=ar(ar({},d.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});N.COPY_SRC=1;N.COPY_DST=2;N.TEXTURE_BINDING=4;N.STORAGE_BINDING=8;N.RENDER_ATTACHMENT=16;var fr;function ur(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function cr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?ur(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):ur(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function ro(t){var r=no();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function no(){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}}fr=Symbol.toStringTag;var ne=function(t){P(e,t);var r=ro(e);function e(n,o){return y(this,e),r.call(this,n,o,e.defaultProps)}return g(e,[{key:fr,get:function(){return"ExternalTexture"}}]),e}(d);ne.defaultProps=cr(cr({},d.defaultProps),{},{source:null,colorSpace:"srgb"});var mr;function lr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function pr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?lr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):lr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function oo(t){var r=io();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function io(){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}}mr=Symbol.toStringTag;var oe=function(t){P(e,t);var r=oo(e);function e(n,o){var i;return y(this,e),i=r.call(this,n,o,e.defaultProps),i.stage=void 0,i.source=void 0,i.stage=i.props.stage,i.source=i.props.source,i}return g(e,[{key:mr,get:function(){return"Shader"}}]),e}(d);oe.defaultProps=pr(pr({},d.defaultProps),{},{stage:"vertex",source:"",sourceMap:null,language:"auto",shaderType:0});var gr;function hr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function dr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?hr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):hr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function ao(t){var r=so();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function so(){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}}gr=Symbol.toStringTag;var ie=function(t){P(e,t);var r=ao(e);function e(n,o){return y(this,e),r.call(this,n,o,e.defaultProps)}return g(e,[{key:gr,get:function(){return"Sampler"}}]),e}(d);ie.defaultProps=dr(dr({},d.defaultProps),{},{type:"color-sampler",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"nearest",lodMinClamp:0,lodMaxClamp:32,compare:"less-equal",maxAnisotropy:1});var vr;function yr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function ut(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?yr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):yr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function uo(t){var r=co();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function co(){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}}vr=Symbol.toStringTag;var ae=function(t){P(e,t);var r=uo(e);function e(o){var i,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return y(this,e),i=r.call(this,o,a,e.defaultProps),i.width=void 0,i.height=void 0,i.colorAttachments=[],i.depthStencilAttachment=null,i.width=i.props.width,i.height=i.props.height,i}var n=e.prototype;return n.resize=function(i){var a=!i;if(i){var u=Array.isArray(i)?i:[i.width,i.height],s=A(u,2),c=s[0],O=s[1];a=a||O!==this.height||c!==this.width,this.width=c,this.height=O}a&&(S.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(this.width,"x").concat(this.height))(),this.resizeAttachments(this.width,this.height))},n.autoCreateAttachmentTextures=function(){var i=this;if(this.colorAttachments=this.props.colorAttachments.map(function(u){if(typeof u=="string"){var s=i.createColorTexture(u);return i.attachResource(s),s}return u}),this.props.depthStencilAttachment)if(typeof this.props.depthStencilAttachment=="string"){var a=this.createDepthStencilTexture(this.props.depthStencilAttachment);this.attachResource(a),this.depthStencilAttachment=a}else this.depthStencilAttachment=this.props.depthStencilAttachment},n.createColorTexture=function(i){return this.device.createTexture({id:"color-attachment",usage:N.RENDER_ATTACHMENT,format:i,width:this.width,height:this.height})},n.createDepthStencilTexture=function(i){return this.device.createTexture({id:"depth-stencil-attachment",usage:N.RENDER_ATTACHMENT,format:i,width:this.width,height:this.height})},n.resizeAttachments=function(i,a){for(var u=0;u<this.colorAttachments.length;++u)if(this.colorAttachments[u]){var s=this.device._createTexture(ut(ut({},this.colorAttachments[u].props),{},{width:i,height:a}));this.destroyAttachedResource(this.colorAttachments[u]),this.colorAttachments[u]=s,this.attachResource(s)}if(this.depthStencilAttachment){var c=this.device._createTexture(ut(ut({},this.depthStencilAttachment.props),{},{width:i,height:a}));this.destroyAttachedResource(this.depthStencilAttachment),this.depthStencilAttachment=c,this.attachResource(c)}},g(e,[{key:vr,get:function(){return"Framebuffer"}}]),e}(d);ae.defaultProps=ut(ut({},d.defaultProps),{},{width:1,height:1,colorAttachments:[],depthStencilAttachment:null});var Or;function br(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function wr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?br(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):br(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function fo(t){var r=lo();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function lo(){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}}Or=Symbol.toStringTag;var se=function(t){P(e,t);var r=fo(e);function e(n,o){var i;return y(this,e),i=r.call(this,n,o,e.defaultProps),i.hash="",i.vs=void 0,i.fs=void 0,i.shaderLayout=void 0,i.bufferLayout=void 0,i.shaderLayout=i.props.shaderLayout,i.bufferLayout=i.props.bufferLayout||[],i}return g(e,[{key:Or,get:function(){return"RenderPipeline"}}]),e}(d);se.defaultProps=wr(wr({},d.defaultProps),{},{vs:null,vsEntryPoint:"",vsConstants:{},fs:null,fsEntryPoint:"",fsConstants:{},shaderLayout:null,bufferLayout:[],topology:"triangle-list",parameters:{},vertexCount:0,instanceCount:0,bindings:{},uniforms:{}});var Pr;function Sr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function _r(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Sr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Sr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function po(t){var r=mo();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function mo(){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}}Pr=Symbol.toStringTag;var ue=function(t){P(e,t);var r=po(e);function e(n,o){var i;return y(this,e),i=r.call(this,n,o,e.defaultProps),i.hash="",i}return g(e,[{key:Pr,get:function(){return"ComputePipeline"}}]),e}(d);ue.defaultProps=_r(_r({},d.defaultProps),{},{cs:void 0,csEntryPoint:void 0,csConstants:{},shaderLayout:[]});var Ar;function xr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Tr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?xr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):xr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function ho(t){var r=go();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function go(){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}}Ar=Symbol.toStringTag;var ce=function(t){P(e,t);var r=ho(e);function e(n,o){return y(this,e),r.call(this,n,o,e.defaultProps)}return g(e,[{key:Ar,get:function(){return"RenderPass"}}]),e}(d);ce.defaultProps=Tr(Tr({},d.defaultProps),{},{framebuffer:null,parameters:void 0,clearColor:[0,0,0,0],clearDepth:1,clearStencil:0,depthReadOnly:!1,stencilReadOnly:!1,discard:!1});var jr;function Er(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function yo(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Er(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Er(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function vo(t){var r=bo();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function bo(){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}}jr=Symbol.toStringTag;var fe=function(t){P(e,t);var r=vo(e);function e(n,o){return y(this,e),r.call(this,n,o,d.defaultProps)}return g(e,[{key:jr,get:function(){return"ComputePass"}}]),e}(d);fe.defaultProps=yo({},d.defaultProps);var Dr;function Cr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Rr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Cr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Cr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function wo(t){var r=Oo();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function Oo(){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}}Dr=Symbol.toStringTag;var le=function(t){P(e,t);var r=wo(e);function e(o,i){return y(this,e),r.call(this,o,i,e.defaultProps)}var n=e.prototype;return n.pushDebugGroup=function(i){},n.popDebugGroup=function(){},n.insertDebugMarker=function(i){},g(e,[{key:Dr,get:function(){return"CommandEncoder"}}]),e}(d);le.defaultProps=Rr(Rr({},d.defaultProps),{},{measureExecutionTime:void 0});var Ir;function Br(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function So(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Br(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Br(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function _o(t){var r=Po();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function Po(){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}}Ir=Symbol.toStringTag;var pe=function(t){P(e,t);var r=_o(e);function e(n,o){return y(this,e),r.call(this,n,o,e.defaultProps)}return g(e,[{key:Ir,get:function(){return"CommandBuffer"}}]),e}(d);pe.defaultProps=So({},d.defaultProps);function Et(t){var r=A(To[t],2),e=r[0],n=r[1],o=e==="i32"||e==="u32",i=e!=="u32",a=Ao[e]*n,u=xo(e,n);return{dataType:e,components:n,defaultVertexFormat:u,byteLength:a,integer:o,signed:i}}function xo(t,r){var e;switch(t){case"f32":e="float32";break;case"i32":e="sint32";break;case"u32":e="uint32";break;case"f16":return r<=2?"float16x2":"float16x4"}return r===1?e:"".concat(e,"x").concat(r)}var To={f32:["f32",1],"vec2<f32>":["f32",2],"vec3<f32>":["f32",3],"vec4<f32>":["f32",4],f16:["f16",1],"vec2<f16>":["f16",2],"vec3<f16>":["f16",3],"vec4<f16>":["f16",4],i32:["i32",1],"vec2<i32>":["i32",2],"vec3<i32>":["i32",3],"vec4<i32>":["i32",4],u32:["u32",1],"vec2<u32>":["u32",2],"vec3<u32>":["u32",3],"vec4<u32>":["u32",4]},Ao={f32:4,f16:2,i32:4,u32:4};function jt(t){var r=kr[t],e=Eo(r),n=t.includes("norm"),o=!n&&!t.startsWith("float"),i=t.startsWith("s");return{dataType:kr[t],byteLength:e,integer:o,signed:i,normalized:n}}function Eo(t){var r=jo[t];return r}var kr={uint8:"uint8",sint8:"sint8",unorm8:"uint8",snorm8:"sint8",uint16:"uint16",sint16:"sint16",unorm16:"uint16",snorm16:"sint16",float16:"float16",float32:"float32",uint32:"uint32",sint32:"sint32"},jo={uint8:1,sint8:1,uint16:2,sint16:2,float16:2,float32:4,uint32:4,sint32:4};function ht(t){var r;t.endsWith("-webgl")&&(t.replace("-webgl",""),r=!0);var e=t.split("x"),n=A(e,2),o=n[0],i=n[1],a=o,u=i?parseInt(i):1,s=jt(a),c={type:a,components:u,byteLength:s.byteLength*u,integer:s.integer,signed:s.signed,normalized:s.normalized};return r&&(c.webglOnly=!0),c}function Lr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function me(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Lr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Lr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function ct(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Co(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
11
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,u;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return i=c.done,c},e:function(c){a=!0,u=c},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(a)throw u}}}}function Co(t,r){if(t){if(typeof t=="string")return Mr(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Mr(t,r)}}function Mr(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}function he(t,r){var e={},n=ct(t.attributes),o;try{for(n.s();!(o=n.n()).done;){var i=o.value;e[i.name]=Ro(t,r,i.name)}}catch(a){n.e(a)}finally{n.f()}return e}function Nr(t,r){for(var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:16,n=he(t,r),o=new Array(e).fill(null),i=0,a=Object.values(n);i<a.length;i++){var u=a[i];o[u.location]=u}return o}function Ro(t,r,e){var n=Do(t,e),o=Bo(r,e);if(!n)return null;var i=Et(n.type),a=o?.vertexFormat||i.defaultVertexFormat,u=ht(a);return{attributeName:o?.attributeName||n.name,bufferName:o?.bufferName||n.name,location:n.location,shaderType:n.type,shaderDataType:i.dataType,shaderComponents:i.components,vertexFormat:a,bufferDataType:u.type,bufferComponents:u.components,normalized:u.normalized,integer:i.integer,stepMode:o?.stepMode||n.stepMode,byteOffset:o?.byteOffset||0,byteStride:o?.byteStride||0}}function Do(t,r){var e=t.attributes.find(function(n){return n.name===r});return e||S.warn('shader layout attribute "'.concat(r,'" not present in shader')),e||null}function Bo(t,r){Io(t);var e=ko(t,r);return e||(e=Lo(t,r),e)?e:(S.warn('layout for attribute "'.concat(r,'" not present in buffer layout')),null)}function Io(t){var r=ct(t),e;try{for(r.s();!(e=r.n()).done;){var n=e.value;(n.attributes&&n.format||!n.attributes&&!n.format)&&S.warn("BufferLayout ".concat(name," must have either 'attributes' or 'format' field"))}}catch(o){r.e(o)}finally{r.f()}}function ko(t,r){var e=ct(t),n;try{for(e.s();!(n=e.n()).done;){var o=n.value;if(o.format&&o.name===r)return{attributeName:o.name,bufferName:r,stepMode:o.stepMode,vertexFormat:o.format,byteOffset:0,byteStride:o.byteStride||0}}}catch(i){e.e(i)}finally{e.f()}return null}function Lo(t,r){var e=ct(t),n;try{for(e.s();!(n=e.n()).done;){var o,i=n.value,a=i.byteStride;if(typeof i.byteStride!="number"){var u=ct(i.attributes||[]),s;try{for(u.s();!(s=u.n()).done;){var c=s.value,O=ht(c.format);a+=O.byteLength}}catch(T){u.e(T)}finally{u.f()}}var _=(o=i.attributes)===null||o===void 0?void 0:o.find(function(T){return T.attribute===r});if(_)return{attributeName:_.attribute,bufferName:i.name,stepMode:i.stepMode,vertexFormat:_.format,byteOffset:_.byteOffset,byteStride:a}}}catch(T){e.e(T)}finally{e.f()}return null}function Ur(t,r){var e=me(me({},t),{},{attributes:t.attributes.map(function(a){return me({},a)})}),n=ct(r?.attributes||[]),o;try{var i=function(){var u=o.value,s=e.attributes.find(function(c){return c.name===u.name});s?(s.type=u.type||s.type,s.stepMode=u.stepMode||s.stepMode):S.warn("shader layout attribute ".concat(u.name," not present in shader"))};for(n.s();!(o=n.n()).done;)i()}catch(a){n.e(a)}finally{n.f()}return e}var Gr;function Fr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function zr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Fr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Fr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Mo(t){var r=No();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function No(){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}}Gr=Symbol.toStringTag;var de=function(t){P(e,t);var r=Mo(e);function e(n,o){var i;return y(this,e),i=r.call(this,n,o,e.defaultProps),i.maxVertexAttributes=void 0,i.attributeInfos=void 0,i.indexBuffer=null,i.attributes=void 0,i.maxVertexAttributes=n.limits.maxVertexAttributes,i.attributes=new Array(i.maxVertexAttributes).fill(null),i.attributeInfos=Nr(o.renderPipeline.shaderLayout,o.renderPipeline.bufferLayout,i.maxVertexAttributes),i}return g(e,[{key:Gr,get:function(){return"VertexArray"}}]),e}(d);de.defaultProps=zr(zr({},d.defaultProps),{},{renderPipeline:null});var Wr;function Vr(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Hr(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Vr(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Vr(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}function Uo(t){var r=Fo();return function(){var n=v(t),o;if(r){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return x(this,o)}}function Fo(){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}}Wr=Symbol.toStringTag;var ge=function(t){P(e,t);var r=Uo(e);function e(n,o){return y(this,e),r.call(this,n,o,e.defaultProps)}return g(e,[{key:Wr,get:function(){return"TransformFeedback"}}]),e}(d);ge.defaultProps=Hr(Hr({},d.defaultProps),{},{layout:void 0,buffers:{}});function st(t,r){if(!t)throw new Error(r||"luma.gl: assertion failed.")}var zo={f32:{type:"f32",components:1},i32:{type:"i32",components:1},u32:{type:"u32",components:1},"vec2<f32>":{type:"f32",components:2},"vec3<f32>":{type:"f32",components:3},"vec4<f32>":{type:"f32",components:4},"vec2<i32>":{type:"i32",components:2},"vec3<i32>":{type:"i32",components:3},"vec4<i32>":{type:"i32",components:4},"vec2<u32>":{type:"u32",components:2},"vec3<u32>":{type:"u32",components:3},"vec4<u32>":{type:"u32",components:4},"mat2x2<f32>":{type:"f32",components:4},"mat2x3<f32>":{type:"f32",components:6},"mat2x4<f32>":{type:"f32",components:8},"mat3x2<f32>":{type:"f32",components:6},"mat3x3<f32>":{type:"f32",components:9},"mat3x4<f32>":{type:"f32",components:12},"mat4x2<f32>":{type:"f32",components:8},"mat4x3<f32>":{type:"f32",components:12},"mat4x4<f32>":{type:"f32",components:16}};function Ct(t){var r=zo[t];return st(t),r}function Kr(t,r){switch(r){case 1:return t;case 2:return t+t%2;default:return t+(4-t%4)%4}}var Rt;function dt(t){return(!Rt||Rt.byteLength<t)&&(Rt=new ArrayBuffer(t)),Rt}function Yr(t,r){var e=dt(t.BYTES_PER_ELEMENT*r);return new t(e,0,r)}function qr(t){for(var r=t.target,e=t.source,n=t.start,o=n===void 0?0:n,i=t.count,a=i===void 0?1:i,u=e.length,s=a*u,c=0,O=o;c<u;c++)r[O++]=e[c];for(;c<s;)c<s-c?(r.copyWithin(o+c,o,o+c),c*=2):(r.copyWithin(o+c,o,o+s-c),c=s);return t.target}var Xr=1024,Dt=function(){function t(e){y(this,t),this.layout={},this.byteLength=void 0;for(var n=0,o=0,i=Object.entries(e);o<i.length;o++){var a=A(i[o],2),u=a[0],s=a[1],c=Ct(s),O=c.type,_=c.components;n=Kr(n,_);var T=n;n+=_,this.layout[u]={type:O,size:_,offset:T}}n+=(4-n%4)%4;var I=n*4;this.byteLength=Math.max(I,Xr)}var r=t.prototype;return r.getData=function(n){for(var o=Math.max(this.byteLength,Xr),i=dt(o),a={i32:new Int32Array(i),u32:new Uint32Array(i),f32:new Float32Array(i),f16:new Uint16Array(i)},u=0,s=Object.entries(n);u<s.length;u++){var c=A(s[u],2),O=c[0],_=c[1],T=this.layout[O];if(!T){S.warn("Supplied uniform value ".concat(O," not present in uniform block layout"))();continue}var I=T.type,j=T.size,U=T.offset,G=a[I];if(j===1){if(typeof _!="number"&&typeof _!="boolean"){S.warn("Supplied value for single component uniform ".concat(O," is not a number: ").concat(_))();continue}G[U]=Number(_)}else{var F=z(_);if(!F){S.warn("Supplied value for multi component / array uniform ".concat(O," is not a numeric array: ").concat(_))();continue}G.set(F,U)}}return new Uint8Array(i)},r.has=function(n){return Boolean(this.layout[n])},r.get=function(n){var o=this.layout[n];return o},g(t)}();function $r(t,r){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:16;if(t!==r)return!1;var n=z(t);if(!n)return!1;var o=z(r);if(o&&n.length===o.length){for(var i=0;i<n.length;++i)if(o[i]!==n[i])return!1}return!0}function Jr(t){var r=z(t);return r?r.slice():t}function Go(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Vo(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
12
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,u;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return i=c.done,c},e:function(c){a=!0,u=c},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(a)throw u}}}}function Vo(t,r){if(t){if(typeof t=="string")return Zr(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Zr(t,r)}}function Zr(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}var Bt=function(){function t(e){if(y(this,t),this.name=void 0,this.uniforms={},this.modifiedUniforms={},this.modified=!0,this.bindingLayout={},this.needsRedraw="initialized",this.name=e?.name,e!=null&&e.name&&e!==null&&e!==void 0&&e.shaderLayout){var n,o=e==null||(n=e.shaderLayout.bindings)===null||n===void 0?void 0:n.find(function(c){return c.type==="uniform"&&c.name===e?.name});if(!o)throw new Error(e?.name);var i=o,a=Go(i.uniforms||[]),u;try{for(a.s();!(u=a.n()).done;){var s=u.value;this.bindingLayout[s.name]=s}}catch(c){a.e(c)}finally{a.f()}}}var r=t.prototype;return r.setUniforms=function(n){for(var o=0,i=Object.entries(n);o<i.length;o++){var a=A(i[o],2),u=a[0],s=a[1];this._setUniform(u,s),this.needsRedraw||this.setNeedsRedraw("".concat(this.name,".").concat(u,"=").concat(s))}},r.setNeedsRedraw=function(n){this.needsRedraw=this.needsRedraw||n},r.getAllUniforms=function(){return this.modifiedUniforms={},this.needsRedraw=!1,this.uniforms||{}},r._setUniform=function(n,o){$r(this.uniforms[n],o)||(this.uniforms[n]=Jr(o),this.modifiedUniforms[n]=!0,this.modified=!0)},g(t)}();var Qr=function(){function t(e){y(this,t),this.uniformBlocks=void 0,this.uniformBufferLayouts=void 0,this.uniformBuffers=void 0,this.uniformBlocks={},this.uniformBufferLayouts={},this.uniformBuffers={};for(var n=0,o=Object.entries(e);n<o.length;n++){var i=A(o[n],2),a=i[0],u=i[1],s=a,c=new Dt(u.uniformTypes||{});this.uniformBufferLayouts[s]=c;var O=new Bt({name:a});O.setUniforms(u.defaultUniforms||{}),this.uniformBlocks[s]=O}}var r=t.prototype;return r.destroy=function(){for(var n=0,o=Object.values(this.uniformBuffers);n<o.length;n++){var i=o[n];i.destroy()}},r.setUniforms=function(n){for(var o=0,i=Object.entries(n);o<i.length;o++){var a=A(i[o],2),u=a[0],s=a[1];this.uniformBlocks[u].setUniforms(s)}this.updateUniformBuffers()},r.getUniformBufferByteLength=function(n){return this.uniformBufferLayouts[n].byteLength},r.getUniformBufferData=function(n){var o=this.uniformBlocks[n].getAllUniforms();return this.uniformBufferLayouts[n].getData(o)},r.createUniformBuffer=function(n,o,i){i&&this.setUniforms(i);var a=this.getUniformBufferByteLength(o),u=n.createBuffer({usage:C.UNIFORM,byteLength:a}),s=this.getUniformBufferData(o);return u.write(s),u},r.getManagedUniformBuffer=function(n,o){if(!this.uniformBuffers[o]){var i=this.getUniformBufferByteLength(o),a=n.createBuffer({usage:C.UNIFORM,byteLength:i});this.uniformBuffers[o]=a}return this.updateUniformBuffers(),this.uniformBuffers[o]},r.updateUniformBuffer=function(n){var o=this.uniformBlocks[n],i=this.uniformBuffers[n],a=!1;if(i&&o.needsRedraw){a||(a=o.needsRedraw);var u=this.getUniformBufferData(n),s=this.uniformBuffers[n];s.write(u);var c=this.uniformBlocks[n].getAllUniforms();S.log(4,"Writing to uniform buffer ".concat(String(n)),u,c)()}return a},r.updateUniformBuffers=function(){for(var n=!1,o=0,i=Object.keys(this.uniformBlocks);o<i.length;o++){var a=i[o];n||(n=this.updateUniformBuffer(a))}return n&&S.log(3,"UniformStore.updateUniformBuffers(): ".concat(n))(),n},g(t)}();function tn(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),e.push.apply(e,n)}return e}function Ho(t){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?tn(Object(e),!0).forEach(function(n){w(t,n,e[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):tn(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})}return t}var Wo=/^(rg?b?a?)([0-9]*)([a-z]*)(-srgb)?(-webgl|-unsized)?$/;function en(t){var r=Wo.exec(t);if(r){var e=A(r,6),n=e[1],o=e[2],i=e[3],a=e[4],u=e[5];if(n){var s="".concat(i).concat(o),c=jt(s);return Ho({format:n,components:0,srgb:a==="-srgb",unsized:u==="-unsized",webgl:u==="-webgl"},c)}}return Yo(t)}var Ko={"rgba4unorm-webgl":{format:"rgba",bpp:2},"rgb565unorm-webgl":{format:"rgb",bpp:2},"rgb5a1unorm-webgl":{format:"rgba",bbp:2},rgb9e5ufloat:{format:"rgb",bbp:4},rg11b10ufloat:{format:"rgb",bbp:4},rgb10a2unorm:{format:"rgba",bbp:4},"rgb10a2unorm-webgl":{format:"rgba",bbp:4},stencil8:{components:1,bpp:1,a:"stencil"},depth16unorm:{components:1,bpp:2,a:"depth"},depth24plus:{components:1,bpp:3,a:"depth"},depth32float:{components:1,bpp:4,a:"depth"},"depth24plus-stencil8":{components:2,bpp:4,a:"depth-stencil"},"depth24unorm-stencil8":{components:2,bpp:4,a:"depth-stencil"},"depth32float-stencil8":{components:2,bpp:4,a:"depth-stencil"}};function Yo(t){var r=Ko[t];if(!r)throw new Error("Unknown format ".concat(t));return{format:r.format||"",components:r.components||1,byteLength:r.bpp||1,srgb:!1,unsized:!1}}function ye(t){var r=ArrayBuffer.isView(t)?t.constructor:t;switch(r){case Float32Array:return"float32";case Uint16Array:return"uint16";case Uint32Array:return"uint32";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int8Array:return"sint8";case Int16Array:return"sint16";case Int32Array:return"sint32";default:throw new Error(r.constructor.name)}}function rn(t){switch(t){case"float32":return Float32Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"uint8":return Uint8Array;case"sint8":return Int8Array;case"sint16":return Int16Array;case"sint32":return Int32Array;default:throw new Error(t)}}function nn(t,r){if(!r||r>4)throw new Error("size ".concat(r));var e=r,n=ye(t);if(n==="uint8"||n==="sint8"){if(e===1||e===3)throw new Error("size: ".concat(r));return"".concat(n,"x").concat(e)}if(n==="uint16"||n==="sint16"){if(e===1||e===3)throw new Error("size: ".concat(r));return"".concat(n,"x").concat(e)}return e===1?n:"".concat(n,"x").concat(e)}function qo(t,r){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Xo(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
13
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,u;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return i=c.done,c},e:function(c){a=!0,u=c},f:function(){try{!i&&e.return!=null&&e.return()}finally{if(a)throw u}}}}function Xo(t,r){if(t){if(typeof t=="string")return on(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return on(t,r)}}function on(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}function an(t,r,e){var n=r.split(/\r?\n/),o="",i=qo(t),a;try{for(i.s();!(a=i.n()).done;){var u=a.value;o+=$o(u,n,u.lineNum,e)}}catch(s){i.e(s)}finally{i.f()}return o}function $o(t,r,e,n){if(n!=null&&n.showSourceCode){var o=t.linePos>0?"".concat(" ".repeat(t.linePos+5),`^^^
14
+ `):"",i=Jo(r,e);return"".concat(i).concat(o).concat(t.type.toUpperCase(),": ").concat(t.message,`
15
15
 
16
16
  `)}return"".concat(t.type.toUpperCase(),": ").concat(t.message,`
17
- `)}function qo(t,r){for(var e="",n=r-2;n<=r;n++){var o=t[n];o!==void 0&&(e+="".concat(Xo(String(n),4),": ").concat(o,`
18
- `))}return e}function Xo(t,r){for(var e="",n=t.length;n<r;++n)e+=" ";return e+t}function nn(t){return t}function ye(t){return z(t)!==null||typeof t=="number"||typeof t=="boolean"}function on(t){var r={bindings:{},uniforms:{}};return Object.keys(t).forEach(function(e){var n=t[e];ye(n)?r.uniforms[e]=n:r.bindings[e]=n}),r}function $o(t){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},e=r.maxElts,n=e===void 0?16:e,o=r.size,i=o===void 0?1:o,a="[",u=0;u<t.length&&u<n;++u)u>0&&(a+=",".concat(u%i===0?" ":"")),a+=ve(t[u],r);var s=t.length>n?"...":"]";return"".concat(a).concat(s)}function ve(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},e=1e-16,n=r.isInteger,o=n===void 0?!1:n;if(Array.isArray(t)||ArrayBuffer.isView(t))return $o(t,r);if(typeof t!="number")return String(t);if(Math.abs(t)<e)return o?"0":"0.";if(o||Math.abs(t)>100&&Math.abs(t)<1e4)return t.toFixed(0);var i=t.toPrecision(2),a=i.indexOf(".0");return a===i.length-2?i.slice(0,-1):i}function an(t,r,e,n){var o="See luma.gl ".concat(e," Upgrade Guide at https://luma.gl/docs/upgrade-guide"),i=Object.getPrototypeOf(t);n.forEach(function(a){i.methodName||(i[a]=function(){throw S.removed("Calling removed method ".concat(r,".").concat(a,": "),o)(),new Error(a)})})}function sn(t,r,e){var n=e.removedProps,o=n===void 0?{}:n,i=e.deprecatedProps,a=i===void 0?{}:i,u=e.replacedProps,s=u===void 0?{}:u;for(var f in o)if(f in r){var O=o[f],_=O?"".concat(t,".").concat(o[f]):"N/A";S.removed("".concat(t,".").concat(f),_)()}for(var T in a)if(T in r){var I=a[T];S.deprecated("".concat(t,".").concat(T),"".concat(t,".").concat(I))()}for(var E=null,U=0,G=Object.entries(s);U<G.length;U++){var F=j(G[U],2),M=F[0],ct=F[1];M in r&&(S.deprecated("".concat(t,".").concat(M),"".concat(t,".").concat(ct))(),E=E||Object.assign({},r),E[ct]=r[M],delete E[M])}return E||r}var W=Te(Wt(),1),It="";function un(t){It=t}function fn(t,r){return be.apply(this,arguments)}function be(){return be=q(W.default.mark(function t(r,e){var n,o;return W.default.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return r=r.startsWith("http")?r:It+r,n=e?.dataType||"text",a.next=4,fetch(r,e);case 4:return o=a.sent,a.next=7,o[n]();case 7:return a.abrupt("return",a.sent);case 8:case"end":return a.stop()}},t)})),be.apply(this,arguments)}function cn(t,r){return we.apply(this,arguments)}function we(){return we=q(W.default.mark(function t(r,e){var n;return W.default.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:return n=new Image,n.crossOrigin=e?.crossOrigin||"anonymous",n.src=r.startsWith("http")?r:It+r,i.next=5,n.decode();case 5:return i.next=7,createImageBitmap(n);case 7:return i.abrupt("return",i.sent);case 8:case"end":return i.stop()}},t)})),we.apply(this,arguments)}function ln(t,r){return Oe.apply(this,arguments)}function Oe(){return Oe=q(W.default.mark(function t(r,e){return W.default.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:return o.abrupt("return",new Promise(function(i,a){try{var u=new Image;u.onload=function(){return i(u)},u.onerror=function(){return a(new Error("Could not load image ".concat(r,".")))},u.crossOrigin=e?.crossOrigin||"anonymous",u.src=r.startsWith("http")?r:It+r}catch(s){a(s)}}));case 1:case"end":return o.stop()}},t)})),Oe.apply(this,arguments)}function pn(t,r){return Se.apply(this,arguments)}function Se(){return Se=q(W.default.mark(function t(r,e){var n,o;return W.default.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(n=document.getElementsByTagName("head")[0],n){a.next=3;break}throw new Error("loadScript");case 3:return o=document.createElement("script"),o.setAttribute("type","text/javascript"),o.setAttribute("src",r),e&&(o.id=e),a.abrupt("return",new Promise(function(u,s){o.onload=u,o.onerror=function(f){return s(new Error("Unable to load script '".concat(r,"': ").concat(f)))},n.appendChild(o)}));case 8:case"end":return a.stop()}},t)})),Se.apply(this,arguments)}function _e(){var t=1,r=1;return function(){return t=Math.sin(r*17.23),r=Math.cos(t*27.92),Jo(Math.abs(t*r)*1432.71)}}function Jo(t){return t-Math.floor(t)}var mn=_e();function kt(t,r,e){if(t===r)return!0;if(!e||!t||!r)return!1;if(Array.isArray(t)){if(!Array.isArray(r)||t.length!==r.length)return!1;for(var n=0;n<t.length;n++)if(!kt(t[n],r[n],e-1))return!1;return!0}if(Array.isArray(r))return!1;if(k(t)==="object"&&k(r)==="object"){var o=Object.keys(t),i=Object.keys(r);if(o.length!==i.length)return!1;for(var a=0,u=o;a<u.length;a++){var s=u[a];if(!r.hasOwnProperty(s)||!kt(t[s],r[s],e-1))return!1}return!0}return!1}function hn(t){return typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame(t):setTimeout(t,1e3/60)}function dn(t){return typeof window<"u"&&window.cancelAnimationFrame?window.cancelAnimationFrame(t):clearTimeout(t)}var Zo=function(r){return"".concat(r)};return Pn(Qo);})();
17
+ `)}function Jo(t,r){for(var e="",n=r-2;n<=r;n++){var o=t[n];o!==void 0&&(e+="".concat(Zo(String(n),4),": ").concat(o,`
18
+ `))}return e}function Zo(t,r){for(var e="",n=t.length;n<r;++n)e+=" ";return e+t}function sn(t){return t}function ve(t){return z(t)!==null||typeof t=="number"||typeof t=="boolean"}function un(t){var r={bindings:{},uniforms:{}};return Object.keys(t).forEach(function(e){var n=t[e];ve(n)?r.uniforms[e]=n:r.bindings[e]=n}),r}function Qo(t){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},e=r.maxElts,n=e===void 0?16:e,o=r.size,i=o===void 0?1:o,a="[",u=0;u<t.length&&u<n;++u)u>0&&(a+=",".concat(u%i===0?" ":"")),a+=be(t[u],r);var s=t.length>n?"...":"]";return"".concat(a).concat(s)}function be(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},e=1e-16,n=r.isInteger,o=n===void 0?!1:n;if(Array.isArray(t)||ArrayBuffer.isView(t))return Qo(t,r);if(typeof t!="number")return String(t);if(Math.abs(t)<e)return o?"0":"0.";if(o||Math.abs(t)>100&&Math.abs(t)<1e4)return t.toFixed(0);var i=t.toPrecision(2),a=i.indexOf(".0");return a===i.length-2?i.slice(0,-1):i}function cn(t,r,e,n){var o="See luma.gl ".concat(e," Upgrade Guide at https://luma.gl/docs/upgrade-guide"),i=Object.getPrototypeOf(t);n.forEach(function(a){i.methodName||(i[a]=function(){throw S.removed("Calling removed method ".concat(r,".").concat(a,": "),o)(),new Error(a)})})}function fn(t,r,e){var n=e.removedProps,o=n===void 0?{}:n,i=e.deprecatedProps,a=i===void 0?{}:i,u=e.replacedProps,s=u===void 0?{}:u;for(var c in o)if(c in r){var O=o[c],_=O?"".concat(t,".").concat(o[c]):"N/A";S.removed("".concat(t,".").concat(c),_)()}for(var T in a)if(T in r){var I=a[T];S.deprecated("".concat(t,".").concat(T),"".concat(t,".").concat(I))()}for(var j=null,U=0,G=Object.entries(s);U<G.length;U++){var F=A(G[U],2),M=F[0],ft=F[1];M in r&&(S.deprecated("".concat(t,".").concat(M),"".concat(t,".").concat(ft))(),j=j||Object.assign({},r),j[ft]=r[M],delete j[M])}return j||r}var W=Ae(Wt(),1),It="";function ln(t){It=t}function pn(t,r){return we.apply(this,arguments)}function we(){return we=q(W.default.mark(function t(r,e){var n,o;return W.default.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return r=r.startsWith("http")?r:It+r,n=e?.dataType||"text",a.next=4,fetch(r,e);case 4:return o=a.sent,a.next=7,o[n]();case 7:return a.abrupt("return",a.sent);case 8:case"end":return a.stop()}},t)})),we.apply(this,arguments)}function mn(t,r){return Oe.apply(this,arguments)}function Oe(){return Oe=q(W.default.mark(function t(r,e){var n;return W.default.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:return n=new Image,n.crossOrigin=e?.crossOrigin||"anonymous",n.src=r.startsWith("http")?r:It+r,i.next=5,n.decode();case 5:return i.next=7,createImageBitmap(n);case 7:return i.abrupt("return",i.sent);case 8:case"end":return i.stop()}},t)})),Oe.apply(this,arguments)}function hn(t,r){return Se.apply(this,arguments)}function Se(){return Se=q(W.default.mark(function t(r,e){return W.default.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:return o.abrupt("return",new Promise(function(i,a){try{var u=new Image;u.onload=function(){return i(u)},u.onerror=function(){return a(new Error("Could not load image ".concat(r,".")))},u.crossOrigin=e?.crossOrigin||"anonymous",u.src=r.startsWith("http")?r:It+r}catch(s){a(s)}}));case 1:case"end":return o.stop()}},t)})),Se.apply(this,arguments)}function dn(t,r){return _e.apply(this,arguments)}function _e(){return _e=q(W.default.mark(function t(r,e){var n,o;return W.default.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(n=document.getElementsByTagName("head")[0],n){a.next=3;break}throw new Error("loadScript");case 3:return o=document.createElement("script"),o.setAttribute("type","text/javascript"),o.setAttribute("src",r),e&&(o.id=e),a.abrupt("return",new Promise(function(u,s){o.onload=u,o.onerror=function(c){return s(new Error("Unable to load script '".concat(r,"': ").concat(c)))},n.appendChild(o)}));case 8:case"end":return a.stop()}},t)})),_e.apply(this,arguments)}function Pe(){var t=1,r=1;return function(){return t=Math.sin(r*17.23),r=Math.cos(t*27.92),ti(Math.abs(t*r)*1432.71)}}function ti(t){return t-Math.floor(t)}var gn=Pe();function kt(t,r,e){if(t===r)return!0;if(!e||!t||!r)return!1;if(Array.isArray(t)){if(!Array.isArray(r)||t.length!==r.length)return!1;for(var n=0;n<t.length;n++)if(!kt(t[n],r[n],e-1))return!1;return!0}if(Array.isArray(r))return!1;if(k(t)==="object"&&k(r)==="object"){var o=Object.keys(t),i=Object.keys(r);if(o.length!==i.length)return!1;for(var a=0,u=o;a<u.length;a++){var s=u[a];if(!r.hasOwnProperty(s)||!kt(t[s],r[s],e-1))return!1}return!0}return!1}function yn(t){return typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame(t):setTimeout(t,1e3/60)}function vn(t){return typeof window<"u"&&window.cancelAnimationFrame?window.cancelAnimationFrame(t):clearTimeout(t)}var ei=function(r){return"".concat(r)};return An(ri);})();
19
19
  /*! Bundled license information:
20
20
 
21
21
  @babel/runtime/helpers/regeneratorRuntime.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luma.gl/core",
3
- "version": "9.0.0-alpha.46",
3
+ "version": "9.0.0-alpha.47",
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": "c1e0602fd739f8d08e6532034a02e8cf658e188a"
45
+ "gitHead": "7c6e28518021f98c7d0739f5cbdac386144206a1"
46
46
  }
@@ -227,6 +227,8 @@ export abstract class Device {
227
227
  /** Used by other luma.gl modules to store data on the device */
228
228
  _lumaData: {[key: string]: unknown} = {};
229
229
 
230
+ abstract destroy(): void;
231
+
230
232
  // Capabilities
231
233
 
232
234
  /** Information about the device (vendor, versions etc) */
@@ -1,11 +1,12 @@
1
1
  // luma.gl, MIT license
2
2
  import type {Device} from '../device';
3
+ import {PrimitiveTopology} from '../types/parameters';
3
4
  import {ShaderLayout} from '../types/shader-layout';
4
5
  import type {Buffer} from './buffer';
5
6
  import {Resource, ResourceProps} from './resource';
6
7
 
7
8
  /** For bindRange */
8
- type BufferRange = {
9
+ export type BufferRange = {
9
10
  buffer: Buffer;
10
11
  byteOffset?: number;
11
12
  byteLength?: number;
@@ -34,4 +35,11 @@ export abstract class TransformFeedback extends Resource<TransformFeedbackProps>
34
35
  constructor(device: Device, props?: TransformFeedbackProps) {
35
36
  super(device, props, TransformFeedback.defaultProps);
36
37
  }
38
+
39
+ abstract begin(topology?: PrimitiveTopology): void;
40
+ abstract end(): void;
41
+
42
+ abstract setBuffers(buffers: Record<string, Buffer | BufferRange>): void;
43
+ abstract setBuffer(locationOrName: string | number, bufferOrRange: Buffer | BufferRange): void;
44
+ abstract getBuffer(locationOrName: string | number): Buffer | BufferRange | null;
37
45
  }
@@ -0,0 +1,85 @@
1
+ // luma.gl, MIT licese
2
+ import {TypedArray, TypedArrayConstructor} from '../..';
3
+ import {VertexFormat} from '../types/vertex-formats';
4
+
5
+ // import {DataType} from '../types/vertex-formats';
6
+ // type Omit<DataType, 'float16'> unfortunately breaks Typescript inferance
7
+ type DataType = 'uint8' | 'sint8' | 'uint16' | 'sint16' | 'uint32' | 'sint32' | 'float32';
8
+
9
+ export function getDataTypeFromTypedArray(arrayOrType: TypedArray | TypedArrayConstructor): DataType {
10
+ const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
11
+ switch (type) {
12
+ case Float32Array:
13
+ return 'float32';
14
+ case Uint16Array:
15
+ return 'uint16';
16
+ case Uint32Array:
17
+ return 'uint32';
18
+ case Uint8Array:
19
+ case Uint8ClampedArray:
20
+ return 'uint8';
21
+ case Int8Array:
22
+ return 'sint8';
23
+ case Int16Array:
24
+ return 'sint16';
25
+ case Int32Array:
26
+ return 'sint32';
27
+ default:
28
+ // Failed to deduce data type from typed array
29
+ throw new Error(type.constructor.name);
30
+ }
31
+ }
32
+
33
+ export function getTypedArrayFromDataType(dataType: DataType): TypedArrayConstructor {
34
+ switch (dataType) {
35
+ case 'float32':
36
+ return Float32Array;
37
+ case 'uint16':
38
+ return Uint16Array;
39
+ case 'uint32':
40
+ return Uint32Array;
41
+ case 'uint8':
42
+ return Uint8Array;
43
+ case 'sint8':
44
+ return Int8Array;
45
+ case 'sint16':
46
+ return Int16Array;
47
+ case 'sint32':
48
+ return Int32Array;
49
+ default:
50
+ // Failed to deduce typed array from data type
51
+ throw new Error(dataType);
52
+ }
53
+ }
54
+
55
+ /** Get the vertex format for an attribute with TypedArray and size */
56
+ export function getVertexFormatFromAttribute(typedArray: TypedArray, size?: number): VertexFormat {
57
+ if(!size || size > 4) {
58
+ throw new Error(`size ${size}`);
59
+ }
60
+
61
+ const components = size as 1 | 2 | 3 | 4;
62
+ const dataType: DataType = getDataTypeFromTypedArray(typedArray);
63
+
64
+ if (dataType === 'uint8' || dataType === 'sint8') {
65
+ if (components === 1 || components === 3) {
66
+ // WebGPU 8 bit formats must be aligned to 16 bit boundaries');
67
+ throw new Error(`size: ${size}`);
68
+ }
69
+ return `${dataType}x${components}`;
70
+ }
71
+ if (dataType === 'uint16' || dataType === 'sint16') {
72
+ if (components === 1 || components === 3) {
73
+ // WebGPU 16 bit formats must be aligned to 32 bit boundaries
74
+ throw new Error(`size: ${size}`);
75
+ }
76
+ return `${dataType}x${components}`;
77
+ }
78
+
79
+ if (components === 1) {
80
+ return dataType;
81
+ }
82
+
83
+ return `${dataType}x${components}`;
84
+ }
85
+
package/src/index.ts CHANGED
@@ -52,7 +52,7 @@ export {CommandBuffer} from './adapter/resources/command-buffer';
52
52
  export type {VertexArrayProps} from './adapter/resources/vertex-array';
53
53
  export {VertexArray} from './adapter/resources/vertex-array';
54
54
 
55
- export type {TransformFeedbackProps} from './adapter/resources/transform-feedback';
55
+ export type {BufferRange, TransformFeedbackProps} from './adapter/resources/transform-feedback';
56
56
  export {TransformFeedback} from './adapter/resources/transform-feedback';
57
57
 
58
58
  // API TYPES
@@ -113,6 +113,7 @@ export {UniformStore} from './lib/uniforms/uniform-store';
113
113
  // TYPE UTILS
114
114
  export {decodeVertexFormat} from './adapter/type-utils/decode-vertex-format';
115
115
  export {decodeTextureFormat} from './adapter/type-utils/decode-texture-format';
116
+ export {getDataTypeFromTypedArray, getTypedArrayFromDataType, getVertexFormatFromAttribute} from './adapter/type-utils/vertex-format-from-attribute';
116
117
 
117
118
  // SHADER TYPE UTILS
118
119
  export {decodeShaderUniformType} from './adapter/type-utils/decode-shader-types';