I have a 128x32 display that shows scrolling mountains and 3 layers of stars in the background. I take the 4 layers of scenery and merge them into a 2D array, then I copy this the Canvas one pixel at a time.
for x in range (0,HatWidth):
for y in range (0,HatHeight):
r,g,b = rgb = FinalLayer[y][x]
Canvas.SetPixel(x,y,r,g,b)
This looping works great on a 64x32 display, but when I double the width to 128 it is noticeably slower.
I do that in C++ pixel by pixel and it’s fast enough that I didn’t really notice the slowdown, if any, but I agree it would be nice if the were a way to feed an entire line at a time.