aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/lib/engines/common/evas_convert_rgb_24.c
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-04 18:41:13 +1000
committerDavid Walter Seikel2012-01-04 18:41:13 +1000
commitdd7595a3475407a7fa96a97393bae8c5220e8762 (patch)
treee341e911d7eb911a51684a7412ef7f7c7605d28e /libraries/evas/src/lib/engines/common/evas_convert_rgb_24.c
parentAdd the skeleton. (diff)
downloadSledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.zip
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.gz
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.bz2
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.xz
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.
Diffstat (limited to 'libraries/evas/src/lib/engines/common/evas_convert_rgb_24.c')
-rw-r--r--libraries/evas/src/lib/engines/common/evas_convert_rgb_24.c89
1 files changed, 89 insertions, 0 deletions
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 @@
1#include "evas_common.h"
2#include "evas_convert_rgb_24.h"
3
4#ifdef BUILD_CONVERT_24_RGB_888
5void
6evas_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__)
7{
8 DATA32 *src_ptr;
9 DATA8 *dst_ptr;
10 int x, y;
11
12 dst_ptr = (DATA8 *)dst;
13 src_ptr = (DATA32 *)src;
14
15 for (y = 0; y < h; y++)
16 {
17 for (x = 0; x < w; x++)
18 {
19 dst_ptr[0] = R_VAL(src_ptr);
20 dst_ptr[1] = G_VAL(src_ptr);
21 dst_ptr[2] = B_VAL(src_ptr);
22 src_ptr++;
23 dst_ptr+=3;
24 }
25 src_ptr += src_jump;
26 dst_ptr += (dst_jump * 3);
27 }
28 return;
29}
30#endif
31#ifdef BUILD_CONVERT_24_RGB_666
32void
33evas_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__)
34{
35 DATA32 *src_ptr;
36 DATA8 *dst_ptr, *scratch_ptr;
37 DATA32 scratch;
38 int x, y;
39
40 dst_ptr = (DATA8 *)dst;
41 src_ptr = (DATA32 *)src;
42
43 scratch_ptr = (DATA8 *)(&scratch);
44 for (y = 0; y < h; y++)
45 {
46 for (x = 0; x < w; x++)
47 {
48 scratch =
49 (((R_VAL(src_ptr) << 12) | (B_VAL(src_ptr) >> 2)) & 0x03f03f) |
50 ((G_VAL(src_ptr) << 4) & 0x000fc0);
51 dst_ptr[0] = scratch_ptr[1];
52 dst_ptr[1] = scratch_ptr[2];
53 dst_ptr[2] = scratch_ptr[3];
54 src_ptr++;
55 dst_ptr+=3;
56 }
57 src_ptr += src_jump;
58 dst_ptr += (dst_jump * 3);
59 }
60 return;
61}
62#endif
63#ifdef BUILD_CONVERT_24_BGR_888
64void
65evas_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__)
66{
67 DATA32 *src_ptr;
68 DATA8 *dst_ptr;
69 int x, y;
70
71 dst_ptr = (DATA8 *)dst;
72 src_ptr = (DATA32 *)src;
73
74 for (y = 0; y < h; y++)
75 {
76 for (x = 0; x < w; x++)
77 {
78 dst_ptr[2] = R_VAL(src_ptr);
79 dst_ptr[1] = G_VAL(src_ptr);
80 dst_ptr[0] = B_VAL(src_ptr);
81 src_ptr++;
82 dst_ptr+=3;
83 }
84 src_ptr += src_jump;
85 dst_ptr += (dst_jump * 3);
86 }
87 return;
88}
89#endif