The pool lifecycle shared by the three texture-backed geometry types
(Points, Lines, GSplats): acquire (in-place reuse, grow, best-fit
adoption, fresh allocation), the OOM re-claim of a failed grow, release
to the free buckets, and dispose.
All three store per-element data in an RGBA32F element texture plus the
aSortedIndex/aSortedIndexB ordering pair, with a FIXED layout per
type, so any pooled geometry of a type fits any node of that type and
reuse keys on capacity alone. The lifecycle is therefore identical; what
differs is the per-type TextureBackedLayout (texture capacity
bound, geometry construction) and each subclass's updateGeometry (its
texel writer, ordering write and bounds).
The pool lifecycle shared by the three texture-backed geometry types (Points, Lines, GSplats): acquire (in-place reuse, grow, best-fit adoption, fresh allocation), the OOM re-claim of a failed grow, release to the free buckets, and dispose.
All three store per-element data in an RGBA32F element texture plus the
aSortedIndex/aSortedIndexBordering pair, with a FIXED layout per type, so any pooled geometry of a type fits any node of that type and reuse keys on capacity alone. The lifecycle is therefore identical; what differs is the per-type TextureBackedLayout (texture capacity bound, geometry construction) and each subclass'supdateGeometry(its texel writer, ordering write and bounds).