Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas
Dir : e17/libs/evas/src/lib/include Modified Files: evas_common.h Log Message: i worked on a regionbuf set of code (exact rectangles). i THINK it has some bugs... but its disabled right now and it didnt speed anything up :( but it's there for perusal and later work anyway... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/include/evas_common.h,v retrieving revision 1.29 retrieving revision 1.30 diff -u -3 -r1.29 -r1.30 --- evas_common.h 3 Feb 2005 07:28:31 -0000 1.29 +++ evas_common.h 5 Feb 2005 02:30:13 -0000 1.30 @@ -23,6 +23,9 @@ /*****************************************************************************/ +/* use exact rects for updates not tiles */ +/* #define RECTUPDATE */ + #undef MIN #define MIN(_x, _y) \ (((_x) < (_y)) ? (_x) : (_y)) @@ -177,6 +180,9 @@ typedef struct _Tilebuf_Tile Tilebuf_Tile; typedef struct _Tilebuf_Rect Tilebuf_Rect; +typedef struct _Regionbuf Regionbuf; +typedef struct _Regionspan Regionspan; + typedef void (*Gfx_Func_Blend_Src_Dst) (DATA32 *src, DATA32 *dst, int len); typedef void (*Gfx_Func_Blend_Color_Dst) (DATA32 src, DATA32 *dst, int len); typedef void (*Gfx_Func_Blend_Src_Cmod_Dst) (DATA32 *src, DATA32 *dst, int len, DATA8 *rmod, DATA8 *gmod, DATA8 *bmod, DATA8 *amod); @@ -385,11 +391,15 @@ struct { int w, h; } tile_size; - + +#ifdef RECTUPDATE + Regionbuf *rb; +#else struct { int w, h; Tilebuf_Tile *tiles; } tiles; +#endif }; struct _Tilebuf_Tile @@ -413,6 +423,18 @@ int x, y, w, h; }; +struct _Regionbuf +{ + int w, h; + Regionspan **spans; +}; + +struct _Regionspan +{ + Evas_Object_List _list_data; + int x1, x2; +}; + struct _Cutout_Rect { Evas_Object_List _list_data; @@ -890,7 +912,15 @@ void evas_common_tilebuf_clear (Tilebuf *tb); Tilebuf_Rect *evas_common_tilebuf_get_render_rects (Tilebuf *tb); void evas_common_tilebuf_free_render_rects (Tilebuf_Rect *rects); - + + +Regionbuf *evas_common_regionbuf_new (int w, int h); +void evas_common_regionbuf_free (Regionbuf *rb); +void evas_common_regionbuf_clear (Regionbuf *rb); +void evas_common_regionbuf_span_add (Regionbuf *rb, int x1, int x2, int y); +void evas_common_regionbuf_span_del (Regionbuf *rb, int x1, int x2, int y); +Tilebuf_Rect *evas_common_regionbuf_rects_get (Regionbuf *rb); + /****/ void evas_common_draw_init (void); @@ -915,7 +945,7 @@ void evas_common_draw_context_apply_free_cutouts(Cutout_Rect *rects); Cutout_Rect *evas_common_draw_context_cutouts_split (Cutout_Rect *in, Cutout_Rect *split); Cutout_Rect *evas_common_draw_context_cutout_split (Cutout_Rect *in, Cutout_Rect *split); - +Cutout_Rect *evas_common_draw_context_cutout_merge (Cutout_Rect *in, Cutout_Rect *merge); Gfx_Func_Blend_Src_Dst evas_common_draw_func_blend_get (RGBA_Image *src, RGBA_Image *dst, int pixels); Gfx_Func_Blend_Color_Dst evas_common_draw_func_blend_color_get (DATA32 src, RGBA_Image *dst, int pixels); Gfx_Func_Blend_Src_Cmod_Dst evas_common_draw_func_blend_cmod_get (RGBA_Image *src, RGBA_Image *dst, int pixels); ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs