mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 07:17:45 -04:00
add big endian platform support
This commit is contained in:
parent
b053cb2044
commit
57c5a5e505
21 changed files with 224 additions and 178 deletions
|
@ -19,7 +19,7 @@
|
|||
#include "plat_sdl.h"
|
||||
#include "version.h"
|
||||
|
||||
#include <pico/pico.h>
|
||||
#include <pico/pico_int.h>
|
||||
|
||||
static void *shadow_fb;
|
||||
|
||||
|
@ -73,7 +73,11 @@ void bgr_to_uyvy_init(void)
|
|||
int r = (i >> 11) & 0x1f, g = (i >> 6) & 0x1f, b = (i >> 0) & 0x1f;
|
||||
int y = (yuv_ry[r] + yuv_gy[g] + yuv_by[b]) >> 16;
|
||||
yuv_uyvy[i].y = yuv_y[y];
|
||||
#if CPU_IS_LE
|
||||
yuv_uyvy[i].vyu = (yuv_v[r-y + 32] << 16) | (yuv_y[y] << 8) | yuv_u[b-y + 32];
|
||||
#else
|
||||
yuv_uyvy[i].vyu = (yuv_v[b-y + 32] << 16) | (yuv_y[y] << 8) | yuv_u[r-y + 32];
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -87,17 +91,29 @@ void rgb565_to_uyvy(void *d, const void *s, int pixels, int x2)
|
|||
{
|
||||
struct uyvy *uyvy0 = yuv_uyvy + src[0], *uyvy1 = yuv_uyvy + src[1];
|
||||
struct uyvy *uyvy2 = yuv_uyvy + src[2], *uyvy3 = yuv_uyvy + src[3];
|
||||
#if CPU_IS_LE
|
||||
dst[0] = (uyvy0->y << 24) | uyvy0->vyu;
|
||||
dst[1] = (uyvy1->y << 24) | uyvy1->vyu;
|
||||
dst[2] = (uyvy2->y << 24) | uyvy2->vyu;
|
||||
dst[3] = (uyvy3->y << 24) | uyvy3->vyu;
|
||||
#else
|
||||
dst[0] = uyvy0->y | (uyvy0->vyu << 8);
|
||||
dst[1] = uyvy1->y | (uyvy1->vyu << 8);
|
||||
dst[2] = uyvy2->y | (uyvy2->vyu << 8);
|
||||
dst[3] = uyvy3->y | (uyvy3->vyu << 8);
|
||||
#endif
|
||||
} else
|
||||
for (; pixels > 0; src += 4, dst += 2, pixels -= 4)
|
||||
{
|
||||
struct uyvy *uyvy0 = yuv_uyvy + src[0], *uyvy1 = yuv_uyvy + src[1];
|
||||
struct uyvy *uyvy2 = yuv_uyvy + src[2], *uyvy3 = yuv_uyvy + src[3];
|
||||
#if CPU_IS_LE
|
||||
dst[0] = (uyvy1->y << 24) | uyvy0->vyu;
|
||||
dst[1] = (uyvy3->y << 24) | uyvy2->vyu;
|
||||
#else
|
||||
dst[0] = uyvy1->y | (uyvy0->vyu << 8);
|
||||
dst[1] = uyvy3->y | (uyvy2->vyu << 8);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue