diff options
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.c | 34 |
1 files changed, 26 insertions, 8 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 index 28aaf16..fc25fd0 100644 --- a/libraries/evas/src/lib/engines/common/evas_rectangle_main.c +++ b/libraries/evas/src/lib/engines/common/evas_rectangle_main.c | |||
@@ -58,16 +58,34 @@ rectangle_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, in | |||
58 | RECTS_CLIP_TO_RECT(x, y, w, h, dc->clip.x, dc->clip.y, dc->clip.w, dc->clip.h); | 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; | 59 | if ((w <= 0) || (h <= 0)) return; |
60 | 60 | ||
61 | func = evas_common_gfx_func_composite_color_span_get(dc->col.col, dst, w, dc->render_op); | 61 | #ifdef HAVE_PIXMAN |
62 | ptr = dst->image.data + (y * dst->cache_entry.w) + x; | 62 | # ifdef PIXMAN_RECT |
63 | for (yy = 0; yy < h; yy++) | 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)) | ||
64 | { | 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 | { | ||
65 | #ifdef EVAS_SLI | 82 | #ifdef EVAS_SLI |
66 | if (((yy + y) % dc->sli.h) == dc->sli.y) | 83 | if (((yy + y) % dc->sli.h) == dc->sli.y) |
67 | #endif | 84 | #endif |
68 | { | 85 | { |
69 | func(NULL, NULL, dc->col.col, ptr, w); | 86 | func(NULL, NULL, dc->col.col, ptr, w); |
70 | } | 87 | } |
71 | ptr += dst->cache_entry.w; | 88 | ptr += dst->cache_entry.w; |
89 | } | ||
72 | } | 90 | } |
73 | } | 91 | } |