UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

33 lines (32 loc) 857 B
"use strict"; 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")); } }