v += dv_row
rowu += du_col
rowv += dv_col
+
+
+def arrayblit(
+ bitmap: Bitmap,
+ data: circuitpython_typing.ReadableBuffer,
+ x1: int = 0, y1: int = 0,
+ x2: int | None = None, y2: int | None = None,
+ skip_index: int | None = None):
+
+ if x2 is None:
+ x2 = bitmap.width
+ if y2 is None:
+ y2 = bitmap.height
+
+ _value_count = 2 ** bitmap._bits_per_value
+ for y in range(y1, y2):
+ for x in range(x1, x2):
+ i = y * (x2 - x1) + x
+ value = int(data[i] % _value_count)
+ if skip_index is None or value != skip_index:
+ bitmap[x, y] = value