-typedef struct _E_Comp_Object
-{
- EINA_INLIST;
-
- int x, y, w, h; // geometry
-
- E_Client *ec;
-
- E_Comp_Object_Frame client_inset;
- struct
- {
- double start;
- double val;
- int x, y;
- E_Direction dir;
- Ecore_Animator *anim;
- } shade;
-
- Eina_Stringshare *frame_theme;
- Eina_Stringshare *frame_name;
- Eina_Stringshare *visibility_effect; //effect when toggling visibility
-
- E_Comp_Object_Content_Type content_type; // type of e.swallow.content
-
- Evas_Object *smart_obj; // smart object
- Evas_Object *clip; // clipper over effect object
- Evas_Object *input_obj; // input smart object
- Evas_Object *obj; // composite object
- Evas_Object *frame_object; // for client frames
- Evas_Object *shobj; // shadow object
- Evas_Object *effect_obj; // effects object
- Evas_Object *transform_bg_obj; // transform backgroung with keep_ratio option
- struct
- {
- int r, g, b, a;
- } transform_bg_color;
- Evas_Object *transform_tranp_obj;// transform transp rect obj
- Evas_Object *default_input_obj; // default input object
- unsigned int layer; //e_comp_canvas_layer_map(cw->ec->layer)
- Eina_List *obj_mirror; // extra mirror objects
- Eina_Tiler *updates; //render update regions
- Eina_Tiler *pending_updates; //render update regions which are about to render
-
- Evas_Native_Surface *ns; //for custom gl rendering
-
- struct wl_listener buffer_destroy_listener;
-
- unsigned int update_count; // how many updates have happened to this obj
-
- unsigned int opacity; // opacity set with _NET_WM_WINDOW_OPACITY
-
- unsigned int animating; // it's busy animating
- unsigned int failures; //number of consecutive e_pixmap_image_draw() failures
- unsigned int force_visible; //number of visible obj_mirror objects
- Eina_Bool delete_pending : 1; // delete pending
- Eina_Bool defer_hide : 1; // flag to get hide to work on deferred hide
- Eina_Bool showing : 1; // object is currently in "show" animation
- Eina_Bool hiding : 1; // object is currently in "hide" animation
- Eina_Bool visible : 1; // is visible
-
- Eina_Bool shaped : 1; // is shaped
- Eina_Bool update : 1; // has updates to fetch
- Eina_Bool redirected : 1; // has updates to fetch
- Eina_Bool native : 1; // native
-
- Eina_Bool nocomp : 1; // nocomp applied
- Eina_Bool hwc_need_update : 1; // this window updated while on e_plane to do hw composite
- Eina_Bool real_hid : 1; // last hide was a real window unmap
-
- Eina_Bool effect_set : 1; //effect_obj has a valid group
- Eina_Bool effect_running : 1; //effect_obj is playing an animation
- Eina_Bool effect_clip : 1; //effect_obj is clipped
- Eina_Bool effect_clip_able : 1; //effect_obj will be clipped for effects
-
- Eina_Bool updates_exist : 1;
- Eina_Bool updates_full : 1; // entire object will be updated
-
- Eina_Bool force_move : 1;
- Eina_Bool frame_extends : 1; //frame may extend beyond object size
- Eina_Bool blanked : 1; //window is rendering blank content (externally composited)
- Eina_Bool external_content : 1; // e.swallow.content(obj) is set by external evas object
- Eina_Bool user_alpha_set : 1;
- Eina_Bool user_alpha : 1;
-
- struct
- {
- Evas_Object *obj; // mask object: transparent parts of this comp object allow to copy the alpha to current H/W plane.
- Evas_Render_Op saved_render_op; // saved render operation value to restore when clear a mask.
- } mask;
-
- struct
- {
- Evas_Object *obj;
- int w, h;
- } indicator; //indicator object for internal client
-
- struct
- {
- Evas_Object *mask_obj;
- Eina_Bool enable;
- Eina_Bool mask_set;
- int mask_x, mask_y, mask_w, mask_h;
- } dim;
-
- Eina_Bool render_trace : 1; // trace co->obj rendering on canvas
-
- tbm_surface_h tbm_surface;
- E_Comp_Image_Filter image_filter;
- Eina_Bool set_mouse_callbacks;
-
- struct
- {
- int lock;
- E_Comp_Wl_Buffer_Ref buffer_ref;
- Eina_Bool pending_move_set;
- int pending_move_x, pending_move_y;
- Eina_Bool pending_resize_set;
- int pending_resize_w, pending_resize_h;
- } render_update_lock;
-
- struct
- {
- Eina_Bool set;
- int user_r;
- int user_g;
- int user_b;
- int user_a;
- } transparent;
-
- struct
- {
- struct wl_signal lower;
- struct wl_signal show;
- struct wl_signal hide;
- } events;
-} E_Comp_Object;
-