Testing on other devices needed this fix, but i dont know why because the pixels should be overwritten,
bool OpenGLFrameBuffer::initialise (OpenGLContext& context, const Image& image) { if (! image.isARGB()) return initialise (context, image.convertedToFormat (Image::ARGB)); Image::BitmapData bitmap (image, Image::BitmapData::readOnly); bool v = initialise (context, bitmap.width, bitmap.height); if (v) { clear (Colours::transparentBlack); // fix but why? v = writePixels ((const PixelARGB*) bitmap.data, image.getBounds()); } return v; }
This fixes corruption in the alpha channel.