@ -60,6 +60,7 @@ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# include  "linux-dmabuf.h"  
					 
					 
					 
					# include  "linux-dmabuf.h"  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# include  "viewporter-server-protocol.h"  
					 
					 
					 
					# include  "viewporter-server-protocol.h"  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# include  "presentation-time-server-protocol.h"  
					 
					 
					 
					# include  "presentation-time-server-protocol.h"  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					# include  "xdg-output-unstable-v1-server-protocol.h"  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# include  "linux-explicit-synchronization-unstable-v1-server-protocol.h"  
					 
					 
					 
					# include  "linux-explicit-synchronization-unstable-v1-server-protocol.h"  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# include  "linux-explicit-synchronization.h"  
					 
					 
					 
					# include  "linux-explicit-synchronization.h"  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					# include  "shared/fd-util.h"  
					 
					 
					 
					# include  "shared/fd-util.h"  
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -123,6 +124,15 @@ weston_mode_switch_send_events(struct weston_head *head, 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							if  ( version  > =  WL_OUTPUT_DONE_SINCE_VERSION )   
					 
					 
					 
							if  ( version  > =  WL_OUTPUT_DONE_SINCE_VERSION )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								wl_output_send_done ( resource ) ;   
					 
					 
					 
								wl_output_send_done ( resource ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						}   
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						wl_resource_for_each ( resource ,  & head - > xdg_output_resource_list )  {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							zxdg_output_v1_send_logical_position ( resource ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
											     output - > x ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
											     output - > y ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							zxdg_output_v1_send_logical_size ( resource ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
											 output - > width ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
											 output - > height ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							zxdg_output_v1_send_done ( resource ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					static  void  
					 
					 
					 
					static  void  
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -4705,6 +4715,14 @@ weston_head_remove_global(struct weston_head *head) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							wl_resource_set_destructor ( resource ,  NULL ) ;   
					 
					 
					 
							wl_resource_set_destructor ( resource ,  NULL ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							wl_resource_set_user_data ( resource ,  NULL ) ;   
					 
					 
					 
							wl_resource_set_user_data ( resource ,  NULL ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						}   
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						wl_resource_for_each ( resource ,  & head - > xdg_output_resource_list )  {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							/* It's sufficient to unset the destructor, then the list elements
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							 *  won ' t  be  accessed .   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							 */   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							wl_resource_set_destructor ( resource ,  NULL ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						wl_list_init ( & head - > xdg_output_resource_list ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					/** Get the backing object of wl_output
  
					 
					 
					 
					/** Get the backing object of wl_output
  
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -4749,6 +4767,7 @@ weston_head_init(struct weston_head *head, const char *name) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						wl_signal_init ( & head - > destroy_signal ) ;   
					 
					 
					 
						wl_signal_init ( & head - > destroy_signal ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						wl_list_init ( & head - > output_link ) ;   
					 
					 
					 
						wl_list_init ( & head - > output_link ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						wl_list_init ( & head - > resource_list ) ;   
					 
					 
					 
						wl_list_init ( & head - > resource_list ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						wl_list_init ( & head - > xdg_output_resource_list ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						head - > name  =  strdup ( name ) ;   
					 
					 
					 
						head - > name  =  strdup ( name ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -5572,6 +5591,13 @@ weston_output_move(struct weston_output *output, int x, int y) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								if  ( ver  > =  WL_OUTPUT_DONE_SINCE_VERSION )   
					 
					 
					 
								if  ( ver  > =  WL_OUTPUT_DONE_SINCE_VERSION )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
									wl_output_send_done ( resource ) ;   
					 
					 
					 
									wl_output_send_done ( resource ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							}   
					 
					 
					 
							}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							wl_resource_for_each ( resource ,  & head - > xdg_output_resource_list )  {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
								zxdg_output_v1_send_logical_position ( resource ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
												     output - > x ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
												     output - > y ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
								zxdg_output_v1_send_done ( resource ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						}   
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -5790,6 +5816,15 @@ weston_output_set_transform(struct weston_output *output, 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								if  ( ver  > =  WL_OUTPUT_DONE_SINCE_VERSION )   
					 
					 
					 
								if  ( ver  > =  WL_OUTPUT_DONE_SINCE_VERSION )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
									wl_output_send_done ( resource ) ;   
					 
					 
					 
									wl_output_send_done ( resource ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							}   
					 
					 
					 
							}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							wl_resource_for_each ( resource ,  & head - > xdg_output_resource_list )  {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
								zxdg_output_v1_send_logical_position ( resource ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
												     output - > x ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
												     output - > y ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
								zxdg_output_v1_send_logical_size ( resource ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
												 output - > width ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
												 output - > height ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
								zxdg_output_v1_send_done ( resource ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						}   
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						/* we must ensure that pointers are inside output, otherwise they disappear */   
					 
					 
					 
						/* we must ensure that pointers are inside output, otherwise they disappear */   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -6291,6 +6326,85 @@ weston_output_get_first_head(struct weston_output *output) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								    struct  weston_head ,  output_link ) ;   
					 
					 
					 
								    struct  weston_head ,  output_link ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					static  void  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					xdg_output_unlist ( struct  wl_resource  * resource )  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					{  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						wl_list_remove ( wl_resource_get_link ( resource ) ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					static  void  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					xdg_output_destroy ( struct  wl_client  * client ,  struct  wl_resource  * resource )  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					{  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						wl_resource_destroy ( resource ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					static  const  struct  zxdg_output_v1_interface  xdg_output_interface  =  {  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						xdg_output_destroy   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					} ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					static  void  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					xdg_output_manager_destroy ( struct  wl_client  * client ,  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                           struct  wl_resource  * resource )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					{  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						wl_resource_destroy ( resource ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					static  void  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					xdg_output_manager_get_xdg_output ( struct  wl_client  * client ,  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
									  struct  wl_resource  * manager ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
									  uint32_t  id ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
									  struct  wl_resource  * output_resource )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					{  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						int  version  =  wl_resource_get_version ( manager ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						struct  weston_head  * head  =  wl_resource_get_user_data ( output_resource ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						struct  weston_output  * output  =  head - > output ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						struct  wl_resource  * resource ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						resource  =  wl_resource_create ( client ,  & zxdg_output_v1_interface ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
									      version ,  id ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						if  ( resource  = =  NULL )  {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							wl_client_post_no_memory ( client ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							return ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						wl_list_insert ( & head - > xdg_output_resource_list ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							       wl_resource_get_link ( resource ) ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						wl_resource_set_implementation ( resource ,  & xdg_output_interface ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
									       NULL ,  xdg_output_unlist ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						zxdg_output_v1_send_logical_position ( resource ,  output - > x ,  output - > y ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						zxdg_output_v1_send_logical_size ( resource ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
										 output - > width ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
										 output - > height ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						if  ( version  > =  ZXDG_OUTPUT_V1_NAME_SINCE_VERSION )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							zxdg_output_v1_send_name ( resource ,  head - > name ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						zxdg_output_v1_send_done ( resource ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					static  const  struct  zxdg_output_manager_v1_interface  xdg_output_manager_interface  =  {  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						xdg_output_manager_destroy ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						xdg_output_manager_get_xdg_output   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					} ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					static  void  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					bind_xdg_output_manager ( struct  wl_client  * client ,  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
								void  * data ,  uint32_t  version ,  uint32_t  id )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					{  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						struct  wl_resource  * resource ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						resource  =  wl_resource_create ( client ,  & zxdg_output_manager_v1_interface ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
									      version ,  id ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						if  ( resource  = =  NULL )  {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							wl_client_post_no_memory ( client ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							return ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						wl_resource_set_implementation ( resource ,  & xdg_output_manager_interface ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
									       NULL ,  NULL ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					static  void  
					 
					 
					 
					static  void  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					destroy_viewport ( struct  wl_resource  * resource )  
					 
					 
					 
					destroy_viewport ( struct  wl_resource  * resource )  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					{  
					 
					 
					 
					{  
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -6916,6 +7030,10 @@ weston_compositor_create(struct wl_display *display, 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								      ec ,  bind_viewporter ) )   
					 
					 
					 
								      ec ,  bind_viewporter ) )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							goto  fail ;   
					 
					 
					 
							goto  fail ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
						if  ( ! wl_global_create ( ec - > wl_display ,  & zxdg_output_manager_v1_interface ,  2 ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
								      ec ,  bind_xdg_output_manager ) )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							goto  fail ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						if  ( ! wl_global_create ( ec - > wl_display ,  & wp_presentation_interface ,  1 ,   
					 
					 
					 
						if  ( ! wl_global_create ( ec - > wl_display ,  & wp_presentation_interface ,  1 ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								      ec ,  bind_presentation ) )   
					 
					 
					 
								      ec ,  bind_presentation ) )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							goto  fail ;   
					 
					 
					 
							goto  fail ;