diff options
author | David Walter Seikel | 2012-01-04 18:41:13 +1000 |
---|---|---|
committer | David Walter Seikel | 2012-01-04 18:41:13 +1000 |
commit | dd7595a3475407a7fa96a97393bae8c5220e8762 (patch) | |
tree | e341e911d7eb911a51684a7412ef7f7c7605d28e /libraries/evas/src/lib/canvas/evas_rectangle.c | |
parent | Add the skeleton. (diff) | |
download | SledjHamr-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/canvas/evas_rectangle.c')
-rw-r--r-- | libraries/evas/src/lib/canvas/evas_rectangle.c | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/libraries/evas/src/lib/canvas/evas_rectangle.c b/libraries/evas/src/lib/canvas/evas_rectangle.c new file mode 100644 index 0000000..da6b701 --- /dev/null +++ b/libraries/evas/src/lib/canvas/evas_rectangle.c | |||
@@ -0,0 +1,98 @@ | |||
1 | #include "evas_common.h" | ||
2 | #include "evas_private.h" | ||
3 | |||
4 | void | ||
5 | evas_rects_return_difference_rects(Eina_Array *rects, int x, int y, int w, int h, int xx, int yy, int ww, int hh) | ||
6 | { | ||
7 | if (!RECTS_INTERSECT(x, y, w, h, xx, yy, ww, hh)) | ||
8 | { | ||
9 | evas_add_rect(rects, x, y, w, h); | ||
10 | evas_add_rect(rects, xx, yy, ww, hh); | ||
11 | } | ||
12 | else | ||
13 | { | ||
14 | int pt_x[4], pt_y[4], i, j; | ||
15 | |||
16 | if (x < xx) | ||
17 | { | ||
18 | pt_x[0] = x; | ||
19 | pt_x[1] = xx; | ||
20 | } | ||
21 | else | ||
22 | { | ||
23 | pt_x[0] = xx; | ||
24 | pt_x[1] = x; | ||
25 | } | ||
26 | if ((x + w) < (xx + ww)) | ||
27 | { | ||
28 | pt_x[2] = x + w; | ||
29 | pt_x[3] = xx + ww; | ||
30 | } | ||
31 | else | ||
32 | { | ||
33 | pt_x[2] = xx + ww; | ||
34 | pt_x[3] = x + w; | ||
35 | } | ||
36 | if (y < yy) | ||
37 | { | ||
38 | pt_y[0] = y; | ||
39 | pt_y[1] = yy; | ||
40 | } | ||
41 | else | ||
42 | { | ||
43 | pt_y[0] = yy; | ||
44 | pt_y[1] = y; | ||
45 | } | ||
46 | if ((y + h) < (yy + hh)) | ||
47 | { | ||
48 | pt_y[2] = y + h; | ||
49 | pt_y[3] = yy + hh; | ||
50 | } | ||
51 | else | ||
52 | { | ||
53 | pt_y[2] = yy + hh; | ||
54 | pt_y[3] = y + h; | ||
55 | } | ||
56 | for (j = 0; j < 3; j++) | ||
57 | { | ||
58 | for (i = 0; i < 3; i++) | ||
59 | { | ||
60 | int intsec1, intsec2; | ||
61 | int tx, ty, tw, th; | ||
62 | |||
63 | tx = pt_x[i]; | ||
64 | ty = pt_y[j]; | ||
65 | tw = pt_x[i + 1] - pt_x[i]; | ||
66 | th = pt_y[j + 1] - pt_y[j]; | ||
67 | |||
68 | intsec1 = (RECTS_INTERSECT(tx, ty, tw, th, x, y, w, h)); | ||
69 | intsec2 = (RECTS_INTERSECT(tx, ty, tw, th, xx, yy, ww, hh)); | ||
70 | if (intsec1 ^ intsec2) | ||
71 | { | ||
72 | evas_add_rect(rects, tx, ty, tw, th); | ||
73 | } | ||
74 | } | ||
75 | } | ||
76 | /* if (tmp.count > 0) */ | ||
77 | /* { */ | ||
78 | /* unsigned int i; */ | ||
79 | |||
80 | /* for (i = 0; i < tmp.count; ++i) */ | ||
81 | /* { */ | ||
82 | /* if ((tmp.array[i].w > 0) && (tmp.array[i].h > 0)) */ | ||
83 | /* { */ | ||
84 | /* int intsec1, intsec2; */ | ||
85 | |||
86 | /* intsec1 = (RECTS_INTERSECT(tmp.array[i].x, tmp.array[i].y, tmp.array[i].w, tmp.array[i].h, x, y, w, h)); */ | ||
87 | /* intsec2 = (RECTS_INTERSECT(tmp.array[i].x, tmp.array[i].y, tmp.array[i].w, tmp.array[i].h, xx, yy, ww, hh)); */ | ||
88 | /* if (intsec1 ^ intsec2) */ | ||
89 | /* { */ | ||
90 | /* evas_add_rect(rects, tmp.array[i].x, tmp.array[i].y, tmp.array[i].w, tmp.array[i].h); */ | ||
91 | /* } */ | ||
92 | /* } */ | ||
93 | /* } */ | ||
94 | /* free(tmp.array); */ | ||
95 | /* } */ | ||
96 | |||
97 | } | ||
98 | } | ||