Principal change here is the addition of different RGB byte orders, to provide compatibility with the initial batch of STEMMA QT matrices and also future-proof against possible future changes to RGB LED pinouts. All of the high-level class constructors (ISSI_EVB, Adafruit_RGBMatrixQT and LED_Glasses) accept an optional “order” argument, with a similar color order to the Arduino library:
`matrix = Adafruit_RGBMatrixQT(i2c, order = adafruit_is31fl3741.IS3741_RBG)`
The **default** order if unspecified is **IS3741_BGR**, compatible with ISSI eval board, currently-shipping QT matrices, and EyeLights glasses.
The initial batch of QT matrices had a different type of LED: use **IS3741_RBG** there.
Tested against Arduino library, all color orders work similarly, both in direct and buffered modes.
Additional change is that in CircuitPython the image() function accepts a FrameBuffer object. Since the IS31 library itself doesn’t provide any drawing primitives, one can use adafruit_framebuffer instead, then image() the result to the RGB matrix. It’s primitive and doesn’t trap mismatches — the FrameBuffer and matrix need to be the same size — but it’s a start.
Additionally, the pixel-setter function may be a smidge faster now, some bounds checks weren’t necessary.