dirtyBitSpans method
Implementation
List<DirtySpan> dirtyBitSpans(int y) {
if (y < 0 || y >= dirtyBits.length) return const <DirtySpan>[];
final bits = dirtyBits[y];
if (bits.isEmpty) return const <DirtySpan>[];
final spans = <DirtySpan>[];
final rowWidth = width();
var start = -1;
for (var x = 0; x < rowWidth; x++) {
final dirty = isCellDirty(x, y);
if (dirty) {
start = start == -1 ? x : start;
} else if (start != -1) {
spans.add(DirtySpan(start: start, end: x));
start = -1;
}
}
if (start != -1) {
spans.add(DirtySpan(start: start, end: rowWidth));
}
return spans;
}