Implement wayland subsurface support based on E_Client.

Summary: Support subsurface interface of wayland.

Test Plan:
1. Build enlightenment on devs/devilhorns/e_comp_wl branch.
2. Run enlightenment.
3. Run weston-subsurfaces
   - should be built after removing code of gl surface (not yet implemented)
   - just comment out the line egl_state_create in function of demoapp_create()

Reviewers: gwanglim, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1182
This commit is contained in:
Seunghun Lee 2014-07-16 10:54:57 -04:00 committed by Chris Michael
parent a96d7290f5
commit 1370d6bd32
2 changed files with 852 additions and 86 deletions

File diff suppressed because it is too large Load Diff

View File

@ -36,6 +36,7 @@
typedef struct _E_Comp_Wl_Buffer E_Comp_Wl_Buffer;
typedef struct _E_Comp_Wl_Buffer_Ref E_Comp_Wl_Buffer_Ref;
typedef struct _E_Comp_Wl_Subsurf E_Comp_Wl_Subsurf;
struct _E_Comp_Wl_Data
{
@ -164,10 +165,46 @@ struct _E_Comp_Wl_Buffer_Ref
struct wl_listener destroy_listener;
};
struct _E_Comp_Wl_Subsurf
{
struct wl_resource *resource;
E_Client *parent;
struct
{
int x, y;
Eina_Bool set;
} position;
struct
{
int x, y;
Eina_Bool has_data;
Eina_Bool new_attach;
E_Comp_Wl_Buffer_Ref buffer_ref;
Eina_Tiler *damage;
Eina_Tiler *opaque;
Eina_Tiler *input;
} cached;
Eina_Bool synchronized;
};
struct _E_Comp_Wl_Client_Data
{
Ecore_Timer *first_draw_tmr;
struct
{
E_Comp_Wl_Subsurf *cdata;
E_Client *restack_target;
Eina_List *list;
} sub;
/* regular surface resource (wl_compositor_create_surface) */
struct wl_resource *surface;