big patch from Samsung SAIT (Advanced research group) for async multi-frame
[framework/uifw/evas.git] / src / modules / engines / xrender_x11 / Evas_Engine_XRender_X11.h
1 #ifndef _EVAS_ENGINE_XRENDER_X11_H
2 #define _EVAS_ENGINE_XRENDER_X11_H
3
4 #include <X11/Xlib.h>
5
6 typedef enum
7 {
8   EVAS_ENGINE_INFO_XRENDER_BACKEND_XLIB,
9   EVAS_ENGINE_INFO_XRENDER_BACKEND_XCB
10 } Evas_Engine_Info_XRender_Backend;
11
12 typedef struct _Evas_Engine_Info_XRender_X11 Evas_Engine_Info_XRender_X11;
13
14 /*
15  *               Xlib       |      XCB
16  * connection | Display *   |  xcb_connection_t *
17  * screen     | NULL        |  xcb_screen_t *
18  * drawable   | Drawable    |  xcb_drawable_t
19  * mask       | Pixmap      |  xcb_pixmap_t
20  * visual     | Visual *    |  xcb_visualtype_t *
21  * colormap   | Colormap    |  xcb_colormap_t
22  */
23
24 struct _Evas_Engine_Info_XRender_X11
25 {
26    /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
27    /* at you and make nasty noises */
28    Evas_Engine_Info magic;
29
30    /* engine specific data & parameters it needs to set up */
31    struct {
32       Evas_Engine_Info_XRender_Backend backend;
33       void                            *connection;
34       void                            *screen;
35       unsigned int                     drawable;
36       unsigned int                     mask;
37       void                            *visual;
38       unsigned char                    destination_alpha : 1;
39    } info;
40
41    /* non-blocking or blocking mode */
42    Evas_Engine_Render_Mode render_mode;
43 };
44 #endif