Note: just checked only build success. not tested in real device.
Change-Id: I31ad2667a0f88222f7ad24dbf5f603214cb19dfa
g_rec_mutex_init(&e_comp->ec_list_mutex);
+ e_comp->edge_detection_thickness = 1.0;
+ e_comp->edge_detection_color_id = 1;
+
return EINA_TRUE;
}
return EINA_FALSE;
}
+E_API void
+e_comp_image_filter_edge_detection_param_set(double thickness, int color_id)
+{
+ e_comp->edge_detection_thickness = thickness;
+ e_comp->edge_detection_color_id = color_id;
+
+ if (e_comp->image_filter != E_COMP_IMAGE_FILTER_EDGE_DETECTION) return;
+ E_Client *ec;
+ E_CLIENT_FOREACH(ec)
+ {
+ e_comp_object_image_filter_set(ec->frame, E_COMP_IMAGE_FILTER_EDGE_DETECTION);
+ e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h);
+ e_comp_object_dirty(ec->frame);
+ e_comp_object_render(ec->frame);
+ }
+}
+
E_API E_Comp_Image_Filter
e_comp_image_filter_get(void)
{
EINTERN Eina_Bool
e_comp_object_image_filter_set(Evas_Object *obj, E_Comp_Image_Filter filter)
{
+ char efl_gfx_lua_code[64] = "";
+
API_ENTRY EINA_FALSE;
EINA_SAFETY_ON_NULL_RETURN_VAL(cw->ec, EINA_FALSE);
if (e_object_is_del(E_OBJECT(cw->ec))) return EINA_FALSE;
efl_gfx_filter_program_set(cw->obj, "inverse_color ()", "image_filter");
break;
case E_COMP_IMAGE_FILTER_EDGE_DETECTION:
- efl_gfx_filter_program_set(cw->obj, "edge_detection { thickness = 1.0, color_id = 1 }", "image_filter");
+ sprintf(efl_gfx_lua_code, "edge_detection { thickness = %lf, color_id = %d }",
+ e_comp->edge_detection_thickness, e_comp->edge_detection_color_id);
+ efl_gfx_filter_program_set(cw->obj, efl_gfx_lua_code, "image_filter");
break;
case E_COMP_IMAGE_FILTER_NONE:
default:
E_Comp_Image_Filter image_filter;
+ double edge_detection_thickness;
+ int edge_detection_color_id;
+
struct
{
char use; // 0: none 1: use commit_handler timer