{"version":3,"sources":["jsdelivr-header.js","/npm/@antv/g-webgpu@2.1.1/src/WebGPUContextService.ts","/npm/@antv/g-webgpu@2.1.1/src/ContextRegisterPlugin.ts","/npm/@antv/g-webgpu@2.1.1/src/index.ts"],"names":[],"mappings":"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","file":"/npm/@antv/g-webgpu@2.1.1/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@antv/g-webgpu@2.1.1/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import type {\n  CanvasContext,\n  CanvasLike,\n  DataURLOptions,\n  GlobalRuntime,\n  CanvasConfig,\n  ContextService,\n} from '@antv/g-lite';\nimport { setDOMSize } from '@antv/g-lite';\nimport type * as DeviceRenderer from '@antv/g-plugin-device-renderer';\nimport { isString } from '@antv/util';\n\nexport class WebGPUContextService implements ContextService<GPUCanvasContext> {\n  private $container: HTMLElement | null;\n  private $canvas: CanvasLike | null;\n  private dpr: number;\n\n  private canvasConfig: Partial<CanvasConfig>;\n  private deviceRendererPlugin: DeviceRenderer.Plugin;\n\n  constructor(context: GlobalRuntime & CanvasContext) {\n    this.canvasConfig = context.config;\n    // @ts-ignore\n    this.deviceRendererPlugin = context.deviceRendererPlugin;\n  }\n\n  init() {\n    const { container, canvas } = this.canvasConfig;\n\n    if (canvas) {\n      this.$canvas = canvas;\n\n      if (\n        container &&\n        (canvas as HTMLCanvasElement).parentElement !== container\n      ) {\n        (container as HTMLElement).appendChild(canvas as HTMLCanvasElement);\n      }\n\n      this.$container = (canvas as HTMLCanvasElement).parentElement;\n      this.canvasConfig.container = this.$container;\n    } else if (container) {\n      // create container\n      this.$container = isString(container)\n        ? document.getElementById(container)\n        : container;\n      if (this.$container) {\n        // create canvas\n        const $canvas = document.createElement('canvas');\n        this.$container.appendChild($canvas);\n        if (!this.$container.style.position) {\n          this.$container.style.position = 'relative';\n        }\n        this.$canvas = $canvas;\n      }\n    }\n\n    this.resize(this.canvasConfig.width, this.canvasConfig.height);\n  }\n\n  getDomElement() {\n    return this.$canvas;\n  }\n\n  getContext() {\n    return (\n      // @ts-ignore\n      this.deviceRendererPlugin.getDevice().canvasContext as GPUCanvasContext\n    );\n  }\n\n  getBoundingClientRect() {\n    if ((this.$canvas as HTMLCanvasElement).getBoundingClientRect) {\n      return (this.$canvas as HTMLCanvasElement).getBoundingClientRect();\n    }\n  }\n\n  destroy() {\n    // @ts-ignore\n    if (this.$container && this.$canvas && this.$canvas.parentNode) {\n      // @ts-ignore\n      this.$container.removeChild(this.$canvas);\n    }\n  }\n\n  resize(width: number, height: number) {\n    // use user-defined dpr first\n    const { devicePixelRatio: dpr } = this.canvasConfig;\n    this.dpr = dpr;\n\n    if (this.$canvas) {\n      const dpr = this.getDPR();\n\n      // set canvas width & height\n      this.$canvas.width = dpr * width;\n      this.$canvas.height = dpr * height;\n\n      // set CSS style width & height\n      setDOMSize(this.$canvas, width, height);\n    }\n  }\n\n  getDPR() {\n    return this.dpr;\n  }\n\n  applyCursorStyle(cursor: string) {\n    if (this.$container && this.$container.style) {\n      this.$container.style.cursor = cursor;\n    }\n  }\n\n  async toDataURL(options: Partial<DataURLOptions>) {\n    return '';\n  }\n}\n","import { AbstractRendererPlugin } from '@antv/g-lite';\nimport type * as DeviceRenderer from '@antv/g-plugin-device-renderer';\nimport { WebGPUDeviceContribution } from '@antv/g-device-api';\nimport { WebGPUContextService } from './WebGPUContextService';\nimport { WebGPURendererConfig } from '.';\n\nexport class ContextRegisterPlugin extends AbstractRendererPlugin {\n  name = 'webgpu-context-register';\n  constructor(\n    private rendererPlugin: DeviceRenderer.Plugin,\n    private config: Partial<WebGPURendererConfig>,\n  ) {\n    super();\n  }\n\n  init(): void {\n    this.context.ContextService = WebGPUContextService;\n    this.context.deviceRendererPlugin = this.rendererPlugin;\n    const { config } = this;\n    this.context.deviceContribution = new WebGPUDeviceContribution({\n      shaderCompilerPath: config?.shaderCompilerPath,\n      onContextLost: config?.onContextLost,\n    });\n  }\n  destroy(): void {\n    delete this.context.ContextService;\n  }\n}\n","import {\n  AbstractRenderer,\n  ClipSpaceNearZ,\n  RendererConfig,\n  ImageLoader,\n  HTMLRenderer,\n  DomInteraction,\n} from '@antv/g-lite';\nimport * as DeviceRenderer from '@antv/g-plugin-device-renderer';\nimport { ContextRegisterPlugin } from './ContextRegisterPlugin';\n\nexport { DomInteraction, DeviceRenderer, HTMLRenderer };\n\nexport interface WebGPURendererConfig extends RendererConfig {\n  shaderCompilerPath: string;\n  onContextLost: () => void;\n}\n\nexport class Renderer extends AbstractRenderer {\n  clipSpaceNearZ = ClipSpaceNearZ.ZERO;\n\n  constructor(config?: Partial<WebGPURendererConfig>) {\n    super({\n      enableSizeAttenuation: false,\n      ...config,\n    });\n\n    const deviceRendererPlugin = new DeviceRenderer.Plugin();\n    this.registerPlugin(\n      new ContextRegisterPlugin(deviceRendererPlugin, config),\n    );\n    this.registerPlugin(new ImageLoader.Plugin());\n    this.registerPlugin(deviceRendererPlugin);\n    this.registerPlugin(new DomInteraction.Plugin());\n    this.registerPlugin(new HTMLRenderer.Plugin());\n  }\n}\n"]}