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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs