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

1 line
5.0 KiB
Plaintext

{"version":3,"file":"GpuBatchAdaptor.mjs","sources":["../../../../src/rendering/batcher/gpu/GpuBatchAdaptor.ts"],"sourcesContent":["import { ExtensionType } from '../../../extensions/Extensions';\nimport { State } from '../../renderers/shared/state/State';\nimport { getTextureBatchBindGroup } from './getTextureBatchBindGroup';\n\nimport type { GpuEncoderSystem } from '../../renderers/gpu/GpuEncoderSystem';\nimport type { WebGPURenderer } from '../../renderers/gpu/WebGPURenderer';\nimport type { Geometry } from '../../renderers/shared/geometry/Geometry';\nimport type { Shader } from '../../renderers/shared/shader/Shader';\nimport type { Batch } from '../shared/Batcher';\nimport type { BatcherAdaptor, BatcherPipe } from '../shared/BatcherPipe';\n\nconst tempState = State.for2d();\n\n/**\n * A BatcherAdaptor that uses the GPU to render batches.\n * @memberof rendering\n * @ignore\n */\nexport class GpuBatchAdaptor implements BatcherAdaptor\n{\n /** @ignore */\n public static extension = {\n type: [\n ExtensionType.WebGPUPipesAdaptor,\n ],\n name: 'batch',\n } as const;\n\n private _shader: Shader;\n private _geometry: Geometry;\n\n public start(batchPipe: BatcherPipe, geometry: Geometry, shader: Shader): void\n {\n const renderer = batchPipe.renderer as WebGPURenderer;\n const encoder = renderer.encoder as GpuEncoderSystem;\n const program = shader.gpuProgram;\n\n this._shader = shader;\n this._geometry = geometry;\n\n encoder.setGeometry(geometry, program);\n\n tempState.blendMode = 'normal';\n\n // this just initiates the pipeline, so we can then set bind groups on it\n renderer.pipeline.getPipeline(\n geometry,\n program,\n tempState\n );\n\n const globalUniformsBindGroup = renderer.globalUniforms.bindGroup;\n\n // low level - we need to reset the bind group at location 1 to null\n // this is because we directly manipulate the bound buffer in the execute function for\n // performance reasons.\n // setting it to null ensures that the next bind group we set at location 1 will\n // be the one we want.\n encoder.resetBindGroup(1);\n\n encoder.setBindGroup(0, globalUniformsBindGroup, program);\n }\n\n public execute(batchPipe: BatcherPipe, batch: Batch): void\n {\n const program = this._shader.gpuProgram;\n const renderer = batchPipe.renderer as WebGPURenderer;\n const encoder = renderer.encoder as GpuEncoderSystem;\n\n if (!batch.bindGroup)\n {\n const textureBatch = batch.textures;\n\n batch.bindGroup = getTextureBatchBindGroup(textureBatch.textures, textureBatch.count);\n }\n\n tempState.blendMode = batch.blendMode;\n\n const gpuBindGroup = renderer.bindGroup.getBindGroup(\n batch.bindGroup, program, 1\n );\n\n const pipeline = renderer.pipeline.getPipeline(\n this._geometry,\n program,\n tempState\n );\n\n batch.bindGroup._touch(renderer.textureGC.count);\n\n encoder.setPipeline(pipeline);\n\n encoder.renderPassEncoder.setBindGroup(1, gpuBindGroup);\n encoder.renderPassEncoder.drawIndexed(batch.size, 1, batch.start);\n }\n}\n"],"names":[],"mappings":";;;;;AAWA,MAAM,SAAA,GAAY,MAAM,KAAM,EAAA,CAAA;AAOvB,MAAM,eACb,CAAA;AAAA,EAYW,KAAA,CAAM,SAAwB,EAAA,QAAA,EAAoB,MACzD,EAAA;AACI,IAAA,MAAM,WAAW,SAAU,CAAA,QAAA,CAAA;AAC3B,IAAA,MAAM,UAAU,QAAS,CAAA,OAAA,CAAA;AACzB,IAAA,MAAM,UAAU,MAAO,CAAA,UAAA,CAAA;AAEvB,IAAA,IAAA,CAAK,OAAU,GAAA,MAAA,CAAA;AACf,IAAA,IAAA,CAAK,SAAY,GAAA,QAAA,CAAA;AAEjB,IAAQ,OAAA,CAAA,WAAA,CAAY,UAAU,OAAO,CAAA,CAAA;AAErC,IAAA,SAAA,CAAU,SAAY,GAAA,QAAA,CAAA;AAGtB,IAAA,QAAA,CAAS,QAAS,CAAA,WAAA;AAAA,MACd,QAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,KACJ,CAAA;AAEA,IAAM,MAAA,uBAAA,GAA0B,SAAS,cAAe,CAAA,SAAA,CAAA;AAOxD,IAAA,OAAA,CAAQ,eAAe,CAAC,CAAA,CAAA;AAExB,IAAQ,OAAA,CAAA,YAAA,CAAa,CAAG,EAAA,uBAAA,EAAyB,OAAO,CAAA,CAAA;AAAA,GAC5D;AAAA,EAEO,OAAA,CAAQ,WAAwB,KACvC,EAAA;AACI,IAAM,MAAA,OAAA,GAAU,KAAK,OAAQ,CAAA,UAAA,CAAA;AAC7B,IAAA,MAAM,WAAW,SAAU,CAAA,QAAA,CAAA;AAC3B,IAAA,MAAM,UAAU,QAAS,CAAA,OAAA,CAAA;AAEzB,IAAI,IAAA,CAAC,MAAM,SACX,EAAA;AACI,MAAA,MAAM,eAAe,KAAM,CAAA,QAAA,CAAA;AAE3B,MAAA,KAAA,CAAM,SAAY,GAAA,wBAAA,CAAyB,YAAa,CAAA,QAAA,EAAU,aAAa,KAAK,CAAA,CAAA;AAAA,KACxF;AAEA,IAAA,SAAA,CAAU,YAAY,KAAM,CAAA,SAAA,CAAA;AAE5B,IAAM,MAAA,YAAA,GAAe,SAAS,SAAU,CAAA,YAAA;AAAA,MACpC,KAAM,CAAA,SAAA;AAAA,MAAW,OAAA;AAAA,MAAS,CAAA;AAAA,KAC9B,CAAA;AAEA,IAAM,MAAA,QAAA,GAAW,SAAS,QAAS,CAAA,WAAA;AAAA,MAC/B,IAAK,CAAA,SAAA;AAAA,MACL,OAAA;AAAA,MACA,SAAA;AAAA,KACJ,CAAA;AAEA,IAAA,KAAA,CAAM,SAAU,CAAA,MAAA,CAAO,QAAS,CAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AAE/C,IAAA,OAAA,CAAQ,YAAY,QAAQ,CAAA,CAAA;AAE5B,IAAQ,OAAA,CAAA,iBAAA,CAAkB,YAAa,CAAA,CAAA,EAAG,YAAY,CAAA,CAAA;AACtD,IAAA,OAAA,CAAQ,kBAAkB,WAAY,CAAA,KAAA,CAAM,IAAM,EAAA,CAAA,EAAG,MAAM,KAAK,CAAA,CAAA;AAAA,GACpE;AACJ,CAAA;AAAA;AA7Ea,eAAA,CAGK,SAAY,GAAA;AAAA,EACtB,IAAM,EAAA;AAAA,IACF,aAAc,CAAA,kBAAA;AAAA,GAClB;AAAA,EACA,IAAM,EAAA,OAAA;AACV,CAAA;;;;"}