summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChunEon Park <hermet@hermet.pe.kr>2014-11-26 12:22:55 +0900
committerChunEon Park <hermet@hermet.pe.kr>2014-11-26 12:22:55 +0900
commit215b52ecc108b2b13814534d75565152e8c0973a (patch)
tree9d0864d0a403d66e50f8ece399565e947ea746cb
parentd3d306ec5cca2023c0612106d3990d63794c6279 (diff)
downloadefl-215b52ecc108b2b13814534d75565152e8c0973a.tar.gz
evas/map : set antialias context for map rendering.
-rw-r--r--src/lib/evas/canvas/evas_object_image.c3
-rw-r--r--src/lib/evas/canvas/evas_object_rectangle.c2
-rw-r--r--src/lib/evas/common/evas_map_image.c36
-rw-r--r--src/lib/evas/common/evas_map_image.h2
-rw-r--r--src/lib/evas/common/evas_map_image_internal.c4
-rw-r--r--src/lib/evas/common/evas_pipe.c4
-rw-r--r--src/modules/evas/engines/software_generic/evas_engine.c4
7 files changed, 35 insertions, 20 deletions
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index 03f422d0ba..fdd716147e 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -2718,7 +2718,8 @@ evas_draw_image_map_async_check(Evas_Object_Protected_Data *obj,
Eina_Bool do_async)
{
Eina_Bool async_unref;
-
+ obj->layer->evas->engine.func->context_anti_alias_set(data, context,
+ obj->cur->anti_alias);
async_unref = ENFN->image_map_draw(data, context,
surface, image, m,
smooth, level,
diff --git a/src/lib/evas/canvas/evas_object_rectangle.c b/src/lib/evas/canvas/evas_object_rectangle.c
index 3633bc001a..9454a3dcac 100644
--- a/src/lib/evas/canvas/evas_object_rectangle.c
+++ b/src/lib/evas/canvas/evas_object_rectangle.c
@@ -127,6 +127,8 @@ evas_object_rectangle_render(Evas_Object *eo_obj EINA_UNUSED,
obj->cur->cache.clip.g,
obj->cur->cache.clip.b,
obj->cur->cache.clip.a);
+ obj->layer->evas->engine.func->context_anti_alias_set(output, context,
+ obj->cur->anti_alias);
obj->layer->evas->engine.func->context_multiplier_unset(output,
context);
obj->layer->evas->engine.func->context_render_op_set(output, context,
diff --git a/src/lib/evas/common/evas_map_image.c b/src/lib/evas/common/evas_map_image.c
index 01573d2c95..0fa1f6c182 100644
--- a/src/lib/evas/common/evas_map_image.c
+++ b/src/lib/evas/common/evas_map_image.c
@@ -668,7 +668,7 @@ void evas_common_map_rgba_internal_mmx(RGBA_Image *src, RGBA_Image *dst, RGBA_Dr
_evas_common_map_rgba_internal_mmx(src, dst,
clip_x, clip_y, clip_w, clip_h,
mul_col, dc->render_op,
- p, smooth, level);
+ p, smooth, dc->anti_alias, level);
}
#endif
@@ -696,7 +696,7 @@ void evas_common_map_rgba_internal(RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_C
_evas_common_map_rgba_internal(src, dst,
clip_x, clip_y, clip_w, clip_h,
mul_col, dc->render_op,
- p, smooth, level);
+ p, smooth, dc->anti_alias, level);
}
#ifdef BUILD_NEON
@@ -724,7 +724,7 @@ void evas_common_map_rgba_internal_neon(RGBA_Image *src, RGBA_Image *dst, RGBA_D
_evas_common_map_rgba_internal_neon(src, dst,
clip_x, clip_y, clip_w, clip_h,
mul_col, dc->render_op,
- p, smooth, level);
+ p, smooth, dc->anti_alias, level);
}
#endif
@@ -856,7 +856,7 @@ evas_common_map_rgba(RGBA_Image *src, RGBA_Image *dst,
}
EAPI void
-evas_common_map_rgba_draw(RGBA_Image *src, RGBA_Image *dst, int clip_x, int clip_y, int clip_w, int clip_h, DATA32 mul_col, int render_op, int npoints EINA_UNUSED, RGBA_Map_Point *p, int smooth, int level)
+evas_common_map_rgba_draw(RGBA_Image *src, RGBA_Image *dst, int clip_x, int clip_y, int clip_w, int clip_h, DATA32 mul_col, int render_op, int npoints EINA_UNUSED, RGBA_Map_Point *p, int smooth, Eina_Bool anti_alias, int level)
{
#ifdef BUILD_MMX
int mmx, sse, sse2;
@@ -866,7 +866,7 @@ evas_common_map_rgba_draw(RGBA_Image *src, RGBA_Image *dst, int clip_x, int clip
_evas_common_map_rgba_internal_mmx(src, dst,
clip_x, clip_y, clip_w, clip_h,
mul_col, render_op,
- p, smooth, level);
+ p, smooth, anti_alias, level);
else
#endif
#ifdef BUILD_NEON
@@ -874,13 +874,13 @@ evas_common_map_rgba_draw(RGBA_Image *src, RGBA_Image *dst, int clip_x, int clip
_evas_common_map_rgba_internal_neon(src, dst,
clip_x, clip_y, clip_w, clip_h,
mul_col, render_op,
- p, smooth, level);
+ p, smooth, anti_alias, level);
else
#endif
_evas_common_map_rgba_internal(src, dst,
clip_x, clip_y, clip_w, clip_h,
mul_col, render_op,
- p, smooth, level);
+ p, smooth, anti_alias, level);
}
EAPI void
@@ -912,17 +912,20 @@ evas_common_map_rgba_do(const Eina_Rectangle *clip,
#ifdef BUILD_MMX
if (mmx)
evas_common_map_rgba_internal_mmx_do(src, dst, dc,
- &spans->spans[0], smooth, level);
+ &spans->spans[0], smooth,
+ dc->anti_alias, level);
else
#endif
#ifdef BUILD_NEON
if (evas_common_cpu_has_feature(CPU_FEATURE_NEON))
evas_common_map_rgba_internal_neon_do(src, dst, dc,
- &spans->spans[0], smooth, level);
+ &spans->spans[0], smooth,
+ dc->anti_alias, level);
else
#endif
evas_common_map_rgba_internal_do(src, dst, dc,
- &spans->spans[0], smooth, level);
+ &spans->spans[0], smooth,
+ dc->anti_alias, level);
return;
}
@@ -935,17 +938,22 @@ evas_common_map_rgba_do(const Eina_Rectangle *clip,
evas_common_draw_context_set_clip(dc, area.x, area.y, area.w, area.h);
#ifdef BUILD_MMX
if (mmx)
- evas_common_map_rgba_internal_mmx_do(src, dst, dc,
- &spans->spans[i], smooth, level);
+ {
+ evas_common_map_rgba_internal_mmx_do(src, dst, dc,
+ &spans->spans[i], smooth,
+ dc->anti_alias, level);
+ }
else
#endif
#ifdef BUILD_NEON
if (evas_common_cpu_has_feature(CPU_FEATURE_NEON))
evas_common_map_rgba_internal_neon_do(src, dst, dc,
- &spans->spans[i], smooth, level);
+ &spans->spans[i], smooth,
+ dc->anti_alias, level);
else
#endif
evas_common_map_rgba_internal_do(src, dst, dc,
- &spans->spans[i], smooth, level);
+ &spans->spans[i], smooth,
+ dc->anti_alias, level);
}
}
diff --git a/src/lib/evas/common/evas_map_image.h b/src/lib/evas/common/evas_map_image.h
index a45b56a2bd..ff83650fe9 100644
--- a/src/lib/evas/common/evas_map_image.h
+++ b/src/lib/evas/common/evas_map_image.h
@@ -19,7 +19,7 @@ evas_common_map_rgba(RGBA_Image *src, RGBA_Image *dst,
int npoints, RGBA_Map_Point *points,
int smooth, int level);
-EAPI void evas_common_map_rgba_draw(RGBA_Image *src, RGBA_Image *dst, int clip_x, int clip_y, int clip_w, int clip_h, DATA32 mul_col, int render_op, int npoints, RGBA_Map_Point *p, int smooth, int level);
+EAPI void evas_common_map_rgba_draw(RGBA_Image *src, RGBA_Image *dst, int clip_x, int clip_y, int clip_w, int clip_h, DATA32 mul_col, int render_op, int npoints, RGBA_Map_Point *p, int smooth, Eina_Bool anti_alias, int level);
EAPI Eina_Bool
evas_common_map_rgba_prepare(RGBA_Image *src, RGBA_Image *dst,
diff --git a/src/lib/evas/common/evas_map_image_internal.c b/src/lib/evas/common/evas_map_image_internal.c
index eb1b77056e..331c3dd77c 100644
--- a/src/lib/evas/common/evas_map_image_internal.c
+++ b/src/lib/evas/common/evas_map_image_internal.c
@@ -4,7 +4,7 @@ FUNC_NAME(RGBA_Image *src, RGBA_Image *dst,
int clip_x, int clip_y, int clip_w, int clip_h,
DATA32 mul_col, int render_op,
RGBA_Map_Point *p,
- int smooth, int level EINA_UNUSED) // level unused for now - for future use
+ int smooth, int anti_alias, int level EINA_UNUSED) // level unused for now - for future use
{
int i;
int cx, cy, cw, ch;
@@ -115,7 +115,7 @@ static void
FUNC_NAME_DO(RGBA_Image *src, RGBA_Image *dst,
RGBA_Draw_Context *dc,
const RGBA_Map_Spans *ms,
- int smooth, int level EINA_UNUSED) // level unused for now - for future use
+ int smooth, int anti_alias EINA_UNUSED, int level EINA_UNUSED) // level unused for now - for future use
{
Line *spans;
DATA32 *buf = NULL, *sp;
diff --git a/src/lib/evas/common/evas_pipe.c b/src/lib/evas/common/evas_pipe.c
index 0d57119b69..92d5bed5ff 100644
--- a/src/lib/evas/common/evas_pipe.c
+++ b/src/lib/evas/common/evas_pipe.c
@@ -606,7 +606,8 @@ evas_common_pipe_map_draw_do(RGBA_Image *dst, const RGBA_Pipe_Op *op, const RGBA
memcpy(&(context), &(op->context), sizeof(RGBA_Draw_Context));
evas_common_map_rgba_do(&info->area, op->op.map.src, dst,
&context, op->op.map.m,
- op->op.map.smooth, op->op.map.level);
+ op->op.map.smooth, op->op.map.anti_alias,
+ op->op.map.level);
}
static Eina_Bool
@@ -647,6 +648,7 @@ evas_common_pipe_map_draw(RGBA_Image *src, RGBA_Image *dst,
src->ref++;
op->op.map.src = src;
op->op.map.m = m;
+ op->op.map.anti_alias = dc->anti_alias;
op->op_func = evas_common_pipe_map_draw_do;
op->free_func = evas_common_pipe_op_map_free;
op->prepare_func = evas_common_pipe_map_draw_prepare;
diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c
index f8e1504544..f2a355aab7 100644
--- a/src/modules/evas/engines/software_generic/evas_engine.c
+++ b/src/modules/evas/engines/software_generic/evas_engine.c
@@ -356,6 +356,7 @@ struct _Evas_Thread_Command_Map
int render_op;
RGBA_Map *map;
int smooth, level, offset;
+ Eina_Bool anti_alias;
};
struct _Evas_Thread_Command_Multi_Font
@@ -1530,7 +1531,7 @@ _draw_thread_map_draw(void *data)
(im, map->surface,
map->clip.x, map->clip.y, map->clip.w, map->clip.h,
map->mul_col, map->render_op, m->count - offset, &m->pts[offset],
- map->smooth, map->level);
+ map->smooth, map->anti_alias, map->level);
}
evas_common_cpu_end_opt();
@@ -1575,6 +1576,7 @@ _map_draw_thread_cmd(RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, RG
cm->mul_col = dc->mul.use ? dc->mul.col : 0xffffffff;
cm->render_op = dc->render_op;
+ cm->anti_alias = dc->anti_alias;
cm->map = calloc(1, sizeof(RGBA_Map) +
sizeof(RGBA_Map_Point) * map->count);