@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
33 lines (32 loc) • 857 B
JavaScript
;
export class PolyCanvasRegister {
constructor(poly) {
this.poly = poly;
this._rendererByCanvas = /* @__PURE__ */ new Map();
}
findOrCreateCanvas() {
const canvas = this._findAvailableCanvas() || this._createCanvas();
return canvas;
}
_findAvailableCanvas() {
let foundCanvas;
this._rendererByCanvas.forEach((renderer, canvas) => {
if (foundCanvas == null && renderer == null) {
foundCanvas = canvas;
}
});
return foundCanvas;
}
_createCanvas() {
return document.createElement("canvas");
}
registerCanvas(canvas, renderer) {
this._rendererByCanvas.set(canvas, renderer);
}
deregisterCanvas(canvas) {
this._rendererByCanvas.set(canvas, null);
}
dummyCanvas() {
return this._dummyCanvas || (this._dummyCanvas = document.createElement("canvas"));
}
}