endFrame method
void
endFrame()
Frees everything taken this frame and drops long-unused targets.
Implementation
void endFrame() {
for (final texture in _taken) {
(_free[texture.desc] ??= []).add((texture, _frame));
}
_taken.clear();
_frame++;
_free.removeWhere((_, list) {
list.removeWhere((entry) => _frame - entry.$2 > keepFrames);
return list.isEmpty;
});
}