This version is more intelligent in keeping track of empty space. There is no longer a "rover", using which allocations are done in sequence. Instead, all remaining empty space is partitioned (in rows) to acquire a suitable block from the atlas.
Optimization is only done if there is a significant portion of unused space.
libgui|RowAtlasAllocator: Improved row-based atlas allocator
This version is more intelligent in keeping track of empty space.
There is no longer a "rover", using which allocations are done in
sequence. Instead, all remaining empty space is partitioned (in rows)
to acquire a suitable block from the atlas.
Optimization is only done if there is a significant portion of
unused space.