move around - flatter.
[profile/ivi/evas.git] / src / modules / engines / software_16_x11 / evas_engine.h
1 #ifndef EVAS_ENGINE_H
2 #define EVAS_ENGINE_H
3
4 #include <X11/Xlib.h>
5 #include <X11/Xutil.h>
6 #include <X11/Xatom.h>
7 #include <X11/extensions/XShm.h>
8 #include <sys/ipc.h>
9 #include <sys/shm.h>
10
11 #include "evas_common_soft16.h"
12
13 typedef struct _X_Output_Buffer       X_Output_Buffer;
14
15 struct _X_Output_Buffer
16 {
17    Soft16_Image    *im;
18    Display         *display;
19    XImage          *xim;
20    XShmSegmentInfo *shm_info;
21    void            *data;
22 };
23
24 /****/
25 void             evas_software_x11_x_init                        (void);
26
27 int              evas_software_x11_x_can_do_shm                  (Display *d);
28 X_Output_Buffer *evas_software_x11_x_output_buffer_new           (Display *d, Visual *v, int depth, int w, int h, int try_shm, void *data);
29 void             evas_software_x11_x_output_buffer_free          (X_Output_Buffer *xob, int sync);
30 void             evas_software_x11_x_output_buffer_paste         (X_Output_Buffer *xob, Drawable d, GC gc, int x, int y, int w, int h, int sync);
31 DATA8           *evas_software_x11_x_output_buffer_data          (X_Output_Buffer *xob, int *bytes_per_line_ret);
32 int              evas_software_x11_x_output_buffer_depth         (X_Output_Buffer *xob);
33 int              evas_software_x11_x_output_buffer_byte_order    (X_Output_Buffer *xob);
34 int              evas_software_x11_x_output_buffer_bit_order     (X_Output_Buffer *xob);
35
36 #endif