Files
il/resources/public/js/cljs-runtime/module$node_modules$pixi_DOT_js$lib$dom$DOMPipe.js
2026-07-01 22:38:29 -06:00

68 lines
3.0 KiB
JavaScript

shadow$provide.module$node_modules$pixi_DOT_js$lib$dom$DOMPipe = function(global, require, module, exports) {
global = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions");
var CanvasObserver = require("module$node_modules$pixi_DOT_js$lib$dom$CanvasObserver");
"use strict";
class DOMPipe {
constructor(renderer) {
this._attachedDomElements = [];
this._renderer = renderer;
this._renderer.runners.postrender.add(this);
this._renderer.runners.init.add(this);
this._domElement = document.createElement("div");
this._domElement.style.position = "absolute";
this._domElement.style.top = "0";
this._domElement.style.left = "0";
this._domElement.style.pointerEvents = "none";
this._domElement.style.zIndex = "1000";
}
init() {
this._canvasObserver = new CanvasObserver.CanvasObserver({domElement:this._domElement, renderer:this._renderer});
}
addRenderable(domContainer, _instructionSet) {
this._attachedDomElements.includes(domContainer) || this._attachedDomElements.push(domContainer);
}
updateRenderable(_domContainer) {
}
validateRenderable(_domContainer) {
return !0;
}
postrender() {
const attachedDomElements = this._attachedDomElements;
if (0 === attachedDomElements.length) {
this._domElement.remove();
} else {
this._canvasObserver.ensureAttached();
for (let i = 0; i < attachedDomElements.length; i++) {
const domContainer = attachedDomElements[i], element = domContainer.element;
if (!domContainer.parent || 7 > domContainer.globalDisplayStatus) {
element?.remove(), attachedDomElements.splice(i, 1), i--;
} else {
this._domElement.contains(element) || (element.style.position = "absolute", element.style.pointerEvents = "auto", this._domElement.appendChild(element));
const wt = domContainer.worldTransform;
var anchor = domContainer._anchor;
const ax = domContainer.width * anchor.x;
anchor = domContainer.height * anchor.y;
element.style.transformOrigin = `${ax}px ${anchor}px`;
element.style.transform = `matrix(${wt.a}, ${wt.b}, ${wt.c}, ${wt.d}, ${wt.tx - ax}, ${wt.ty - anchor})`;
element.style.opacity = domContainer.groupAlpha.toString();
}
}
}
}
destroy() {
this._renderer.runners.postrender.remove(this);
for (let i = 0; i < this._attachedDomElements.length; i++) {
this._attachedDomElements[i].element?.remove();
}
this._attachedDomElements.length = 0;
this._domElement.remove();
this._canvasObserver.destroy();
this._renderer = null;
}
}
DOMPipe.extension = {type:[global.ExtensionType.WebGLPipes, global.ExtensionType.WebGPUPipes, global.ExtensionType.CanvasPipes], name:"dom"};
exports.DOMPipe = DOMPipe;
};
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$dom$DOMPipe.js.map