forked from enlightenment/efl
86 lines
2.0 KiB
C
86 lines
2.0 KiB
C
#include "evas_common.h"
|
|
#include "evas_convert_rgb_24.h"
|
|
|
|
void
|
|
evas_common_convert_rgba_to_24bpp_rgb_888(DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x EINA_UNUSED, int dith_y EINA_UNUSED, DATA8 *pal EINA_UNUSED)
|
|
{
|
|
DATA32 *src_ptr;
|
|
DATA8 *dst_ptr;
|
|
int x, y;
|
|
|
|
dst_ptr = (DATA8 *)dst;
|
|
src_ptr = (DATA32 *)src;
|
|
|
|
for (y = 0; y < h; y++)
|
|
{
|
|
for (x = 0; x < w; x++)
|
|
{
|
|
dst_ptr[0] = R_VAL(src_ptr);
|
|
dst_ptr[1] = G_VAL(src_ptr);
|
|
dst_ptr[2] = B_VAL(src_ptr);
|
|
src_ptr++;
|
|
dst_ptr+=3;
|
|
}
|
|
src_ptr += src_jump;
|
|
dst_ptr += (dst_jump * 3);
|
|
}
|
|
return;
|
|
}
|
|
|
|
void
|
|
evas_common_convert_rgba_to_24bpp_rgb_666(DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x EINA_UNUSED, int dith_y EINA_UNUSED, DATA8 *pal EINA_UNUSED)
|
|
{
|
|
DATA32 *src_ptr;
|
|
DATA8 *dst_ptr, *scratch_ptr;
|
|
DATA32 scratch;
|
|
int x, y;
|
|
|
|
dst_ptr = (DATA8 *)dst;
|
|
src_ptr = (DATA32 *)src;
|
|
|
|
scratch_ptr = (DATA8 *)(&scratch);
|
|
for (y = 0; y < h; y++)
|
|
{
|
|
for (x = 0; x < w; x++)
|
|
{
|
|
scratch =
|
|
(((R_VAL(src_ptr) << 12) | (B_VAL(src_ptr) >> 2)) & 0x03f03f) |
|
|
((G_VAL(src_ptr) << 4) & 0x000fc0);
|
|
dst_ptr[0] = scratch_ptr[1];
|
|
dst_ptr[1] = scratch_ptr[2];
|
|
dst_ptr[2] = scratch_ptr[3];
|
|
src_ptr++;
|
|
dst_ptr+=3;
|
|
}
|
|
src_ptr += src_jump;
|
|
dst_ptr += (dst_jump * 3);
|
|
}
|
|
return;
|
|
}
|
|
|
|
void
|
|
evas_common_convert_rgba_to_24bpp_bgr_888(DATA32 *src, DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x EINA_UNUSED, int dith_y EINA_UNUSED, DATA8 *pal EINA_UNUSED)
|
|
{
|
|
DATA32 *src_ptr;
|
|
DATA8 *dst_ptr;
|
|
int x, y;
|
|
|
|
dst_ptr = (DATA8 *)dst;
|
|
src_ptr = (DATA32 *)src;
|
|
|
|
for (y = 0; y < h; y++)
|
|
{
|
|
for (x = 0; x < w; x++)
|
|
{
|
|
dst_ptr[2] = R_VAL(src_ptr);
|
|
dst_ptr[1] = G_VAL(src_ptr);
|
|
dst_ptr[0] = B_VAL(src_ptr);
|
|
src_ptr++;
|
|
dst_ptr+=3;
|
|
}
|
|
src_ptr += src_jump;
|
|
dst_ptr += (dst_jump * 3);
|
|
}
|
|
return;
|
|
}
|