#include #include #include #include #include #include #include #include #include #include #include #include #include #include "Evas.h" typedef struct _evas_gl_image Evas_GL_Image; typedef enum _evas_gl_image_state Evas_GL_Image_State; enum _evas_gl_image_state { EVAS_STATE_DATA, EVAS_STATE_TEXTURE }; struct _evas_gl_image { Evas_GL_Image_State state; int w, h; /* data specific params */ DATA32 *data; /* common GL params */ GLXContext context; /* texture state specific params */ struct _tex { int max_size; int w, h; int edge_w, edge_h; GLuint *textures; } texture; /* buffer specific params */ struct _buf { Display *display; XVisualInfo *visual_info; Colormap colormap; Window window; } buffer; }; void __evas_gl_copy_image_rect_to_texture(Evas_GL_Image *im, int x, int y, int w, int h, int tw, int th, GLuint texture); void __evas_gl_move_state_data_to_texture(Evas_GL_Image *im); void __evas_calc_tex_and_poly(Evas_GL_Image *im, int x, double *x1, double *x2, int *tx, int *txx, double *dtx, double *dtxx, int tw, int w, int edge); void __evas_gl_render_to_window(Evas_GL_Image *im, Display *disp, Window w, int win_w, int win_h, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h); Evas_GL_Image * __evas_gl_create_image(void); int __evas_gl_capable(Display *disp); Visual * __evas_gl_get_visual(Display *disp); Colormap __evas_gl_get_colormap(Display *disp); void __evas_gl_init(Display *disp); Evas_GL_Image * __evas_gl_image_new_from_file(Display *disp, char *file); void __evas_sync(Display *disp); void __evas_flush_draw(Display *disp, Window win); void __evas_draw_rectangle(Display *disp, Window win, int x, int y, int w, int h, int r, int g, int b, int a);