shadow$provide.module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$SchedulerSystem = function(global, require, module, exports) { global = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions"); var Ticker = require("module$node_modules$pixi_DOT_js$lib$ticker$Ticker"); "use strict"; let uid = 1; class SchedulerSystem { constructor() { this._tasks = []; this._offset = 0; } init() { Ticker.Ticker.system.add(this._update, this); } repeat(func, duration, useOffset = !0) { const id = uid++; let offset = 0; useOffset && (offset = this._offset += 1e3); this._tasks.push({func, duration, start:performance.now(), offset, last:performance.now(), repeat:!0, id}); return id; } cancel(id) { for (let i = 0; i < this._tasks.length; i++) { if (this._tasks[i].id === id) { this._tasks.splice(i, 1); break; } } } _update() { const now = performance.now(); for (let i = 0; i < this._tasks.length; i++) { const task = this._tasks[i]; now - task.offset - task.last >= task.duration && (task.func(now - task.start), task.last = now); } } destroy() { Ticker.Ticker.system.remove(this._update, this); this._tasks.length = 0; } } SchedulerSystem.extension = {type:[global.ExtensionType.WebGLSystem, global.ExtensionType.WebGPUSystem, global.ExtensionType.CanvasSystem], name:"scheduler", priority:0}; exports.SchedulerSystem = SchedulerSystem; }; //# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$SchedulerSystem.js.map