2003-04-01 20:28:27 -08:00
|
|
|
#ifndef EVAS_ENGINE_H
|
|
|
|
#define EVAS_ENGINE_H
|
|
|
|
|
|
|
|
typedef struct _Outbuf Outbuf;
|
|
|
|
|
|
|
|
typedef enum _Outbuf_Depth Outbuf_Depth;
|
|
|
|
|
|
|
|
enum _Outbuf_Depth
|
|
|
|
{
|
|
|
|
OUTBUF_DEPTH_NONE,
|
2006-01-22 23:57:30 -08:00
|
|
|
OUTBUF_DEPTH_ARGB_32BPP_8888_8888,
|
2003-04-01 20:28:27 -08:00
|
|
|
OUTBUF_DEPTH_RGB_32BPP_888_8888,
|
2003-04-02 00:00:34 -08:00
|
|
|
OUTBUF_DEPTH_BGR_32BPP_888_8888,
|
|
|
|
OUTBUF_DEPTH_RGB_24BPP_888_888,
|
|
|
|
OUTBUF_DEPTH_BGR_24BPP_888_888,
|
2003-04-01 20:28:27 -08:00
|
|
|
OUTBUF_DEPTH_LAST
|
|
|
|
};
|
|
|
|
|
|
|
|
struct _Outbuf
|
|
|
|
{
|
|
|
|
int w, h;
|
|
|
|
Outbuf_Depth depth;
|
2005-05-21 19:49:50 -07:00
|
|
|
|
2003-04-01 20:28:27 -08:00
|
|
|
void *dest;
|
|
|
|
int dest_row_bytes;
|
2005-05-21 19:49:50 -07:00
|
|
|
|
2003-04-01 20:28:27 -08:00
|
|
|
int alpha_level;
|
|
|
|
DATA32 color_key;
|
|
|
|
char use_color_key : 1;
|
2003-04-08 23:52:14 -07:00
|
|
|
|
|
|
|
struct {
|
|
|
|
void * (*new_update_region) (int x, int y, int w, int h, int *row_bytes);
|
|
|
|
void (*free_update_region) (int x, int y, int w, int h, void *data);
|
|
|
|
} func;
|
2005-01-08 10:23:41 -08:00
|
|
|
|
|
|
|
struct {
|
|
|
|
RGBA_Image *back_buf;
|
|
|
|
} priv;
|
2003-04-01 20:28:27 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
/****/
|
|
|
|
|
|
|
|
void evas_buffer_outbuf_buf_init (void);
|
|
|
|
void evas_buffer_outbuf_buf_free (Outbuf *buf);
|
|
|
|
|
2003-04-08 23:52:14 -07:00
|
|
|
Outbuf *evas_buffer_outbuf_buf_setup_fb (int w, int h, Outbuf_Depth depth, void *dest, int dest_row_bytes, int use_color_key, DATA32 color_key, int alpha_level,
|
|
|
|
void * (*new_update_region) (int x, int y, int w, int h, int *row_bytes),
|
|
|
|
void (*free_update_region) (int x, int y, int w, int h, void *data));
|
2005-05-21 19:49:50 -07:00
|
|
|
|
2003-04-01 20:28:27 -08:00
|
|
|
|
|
|
|
RGBA_Image *evas_buffer_outbuf_buf_new_region_for_update (Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
|
|
|
|
void evas_buffer_outbuf_buf_free_region_for_update (Outbuf *buf, RGBA_Image *update);
|
|
|
|
void evas_buffer_outbuf_buf_push_updated_region (Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|