vp->surface.width = -1;
}
+static void
+_e_surface_state_init(E_Surface_State *state)
+{
+ state->committed = E_SURFACE_STATE_CLEAN;
+ e_presentation_time_container_init(&state->presentation_container);
+ _e_surface_buffer_viewport_state_init(&state->viewport);
+}
+
+static void
+_e_surface_state_finish(E_Surface_State *state)
+{
+ e_presentation_time_container_finish(&state->presentation_container);
+}
+
static E_Surface *
_e_surface_create(struct ds_surface *ds_surface)
{
wl_list_init(&surface->frames);
+ _e_surface_state_init(&surface->pending);
+ _e_surface_state_init(&surface->current);
+
e_comp_wl_surface_state_init(&surface->base.pending);
/* set initial client data properties */
/* set initial value of scaler */
_e_surface_buffer_viewport_state_init(&surface->base.scaler.buffer_viewport);
- _e_surface_buffer_viewport_state_init(&surface->pending.viewport);
e_presentation_time_container_init(&surface->base.presentation_container);
surface->ec->comp_data = NULL;
+ _e_surface_state_finish(&surface->pending);
+ _e_surface_state_finish(&surface->current);
wl_list_remove(&surface->link);
free(surface);
}
wl_signal_init(&sub->events.destroy);
wl_signal_init(&sub->events.reposition);
+ _e_surface_state_init(&sub->cached);
+
sub->ds_subsurface = ds_subsurface;
sub->destroy.notify = _e_subsurface_cb_destroy;
wl_signal_add(&ds_subsurface->events.destroy, &sub->destroy);
e_comp_wl_subsurface_data_finish(&sub->base);
sub->surface->ec->comp_data->sub.data = NULL;
+ _e_surface_state_finish(&sub->cached);
wl_list_remove(&sub->request_move.link);
wl_list_remove(&sub->parent_surface_destroy.link);
wl_list_remove(&sub->surface_destroy.link);