move blit to core, allow filtering while blitting
[pcsx_rearmed.git] / plugins / gpulib / cspace.c
CommitLineData
a80ae4a0 1#include "cspace.h"
2
4ea7de6a 3/*
4 * note: these are intended for testing and should be avoided
5 * in favor of NEON version or platform-specific conversion
6 */
7
55b0eeea 8void bgr555_to_rgb565(void *dst_, const void *src_, int bytes)
9{
4ea7de6a 10 const unsigned int *src = src_;
11 unsigned int *dst = dst_;
55b0eeea 12 unsigned int p;
13 int x;
14
15 for (x = 0; x < bytes / 4; x++) {
16 p = src[x];
17 p = ((p & 0x7c007c00) >> 10) | ((p & 0x03e003e0) << 1)
18 | ((p & 0x001f001f) << 11);
19 dst[x] = p;
20 }
21}
22
4ea7de6a 23void bgr888_to_rgb565(void *dst_, const void *src_, int bytes)
24{
25 const unsigned char *src = src_;
26 unsigned int *dst = dst_;
27 unsigned int r1, g1, b1, r2, g2, b2;
28
29 for (; bytes >= 6; bytes -= 6, src += 6, dst++) {
30 r1 = src[0] & 0xf8;
31 g1 = src[1] & 0xfc;
32 b1 = src[2] & 0xf8;
33 r2 = src[3] & 0xf8;
34 g2 = src[4] & 0xfc;
35 b2 = src[5] & 0xf8;
36 *dst = (r2 << 24) | (g2 << 19) | (b2 << 13) |
37 (r1 << 8) | (g1 << 3) | (b1 >> 3);
38 }
39}
40
a80ae4a0 41// TODO?
00a5d459 42void rgb888_to_rgb565(void *dst, const void *src, int bytes) {}
a80ae4a0 43void bgr888_to_rgb888(void *dst, const void *src, int bytes) {}
a80ae4a0 44