Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas
Dir : e17/libs/evas/src/lib/include Modified Files: evas_common.h Log Message: 1. gustavo';s fuzzy rect implementation for updates. fixed so del's work, tuned for best performance on my core2 duo desktop - for now. will check more. also make the yuv colorspace code be a bit more robust and fix leak in gl engine with shaders. =================================================================== RCS file: /cvs/e/e17/libs/evas/src/lib/include/evas_common.h,v retrieving revision 1.80 retrieving revision 1.81 diff -u -3 -r1.80 -r1.81 --- evas_common.h 6 May 2007 11:29:37 -0000 1.80 +++ evas_common.h 2 Jun 2007 15:30:58 -0000 1.81 @@ -531,6 +531,58 @@ RGBA_Gfx_Pt_Func (*composite_pixel_mask_pt_get)(int src_flags, RGBA_Image *dst); }; +#define EVAS_RECT_SPLIT 1 +#ifdef EVAS_RECT_SPLIT +typedef struct list_node list_node_t; +typedef struct list list_t; +typedef struct rect rect_t; +typedef struct rect_node rect_node_t; + +struct list_node +{ + struct list_node *next; +}; + +struct list +{ + struct list_node *head; + struct list_node *tail; +}; + +struct rect +{ + short left; + short top; + short right; + short bottom; + short width; + short height; + int area; +}; + +struct rect_node +{ + struct list_node _lst; + struct rect rect; +}; + + +void rect_init(rect_t *r, int x, int y, int w, int h); +void rect_list_append_node(list_t *rects, list_node_t *node); +void rect_list_append(list_t *rects, const rect_t r); +void rect_list_append_xywh(list_t *rects, int x, int y, int w, int h); +void rect_list_concat(list_t *rects, list_t *other); +list_node_t *rect_list_unlink_next(list_t *rects, list_node_t *parent_node); +void rect_list_del_next(list_t *rects, list_node_t *parent_node); +void rect_list_clear(list_t *rects); +void rect_list_add_split_strict(list_t *rects, list_node_t *node); +list_node_t *rect_list_add_split_fuzzy(list_t *rects, const rect_t r, int accepted_error); +void rect_list_merge_rects(list_t *rects, list_t *to_merge, int accepted_error);void rect_list_add_split_fuzzy_and_merge(list_t *rects, const rect_t r, int split_accepted_error, int merge_accepted_error); + +void rect_print(const rect_t r); +void rect_list_print(const list_t rects); +#endif /* EVAS_RECT_SPLIT */ + struct _Tilebuf { int outbuf_w; @@ -542,6 +594,8 @@ #ifdef RECTUPDATE Regionbuf *rb; +#elif defined(EVAS_RECT_SPLIT) + list_t rects; #else struct { int w, h; ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs