UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

29 lines (28 loc) 996 B
class GSplatPlacementStateTracker { _states = /* @__PURE__ */ new WeakMap(); hasChanges(placements) { let changed = false; for (const p of placements) { if (!p.resource) continue; const formatVersion = p.resource.format?.extraStreamsVersion ?? 0; const modifierHash = p.workBufferModifier?.hash ?? 0; const numSplats = p.resource.numSplats ?? 0; const centersVersion = p.resource.centersVersion; const state = this._states.get(p); if (!state) { this._states.set(p, { formatVersion, modifierHash, numSplats, centersVersion }); changed = true; } else if (state.formatVersion !== formatVersion || state.modifierHash !== modifierHash || state.numSplats !== numSplats || state.centersVersion !== centersVersion) { state.formatVersion = formatVersion; state.modifierHash = modifierHash; state.numSplats = numSplats; state.centersVersion = centersVersion; changed = true; } } return changed; } } export { GSplatPlacementStateTracker };