removeAt method
Removes the batch item at the given index.
Implementation
void removeAt(int index) {
final slot = _requireSlot(index);
final lastSlot = _batchItems.length - 1;
final removedHandle = _slotToHandle[slot];
if (slot != lastSlot) {
// Move last -> slot.
_batchItems[slot] = _batchItems[lastSlot];
_sources[slot] = _sources[lastSlot];
_transforms[slot] = _transforms[lastSlot];
_colors[slot] = _colors[lastSlot];
final movedHandle = _slotToHandle[lastSlot];
_slotToHandle[slot] = movedHandle;
_handleToSlot[movedHandle] = slot;
}
_batchItems.removeLast();
_sources.removeLast();
_transforms.removeLast();
_colors.removeLast();
_slotToHandle.removeLast();
_handleToSlot.remove(removedHandle);
_freeHandle(removedHandle);
}