move around - flatter.
[profile/ivi/evas.git] / src / modules / engines / fb / evas_engine.h
1 #ifndef EVAS_ENGINE_H
2 #define EVAS_ENGINE_H
3
4 #include "evas_fb.h"
5
6 typedef struct _Outbuf                Outbuf;
7
8 typedef enum   _Outbuf_Depth          Outbuf_Depth;
9
10 enum _Outbuf_Depth
11 {
12    OUTBUF_DEPTH_NONE,
13      OUTBUF_DEPTH_INHERIT,
14      OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED,
15      OUTBUF_DEPTH_RGB_16BPP_555_555_DITHERED,
16      OUTBUF_DEPTH_RGB_16BPP_444_444_DITHERED,
17      OUTBUF_DEPTH_RGB_16BPP_565_444_DITHERED,
18      OUTBUF_DEPTH_RGB_32BPP_888_8888,
19      OUTBUF_DEPTH_LAST
20 };
21
22 struct _Outbuf
23 {
24    Outbuf_Depth    depth;
25    int             w, h;
26    int             rot;
27
28    struct {
29       struct {
30          FB_Mode  *fb;
31       } fb;
32       struct {
33          DATA32    r, g, b;
34       } mask;
35       RGBA_Image  *back_buf;
36    } priv;
37 };
38
39 /****/
40
41 void         evas_fb_outbuf_fb_init                   (void);
42 void         evas_fb_outbuf_fb_free                   (Outbuf *buf);
43
44 Outbuf      *evas_fb_outbuf_fb_setup_fb               (int w, int h, int rot, Outbuf_Depth depth, int vt_no, int dev_no, int refresh);
45
46 void         evas_fb_outbuf_fb_blit                   (Outbuf *buf, int src_x, int src_y, int w, int h, int dst_x, int dst_y);
47 void         evas_fb_outbuf_fb_update                 (Outbuf *buf, int x, int y, int w, int h);
48 RGBA_Image  *evas_fb_outbuf_fb_new_region_for_update  (Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
49 void         evas_fb_outbuf_fb_free_region_for_update (Outbuf *buf, RGBA_Image *update);
50 void         evas_fb_outbuf_fb_push_updated_region    (Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h);
51 void         evas_fb_outbuf_fb_reconfigure            (Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth);
52 int          evas_fb_outbuf_fb_get_width              (Outbuf *buf);
53 int          evas_fb_outbuf_fb_get_height             (Outbuf *buf);
54 Outbuf_Depth evas_fb_outbuf_fb_get_depth              (Outbuf *buf);
55 int          evas_fb_outbuf_fb_get_rot                (Outbuf *buf);
56 int          evas_fb_outbuf_fb_get_have_backbuf       (Outbuf *buf);
57 void         evas_fb_outbuf_fb_set_have_backbuf       (Outbuf *buf, int have_backbuf);
58
59 #endif