move around - flatter.
[profile/ivi/evas.git] / src / modules / engines / software_xcb / Evas_Engine_Software_Xcb.h
1 #ifndef _EVAS_ENGINE_SOFTWARE_XCB_H
2 #define _EVAS_ENGINE_SOFTWARE_XCB_H
3
4 #include <xcb/xcb.h>
5
6 typedef struct _Evas_Engine_Info_Software_Xcb   Evas_Engine_Info_Software_Xcb;
7
8 struct _Evas_Engine_Info_Software_Xcb
9 {
10    /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
11    /* at you and make nasty noises */
12    Evas_Engine_Info magic;
13
14    /* engine specific data & parameters it needs to set up */
15    struct {
16       xcb_connection_t  *conn;
17       xcb_screen_t      *screen;
18       xcb_drawable_t     drawable;
19       xcb_drawable_t     mask;
20       xcb_visualtype_t  *visual;
21       xcb_colormap_t     colormap;
22       int                depth;
23       int                rotation;
24
25       int                alloc_grayscale : 1;
26       int                debug : 1;
27       int                shape_dither : 1;
28       int                destination_alpha : 1;
29       int                track_mask_changes : 1;
30
31       int                alloc_colors_max;
32    } info;
33    /* engine specific function calls to query stuff about the destination */
34    struct {
35       xcb_visualtype_t * (*best_visual_get)   (xcb_screen_t *screen);
36       xcb_colormap_t     (*best_colormap_get) (xcb_screen_t *screen);
37       int                (*best_depth_get)    (xcb_screen_t *screen);
38    } func;
39
40    int mask_changed;
41 };
42
43 #endif /* _EVAS_ENGINE_SOFTWARE_XCB_H */