#include "e_intern.h"
#include "e_comp.h"
+struct _E_Comp
+{
+ E_Object e_obj_inherit;
+ int w, h;
+
+ Ecore_Window win; // input overlay
+ Ecore_Window root;
+ Ecore_Evas *ee;
+ Ecore_Window ee_win;
+
+ Evas *evas;
+ E_Canvas *canvas;
+ E_View *bg_blank_view;
+ Eina_List *zones;
+ E_Zone *default_zone;
+ E_Pointer *pointer;
+ Eina_List *clients;
+ unsigned int new_clients;
+
+ Eina_List *pre_render_cbs; /* E_Comp_Cb */
+
+ E_Comp_Wl_Data *wl_comp_data;
+
+ Eina_Stringshare *name;
+
+ E_Comp_Screen *e_comp_screen;
+
+ Eina_List *updates;
+ Eina_List *post_updates;
+ Ecore_Animator *render_animator;
+ Ecore_Job *update_job;
+ E_View *fps_bg;
+ E_View *fps_fg;
+ int animating;
+
+ E_DEPRECATED E_Client *nocomp_ec;
+
+ Ecore_Timer *nocomp_override_timer;
+ int nocomp_override; //number of times hwc override has been requested
+ Eina_Bool hwc_send_redraw_request;
+ Eina_Bool hwc_prefer_gbm;
+ Eina_Bool use_native_type_buffer : 1; // use native buffer type
+ Eina_Bool avoid_afill; // avoid to fill the alpha channel as 0xff. that means filling 0x00.
+
+ atomic_uint input_key_grabs;
+ unsigned int input_mouse_grabs;
+
+ Eina_Bool gl : 1;
+ Eina_Bool grabbed : 1;
+ Eina_Bool calc_fps : 1;
+ Eina_Bool canvas_render_delayed : 1;
+
+ Eina_List *connected_clients;
+ Eina_List *launchscrns; // list of dummy clients for launchscreen image.
+
+ Eina_List *render_list;
+
+ int norender;
+
+ void (*func_memory_dump) (void);
+
+ E_Comp_Image_Filter image_filter;
+
+ double edge_detection_thickness;
+ unsigned int edge_detection_color_id;
+
+ struct
+ {
+ char use; // 0: none 1: use commit_handler timer
+ double interval; // time value the interval of commit_handler after tdm_commit in second (default : 0)
+ } commit_handler_timer;
+
+ GRecMutex ec_list_mutex;
+
+#ifdef NEED_REFINE_EDA_LAYERS_LIST
+ struct {
+ Evas_Object *obj;
+ Eina_Inlist *clients; /* E_Client, bottom to top */
+ unsigned int clients_count;
+ } layers[E_LAYER_COUNT];
+#endif
+};
+
+struct _E_Comp_Connected_Client_Info
+{
+ const char *name;
+ int pid;
+ int uid;
+ int gid;
+ struct wl_listener destroy;
+};
+
// NOTE:: the comp->zones should not modified during iteration
#define E_COMP_ZONE_FOREACH(ZONE) \
for(ZONE = eina_list_data_get(e_comp_zone_list_get()) ; ZONE ; ZONE = eina_list_data_get(eina_list_next(eina_list_data_find_list(e_comp_zone_list_get(), ZONE))))
unsigned char delete_me : 1;
};
-struct _E_Comp
-{
- E_Object e_obj_inherit;
- int w, h;
-
- Ecore_Window win; // input overlay
- Ecore_Window root;
- Ecore_Evas *ee;
- Ecore_Window ee_win;
-
- Evas *evas;
- E_Canvas *canvas;
- E_View *bg_blank_view;
- Eina_List *zones;
- E_Zone *default_zone;
- E_Pointer *pointer;
- Eina_List *clients;
- unsigned int new_clients;
-
- Eina_List *pre_render_cbs; /* E_Comp_Cb */
-
- E_Comp_Wl_Data *wl_comp_data;
-
- Eina_Stringshare *name;
-
- E_Comp_Screen *e_comp_screen;
-
- Eina_List *updates;
- Eina_List *post_updates;
- Ecore_Animator *render_animator;
- Ecore_Job *update_job;
- E_View *fps_bg;
- E_View *fps_fg;
- int animating;
-
- E_DEPRECATED E_Client *nocomp_ec;
-
- Ecore_Timer *nocomp_override_timer;
- int nocomp_override; //number of times hwc override has been requested
- Eina_Bool hwc_send_redraw_request;
- Eina_Bool hwc_prefer_gbm;
- Eina_Bool use_native_type_buffer : 1; // use native buffer type
- Eina_Bool avoid_afill; // avoid to fill the alpha channel as 0xff. that means filling 0x00.
-
- atomic_uint input_key_grabs;
- unsigned int input_mouse_grabs;
-
- Eina_Bool gl : 1;
- Eina_Bool grabbed : 1;
- Eina_Bool calc_fps : 1;
- Eina_Bool canvas_render_delayed : 1;
-
- Eina_List *connected_clients;
- Eina_List *launchscrns; // list of dummy clients for launchscreen image.
-
- Eina_List *render_list;
-
- int norender;
-
- void (*func_memory_dump) (void);
-
- E_Comp_Image_Filter image_filter;
-
- double edge_detection_thickness;
- unsigned int edge_detection_color_id;
-
- struct
- {
- char use; // 0: none 1: use commit_handler timer
- double interval; // time value the interval of commit_handler after tdm_commit in second (default : 0)
- } commit_handler_timer;
-
- GRecMutex ec_list_mutex;
-
-#ifdef NEED_REFINE_EDA_LAYERS_LIST
- struct {
- Evas_Object *obj;
- Eina_Inlist *clients; /* E_Client, bottom to top */
- unsigned int clients_count;
- } layers[E_LAYER_COUNT];
-#endif
-};
-
-struct _E_Comp_Connected_Client_Info
-{
- const char *name;
- int pid;
- int uid;
- int gid;
- struct wl_listener destroy;
-};
-
extern E_API int E_EVENT_COMPOSITOR_DISABLE;
extern E_API int E_EVENT_COMPOSITOR_ENABLE;