+static uint32_t flipendian32(uint32_t val)
+{
+ return ((val >> 24) & 0xFF) << 0
+ | ((val >> 16) & 0xFF) << 8
+ | ((val >> 8) & 0xFF) << 16
+ | ((val >> 0) & 0xFF) << 24;
+}
+
+static void flip_buffer_endian(void *Data, size_t SampleSize, size_t Pixels)
+{
+ if( SampleSize == 3 )
+ return ;
+
+ if( SampleSize == 4 )
+ {
+ uint32_t *data32 = Data;
+ while( Pixels -- ) {
+ *data32 = flipendian32(*data32);
+ data32 ++;
+ }
+ }
+}
+