#include "cspace.h"
+/*
+ * note: these are intended for testing and should be avoided
+ * in favor of NEON version or platform-specific conversion
+ */
+
void bgr555_to_rgb565(void *dst_, const void *src_, int bytes)
{
- unsigned int *src = (unsigned int *)src_;
- unsigned int *dst = (unsigned int *)dst_;
+ const unsigned int *src = src_;
+ unsigned int *dst = dst_;
unsigned int p;
int x;
}
}
+void bgr888_to_rgb565(void *dst_, const void *src_, int bytes)
+{
+ const unsigned char *src = src_;
+ unsigned int *dst = dst_;
+ unsigned int r1, g1, b1, r2, g2, b2;
+
+ for (; bytes >= 6; bytes -= 6, src += 6, dst++) {
+ r1 = src[0] & 0xf8;
+ g1 = src[1] & 0xfc;
+ b1 = src[2] & 0xf8;
+ r2 = src[3] & 0xf8;
+ g2 = src[4] & 0xfc;
+ b2 = src[5] & 0xf8;
+ *dst = (r2 << 24) | (g2 << 19) | (b2 << 13) |
+ (r1 << 8) | (g1 << 3) | (b1 >> 3);
+ }
+}
+
// TODO?
+void rgb888_to_rgb565(void *dst, const void *src, int bytes) {}
void bgr888_to_rgb888(void *dst, const void *src, int bytes) {}
-void bgr888_to_rgb565(void *dst, const void *src, int bytes) {}