- uint8_t *d = *buffer;
- int stride = cairo_format_stride_for_width( CAIRO_FORMAT_ARGB32, swfdec->width );
- int y;
- for ( y = 0; y < swfdec->height; y++ )
- {
- int x = swfdec->width + 1;
- uint32_t *s = ( uint32_t* )( image + stride * y );
- while ( --x )
- {
- // Cairo uses 32 bit native endian
- *d++ = *s >> 16; // R
- *d++ = *s >> 8; // G
- *d++ = *s & 0xFF; // B
- *d++ = *s >> 24; // A
- s++;
- }
- }
+
+ // Convert to RGBA
+ bgra_to_rgba( image, *buffer, swfdec->width, swfdec->height );