efl/legacy/evas/src/modules/engines/software_xcb/Evas_Engine_Software_Xcb.h

63 lines
2.2 KiB
C

#ifndef _EVAS_ENGINE_SOFTWARE_XCB_H
#define _EVAS_ENGINE_SOFTWARE_XCB_H
#include <X11/XCB/xcb.h>
typedef struct _Evas_Engine_Info_Software_Xcb Evas_Engine_Info_Software_Xcb;
struct _Evas_Engine_Info_Software_Xcb
{
/* PRIVATE - don't mess with this baby or evas will poke its tongue out */
/* at you and make nasty noises */
Evas_Engine_Info magic;
/* engine specific data & parameters it needs to set up */
struct {
XCBConnection *conn;
XCBDRAWABLE drawable;
XCBDRAWABLE mask;
XCBVISUALTYPE *visual;
XCBCOLORMAP colormap;
int depth;
int rotation;
int alloc_grayscale : 1;
int debug : 1;
int shape_dither : 1;
int destination_alpha : 1;
int track_mask_changes : 1;
int alloc_colors_max;
} info;
/* engine specific function calls to query stuff about the destination */
/* engine (what visual & colormap & depth to use, performance info etc. */
struct {
XCBVISUALTYPE * (*best_visual_get) (XCBConnection *conn, int screen);
XCBCOLORMAP (*best_colormap_get) (XCBConnection *conn, int screen);
int (*best_depth_get) (XCBConnection *conn, int screen);
Evas_Performance *(*performance_test) (Evas *e,
XCBConnection *conn,
XCBVISUALTYPE *vis,
XCBCOLORMAP cmap,
XCBDRAWABLE draw,
int depth);
void (*performance_free) (Evas_Performance *perf);
char * (*performance_data_get) (Evas_Performance *perf);
char * (*performance_key_get) (Evas_Performance *perf);
Evas_Performance *(*performance_new) (Evas *e,
XCBConnection *conn,
XCBVISUALTYPE *vis,
XCBCOLORMAP cmap,
XCBDRAWABLE draw,
int depth);
void (*performance_build) (Evas_Performance *perf,
const char *data);
void (*performance_device_store) (Evas_Performance *perf);
} func;
int mask_changed;
};
#endif /* _EVAS_ENGINE_SOFTWARE_XCB_H */