shadow$provide.module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$GlEncoderSystem = function(global, require, module, exports) {
  global = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions");
  "use strict";
  class GlEncoderSystem {
    constructor(renderer) {
      this.commandFinished = Promise.resolve();
      this._renderer = renderer;
    }
    setGeometry(geometry, shader) {
      this._renderer.geometry.bind(geometry, shader.glProgram);
    }
    finishRenderPass() {
    }
    draw(options) {
      const renderer = this._renderer, {geometry, shader, state, skipSync, topology:type, size, start, instanceCount} = options;
      renderer.shader.bind(shader, skipSync);
      renderer.geometry.bind(geometry, renderer.shader._activeProgram);
      state && renderer.state.set(state);
      renderer.geometry.draw(type, size, start, instanceCount ?? geometry.instanceCount);
    }
    destroy() {
      this._renderer = null;
    }
  }
  GlEncoderSystem.extension = {type:[global.ExtensionType.WebGLSystem], name:"encoder"};
  exports.GlEncoderSystem = GlEncoderSystem;
};

//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$GlEncoderSystem.js.map
