X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=linux%2Fblit.c;h=fbaac03ff92eea42564003d1ce91b84366528b21;hb=e99d80480196f551f7e6c06deae3750de19b4c0e;hp=a4981d9fc703f95ca3a389931c5ba4000284010f;hpb=720ee7f6244cb51cc123a7fd16832161db9a3b4d;p=libpicofe.git diff --git a/linux/blit.c b/linux/blit.c index a4981d9..fbaac03 100644 --- a/linux/blit.c +++ b/linux/blit.c @@ -1,38 +1,38 @@ // Convert 0000bbb0 ggg0rrr0 0000bbb0 ggg0rrr0 // to 00000000 rrr00000 ggg00000 bbb00000 ... +// TODO: rm when gp2x/emu.c is no longer used -void vidConvCpyRGB32 (void *to, void *from, int pixels) +void bgr444_to_rgb32(void *to, void *from) { unsigned short *ps = from; unsigned int *pd = to; + int pixels; - for (; pixels; pixels--, ps++, pd++) + for (pixels = 0x40; pixels; pixels--, ps++, pd++) { *pd = ((*ps<<20)&0xe00000) | ((*ps<<8)&0xe000) | ((*ps>>4)&0xe0); *pd |= *pd >> 3; } } -void vidConvCpyRGB32sh(void *to, void *from, int pixels) +void bgr444_to_rgb32_sh(void *to, void *from) { unsigned short *ps = from; unsigned int *pd = to; + int pixels; - for (; pixels; pixels--, ps++, pd++) + pd += 0x40; + for (pixels = 0x40; pixels; pixels--, ps++, pd++) { *pd = ((*ps<<20)&0xe00000) | ((*ps<<8)&0xe000) | ((*ps>>4)&0xe0); *pd >>= 1; *pd |= *pd >> 3; + pd[0x40*2] = *pd; } -} -void vidConvCpyRGB32hi(void *to, void *from, int pixels) -{ - unsigned short *ps = from; - unsigned int *pd = to; - - for (; pixels; pixels--, ps++, pd++) + ps -= 0x40; + for (pixels = 0x40; pixels; pixels--, ps++, pd++) { *pd = ((*ps<<20)&0xe00000) | ((*ps<<8)&0xe000) | ((*ps>>4)&0xe0); continue; @@ -45,37 +45,39 @@ void vidConvCpyRGB32hi(void *to, void *from, int pixels) } } -void vidCpyM2_40col(void *dest, void *src) +void vidcpy_m2(void *dest, void *src, int m32col, int with_32c_border) { unsigned char *pd = dest, *ps = src; int i, u; - for (i = 0; i < 224; i++) - { - ps += 8; - for (u = 0; u < 320; u++) - *pd++ = *ps++; + if (m32col) { + for (i = 0; i < 224; i++) + { + ps += 8; + pd += 32; + for (u = 0; u < 256; u++) + *pd++ = *ps++; + ps += 64; + pd += 32; + } + } else { + for (i = 0; i < 224; i++) + { + ps += 8; + for (u = 0; u < 320; u++) + *pd++ = *ps++; + } } } -void vidCpyM2_32col(void *dest, void *src) +void vidcpy_m2_rot(void *dest, void *src, int m32col, int with_32c_border) { - unsigned char *pd = dest, *ps = src; - int i, u; - - for (i = 0; i < 224; i++) - { - ps += 8; - pd += 32; - for (u = 0; u < 256; u++) - *pd++ = *ps++; - ps += 64; - pd += 32; - } } -void vidCpyM2_32col_nobord(void *dest, void *src) +void rotated_blit8 (void *dst, void *linesx4, int y, int is_32col) { - vidCpyM2_32col(dest, src); } +void rotated_blit16(void *dst, void *linesx4, int y, int is_32col) +{ +}