diff options
author | Twinaphex | 2017-12-16 17:03:43 +0100 |
---|---|---|
committer | GitHub | 2017-12-16 17:03:43 +0100 |
commit | ec665d133f4973be8a03bc3066a94c2d9de1d8ee (patch) | |
tree | dfdfb70758b40b744dbd7b01b89909c24e05989d /frontend/cspace.c | |
parent | 4324dede86cdca94a697fe06040cbc3df154f58a (diff) | |
parent | 72b80d66dbdec3a4aae2d631dd9f0e930435f315 (diff) | |
download | pcsx_rearmed-ec665d133f4973be8a03bc3066a94c2d9de1d8ee.tar.gz pcsx_rearmed-ec665d133f4973be8a03bc3066a94c2d9de1d8ee.tar.bz2 pcsx_rearmed-ec665d133f4973be8a03bc3066a94c2d9de1d8ee.zip |
Merge pull request #146 from hevey/master
iOS Compilation Updates
Diffstat (limited to 'frontend/cspace.c')
-rw-r--r-- | frontend/cspace.c | 50 |
1 files changed, 36 insertions, 14 deletions
diff --git a/frontend/cspace.c b/frontend/cspace.c index 33a981d..55d4ac6 100644 --- a/frontend/cspace.c +++ b/frontend/cspace.c @@ -34,24 +34,46 @@ void bgr555_to_rgb565(void *dst_, const void *src_, int bytes) #endif +#ifdef __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_; - 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); - } + 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? |