big patch from Samsung SAIT (Advanced research group) for async multi-frame
[framework/uifw/evas.git] / src / modules / engines / software_x11 / Evas_Engine_Software_X11.h
1 #ifndef _EVAS_ENGINE_SOFTWARE_X11_H
2 #define _EVAS_ENGINE_SOFTWARE_X11_H
3
4 typedef enum
5 {
6   EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB,
7   EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB
8 } Evas_Engine_Info_Software_X11_Backend;
9
10 typedef struct _Evas_Engine_Info_Software_X11 Evas_Engine_Info_Software_X11;
11
12 /*
13  *               Xlib       |      XCB
14  * connection | Display *   |  xcb_connection_t *
15  * screen     | NULL        |  xcb_screen_t *
16  * drawable   | Drawable    |  xcb_drawable_t
17  * mask       | Pixmap      |  xcb_pixmap_t
18  * visual     | Visual *    |  xcb_visualtype_t *
19  * colormap   | Colormap    |  xcb_colormap_t
20  */
21
22 struct _Evas_Engine_Info_Software_X11
23 {
24    /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
25    /* at you and make nasty noises */
26    Evas_Engine_Info magic;
27
28    /* engine specific data & parameters it needs to set up */
29    struct {
30       Evas_Engine_Info_Software_X11_Backend backend;
31       void                                 *connection;
32       void                                 *screen;
33       unsigned int                          drawable;
34       unsigned int                          mask;
35       void                                 *visual;
36       unsigned int                          colormap;
37       int                                   depth;
38       int                                   rotation;
39
40       unsigned int                          alloc_grayscale    : 1;
41       unsigned int                          debug              : 1;
42       unsigned int                          shape_dither       : 1;
43       unsigned int                          destination_alpha  : 1;
44       unsigned int                          track_mask_changes : 1;
45
46       int                                   alloc_colors_max;
47    } info;
48    /* engine specific function calls to query stuff about the destination */
49    struct {
50       void        *(*best_visual_get)   (int backend, void *connection, int screen);
51       unsigned int (*best_colormap_get) (int backend, void *connection, int screen);
52       int          (*best_depth_get)    (int backend, void *connection, int screen);
53    } func;
54
55    int mask_changed;
56    /* non-blocking or blocking mode */
57    Evas_Engine_Render_Mode render_mode;
58 };
59
60 #endif
61
62