E_View_Image *view_image;
E_View_Rect *dim_rect;
- E_View_Image *corner_radius_view_image;
+ E_View_Image *corner_radius_image;
};
struct _E_Blur_Behind
static void _e_blur_rectangle_view_image_free(E_Blur_Rectangle *blur_rectangle);
static void _e_blur_rectangle_dim_rect_new(E_Blur_Rectangle *blur_rectangle, E_Client *ec, const char *name);
static void _e_blur_rectangle_dim_rect_free(E_Blur_Rectangle *blur_rectangle);
+static void _e_blur_rectangle_corner_radius_image_new(E_Blur_Rectangle *blur_rectangle, E_Client *ec, const char *name);
+static void _e_blur_rectangle_corner_radius_image_free(E_Blur_Rectangle *blur_rectangle);
static void
_e_blur_hooks_clean(void)
if (blur_rectangle->dim_rect)
e_view_show(e_view_rect_view_get(blur_rectangle->dim_rect));
- if (blur_rectangle->corner_radius_view_image)
- e_view_show(e_view_image_view_get(blur_rectangle->corner_radius_view_image));
+ if (blur_rectangle->corner_radius_image)
+ e_view_show(e_view_image_view_get(blur_rectangle->corner_radius_image));
}
static void
if (blur_rectangle->dim_rect)
e_view_hide(e_view_rect_view_get(blur_rectangle->dim_rect));
- if (blur_rectangle->corner_radius_view_image)
- e_view_hide(e_view_image_view_get(blur_rectangle->corner_radius_view_image));
+ if (blur_rectangle->corner_radius_image)
+ e_view_hide(e_view_image_view_get(blur_rectangle->corner_radius_image));
}
static void
_e_blur_rectangle_view_image_free(blur_rectangle);
_e_blur_rectangle_dim_rect_free(blur_rectangle);
-
- if (blur_rectangle->corner_radius_view_image)
- e_view_destroy(e_view_image_view_get(blur_rectangle->corner_radius_view_image));
+ _e_blur_rectangle_corner_radius_image_free(blur_rectangle);
if (blur_rectangle->listener.destroy.notify)
wl_list_remove(&blur_rectangle->listener.destroy.link);
final_w, final_h);
}
- if (blur_rectangle->corner_radius_view_image)
- e_view_image_geometry_set(blur_rectangle->corner_radius_view_image,
+ if (blur_rectangle->corner_radius_image)
+ e_view_image_geometry_set(blur_rectangle->corner_radius_image,
final_x, final_y, final_w, final_h);
}
{
char program[256];
- if (blur_rectangle->corner_radius_view_image)
+ if (blur_rectangle->corner_radius_image)
{
snprintf(program, sizeof(program), "rounded_corner { rx = %d, ry = %d}",
blur_rectangle->rx, blur_rectangle->ry);
- e_view_image_gfx_filter_program_set(blur_rectangle->corner_radius_view_image, program, "rounded_corner");
+ e_view_image_gfx_filter_program_set(blur_rectangle->corner_radius_image, program, "rounded_corner");
}
snprintf(program, sizeof(program), "blur (%d) padding_set (0)",
e_view_place_below(dim_view, img_view);
}
- if (blur_rectangle->corner_radius_view_image)
+ if (blur_rectangle->corner_radius_image)
{
- E_View *corner_img_view = e_view_image_view_get(blur_rectangle->corner_radius_view_image);
+ E_View *corner_img_view = e_view_image_view_get(blur_rectangle->corner_radius_image);
e_view_reparent(corner_img_view, layer_tree);
e_view_place_above(corner_img_view, img_view);
}
blur_rectangle->dim_rect = NULL;
}
+static void
+_e_blur_rectangle_corner_radius_image_new(E_Blur_Rectangle *blur_rectangle, E_Client *ec, const char *name)
+{
+ E_View_Client *blur_view_client;
+ E_View_Tree *blur_view_client_tree;
+ E_View_Image *corner_radius_image = NULL;
+ E_View *corner_radius_view = NULL;
+ unsigned int *pixels;
+
+ blur_view_client = e_client_view_get(ec);
+ EINA_SAFETY_ON_NULL_RETURN(blur_view_client);
+ blur_view_client_tree = e_view_parent_get(e_view_client_view_get(blur_view_client));
+ EINA_SAFETY_ON_NULL_RETURN(blur_view_client_tree);
+
+ corner_radius_image = e_view_image_filled_create(blur_view_client_tree);
+ EINA_SAFETY_ON_NULL_RETURN(corner_radius_image);
+ corner_radius_view = e_view_image_view_get(corner_radius_image);
+
+ e_view_image_size_set(corner_radius_image, 1, 1);
+ pixels = e_view_image_data_get(corner_radius_image, true);
+ if (!pixels)
+ {
+ e_view_destroy(corner_radius_view);
+ return;
+ }
+ *pixels = 0xffffffff;
+ e_view_image_data_set(corner_radius_image, pixels);
+ e_view_image_data_update_add(corner_radius_image, 0, 0, 1, 1);
+ e_view_name_set(corner_radius_view, name);
+ e_view_pass_events_set(corner_radius_view, true);
+
+ blur_rectangle->corner_radius_image = corner_radius_image;
+}
+
+static void
+_e_blur_rectangle_corner_radius_image_free(E_Blur_Rectangle *blur_rectangle)
+{
+ if (blur_rectangle && blur_rectangle->corner_radius_image)
+ e_view_destroy(e_view_image_view_get(blur_rectangle->corner_radius_image));
+
+ blur_rectangle->corner_radius_image = NULL;
+}
+
static void
_e_blur_cb_new_rectangle(struct wl_listener *listener, void *data)
{
E_Blur *blur;
E_Blur_Rectangle *blur_rectangle;
struct ds_tizen_blur_rectangle *tizen_blur_rectangle = data;
- E_View_Image *corner_radius_view_image = NULL;
E_View *dim_view = NULL, *img_view = NULL, *corner_img_view = NULL;
E_View_Client *blur_view_client;
E_View_Tree *blur_view_client_tree;
E_Blur_Hook_Data hook_data;
- unsigned int *pixels;
blur = wl_container_of(listener, blur, listener.new_rectangle);
EINA_SAFETY_ON_NULL_RETURN(blur);
if ((blur_rectangle->rx != 0) && (blur_rectangle->ry != 0))
{
- corner_radius_view_image = e_view_image_filled_create(blur_view_client_tree);
- EINA_SAFETY_ON_NULL_GOTO(corner_radius_view_image, fail);
-
- corner_img_view = e_view_image_view_get(corner_radius_view_image);
- e_view_name_set(corner_img_view, "blur_corner_radius_view_image");
- e_view_pass_events_set(corner_img_view, true);
- e_view_image_size_set(corner_radius_view_image, 1, 1);
- pixels = e_view_image_data_get(corner_radius_view_image, true);
- EINA_SAFETY_ON_NULL_GOTO(pixels, fail);
- *pixels = 0xffffffff;
- e_view_image_data_set(corner_radius_view_image, pixels);
- e_view_image_data_update_add(corner_radius_view_image, 0, 0, 1, 1);
+ _e_blur_rectangle_corner_radius_image_new(blur_rectangle, blur->ec, "blur_corner_radius_image");
+ EINA_SAFETY_ON_NULL_GOTO(blur_rectangle->corner_radius_image, fail);
+ corner_img_view = e_view_image_view_get(blur_rectangle->corner_radius_image);
+
e_view_clip_set(img_view, corner_img_view);
e_view_clip_set(dim_view, corner_img_view);
-
- blur_rectangle->corner_radius_view_image = corner_radius_view_image;
}
blur_rectangle->blur = blur;
E_View *below_view, *bottom_view = view;
below_view = e_view_below_get(bottom_view);
- while ((!e_util_strcmp(e_view_name_get(below_view), "blur_corner_radius_view_image")) ||
+ while ((!e_util_strcmp(e_view_name_get(below_view), "blur_corner_radius_image")) ||
(!e_util_strcmp(e_view_name_get(below_view), "blur_obj")))
{
bottom_view = below_view;