UNPKG

playcanvas

Version:

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

35 lines (33 loc) 1.12 kB
class GSplatPlacementStateTracker { 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; } constructor(){ this._states = new WeakMap(); } } export { GSplatPlacementStateTracker };