remove xcb support in ecore_x and evas engines as per mailing list
[platform/upstream/efl.git] / src / modules / evas / 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;
8
9 typedef struct _Evas_Engine_Info_Software_X11 Evas_Engine_Info_Software_X11;
10
11 struct _Evas_Engine_Info_Software_X11
12 {
13    /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
14    /* at you and make nasty noises */
15    Evas_Engine_Info magic;
16
17    /* engine specific data & parameters it needs to set up */
18    struct 
19      {
20         Evas_Engine_Info_Software_X11_Backend backend;
21
22         void *connection, *screen;
23         unsigned int drawable, mask;
24         void *visual;
25         unsigned int colormap;
26         int depth, rotation;
27
28         Eina_Bool alloc_grayscale : 1;
29         Eina_Bool debug : 1;
30         Eina_Bool shape_dither : 1;
31         Eina_Bool destination_alpha : 1;
32         Eina_Bool track_mask_changes : 1;
33
34         int alloc_colors_max;
35      } info;
36
37    /* engine specific function calls to query stuff about the destination */
38    struct 
39      {
40         void *(*best_visual_get) (int backend, void *connection, int screen);
41         unsigned int (*best_colormap_get) (int backend, void *connection, int screen);
42         int (*best_depth_get) (int backend, void *connection, int screen);
43         void (*region_push_hook)(Evas *e, int x, int y, int w, int h, const void *pixels);
44      } func;
45
46    unsigned char mask_changed : 1;
47
48    /* non-blocking or blocking mode */
49    Evas_Engine_Render_Mode render_mode;
50 };
51
52 #endif