UNPKG

lingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

40 lines 1.3 kB
import { onBeforeRender } from "../../events/onBeforeRender"; import Appendable from "../../display/core/Appendable"; export default (cb) => { const queued = new Map(); const processed = new Map(); const execute = () => { if (processed.size === 0) for (const [target, data] of queued) processed.set(target, data); for (const [target, data] of processed) { processed.delete(target); if (cb(target, data)) break; } }; let handle; const start = () => (handle = onBeforeRender(execute)); const deleteSystem = (item) => { if (!queued.delete(item)) return; processed.delete(item); item instanceof Appendable && item.$deleteSystemSet.delete(deleteSystem); queued.size === 0 && handle?.cancel(); }; return [ (item, data) => { if (queued.has(item)) { queued.set(item, data); return; } queued.set(item, data); item instanceof Appendable && item.$deleteSystemSet.add(deleteSystem); if (queued.size === 1) start(); }, deleteSystem ]; }; //# sourceMappingURL=deferredRenderSystemWithData.js.map