Files
Foundry-VTT-Docker/resources/app/node_modules/@pixi/prepare/lib/Prepare.js
2025-01-04 00:34:03 +01:00

36 lines
1.4 KiB
JavaScript

"use strict";
var core = require("@pixi/core"), graphics = require("@pixi/graphics"), BasePrepare = require("./BasePrepare.js");
function uploadBaseTextures(renderer, item) {
return item instanceof core.BaseTexture ? (item._glTextures[renderer.CONTEXT_UID] || renderer.texture.bind(item), !0) : !1;
}
function uploadGraphics(renderer, item) {
if (!(item instanceof graphics.Graphics))
return !1;
const { geometry } = item;
item.finishPoly(), geometry.updateBatches();
const { batches } = geometry;
for (let i = 0; i < batches.length; i++) {
const { texture } = batches[i].style;
texture && uploadBaseTextures(renderer, texture.baseTexture);
}
return geometry.batchable || renderer.geometry.bind(geometry, item._resolveDirectShader(renderer)), !0;
}
function findGraphics(item, queue) {
return item instanceof graphics.Graphics ? (queue.push(item), !0) : !1;
}
class Prepare extends BasePrepare.BasePrepare {
/**
* @param {PIXI.Renderer} renderer - A reference to the current renderer
*/
constructor(renderer) {
super(renderer), this.uploadHookHelper = this.renderer, this.registerFindHook(findGraphics), this.registerUploadHook(uploadBaseTextures), this.registerUploadHook(uploadGraphics);
}
}
Prepare.extension = {
name: "prepare",
type: core.ExtensionType.RendererSystem
};
core.extensions.add(Prepare);
exports.Prepare = Prepare;
//# sourceMappingURL=Prepare.js.map