The intended happy path of converting to BGR888/ABGR8888 if image.format.BytesPerPixel
is 3 or 4 is not reached. Instead, this is the default execution path. It seems like BPP=3 will not do any conversion, or incorrectly as ABGR if Rshift>Bshift.
fmt = 'rgb'
if fmt not in ('rgb', 'rgba'): # <------- suspect "not"
if fmt == 'rgb':
https://github.com/kivy/kivy/blob/1.10.0/kivy/core/image/_img_sdl2.pyx#L63-L64
I was drunk? O_o
@tito do you remember the purpose of the Rshift>Bshift test? Handle bgr, or some endian-issue, or something else?
I've rewritten this function, will finalize & submit a pr, maybe easier to discuss that
I think it was an endian issue on iOS/android.
Most helpful comment
I was drunk? O_o