shadow$provide.module$node_modules$pixi_DOT_js$lib$rendering$batcher$gpu$GpuBatchAdaptor = function(global, require, module, exports) {
  global = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions");
  module = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$state$State");
  var getTextureBatchBindGroup = require("module$node_modules$pixi_DOT_js$lib$rendering$batcher$gpu$getTextureBatchBindGroup");
  "use strict";
  const tempState = module.State.for2d();
  class GpuBatchAdaptor {
    start(batchPipe, geometry, shader) {
      const renderer = batchPipe.renderer;
      batchPipe = renderer.encoder;
      const program = shader.gpuProgram;
      this._shader = shader;
      this._geometry = geometry;
      batchPipe.setGeometry(geometry, program);
      tempState.blendMode = "normal";
      renderer.pipeline.getPipeline(geometry, program, tempState);
      geometry = renderer.globalUniforms.bindGroup;
      batchPipe.resetBindGroup(1);
      batchPipe.setBindGroup(0, geometry, program);
    }
    execute(batchPipe, batch) {
      var program = this._shader.gpuProgram;
      batchPipe = batchPipe.renderer;
      const encoder = batchPipe.encoder;
      if (!batch.bindGroup) {
        var textureBatch = batch.textures;
        batch.bindGroup = getTextureBatchBindGroup.getTextureBatchBindGroup(textureBatch.textures, textureBatch.count, batchPipe.limits.maxBatchableTextures);
      }
      tempState.blendMode = batch.blendMode;
      textureBatch = batchPipe.bindGroup.getBindGroup(batch.bindGroup, program, 1);
      program = batchPipe.pipeline.getPipeline(this._geometry, program, tempState, batch.topology);
      batch.bindGroup._touch(batchPipe.gc.now, batchPipe.tick);
      encoder.setPipeline(program);
      encoder.renderPassEncoder.setBindGroup(1, textureBatch);
      encoder.renderPassEncoder.drawIndexed(batch.size, 1, batch.start);
    }
  }
  GpuBatchAdaptor.extension = {type:[global.ExtensionType.WebGPUPipesAdaptor], name:"batch"};
  exports.GpuBatchAdaptor = GpuBatchAdaptor;
};

//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$rendering$batcher$gpu$GpuBatchAdaptor.js.map
