shadow$provide.module$node_modules$pixi_DOT_js$lib$scene$graphics$canvas$CanvasGraphicsContextSystem = function(global, require, module, exports) {
  global = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions");
  var InstructionSet = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$instructions$InstructionSet"), GCManagedHash = require("module$node_modules$pixi_DOT_js$lib$utils$data$GCManagedHash");
  "use strict";
  class CanvasGraphicsContext {
    constructor() {
      this.isBatchable = !1;
    }
    reset() {
      this.isBatchable = !1;
      this.context = null;
      this.graphicsData && (this.graphicsData.destroy(), this.graphicsData = null);
    }
    destroy() {
      this.reset();
    }
  }
  class CanvasGraphicsContextRenderData {
    constructor() {
      this.instructions = new InstructionSet.InstructionSet();
    }
    init() {
      this.instructions.reset();
    }
    destroy() {
      this.instructions.destroy();
      this.instructions = null;
    }
  }
  const node_modules$pixi_DOT_js$lib$scene$graphics$canvas$CanvasGraphicsContextSystem$classdecl$var32 = class {
    constructor(renderer) {
      this._renderer = renderer;
      this._managedContexts = new GCManagedHash.GCManagedHash({renderer, type:"resource", name:"graphicsContext"});
    }
    init(options) {
      node_modules$pixi_DOT_js$lib$scene$graphics$canvas$CanvasGraphicsContextSystem$classdecl$var32.defaultOptions.bezierSmoothness = options?.bezierSmoothness ?? node_modules$pixi_DOT_js$lib$scene$graphics$canvas$CanvasGraphicsContextSystem$classdecl$var32.defaultOptions.bezierSmoothness;
    }
    getContextRenderData(context) {
      return this.getGpuContext(context).graphicsData || this._initContextRenderData(context);
    }
    updateGpuContext(context) {
      var gpuData = context._gpuData;
      const hasContext = !!gpuData[this._renderer.uid];
      gpuData = gpuData[this._renderer.uid] || this._initContext(context);
      if (context.dirty || !hasContext) {
        hasContext && gpuData.reset(), gpuData.isBatchable = !1, context.dirty = !1;
      }
      return gpuData;
    }
    getGpuContext(context) {
      return context._gpuData[this._renderer.uid] || this._initContext(context);
    }
    _initContextRenderData(context) {
      const renderData = new CanvasGraphicsContextRenderData();
      this.getGpuContext(context).graphicsData = renderData;
      renderData.init();
      return renderData;
    }
    _initContext(context) {
      const gpuContext = new CanvasGraphicsContext();
      gpuContext.context = context;
      context._gpuData[this._renderer.uid] = gpuContext;
      this._managedContexts.add(context);
      return gpuContext;
    }
    destroy() {
      this._managedContexts.destroy();
      this._renderer = null;
    }
  };
  require = node_modules$pixi_DOT_js$lib$scene$graphics$canvas$CanvasGraphicsContextSystem$classdecl$var32;
  require.extension = {type:[global.ExtensionType.CanvasSystem], name:"graphicsContext"};
  require.defaultOptions = {bezierSmoothness:0.5};
  exports.CanvasGraphicsContextSystem = require;
};

//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$scene$graphics$canvas$CanvasGraphicsContextSystem.js.map
