tizen 2.4 release
[framework/uifw/e17-mod-tizen-comp.git] / src / e_mod_comp_hwcomp.h
1 #ifdef E_TYPEDEFS
2 #else
3 #ifndef E_MOD_COMP_HWCOMP_H
4 #define E_MOD_COMP_HWCOMP_H
5
6 typedef enum _E_HWComp_Mode
7 {
8    E_HWCOMP_USE_INVALID = -1,
9    E_HWCOMP_USE_NOCOMP_MODE,
10    E_HWCOMP_USE_HYBRIDCOMP_MODE,
11    E_HWCOMP_USE_FULLCOMP_MODE
12 } E_HWComp_Mode;
13
14 typedef struct _E_Comp_HWComp_Update E_Comp_HWComp_Update;
15 typedef struct _E_Comp_HWComp_Drawable E_Comp_HWComp_Drawable;
16
17 struct _E_Comp_HWComp;
18
19 struct _E_Comp_HWComp_Drawable
20 {
21    E_Comp_Win      *cw;
22    Ecore_X_Drawable d;
23    Eina_Bool        set_drawable;   /* if set_drawable is true, this drawable is set */
24    int              set_countdown;  /* if set_countdown is 0, this drawable is going to hwc set */
25    int              comp_countdown; /* if comp_countdown is 0, this drawable is going to composite */
26    Eina_Bool        resized;
27    Eina_Bool        region_update;
28    int              first_update;
29
30    int              update_count; /* for debugging */
31 };
32
33
34 struct _E_Comp_HWComp_Update
35 {
36     E_HWComp_Mode            update_mode;       /* hw composite mode */
37     unsigned int             num_overlays;      /* # of hw overlays */
38     unsigned int             num_drawable;      /* # of the candidate drawables */
39     E_Comp_HWComp_Drawable **hwc_drawable;      /* the candidate drawables */
40     Eina_Bool                comp_update;       /* flag for ee_win update */
41
42     Eina_Bool                ime_present;
43     Eina_Bool                keymag_present;
44     Eina_Bool                split_launcher_rect_present;
45     Eina_Rectangle           ime_rect;
46     Eina_Rectangle           keymag_rect;
47     Eina_Rectangle           split_launcher_rect;
48
49     struct _E_Comp_HWComp    *hwcomp;
50 };
51
52 struct _E_Comp_HWComp
53 {
54    E_Comp             *c;
55    E_Comp_Canvas      *canvas;
56
57    int                   num_overlays; /* # of hw overlays */
58    E_Comp_HWComp_Update *hwc_update;
59
60    Ecore_Timer        *idle_timer;
61    Eina_Bool           idle_status;
62    Ecore_Idle_Enterer *idle_enterer;
63
64    Eina_Bool           force_composite;
65    int                 comp_ref;
66
67    Eina_Bool           miniapp_present;
68    int                 screen_width;
69    int                 screen_height;
70
71    int                 fullcomp_pending;
72    Eina_Bool           force_swap;
73
74    Eina_Bool           doing_rotation;
75 };
76
77
78 #endif
79 #endif