1 struct surface_info { 2 int surface_id; 3 int dst_x; 4 int dst_y; 5 int dst_w; 6 int dst_h; 7 int src_x; 8 int src_y; 9 int src_w; 10 int src_h; 11 double opacity; 12 int visibility; // 0 or 1 13 int on_layer_id; 14 }; 15 16 struct layer_info { 17 int layer_id; 18 int dst_x; 19 int dst_y; 20 int dst_w; 21 int dst_h; 22 int src_x; 23 int src_y; 24 int src_w; 25 int src_h; 26 double opacity; 27 int visibility; // 0 or 1 28 int on_screen_id; 29 int nsurfaces; 30 struct surface_info **surfaces; 31 }; 32 33 struct screen_info { 34 int screen_id; 35 char *connector_name; 36 int width; 37 int height; 38 int nlayers; 39 struct layer_info **layers; 40 }; 41 42 // end of null 43 struct screen_info **get_screens_info(); 44 void free_screens_info(struct screen_info **screens); 45 46 typedef void (*screen_listener_t)(); 47 void set_screen_listener(screen_listener_t listener); 48