Files
nothoughts/node_modules/pixi.js/lib/rendering/renderers/gpu/WebGPURenderer.mjs.map
2025-08-04 18:57:35 +02:00

1 line
8.8 KiB
Plaintext

{"version":3,"file":"WebGPURenderer.mjs","sources":["../../../../src/rendering/renderers/gpu/WebGPURenderer.ts"],"sourcesContent":["import { extensions, ExtensionType } from '../../../extensions/Extensions';\nimport { GpuGraphicsAdaptor } from '../../../scene/graphics/gpu/GpuGraphicsAdaptor';\nimport { GpuMeshAdapter } from '../../../scene/mesh/gpu/GpuMeshAdapter';\nimport { GpuBatchAdaptor } from '../../batcher/gpu/GpuBatchAdaptor';\nimport { AbstractRenderer } from '../shared/system/AbstractRenderer';\nimport { SharedRenderPipes, SharedSystems } from '../shared/system/SharedSystems';\nimport { RendererType } from '../types';\nimport { BindGroupSystem } from './BindGroupSystem';\nimport { GpuBufferSystem } from './buffer/GpuBufferSystem';\nimport { GpuColorMaskSystem } from './GpuColorMaskSystem';\nimport { type GPU, GpuDeviceSystem } from './GpuDeviceSystem';\nimport { GpuEncoderSystem } from './GpuEncoderSystem';\nimport { GpuStencilSystem } from './GpuStencilSystem';\nimport { GpuUboSystem } from './GpuUboSystem';\nimport { GpuUniformBatchPipe } from './GpuUniformBatchPipe';\nimport { PipelineSystem } from './pipeline/PipelineSystem';\nimport { GpuRenderTargetSystem } from './renderTarget/GpuRenderTargetSystem';\nimport { GpuShaderSystem } from './shader/GpuShaderSystem';\nimport { GpuStateSystem } from './state/GpuStateSystem';\nimport { GpuTextureSystem } from './texture/GpuTextureSystem';\n\nimport type { ICanvas } from '../../../environment/canvas/ICanvas';\nimport type { PipeConstructor } from '../shared/instructions/RenderPipe';\nimport type { SharedRendererOptions } from '../shared/system/SharedSystems';\nimport type { SystemConstructor } from '../shared/system/System';\nimport type { ExtractRendererOptions, ExtractSystemTypes } from '../shared/system/utils/typeUtils';\n\nconst DefaultWebGPUSystems = [\n ...SharedSystems,\n GpuUboSystem,\n GpuEncoderSystem,\n GpuDeviceSystem,\n GpuBufferSystem,\n GpuTextureSystem,\n GpuRenderTargetSystem,\n GpuShaderSystem,\n GpuStateSystem,\n PipelineSystem,\n GpuColorMaskSystem,\n GpuStencilSystem,\n BindGroupSystem,\n];\nconst DefaultWebGPUPipes = [...SharedRenderPipes, GpuUniformBatchPipe];\nconst DefaultWebGPUAdapters = [GpuBatchAdaptor, GpuMeshAdapter, GpuGraphicsAdaptor];\n\n// installed systems will bbe added to this array by the extensions manager..\nconst systems: { name: string; value: SystemConstructor }[] = [];\nconst renderPipes: { name: string; value: PipeConstructor }[] = [];\nconst renderPipeAdaptors: { name: string; value: any }[] = [];\n\nextensions.handleByNamedList(ExtensionType.WebGPUSystem, systems);\nextensions.handleByNamedList(ExtensionType.WebGPUPipes, renderPipes);\nextensions.handleByNamedList(ExtensionType.WebGPUPipesAdaptor, renderPipeAdaptors);\n\n// add all the default systems as well as any user defined ones from the extensions\nextensions.add(...DefaultWebGPUSystems, ...DefaultWebGPUPipes, ...DefaultWebGPUAdapters);\n\ntype WebGPUSystems = ExtractSystemTypes<typeof DefaultWebGPUSystems> &\nPixiMixins.RendererSystems &\nPixiMixins.WebGPUSystems;\n\nexport type WebGPUPipes = ExtractSystemTypes<typeof DefaultWebGPUPipes> &\nPixiMixins.RendererPipes &\nPixiMixins.WebGPUPipes;\n\n/**\n * Options for WebGPURenderer.\n * @memberof rendering\n */\nexport interface WebGPUOptions extends\n SharedRendererOptions,\n ExtractRendererOptions<typeof DefaultWebGPUSystems>,\n PixiMixins.WebGPUOptions{}\n\nexport interface WebGPURenderer<T extends ICanvas = HTMLCanvasElement>\n extends AbstractRenderer<WebGPUPipes, WebGPUOptions, T>,\n WebGPUSystems {}\n\n/* eslint-disable max-len */\n/**\n * The WebGPU PixiJS Renderer. This renderer allows you to use the next-generation graphics API, WebGPU.\n * ```ts\n * // Create a new renderer\n * const renderer = new WebGPURenderer();\n * await renderer.init();\n *\n * // Add the renderer to the stage\n * document.body.appendChild(renderer.canvas);\n *\n * // Create a new stage\n * const stage = new Container();\n *\n * // Render the stage\n * renderer.render(stage);\n * ```\n *\n * You can use {@link rendering.autoDetectRenderer} to create a renderer that will automatically detect the best\n * renderer for the environment.\n * ```ts\n * // Create a new renderer\n * const renderer = await rendering.autoDetectRenderer();\n * ```\n *\n * The renderer is composed of systems that manage specific tasks. The following systems are added by default\n * whenever you create a WebGPU renderer:\n *\n * | WebGPU Core Systems | Systems that are specific to the WebGL renderer |\n * | ---------------------------------------- | ----------------------------------------------------------------------------- |\n * | {@link rendering.GpuUboSystem} | This manages WebGPU uniform buffer objects feature for shaders |\n * | {@link rendering.GpuEncoderSystem} | This manages the WebGPU command encoder |\n * | {@link rendering.GpuDeviceSystem} | This manages the WebGPU Device and its extensions |\n * | {@link rendering.GpuBufferSystem} | This manages buffers and their GPU resources, keeps everything in sync |\n * | {@link rendering.GpuTextureSystem} | This manages textures and their GPU resources, keeps everything in sync |\n * | {@link rendering.GpuRenderTargetSystem} | This manages what we render too. For example the screen, or another texture |\n * | {@link rendering.GpuShaderSystem} | This manages shaders, programs that run on the GPU to output lovely pixels |\n * | {@link rendering.GpuStateSystem} | This manages the state of the WebGPU Pipelines. eg the various flags that can be set blend modes / depthTesting etc |\n * | {@link rendering.PipelineSystem} | This manages the WebGPU pipelines, used for rendering |\n * | {@link rendering.GpuColorMaskSystem} | This manages the color mask. Used for color masking |\n * | {@link rendering.GpuStencilSystem} | This manages the stencil buffer. Used primarily for masking |\n * | {@link rendering.BindGroupSystem} | This manages the WebGPU bind groups. this is how data is bound to a shader when rendering |\n *\n * The breadth of the API surface provided by the renderer is contained within these systems.\n * @memberof rendering\n * @property {rendering.GpuUboSystem} ubo - UboSystem instance.\n * @property {rendering.GpuEncoderSystem} encoder - EncoderSystem instance.\n * @property {rendering.GpuDeviceSystem} device - DeviceSystem instance.\n * @property {rendering.GpuBufferSystem} buffer - BufferSystem instance.\n * @property {rendering.GpuTextureSystem} texture - TextureSystem instance.\n * @property {rendering.GpuRenderTargetSystem} renderTarget - RenderTargetSystem instance.\n * @property {rendering.GpuShaderSystem} shader - ShaderSystem instance.\n * @property {rendering.GpuStateSystem} state - StateSystem instance.\n * @property {rendering.PipelineSystem} pipeline - PipelineSystem instance.\n * @property {rendering.GpuColorMaskSystem} colorMask - ColorMaskSystem instance.\n * @property {rendering.GpuStencilSystem} stencil - StencilSystem instance.\n * @property {rendering.BindGroupSystem} bindGroup - BindGroupSystem instance.\n * @extends rendering.AbstractRenderer\n */\nexport class WebGPURenderer<T extends ICanvas = HTMLCanvasElement>\n extends AbstractRenderer<WebGPUPipes, WebGPUOptions, T>\n implements WebGPUSystems\n{\n /** The WebGPU Device. */\n public gpu: GPU;\n\n constructor()\n {\n const systemConfig = {\n name: 'webgpu',\n type: RendererType.WEBGPU,\n systems,\n renderPipes,\n renderPipeAdaptors,\n };\n\n super(systemConfig);\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAM,oBAAuB,GAAA;AAAA,EACzB,GAAG,aAAA;AAAA,EACH,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,qBAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AACJ,CAAA,CAAA;AACA,MAAM,kBAAqB,GAAA,CAAC,GAAG,iBAAA,EAAmB,mBAAmB,CAAA,CAAA;AACrE,MAAM,qBAAwB,GAAA,CAAC,eAAiB,EAAA,cAAA,EAAgB,kBAAkB,CAAA,CAAA;AAGlF,MAAM,UAAwD,EAAC,CAAA;AAC/D,MAAM,cAA0D,EAAC,CAAA;AACjE,MAAM,qBAAqD,EAAC,CAAA;AAE5D,UAAW,CAAA,iBAAA,CAAkB,aAAc,CAAA,YAAA,EAAc,OAAO,CAAA,CAAA;AAChE,UAAW,CAAA,iBAAA,CAAkB,aAAc,CAAA,WAAA,EAAa,WAAW,CAAA,CAAA;AACnE,UAAW,CAAA,iBAAA,CAAkB,aAAc,CAAA,kBAAA,EAAoB,kBAAkB,CAAA,CAAA;AAGjF,UAAA,CAAW,IAAI,GAAG,oBAAA,EAAsB,GAAG,kBAAA,EAAoB,GAAG,qBAAqB,CAAA,CAAA;AAkFhF,MAAM,uBACD,gBAEZ,CAAA;AAAA,EAII,WACA,GAAA;AACI,IAAA,MAAM,YAAe,GAAA;AAAA,MACjB,IAAM,EAAA,QAAA;AAAA,MACN,MAAM,YAAa,CAAA,MAAA;AAAA,MACnB,OAAA;AAAA,MACA,WAAA;AAAA,MACA,kBAAA;AAAA,KACJ,CAAA;AAEA,IAAA,KAAA,CAAM,YAAY,CAAA,CAAA;AAAA,GACtB;AACJ;;;;"}