enum ds_tizen_blur_state_field {
DS_TIZEN_BLUR_STATE_NONE = 0,
- DS_TIZEN_BLUR_STATE_REGION = (1 << 0),//temporary
- DS_TIZEN_BLUR_STATE_RADIUS = (1 << 1),
- DS_TIZEN_BLUR_STATE_RECTANGLE = (1 << 2),
+ DS_TIZEN_BLUR_STATE_RADIUS = (1 << 0),
+ DS_TIZEN_BLUR_STATE_RECTANGLE = (1 << 1),
};
struct ds_tizen_blur_state
{
enum ds_tizen_blur_state_field committed;
- pixman_region32_t region; //temporary
uint32_t radius;
};
wl_resource_destroy(resource);
}
-static void
-blur_handle_set_region(struct wl_client *client, struct wl_resource *resource,
- struct wl_resource *region_resource)
-{
- struct ds_tizen_blur *blur;
- pixman_region32_t *region;
-
- blur = wl_resource_get_user_data(resource);
- region = ds_region_from_resource(region_resource);
-
- if (region) {
- pixman_region32_copy(&blur->pending.region, region);
- } else {
- pixman_region32_fini(&blur->pending.region);
- pixman_region32_init_rect(&blur->pending.region, INT32_MIN, INT32_MIN, UINT32_MAX, UINT32_MAX);
- }
-
- blur->pending.committed |= DS_TIZEN_BLUR_STATE_REGION;
-}
-
static void
blur_handle_set_radius(struct wl_client *client, struct wl_resource *resource,
uint32_t radius)
static const struct wtz_blur_interface blur_impl = {
blur_handle_destroy,
- blur_handle_set_region,
blur_handle_set_radius,
blur_handle_create_rectangle,
};
if (blur->surface)
ds_addon_finish(&blur->surface_addon);
- pixman_region32_fini(&blur->pending.region);
- pixman_region32_fini(&blur->current.region);
free(blur);
}
return;
}
- if (blur->pending.committed & DS_TIZEN_BLUR_STATE_REGION)
- pixman_region32_copy(&blur->current.region, &blur->pending.region);
-
if (blur->pending.committed & DS_TIZEN_BLUR_STATE_RADIUS)
blur->current.radius = blur->pending.radius;
return;
}
- pixman_region32_init_rect(&blur->pending.region, INT32_MIN, INT32_MIN, UINT32_MAX, UINT32_MAX);
- pixman_region32_init_rect(&blur->current.region, INT32_MIN, INT32_MIN, UINT32_MAX, UINT32_MAX);
-
wl_resource_set_implementation(blur->resource, &blur_impl, blur,
blur_handle_resource_destroy);