Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas
Dir : e17/libs/evas/src/modules/engines/software_xcb Modified Files: evas_engine.c Log Message: make hinting an engine api thnig - engine apis need to be mroe easily updated =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/modules/engines/software_xcb/evas_engine.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- evas_engine.c 15 Jan 2006 06:21:05 -0000 1.2 +++ evas_engine.c 28 Feb 2006 04:07:48 -0000 1.3 @@ -4,99 +4,101 @@ #include "evas_engine_api_software_xcb.h" #include "Evas_Engine_Software_Xcb.h" -static void *evas_engine_software_xcb_info(Evas *e); -static void evas_engine_software_xcb_info_free(Evas *e, void *info); -static void evas_engine_software_xcb_setup(Evas *e, void *info); -static void *evas_engine_software_xcb_output_setup(int w, int h, int rot, XCBConnection *conn, XCBDRAWABLE draw, XCBVISUALTYPE *vis, XCBCOLORMAP cmap, int depth, int debug, int grayscale, int max_colors, XCBDRAWABLE mask, int shape_dither); -static void evas_engine_software_xcb_output_free(void *data); -static void evas_engine_software_xcb_output_resize(void *data, int w, int h); -static void evas_engine_software_xcb_output_tile_size_set(void *data, int w, int h); -static void evas_engine_software_xcb_output_redraws_rect_add(void *data, int x, int y, int w, int h); -static void evas_engine_software_xcb_output_redraws_rect_del(void *data, int x, int y, int w, int h); -static void evas_engine_software_xcb_output_redraws_clear(void *data); -static void *evas_engine_software_xcb_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch); -static void evas_engine_software_xcb_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h); -static void evas_engine_software_xcb_output_flush(void *data); -static void *evas_engine_software_xcb_context_new(void *data); -static void evas_engine_software_xcb_context_free(void *data, void *context); -static void evas_engine_software_xcb_context_clip_set(void *data, void *context, int x, int y, int w, int h); -static void evas_engine_software_xcb_context_clip_clip(void *data, void *context, int x, int y, int w, int h); -static void evas_engine_software_xcb_context_clip_unset(void *data, void *context); -static int evas_engine_software_xcb_context_clip_get(void *data, void *context, int *x, int *y, int *w, int *h); -static void evas_engine_software_xcb_context_color_set(void *data, void *context, int r, int g, int b, int a); -static int evas_engine_software_xcb_context_color_get(void *data, void *context, int *r, int *g, int *b, int *a); -static void evas_engine_software_xcb_context_multiplier_set(void *data, void *context, int r, int g, int b, int a); -static void evas_engine_software_xcb_context_multiplier_unset(void *data, void *context); -static int evas_engine_software_xcb_context_multiplier_get(void *data, void *context, int *r, int *g, int *b, int *a); -static void evas_engine_software_xcb_context_cutout_add(void *data, void *context, int x, int y, int w, int h); -static void evas_engine_software_xcb_context_cutout_clear(void *data, void *context); -static void evas_engine_software_xcb_context_anti_alias_set(void *data, void *context, unsigned char aa); -static unsigned char evas_engine_software_xcb_context_anti_alias_get(void *data, void *context); -static void evas_engine_software_xcb_context_color_interpolation_set(void *data, void *context, int color_space); -static int evas_engine_software_xcb_context_color_interpolation_get(void *data, void *context); -static void evas_engine_software_xcb_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h); -static void evas_engine_software_xcb_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2); -static void *evas_engine_software_xcb_polygon_point_add(void *data, void *context, void *polygon, int x, int y); -static void *evas_engine_software_xcb_polygon_points_clear(void *data, void *context, void *polygon); -static void evas_engine_software_xcb_polygon_draw(void *data, void *context, void *surface, void *polygon); -static void *evas_engine_software_xcb_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance); -static void *evas_engine_software_xcb_gradient_colors_clear(void *data, void *context, void *gradient); -static void evas_engine_software_xcb_gradient_free(void *data, void *gradient); -static void evas_engine_software_xcb_gradient_fill_set(void *data, void *gradient, int x, int y, int w, int h); -static void evas_engine_software_xcb_gradient_type_set(void *data, void *gradient, char *name); -static void evas_engine_software_xcb_gradient_type_params_set(void *data, void *gradient, char *params); -static void *evas_engine_software_xcb_gradient_geometry_init(void *data, void *gradient, int spread); -static int evas_engine_software_xcb_gradient_alpha_get(void *data, void *gradient, int spread); -static void evas_engine_software_xcb_gradient_map(void *data, void *context, void *gradient, int spread); -static void evas_engine_software_xcb_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle, int spread); -static void *evas_engine_software_xcb_image_load(void *data, char *file, char *key, int *error); -static void *evas_engine_software_xcb_image_new_from_data(void *data, int w, int h, DATA32 *image_data); -static void *evas_engine_software_xcb_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data); -static void evas_engine_software_xcb_image_free(void *data, void *image); -static void evas_engine_software_xcb_image_size_get(void *data, void *image, int *w, int *h); -static void *evas_engine_software_xcb_image_size_set(void *data, void *image, int w, int h); -static void *evas_engine_software_xcb_image_dirty_region(void *data, void *image, int x, int y, int w, int h); -static void *evas_engine_software_xcb_image_data_get(void *data, void *image, int to_write, DATA32 **image_data); -static void *evas_engine_software_xcb_image_data_put(void *data, void *image, DATA32 *image_data); -static void *evas_engine_software_xcb_image_alpha_set(void *data, void *image, int has_alpha); -static int evas_engine_software_xcb_image_alpha_get(void *data, void *image); -static void evas_engine_software_xcb_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth); -static char *evas_engine_software_xcb_image_comment_get(void *data, void *image, char *key); -static char *evas_engine_software_xcb_image_format_get(void *data, void *image); -static void evas_engine_software_xcb_image_cache_flush(void *data); -static void evas_engine_software_xcb_image_cache_set(void *data, int bytes); -static int evas_engine_software_xcb_image_cache_get(void *data); -static void *evas_engine_software_xcb_font_load(void *data, char *name, int size); -static void *evas_engine_software_xcb_font_memory_load(void *data, char *name, int size, const void *fdata, int fdata_size); -static void *evas_engine_software_xcb_font_add(void *data, void *font, char *name, int size); -static void *evas_engine_software_xcb_font_memory_add(void *data, void *font, char *name, int size, const void *fdata, int fdata_size); -static void evas_engine_software_xcb_font_free(void *data, void *font); -static int evas_engine_software_xcb_font_ascent_get(void *data, void *font); -static int evas_engine_software_xcb_font_descent_get(void *data, void *font); -static int evas_engine_software_xcb_font_max_ascent_get(void *data, void *font); -static int evas_engine_software_xcb_font_max_descent_get(void *data, void *font); -static void evas_engine_software_xcb_font_string_size_get(void *data, void *font, char *text, int *w, int *h); -static int evas_engine_software_xcb_font_inset_get(void *data, void *font, char *text); -static int evas_engine_software_xcb_font_h_advance_get(void *data, void *font, char *text); -static int evas_engine_software_xcb_font_v_advance_get(void *data, void *font, char *text); -static int evas_engine_software_xcb_font_char_coords_get(void *data, void *font, char *text, int pos, int *cx, int *cy, int *cw, int *ch); -static int evas_engine_software_xcb_font_char_at_coords_get(void *data, void *font, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch); -static void evas_engine_software_xcb_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, char *text); -static void evas_engine_software_xcb_font_cache_flush(void *data); -static void evas_engine_software_xcb_font_cache_set(void *data, int bytes); -static int evas_engine_software_xcb_font_cache_get(void *data); - - -static XCBVISUALTYPE *evas_engine_software_xcb_best_visual_get(XCBConnection *conn, int screen); -static XCBCOLORMAP evas_engine_software_xcb_best_colormap_get(XCBConnection *conn, int screen); -static int evas_engine_software_xcb_best_depth_get(XCBConnection *conn, int screen); -static Evas_Performance *evas_engine_software_xcb_output_perf_new(Evas *e, XCBConnection *conn, XCBVISUALTYPE *vis, XCBCOLORMAP cmap, XCBDRAWABLE draw, int depth); -static Evas_Performance *evas_engine_software_xcb_output_perf_test(Evas *e, XCBConnection *conn, XCBVISUALTYPE *vis, XCBCOLORMAP cmap, XCBDRAWABLE draw, int depth); -static char *evas_engine_software_xcb_output_perf_data(Evas_Performance *perf); -static char *evas_engine_software_xcb_output_perf_key(Evas_Performance *perf); -static void evas_engine_software_xcb_output_perf_free(Evas_Performance *perf); -static void evas_engine_software_xcb_output_perf_build(Evas_Performance *perf, const char *data); -static void evas_engine_software_xcb_output_perf_device_store(Evas_Performance *perf); +static void *eng_info(Evas *e); +static void eng_info_free(Evas *e, void *info); +static void eng_setup(Evas *e, void *info); +static void *eng_output_setup(int w, int h, int rot, XCBConnection *conn, XCBDRAWABLE draw, XCBVISUALTYPE *vis, XCBCOLORMAP cmap, int depth, int debug, int grayscale, int max_colors, XCBDRAWABLE mask, int shape_dither); +static void eng_output_free(void *data); +static void eng_output_resize(void *data, int w, int h); +static void eng_output_tile_size_set(void *data, int w, int h); +static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h); +static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h); +static void eng_output_redraws_clear(void *data); +static void *eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch); +static void eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h); +static void eng_output_flush(void *data); +static void *eng_context_new(void *data); +static void eng_context_free(void *data, void *context); +static void eng_context_clip_set(void *data, void *context, int x, int y, int w, int h); +static void eng_context_clip_clip(void *data, void *context, int x, int y, int w, int h); +static void eng_context_clip_unset(void *data, void *context); +static int eng_context_clip_get(void *data, void *context, int *x, int *y, int *w, int *h); +static void eng_context_color_set(void *data, void *context, int r, int g, int b, int a); +static int eng_context_color_get(void *data, void *context, int *r, int *g, int *b, int *a); +static void eng_context_multiplier_set(void *data, void *context, int r, int g, int b, int a); +static void eng_context_multiplier_unset(void *data, void *context); +static int eng_context_multiplier_get(void *data, void *context, int *r, int *g, int *b, int *a); +static void eng_context_cutout_add(void *data, void *context, int x, int y, int w, int h); +static void eng_context_cutout_clear(void *data, void *context); +static void eng_context_anti_alias_set(void *data, void *context, unsigned char aa); +static unsigned char eng_context_anti_alias_get(void *data, void *context); +static void eng_context_color_interpolation_set(void *data, void *context, int color_space); +static int eng_context_color_interpolation_get(void *data, void *context); +static void eng_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h); +static void eng_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2); +static void *eng_polygon_point_add(void *data, void *context, void *polygon, int x, int y); +static void *eng_polygon_points_clear(void *data, void *context, void *polygon); +static void eng_polygon_draw(void *data, void *context, void *surface, void *polygon); +static void *eng_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance); +static void *eng_gradient_colors_clear(void *data, void *context, void *gradient); +static void eng_gradient_free(void *data, void *gradient); +static void eng_gradient_fill_set(void *data, void *gradient, int x, int y, int w, int h); +static void eng_gradient_type_set(void *data, void *gradient, char *name); +static void eng_gradient_type_params_set(void *data, void *gradient, char *params); +static void *eng_gradient_geometry_init(void *data, void *gradient, int spread); +static int eng_gradient_alpha_get(void *data, void *gradient, int spread); +static void eng_gradient_map(void *data, void *context, void *gradient, int spread); +static void eng_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle, int spread); +static void *eng_image_load(void *data, char *file, char *key, int *error); +static void *eng_image_new_from_data(void *data, int w, int h, DATA32 *image_data); +static void *eng_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data); +static void eng_image_free(void *data, void *image); +static void eng_image_size_get(void *data, void *image, int *w, int *h); +static void *eng_image_size_set(void *data, void *image, int w, int h); +static void *eng_image_dirty_region(void *data, void *image, int x, int y, int w, int h); +static void *eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data); +static void *eng_image_data_put(void *data, void *image, DATA32 *image_data); +static void *eng_image_alpha_set(void *data, void *image, int has_alpha); +static int eng_image_alpha_get(void *data, void *image); +static void eng_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth); +static char *eng_image_comment_get(void *data, void *image, char *key); +static char *eng_image_format_get(void *data, void *image); +static void eng_image_cache_flush(void *data); +static void eng_image_cache_set(void *data, int bytes); +static int eng_image_cache_get(void *data); +static void *eng_font_load(void *data, char *name, int size); +static void *eng_font_memory_load(void *data, char *name, int size, const void *fdata, int fdata_size); +static void *eng_font_add(void *data, void *font, char *name, int size); +static void *eng_font_memory_add(void *data, void *font, char *name, int size, const void *fdata, int fdata_size); +static void eng_font_free(void *data, void *font); +static int eng_font_ascent_get(void *data, void *font); +static int eng_font_descent_get(void *data, void *font); +static int eng_font_max_ascent_get(void *data, void *font); +static int eng_font_max_descent_get(void *data, void *font); +static void eng_font_string_size_get(void *data, void *font, char *text, int *w, int *h); +static int eng_font_inset_get(void *data, void *font, char *text); +static int eng_font_h_advance_get(void *data, void *font, char *text); +static int eng_font_v_advance_get(void *data, void *font, char *text); +static int eng_font_char_coords_get(void *data, void *font, char *text, int pos, int *cx, int *cy, int *cw, int *ch); +static int eng_font_char_at_coords_get(void *data, void *font, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch); +static void eng_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, char *text); +static void eng_font_cache_flush(void *data); +static void eng_font_cache_set(void *data, int bytes); +static int eng_font_cache_get(void *data); + +static void eng_font_hinting_set(void *data, void *font, int hinting); +static int eng_font_hinting_can_hint(void *data, int hinting); + +static XCBVISUALTYPE *eng_best_visual_get(XCBConnection *conn, int screen); +static XCBCOLORMAP eng_best_colormap_get(XCBConnection *conn, int screen); +static int eng_best_depth_get(XCBConnection *conn, int screen); +static Evas_Performance *eng_output_perf_new(Evas *e, XCBConnection *conn, XCBVISUALTYPE *vis, XCBCOLORMAP cmap, XCBDRAWABLE draw, int depth); +static Evas_Performance *eng_output_perf_test(Evas *e, XCBConnection *conn, XCBVISUALTYPE *vis, XCBCOLORMAP cmap, XCBDRAWABLE draw, int depth); +static char *eng_output_perf_data(Evas_Performance *perf); +static char *eng_output_perf_key(Evas_Performance *perf); +static void eng_output_perf_free(Evas_Performance *perf); +static void eng_output_perf_build(Evas_Performance *perf, const char *data); +static void eng_output_perf_device_store(Evas_Performance *perf); typedef struct _Render_Engine Render_Engine; @@ -109,101 +111,104 @@ int end : 1; }; -Evas_Func evas_engine_software_xcb_func = +static Evas_Func eng_func = { - evas_engine_software_xcb_info, - evas_engine_software_xcb_info_free, - evas_engine_software_xcb_setup, - evas_engine_software_xcb_output_free, - evas_engine_software_xcb_output_resize, - evas_engine_software_xcb_output_tile_size_set, - evas_engine_software_xcb_output_redraws_rect_add, - evas_engine_software_xcb_output_redraws_rect_del, - evas_engine_software_xcb_output_redraws_clear, - evas_engine_software_xcb_output_redraws_next_update_get, - evas_engine_software_xcb_output_redraws_next_update_push, - evas_engine_software_xcb_output_flush, + eng_info, + eng_info_free, + eng_setup, + eng_output_free, + eng_output_resize, + eng_output_tile_size_set, + eng_output_redraws_rect_add, + eng_output_redraws_rect_del, + eng_output_redraws_clear, + eng_output_redraws_next_update_get, + eng_output_redraws_next_update_push, + eng_output_flush, /* draw context virtual methods */ - evas_engine_software_xcb_context_new, - evas_engine_software_xcb_context_free, - evas_engine_software_xcb_context_clip_set, - evas_engine_software_xcb_context_clip_clip, - evas_engine_software_xcb_context_clip_unset, - evas_engine_software_xcb_context_clip_get, - evas_engine_software_xcb_context_color_set, - evas_engine_software_xcb_context_color_get, - evas_engine_software_xcb_context_multiplier_set, - evas_engine_software_xcb_context_multiplier_unset, - evas_engine_software_xcb_context_multiplier_get, - evas_engine_software_xcb_context_cutout_add, - evas_engine_software_xcb_context_cutout_clear, - evas_engine_software_xcb_context_anti_alias_set, - evas_engine_software_xcb_context_anti_alias_get, - evas_engine_software_xcb_context_color_interpolation_set, - evas_engine_software_xcb_context_color_interpolation_get, + eng_context_new, + eng_context_free, + eng_context_clip_set, + eng_context_clip_clip, + eng_context_clip_unset, + eng_context_clip_get, + eng_context_color_set, + eng_context_color_get, + eng_context_multiplier_set, + eng_context_multiplier_unset, + eng_context_multiplier_get, + eng_context_cutout_add, + eng_context_cutout_clear, + eng_context_anti_alias_set, + eng_context_anti_alias_get, + eng_context_color_interpolation_set, + eng_context_color_interpolation_get, /* rectangle draw funcs */ - evas_engine_software_xcb_rectangle_draw, + eng_rectangle_draw, /* line draw funcs */ - evas_engine_software_xcb_line_draw, + eng_line_draw, /* polygon draw funcs */ - evas_engine_software_xcb_polygon_point_add, - evas_engine_software_xcb_polygon_points_clear, - evas_engine_software_xcb_polygon_draw, + eng_polygon_point_add, + eng_polygon_points_clear, + eng_polygon_draw, /* gradient draw funcs */ - evas_engine_software_xcb_gradient_color_add, - evas_engine_software_xcb_gradient_colors_clear, - evas_engine_software_xcb_gradient_free, - evas_engine_software_xcb_gradient_fill_set, - evas_engine_software_xcb_gradient_type_set, - evas_engine_software_xcb_gradient_type_params_set, - evas_engine_software_xcb_gradient_geometry_init, - evas_engine_software_xcb_gradient_alpha_get, - evas_engine_software_xcb_gradient_map, - evas_engine_software_xcb_gradient_draw, + eng_gradient_color_add, + eng_gradient_colors_clear, + eng_gradient_free, + eng_gradient_fill_set, + eng_gradient_type_set, + eng_gradient_type_params_set, + eng_gradient_geometry_init, + eng_gradient_alpha_get, + eng_gradient_map, + eng_gradient_draw, /* image draw funcs */ - evas_engine_software_xcb_image_load, - evas_engine_software_xcb_image_new_from_data, - evas_engine_software_xcb_image_new_from_copied_data, - evas_engine_software_xcb_image_free, - evas_engine_software_xcb_image_size_get, - evas_engine_software_xcb_image_size_set, - evas_engine_software_xcb_image_dirty_region, - evas_engine_software_xcb_image_data_get, - evas_engine_software_xcb_image_data_put, - evas_engine_software_xcb_image_alpha_set, - evas_engine_software_xcb_image_alpha_get, - evas_engine_software_xcb_image_draw, - evas_engine_software_xcb_image_comment_get, - evas_engine_software_xcb_image_format_get, + eng_image_load, + eng_image_new_from_data, + eng_image_new_from_copied_data, + eng_image_free, + eng_image_size_get, + eng_image_size_set, + eng_image_dirty_region, + eng_image_data_get, + eng_image_data_put, + eng_image_alpha_set, + eng_image_alpha_get, + eng_image_draw, + eng_image_comment_get, + eng_image_format_get, /* image cache funcs */ - evas_engine_software_xcb_image_cache_flush, - evas_engine_software_xcb_image_cache_set, - evas_engine_software_xcb_image_cache_get, + eng_image_cache_flush, + eng_image_cache_set, + eng_image_cache_get, /* font draw functions */ - evas_engine_software_xcb_font_load, - evas_engine_software_xcb_font_memory_load, - evas_engine_software_xcb_font_add, - evas_engine_software_xcb_font_memory_add, - evas_engine_software_xcb_font_free, - evas_engine_software_xcb_font_ascent_get, - evas_engine_software_xcb_font_descent_get, - evas_engine_software_xcb_font_max_ascent_get, - evas_engine_software_xcb_font_max_descent_get, - evas_engine_software_xcb_font_string_size_get, - evas_engine_software_xcb_font_inset_get, - evas_engine_software_xcb_font_h_advance_get, - evas_engine_software_xcb_font_v_advance_get, - evas_engine_software_xcb_font_char_coords_get, - evas_engine_software_xcb_font_char_at_coords_get, - evas_engine_software_xcb_font_draw, + eng_font_load, + eng_font_memory_load, + eng_font_add, + eng_font_memory_add, + eng_font_free, + eng_font_ascent_get, + eng_font_descent_get, + eng_font_max_ascent_get, + eng_font_max_descent_get, + eng_font_string_size_get, + eng_font_inset_get, + eng_font_h_advance_get, + eng_font_v_advance_get, + eng_font_char_coords_get, + eng_font_char_at_coords_get, + eng_font_draw, /* font cache functions */ - evas_engine_software_xcb_font_cache_flush, - evas_engine_software_xcb_font_cache_set, - evas_engine_software_xcb_font_cache_get + eng_font_cache_flush, + eng_font_cache_set, + eng_font_cache_get, + + eng_font_hinting_set, + eng_font_hinting_can_hint }; static void * -evas_engine_software_xcb_info(Evas *e) +eng_info(Evas *e) { Evas_Engine_Info_Software_Xcb *info; @@ -213,22 +218,22 @@ info->info.debug = 0; info->info.alloc_grayscale = 0; info->info.alloc_colors_max = 216; - info->func.best_visual_get = evas_engine_software_xcb_best_visual_get; - info->func.best_colormap_get = evas_engine_software_xcb_best_colormap_get; - info->func.best_depth_get = evas_engine_software_xcb_best_depth_get; - info->func.performance_test = evas_engine_software_xcb_output_perf_test; - info->func.performance_free = evas_engine_software_xcb_output_perf_free; - info->func.performance_data_get = evas_engine_software_xcb_output_perf_data; - info->func.performance_key_get = evas_engine_software_xcb_output_perf_key; - info->func.performance_new = evas_engine_software_xcb_output_perf_new; - info->func.performance_build = evas_engine_software_xcb_output_perf_build; - info->func.performance_device_store = evas_engine_software_xcb_output_perf_device_store; + info->func.best_visual_get = eng_best_visual_get; + info->func.best_colormap_get = eng_best_colormap_get; + info->func.best_depth_get = eng_best_depth_get; + info->func.performance_test = eng_output_perf_test; + info->func.performance_free = eng_output_perf_free; + info->func.performance_data_get = eng_output_perf_data; + info->func.performance_key_get = eng_output_perf_key; + info->func.performance_new = eng_output_perf_new; + info->func.performance_build = eng_output_perf_build; + info->func.performance_device_store = eng_output_perf_device_store; return info; e = NULL; } static void -evas_engine_software_xcb_info_free(Evas *e, void *info) +eng_info_free(Evas *e, void *info) { Evas_Engine_Info_Software_Xcb *in; @@ -237,7 +242,7 @@ } static void -evas_engine_software_xcb_setup(Evas *e, void *in) +eng_setup(Evas *e, void *in) { Render_Engine *re; Evas_Engine_Info_Software_Xcb *info; @@ -245,7 +250,7 @@ info = (Evas_Engine_Info_Software_Xcb *)in; if (!e->engine.data.output) e->engine.data.output = - evas_engine_software_xcb_output_setup(e->output.w, + eng_output_setup(e->output.w, e->output.h, info->info.rotation, info->info.conn, @@ -270,7 +275,7 @@ } static void * -evas_engine_software_xcb_output_setup(int w, +eng_output_setup(int w, int h, int rot, XCBConnection *conn, @@ -340,7 +345,7 @@ } static void -evas_engine_software_xcb_output_free(void *data) +eng_output_free(void *data) { Render_Engine *re; @@ -355,7 +360,7 @@ } static void -evas_engine_software_xcb_output_resize(void *data, int w, int h) +eng_output_resize(void *data, int w, int h) { Render_Engine *re; @@ -370,7 +375,7 @@ } static void -evas_engine_software_xcb_output_tile_size_set(void *data, int w, int h) +eng_output_tile_size_set(void *data, int w, int h) { Render_Engine *re; @@ -379,7 +384,7 @@ } static void -evas_engine_software_xcb_output_redraws_rect_add(void *data, int x, int y, int w, int h) +eng_output_redraws_rect_add(void *data, int x, int y, int w, int h) { Render_Engine *re; @@ -388,7 +393,7 @@ } static void -evas_engine_software_xcb_output_redraws_rect_del(void *data, int x, int y, int w, int h) +eng_output_redraws_rect_del(void *data, int x, int y, int w, int h) { Render_Engine *re; @@ -397,7 +402,7 @@ } static void -evas_engine_software_xcb_output_redraws_clear(void *data) +eng_output_redraws_clear(void *data) { Render_Engine *re; @@ -406,7 +411,7 @@ } static void * -evas_engine_software_xcb_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch) +eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch) { Render_Engine *re; RGBA_Image *surface; @@ -443,7 +448,7 @@ } static void -evas_engine_software_xcb_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h) +eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h) { Render_Engine *re; @@ -454,7 +459,7 @@ } static void -evas_engine_software_xcb_output_flush(void *data) +eng_output_flush(void *data) { Render_Engine *re; @@ -463,7 +468,7 @@ } static void * -evas_engine_software_xcb_context_new(void *data) +eng_context_new(void *data) { Render_Engine *re; @@ -472,7 +477,7 @@ } static void -evas_engine_software_xcb_context_free(void *data, void *context) +eng_context_free(void *data, void *context) { Render_Engine *re; @@ -481,7 +486,7 @@ } static void -evas_engine_software_xcb_context_clip_set(void *data, void *context, int x, int y, int w, int h) +eng_context_clip_set(void *data, void *context, int x, int y, int w, int h) { Render_Engine *re; @@ -490,7 +495,7 @@ } static void -evas_engine_software_xcb_context_clip_clip(void *data, void *context, int x, int y, int w, int h) +eng_context_clip_clip(void *data, void *context, int x, int y, int w, int h) { Render_Engine *re; @@ -499,7 +504,7 @@ } static void -evas_engine_software_xcb_context_clip_unset(void *data, void *context) +eng_context_clip_unset(void *data, void *context) { Render_Engine *re; @@ -508,7 +513,7 @@ } static int -evas_engine_software_xcb_context_clip_get(void *data, void *context, int *x, int *y, int *w, int *h) +eng_context_clip_get(void *data, void *context, int *x, int *y, int *w, int *h) { Render_Engine *re; @@ -521,7 +526,7 @@ } static void -evas_engine_software_xcb_context_color_set(void *data, void *context, int r, int g, int b, int a) +eng_context_color_set(void *data, void *context, int r, int g, int b, int a) { Render_Engine *re; @@ -530,7 +535,7 @@ } static int -evas_engine_software_xcb_context_color_get(void *data, void *context, int *r, int *g, int *b, int *a) +eng_context_color_get(void *data, void *context, int *r, int *g, int *b, int *a) { Render_Engine *re; @@ -543,7 +548,7 @@ } static void -evas_engine_software_xcb_context_multiplier_set(void *data, void *context, int r, int g, int b, int a) +eng_context_multiplier_set(void *data, void *context, int r, int g, int b, int a) { Render_Engine *re; @@ -552,7 +557,7 @@ } static void -evas_engine_software_xcb_context_multiplier_unset(void *data, void *context) +eng_context_multiplier_unset(void *data, void *context) { Render_Engine *re; @@ -561,7 +566,7 @@ } static int -evas_engine_software_xcb_context_multiplier_get(void *data, void *context, int *r, int *g, int *b, int *a) +eng_context_multiplier_get(void *data, void *context, int *r, int *g, int *b, int *a) { Render_Engine *re; @@ -574,7 +579,7 @@ } static void -evas_engine_software_xcb_context_cutout_add(void *data, void *context, int x, int y, int w, int h) +eng_context_cutout_add(void *data, void *context, int x, int y, int w, int h) { Render_Engine *re; @@ -583,7 +588,7 @@ } static void -evas_engine_software_xcb_context_cutout_clear(void *data, void *context) +eng_context_cutout_clear(void *data, void *context) { Render_Engine *re; @@ -592,7 +597,7 @@ } static void -evas_engine_software_xcb_context_anti_alias_set(void *data, void *context, unsigned char aa) +eng_context_anti_alias_set(void *data, void *context, unsigned char aa) { Render_Engine *re; @@ -601,7 +606,7 @@ } static unsigned char -evas_engine_software_xcb_context_anti_alias_get(void *data, void *context) +eng_context_anti_alias_get(void *data, void *context) { Render_Engine *re; @@ -610,7 +615,7 @@ } static void -evas_engine_software_xcb_context_color_interpolation_set(void *data, void *context, int color_space) +eng_context_color_interpolation_set(void *data, void *context, int color_space) { Render_Engine *re; @@ -619,7 +624,7 @@ } static int -evas_engine_software_xcb_context_color_interpolation_get(void *data, void *context) +eng_context_color_interpolation_get(void *data, void *context) { Render_Engine *re; @@ -633,7 +638,7 @@ static void -evas_engine_software_xcb_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h) +eng_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h) { Render_Engine *re; @@ -646,7 +651,7 @@ } static void -evas_engine_software_xcb_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2) +eng_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2) { Render_Engine *re; @@ -659,7 +664,7 @@ } static void * -evas_engine_software_xcb_polygon_point_add(void *data, void *context, void *polygon, int x, int y) +eng_polygon_point_add(void *data, void *context, void *polygon, int x, int y) { Render_Engine *re; @@ -669,7 +674,7 @@ } static void * -evas_engine_software_xcb_polygon_points_clear(void *data, void *context, void *polygon) +eng_polygon_points_clear(void *data, void *context, void *polygon) { Render_Engine *re; @@ -679,7 +684,7 @@ } static void -evas_engine_software_xcb_polygon_draw(void *data, void *context, void *surface, void *polygon) +eng_polygon_draw(void *data, void *context, void *surface, void *polygon) { Render_Engine *re; @@ -692,7 +697,7 @@ } static void * -evas_engine_software_xcb_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance) +eng_gradient_color_add(void *data, void *context, void *gradient, int r, int g, int b, int a, int distance) { Render_Engine *re; @@ -705,7 +710,7 @@ } static void * -evas_engine_software_xcb_gradient_colors_clear(void *data, void *context, void *gradient) +eng_gradient_colors_clear(void *data, void *context, void *gradient) { Render_Engine *re; @@ -716,7 +721,7 @@ } static void -evas_engine_software_xcb_gradient_free(void *data, void *gradient) +eng_gradient_free(void *data, void *gradient) { Render_Engine *re; @@ -725,7 +730,7 @@ } static void -evas_engine_software_xcb_gradient_fill_set(void *data, void *gradient, int x, int y, int w, int h) +eng_gradient_fill_set(void *data, void *gradient, int x, int y, int w, int h) { Render_Engine *re; @@ -734,7 +739,7 @@ } static void -evas_engine_software_xcb_gradient_type_set(void *data, void *gradient, char *name) +eng_gradient_type_set(void *data, void *gradient, char *name) { Render_Engine *re; @@ -743,7 +748,7 @@ } static void -evas_engine_software_xcb_gradient_type_params_set(void *data, void *gradient, char *params) +eng_gradient_type_params_set(void *data, void *gradient, char *params) { Render_Engine *re; @@ -752,7 +757,7 @@ } static void * -evas_engine_software_xcb_gradient_geometry_init(void *data, void *gradient, int spread) +eng_gradient_geometry_init(void *data, void *gradient, int spread) { Render_Engine *re; @@ -762,7 +767,7 @@ } static int -evas_engine_software_xcb_gradient_alpha_get(void *data, void *gradient, int spread) +eng_gradient_alpha_get(void *data, void *gradient, int spread) { Render_Engine *re; @@ -771,7 +776,7 @@ } static void -evas_engine_software_xcb_gradient_map(void *data, void *context, void *gradient, int spread) +eng_gradient_map(void *data, void *context, void *gradient, int spread) { Render_Engine *re; @@ -781,7 +786,7 @@ } static void -evas_engine_software_xcb_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle, int spread) +eng_gradient_draw(void *data, void *context, void *surface, void *gradient, int x, int y, int w, int h, double angle, int spread) { Render_Engine *re; @@ -794,7 +799,7 @@ } static void * -evas_engine_software_xcb_image_load(void *data, char *file, char *key, int *error) +eng_image_load(void *data, char *file, char *key, int *error) { Render_Engine *re; @@ -804,7 +809,7 @@ } static void * -evas_engine_software_xcb_image_new_from_data(void *data, int w, int h, DATA32 *image_data) +eng_image_new_from_data(void *data, int w, int h, DATA32 *image_data) { Render_Engine *re; RGBA_Image *im; @@ -825,7 +830,7 @@ } static void * -evas_engine_software_xcb_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data) +eng_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data) { Render_Engine *re; RGBA_Image *im; @@ -839,7 +844,7 @@ } static void -evas_engine_software_xcb_image_free(void *data, void *image) +eng_image_free(void *data, void *image) { Render_Engine *re; @@ -848,7 +853,7 @@ } static void -evas_engine_software_xcb_image_size_get(void *data, void *image, int *w, int *h) +eng_image_size_get(void *data, void *image, int *w, int *h) { Render_Engine *re; RGBA_Image *im; @@ -860,7 +865,7 @@ } static void * -evas_engine_software_xcb_image_size_set(void *data, void *image, int w, int h) +eng_image_size_set(void *data, void *image, int w, int h) { Render_Engine *re; RGBA_Image *im, *im_old; @@ -883,7 +888,7 @@ } static void * -evas_engine_software_xcb_image_dirty_region(void *data, void *image, int x, int y, int w, int h) +eng_image_dirty_region(void *data, void *image, int x, int y, int w, int h) { Render_Engine *re; @@ -897,7 +902,7 @@ } static void * -evas_engine_software_xcb_image_data_get(void *data, void *image, int to_write, DATA32 **image_data) +eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data) { Render_Engine *re; RGBA_Image *im; @@ -926,7 +931,7 @@ } static void * -evas_engine_software_xcb_image_data_put(void *data, void *image, DATA32 *image_data) +eng_image_data_put(void *data, void *image, DATA32 *image_data) { Render_Engine *re; RGBA_Image *im; @@ -940,7 +945,7 @@ w = im->image->w; h = im->image->h; evas_common_image_unref(im); - return evas_engine_software_xcb_image_new_from_data(data, w, h, image_data); + return eng_image_new_from_data(data, w, h, image_data); } /* hmmm - but if we wrote... why bother? */ /* evas_common_image_dirty(im); */ @@ -948,7 +953,7 @@ } static void * -evas_engine_software_xcb_image_alpha_set(void *data, void *image, int has_alpha) +eng_image_alpha_set(void *data, void *image, int has_alpha) { Render_Engine *re; RGBA_Image *im; @@ -978,7 +983,7 @@ static int -evas_engine_software_xcb_image_alpha_get(void *data, void *image) +eng_image_alpha_get(void *data, void *image) { Render_Engine *re; RGBA_Image *im; @@ -990,7 +995,7 @@ } static void -evas_engine_software_xcb_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth) +eng_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth) { Render_Engine *re; @@ -1008,7 +1013,7 @@ } static char * -evas_engine_software_xcb_image_comment_get(void *data, void *image, char *key) +eng_image_comment_get(void *data, void *image, char *key) { Render_Engine *re; RGBA_Image *im; @@ -1020,7 +1025,7 @@ } static char * -evas_engine_software_xcb_image_format_get(void *data, void *image) +eng_image_format_get(void *data, void *image) { Render_Engine *re; RGBA_Image *im; @@ -1032,7 +1037,7 @@ } static void -evas_engine_software_xcb_image_cache_flush(void *data) +eng_image_cache_flush(void *data) { Render_Engine *re; int tmp_size; @@ -1044,7 +1049,7 @@ } static void -evas_engine_software_xcb_image_cache_set(void *data, int bytes) +eng_image_cache_set(void *data, int bytes) { Render_Engine *re; @@ -1053,7 +1058,7 @@ } static int -evas_engine_software_xcb_image_cache_get(void *data) +eng_image_cache_get(void *data) { Render_Engine *re; @@ -1062,7 +1067,7 @@ } static void * -evas_engine_software_xcb_font_load(void *data, char *name, int size) +eng_font_load(void *data, char *name, int size) { Render_Engine *re; @@ -1071,7 +1076,7 @@ } static void * -evas_engine_software_xcb_font_memory_load(void *data, char *name, int size, const void *fdata, int fdata_size) +eng_font_memory_load(void *data, char *name, int size, const void *fdata, int fdata_size) { Render_Engine *re; @@ -1080,7 +1085,7 @@ } static void * -evas_engine_software_xcb_font_add(void *data, void *font, char *name, int size) +eng_font_add(void *data, void *font, char *name, int size) { Render_Engine *re; @@ -1089,7 +1094,7 @@ } static void * -evas_engine_software_xcb_font_memory_add(void *data, void *font, char *name, int size, const void *fdata, int fdata_size) +eng_font_memory_add(void *data, void *font, char *name, int size, const void *fdata, int fdata_size) { Render_Engine *re; @@ -1098,7 +1103,7 @@ } static void -evas_engine_software_xcb_font_free(void *data, void *font) +eng_font_free(void *data, void *font) { Render_Engine *re; @@ -1107,7 +1112,7 @@ } static int -evas_engine_software_xcb_font_ascent_get(void *data, void *font) +eng_font_ascent_get(void *data, void *font) { Render_Engine *re; @@ -1116,7 +1121,7 @@ } static int -evas_engine_software_xcb_font_descent_get(void *data, void *font) +eng_font_descent_get(void *data, void *font) { Render_Engine *re; @@ -1125,7 +1130,7 @@ } static int -evas_engine_software_xcb_font_max_ascent_get(void *data, void *font) +eng_font_max_ascent_get(void *data, void *font) { Render_Engine *re; @@ -1134,7 +1139,7 @@ } static int -evas_engine_software_xcb_font_max_descent_get(void *data, void *font) +eng_font_max_descent_get(void *data, void *font) { Render_Engine *re; @@ -1143,7 +1148,7 @@ } static void -evas_engine_software_xcb_font_string_size_get(void *data, void *font, char *text, int *w, int *h) +eng_font_string_size_get(void *data, void *font, char *text, int *w, int *h) { Render_Engine *re; @@ -1152,7 +1157,7 @@ } static int -evas_engine_software_xcb_font_inset_get(void *data, void *font, char *text) +eng_font_inset_get(void *data, void *font, char *text) { Render_Engine *re; @@ -1161,7 +1166,7 @@ } static int -evas_engine_software_xcb_font_h_advance_get(void *data, void *font, char *text) +eng_font_h_advance_get(void *data, void *font, char *text) { Render_Engine *re; int h, v; @@ -1172,7 +1177,7 @@ } static int -evas_engine_software_xcb_font_v_advance_get(void *data, void *font, char *text) +eng_font_v_advance_get(void *data, void *font, char *text) { Render_Engine *re; int h, v; @@ -1183,7 +1188,7 @@ } static int -evas_engine_software_xcb_font_char_coords_get(void *data, void *font, char *text, int pos, int *cx, int *cy, int *cw, int *ch) +eng_font_char_coords_get(void *data, void *font, char *text, int pos, int *cx, int *cy, int *cw, int *ch) { Render_Engine *re; @@ -1192,7 +1197,7 @@ } static int -evas_engine_software_xcb_font_char_at_coords_get(void *data, void *font, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch) +eng_font_char_at_coords_get(void *data, void *font, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch) { Render_Engine *re; @@ -1201,7 +1206,7 @@ } static void -evas_engine_software_xcb_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, char *text) +eng_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, char *text) { Render_Engine *re; @@ -1252,7 +1257,7 @@ } static void -evas_engine_software_xcb_font_cache_flush(void *data) +eng_font_cache_flush(void *data) { Render_Engine *re; @@ -1261,7 +1266,7 @@ } static void -evas_engine_software_xcb_font_cache_set(void *data, int bytes) +eng_font_cache_set(void *data, int bytes) { Render_Engine *re; @@ -1270,7 +1275,7 @@ } static int -evas_engine_software_xcb_font_cache_get(void *data) +eng_font_cache_get(void *data) { Render_Engine *re; @@ -1278,6 +1283,24 @@ return evas_common_font_cache_get(); } +static void +eng_font_hinting_set(void *data, void *font, int hinting) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + evas_common_font_hinting_set(font, hinting); +} + +static int +eng_font_hinting_can_hint(void *data, int hinting) +{ + Render_Engine *re; + + re = (Render_Engine *)data; + return evas_common_hinting_available(hinting); +} + @@ -1290,7 +1313,7 @@ /* Convenient function for getting the best visual, colormap and depth */ static XCBSCREEN * -evas_engine_software_xcb_screen_get(XCBConnection *conn, int screen) +eng_screen_get(XCBConnection *conn, int screen) { XCBSCREENIter i; int cur; @@ -1305,7 +1328,7 @@ } static XCBVISUALTYPE * -evas_engine_software_xcb_best_visual_get(XCBConnection *conn, int screen) +eng_best_visual_get(XCBConnection *conn, int screen) { XCBSCREEN *scr; XCBDEPTH *d; @@ -1313,7 +1336,7 @@ int cur; if (!conn) return NULL; - scr = evas_engine_software_xcb_screen_get(conn, screen); + scr = eng_screen_get(conn, screen); if (!scr) return NULL; d = XCBSCREENAllowedDepthsIter(scr).data; if (!d) return NULL; @@ -1327,71 +1350,71 @@ } static XCBCOLORMAP -evas_engine_software_xcb_best_colormap_get(XCBConnection *conn, int screen) +eng_best_colormap_get(XCBConnection *conn, int screen) { XCBSCREEN *scr; XCBCOLORMAP c; c.xid = 0; if (!conn) return c; - scr = evas_engine_software_xcb_screen_get(conn, screen); + scr = eng_screen_get(conn, screen); if (!scr) return c; return scr->default_colormap; } static int -evas_engine_software_xcb_best_depth_get(XCBConnection *conn, int screen) +eng_best_depth_get(XCBConnection *conn, int screen) { XCBSCREEN *scr; if (!conn) return 0; - scr = evas_engine_software_xcb_screen_get(conn, screen); + scr = eng_screen_get(conn, screen); if (!scr) return 0; return scr->root_depth; } static Evas_Performance * -evas_engine_software_xcb_output_perf_new(Evas *e, XCBConnection *conn, XCBVISUALTYPE *vis, XCBCOLORMAP cmap, XCBDRAWABLE draw, int depth) +eng_output_perf_new(Evas *e, XCBConnection *conn, XCBVISUALTYPE *vis, XCBCOLORMAP cmap, XCBDRAWABLE draw, int depth) { return evas_software_xcb_outbuf_perf_new_x(conn, draw, vis, cmap, depth); e = NULL; } static Evas_Performance * -evas_engine_software_xcb_output_perf_test(Evas *e, XCBConnection *conn, XCBVISUALTYPE *vis, XCBCOLORMAP cmap, XCBDRAWABLE draw, int depth) +eng_output_perf_test(Evas *e, XCBConnection *conn, XCBVISUALTYPE *vis, XCBCOLORMAP cmap, XCBDRAWABLE draw, int depth) { return evas_software_xcb_outbuf_perf_x(conn, draw, vis, cmap, depth); e = NULL; } static char * -evas_engine_software_xcb_output_perf_data(Evas_Performance *perf) +eng_output_perf_data(Evas_Performance *perf) { return evas_software_xcb_outbuf_perf_serialize_x(perf); } static char * -evas_engine_software_xcb_output_perf_key(Evas_Performance *perf) +eng_output_perf_key(Evas_Performance *perf) { return evas_software_xcb_outbuf_perf_serialize_info_x(perf); } static void -evas_engine_software_xcb_output_perf_free(Evas_Performance *perf) +eng_output_perf_free(Evas_Performance *perf) { evas_software_xcb_outbuf_perf_free(perf); } static void -evas_engine_software_xcb_output_perf_build(Evas_Performance *perf, const char *data) +eng_output_perf_build(Evas_Performance *perf, const char *data) { evas_software_xcb_outbuf_perf_deserialize_x(perf, data); } static void -evas_engine_software_xcb_output_perf_device_store(Evas_Performance *perf) +eng_output_perf_device_store(Evas_Performance *perf) { evas_software_xcb_outbuf_perf_store_x(perf); } @@ -1399,7 +1422,7 @@ int module_open(Evas_Module *em) { if (!em) return 0; - em->functions = (void *)(&evas_engine_software_xcb_func); + em->functions = (void *)(&eng_func); return 1; } ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs