_e_comp_wl_input_thread_focus_out(&surface);
}
-static void
-_e_comp_wl_buffer_damage_set(E_Comp_Wl_Buffer *buffer, pixman_region32_t *buffer_damages)
-{
- pixman_box32_t *dmg;
- Eina_Rectangle damage_rect;
-
- if (buffer->type != E_COMP_WL_BUFFER_TYPE_NATIVE &&
- buffer->type != E_COMP_WL_BUFFER_TYPE_TBM)
- return;
-
- if (!buffer->tbm_surface) return;
-
- if (!buffer_damages || !pixman_region32_not_empty(buffer_damages))
- {
- EINA_RECTANGLE_SET(&damage_rect, 0, 0, buffer->w, buffer->h);
- }
- else
- {
- dmg = pixman_region32_extents(buffer_damages);
- EINA_RECTANGLE_SET(&damage_rect, dmg->x1, dmg->y1, (dmg->x2 - dmg->x1), (dmg->y2 - dmg->y1));
- }
-
- tbm_surface_internal_set_damage(buffer->tbm_surface,
- damage_rect.x,
- damage_rect.y,
- damage_rect.w,
- damage_rect.h);
-}
-
static void
_e_comp_wl_client_evas_init(E_Client *ec)
{
}
if (buffer)
- _e_comp_wl_buffer_damage_set(buffer, e_surface_buffer_damage_get(surface));
+ e_comp_wl_buffer_damage_region_set(buffer, e_surface_buffer_damage_get(surface));
if (e_surface_viewport_changed_get(surface) ||
!e_comp_wl_get()->available_hw_accel.underlay ||
if (height) *height = comp_buffer->h;
}
+EINTERN void
+e_comp_wl_buffer_damage_region_set(E_Comp_Wl_Buffer *buffer, pixman_region32_t *damage)
+{
+ pixman_box32_t *box;
+ Eina_Rectangle rect;
+
+ if ((buffer->type != E_COMP_WL_BUFFER_TYPE_NATIVE &&
+ buffer->type != E_COMP_WL_BUFFER_TYPE_TBM) ||
+ (!buffer->tbm_surface))
+ return;
+
+ if (!damage || !pixman_region32_not_empty(damage))
+ {
+ EINA_RECTANGLE_SET(&rect, 0, 0, buffer->w, buffer->h);
+ }
+ else
+ {
+ box = pixman_region32_extents(damage);
+ EINA_RECTANGLE_SET(&rect, box->x1, box->y1, (box->x2 - box->x1), (box->y2 - box->y1));
+ }
+
+ tbm_surface_internal_set_damage(buffer->tbm_surface, rect.x, rect.y, rect.w, rect.h);
+}
+
static void
_e_comp_wl_buffer_ref(E_Comp_Wl_Buffer *base)
{
#include <libds/types/ds_buffer.h>
#include <tbm_surface.h>
+#include <pixman.h>
E_Comp_Wl_Buffer *e_comp_wl_buffer_try_get(struct ds_buffer *ds_buffer);
E_Comp_Wl_Buffer *e_comp_wl_buffer_create_with_tbm_surface(tbm_surface_h tbm_surface);
void e_comp_wl_buffer_destroy(E_Comp_Wl_Buffer *comp_buffer);
void *e_comp_wl_buffer_single_pixel_buffer_data_get(E_Comp_Wl_Buffer *buffer);
void e_comp_wl_buffer_size_get(E_Comp_Wl_Buffer *comp_buffer, int32_t *width, int32_t *height);
+void e_comp_wl_buffer_damage_region_set(E_Comp_Wl_Buffer *buffer, pixman_region32_t *damage);
#endif