X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Fcspace.c;h=26f311ffdb68db753d71b5794e7702cf46a2bc5b;hb=8fb0f7c5551ed450ef3ed56615e0d86f1b56739d;hp=f0c491266ffcef63efc9d5a6b878d326b7ae8c9e;hpb=c82f907a99f7d0d3071471489d247f4b4394a8b7;p=pcsx_rearmed.git diff --git a/frontend/cspace.c b/frontend/cspace.c index f0c49126..26f311ff 100644 --- a/frontend/cspace.c +++ b/frontend/cspace.c @@ -15,7 +15,7 @@ * in favor of NEON version or platform-specific conversion */ -#ifndef __ARM_NEON__ +#ifndef __arm__ void bgr555_to_rgb565(void *dst_, const void *src_, int bytes) { @@ -32,6 +32,32 @@ void bgr555_to_rgb565(void *dst_, const void *src_, int bytes) } } +#endif + +#ifndef __ARM64__ + +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); + } +} + +#endif + +#ifndef __ARM_NEON__ + void bgr888_to_rgb565(void *dst_, const void *src_, int bytes) { const unsigned char *src = src_;