From dd7595a3475407a7fa96a97393bae8c5220e8762 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Wed, 4 Jan 2012 18:41:13 +1000 Subject: Add the base Enlightenment Foundation Libraries - eina, eet, evas, ecore, embryo, and edje. Note that embryo wont be used, but I'm not sure yet if you can build edje without it. --- .../src/lib/engines/common/evas_convert_rgb_24.c | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 libraries/evas/src/lib/engines/common/evas_convert_rgb_24.c (limited to 'libraries/evas/src/lib/engines/common/evas_convert_rgb_24.c') diff --git a/libraries/evas/src/lib/engines/common/evas_convert_rgb_24.c b/libraries/evas/src/lib/engines/common/evas_convert_rgb_24.c new file mode 100644 index 0000000..9efa006 --- /dev/null +++ b/libraries/evas/src/lib/engines/common/evas_convert_rgb_24.c @@ -0,0 +1,89 @@ +#include "evas_common.h" +#include "evas_convert_rgb_24.h" + +#ifdef BUILD_CONVERT_24_RGB_888 +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 __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __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; +} +#endif +#ifdef BUILD_CONVERT_24_RGB_666 +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 __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __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; +} +#endif +#ifdef BUILD_CONVERT_24_BGR_888 +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 __UNUSED__, int dith_y __UNUSED__, DATA8 *pal __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; +} +#endif -- cgit v1.1