aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/lib/engines/common/evas_rectangle_main.c
diff options
context:
space:
mode:
authorDavid Walter Seikel2013-01-13 17:29:19 +1000
committerDavid Walter Seikel2013-01-13 17:29:19 +1000
commit07274513e984f0b5544586c74508ccd16e7dcafa (patch)
treeb32ff2a9136fbc1a4a6a0ed1e4d79cde0f5f16d9 /libraries/evas/src/lib/engines/common/evas_rectangle_main.c
parentAdded Irrlicht 1.8, but without all the Windows binaries. (diff)
downloadSledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.zip
SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.gz
SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.bz2
SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.xz
Remove EFL, since it's been released now.
Diffstat (limited to 'libraries/evas/src/lib/engines/common/evas_rectangle_main.c')
-rw-r--r--libraries/evas/src/lib/engines/common/evas_rectangle_main.c91
1 files changed, 0 insertions, 91 deletions
diff --git a/libraries/evas/src/lib/engines/common/evas_rectangle_main.c b/libraries/evas/src/lib/engines/common/evas_rectangle_main.c
deleted file mode 100644
index fc25fd0..0000000
--- a/libraries/evas/src/lib/engines/common/evas_rectangle_main.c
+++ /dev/null
@@ -1,91 +0,0 @@
1#include "evas_common.h"
2#include "evas_blend_private.h"
3
4static void rectangle_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h);
5
6EAPI void
7evas_common_rectangle_init(void)
8{
9}
10
11EAPI void
12evas_common_rectangle_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h)
13{
14 Cutout_Rects *rects;
15 Cutout_Rect *r;
16 int c, cx, cy, cw, ch;
17 int i;
18 /* handle cutouts here! */
19
20 if ((w <= 0) || (h <= 0)) return;
21 if (!(RECTS_INTERSECT(x, y, w, h, 0, 0, dst->cache_entry.w, dst->cache_entry.h)))
22 return;
23 /* save out clip info */
24 c = dc->clip.use; cx = dc->clip.x; cy = dc->clip.y; cw = dc->clip.w; ch = dc->clip.h;
25 evas_common_draw_context_clip_clip(dc, 0, 0, dst->cache_entry.w, dst->cache_entry.h);
26 /* no cutouts - cut right to the chase */
27 if (!dc->cutout.rects)
28 {
29 rectangle_draw_internal(dst, dc, x, y, w, h);
30 }
31 else
32 {
33 evas_common_draw_context_clip_clip(dc, x, y, w, h);
34 /* our clip is 0 size.. abort */
35 if ((dc->clip.w > 0) && (dc->clip.h > 0))
36 {
37 rects = evas_common_draw_context_apply_cutouts(dc);
38 for (i = 0; i < rects->active; ++i)
39 {
40 r = rects->rects + i;
41 evas_common_draw_context_set_clip(dc, r->x, r->y, r->w, r->h);
42 rectangle_draw_internal(dst, dc, x, y, w, h);
43 }
44 evas_common_draw_context_apply_clear_cutouts(rects);
45 }
46 }
47 /* restore clip info */
48 dc->clip.use = c; dc->clip.x = cx; dc->clip.y = cy; dc->clip.w = cw; dc->clip.h = ch;
49}
50
51static void
52rectangle_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h)
53{
54 RGBA_Gfx_Func func;
55 int yy;
56 DATA32 *ptr;
57
58 RECTS_CLIP_TO_RECT(x, y, w, h, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h);
59 if ((w <= 0) || (h <= 0)) return;
60
61#ifdef HAVE_PIXMAN
62# ifdef PIXMAN_RECT
63 pixman_op_t op = PIXMAN_OP_SRC; // _EVAS_RENDER_COPY
64
65 if (dc->render_op == _EVAS_RENDER_BLEND)
66 op = PIXMAN_OP_OVER;
67
68 if ((dst->pixman.im) && (dc->col.pixman_color_image))
69 {
70 pixman_image_composite(op, dc->col.pixman_color_image, NULL,
71 dst->pixman.im, x, y, 0, 0,
72 x, y, w, h);
73 }
74 else
75# endif
76#endif
77 {
78 func = evas_common_gfx_func_composite_color_span_get(dc->col.col, dst, w, dc->render_op);
79 ptr = dst->image.data + (y * dst->cache_entry.w) + x;
80 for (yy = 0; yy < h; yy++)
81 {
82#ifdef EVAS_SLI
83 if (((yy + y) % dc->sli.h) == dc->sli.y)
84#endif
85 {
86 func(NULL, NULL, dc->col.col, ptr, w);
87 }
88 ptr += dst->cache_entry.w;
89 }
90 }
91}