#ifndef EVAS_CAIRO_COMMON_H #define EVAS_CAIRO_COMMON_H #include "evas_common.h" #include "config.h" #include #include #include #include #include #include #include #include #include #include #include #include typedef struct _Evas_Cairo_Context Evas_Cairo_Context; typedef struct _Evas_Cairo_Image Evas_Cairo_Image; typedef struct _Evas_Cairo_Polygon Evas_Cairo_Polygon; typedef struct _Evas_Cairo_Polygon_Point Evas_Cairo_Polygon_Point; struct _Evas_Cairo_Context { cairo_t *cairo; struct { double r, g, b, a; } col; struct { unsigned int set : 1; double r, g, b, a; } mul; }; struct _Evas_Cairo_Image { RGBA_Image *im; int references; DATA32 *mulpix; cairo_surface_t *surface; cairo_pattern_t *pattern; #if 0 Evas_Cairo_Context *cc; char dirty : 1; char cached : 1; #endif }; struct _Evas_Cairo_Polygon { Eina_List *points; }; struct _Evas_Cairo_Polygon_Point { int x, y; }; #if 0 struct _Evas_Cairo_Context { unsigned char r, g, b, a; struct { char size : 1; char dither : 1; char blend : 1; char color : 1; char texture : 1; char clip : 1; char buf : 1; char other : 1; } change; struct { char active : 1; int x, y, w, h; } clip; struct { int checked : 1; int sgis_generate_mipmap : 1; int nv_texture_rectangle : 1; } ext; int references; Eina_List *images; }; struct _Evas_Cairo_Image { Evas_Cairo_Context *cc; RGBA_Image *im; cairo_surface_t *surf; DATA32 *mulpix; int references; char dirty : 1; char cached : 1; }; struct _Evas_Cairo_Polygon { Eina_List *points; }; struct _Evas_Cairo_Polygon_Point { int x, y; }; #endif /* Evas_Engine_GL_Context *evas_gl_common_context_new(void); void evas_gl_common_context_free(Evas_Engine_GL_Context *gc); void evas_gl_common_context_use(Evas_Engine_GL_Context *gc); void evas_gl_common_context_resize(Evas_Engine_GL_Context *gc, int w, int h); void evas_gl_common_context_color_set(Evas_Engine_GL_Context *gc, int r, int g, int b, int a); void evas_gl_common_context_blend_set(Evas_Engine_GL_Context *gc, int blend); void evas_gl_common_context_dither_set(Evas_Engine_GL_Context *gc, int dither); void evas_gl_common_context_texture_set(Evas_Engine_GL_Context *gc, Evas_GL_Texture *tex, int smooth, int w, int h); void evas_gl_common_context_font_texture_set(Evas_Engine_GL_Context *gc, Evas_GL_Font_Texture *ft); void evas_gl_common_context_clip_set(Evas_Engine_GL_Context *gc, int on, int x, int y, int w, int h); void evas_gl_common_context_read_buf_set(Evas_Engine_GL_Context *gc, GLenum buf); void evas_gl_common_context_write_buf_set(Evas_Engine_GL_Context *gc, GLenum buf); Evas_GL_Texture *evas_gl_common_texture_new(Evas_Engine_GL_Context *gc, RGBA_Image *im, int smooth); void evas_gl_common_texture_update(Evas_GL_Texture *tex, RGBA_Image *im, int smooth); void evas_gl_common_texture_free(Evas_GL_Texture *tex); void evas_gl_common_texture_mipmaps_build(Evas_GL_Texture *tex, RGBA_Image *im, int smooth); Evas_GL_Image *evas_gl_common_image_load(Evas_Engine_GL_Context *gc, char *file, char *key); Evas_GL_Image *evas_gl_common_image_new_from_data(Evas_Engine_GL_Context *gc, int w, int h, int *data); Evas_GL_Image *evas_gl_common_image_new_from_copied_data(Evas_Engine_GL_Context *gc, int w, int h, int *data); Evas_GL_Image *evas_gl_common_image_new(Evas_Engine_GL_Context *gc, int w, int h); void evas_gl_common_image_free(Evas_GL_Image *im); void evas_gl_common_image_dirty(Evas_GL_Image *im); Evas_GL_Polygon *evas_gl_common_poly_point_add(Evas_GL_Polygon *poly, int x, int y); Evas_GL_Polygon *evas_gl_common_poly_points_clear(Evas_GL_Polygon *poly); void evas_gl_common_swap_rect(Evas_Engine_GL_Context *gc, int x, int y, int w, int h); void evas_gl_common_rect_draw(Evas_Engine_GL_Context *gc, RGBA_Draw_Context *dc, int x, int y, int w, int h); void evas_gl_common_image_draw(Evas_Engine_GL_Context *gc, RGBA_Draw_Context *dc, Evas_GL_Image *im, int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh, int smooth); void evas_gl_common_line_draw(Evas_Engine_GL_Context *gc, RGBA_Draw_Context *dc, int x1, int y1, int x2, int y2); void evas_gl_common_poly_draw(Evas_Engine_GL_Context *gc, RGBA_Draw_Context *dc, Evas_GL_Polygon *poly); Evas_GL_Font_Texture *evas_gl_font_texture_new(Evas_Engine_GL_Context *gc, RGBA_Font_Glyph *fg); void evas_gl_font_texture_free(Evas_GL_Font_Texture *ft); void evas_gl_font_texture_draw(Evas_Engine_GL_Context *gc, void *surface, RGBA_Draw_Context *dc, RGBA_Font_Glyph *fg, int x, int y); */ #endif