Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas
Dir : e17/libs/evas/src/lib/canvas Modified Files: evas_main.c evas_object_image.c Log Message: an xrender engine. fully complete - but it doesnt support shaped window masks and destination alpha like software_x11 does so its not a 100% dropin replacement... yet =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_main.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- evas_main.c 19 Jun 2005 13:06:36 -0000 1.21 +++ evas_main.c 2 Oct 2005 15:15:44 -0000 1.22 @@ -27,6 +27,9 @@ #ifdef BUILD_ENGINE_CAIRO_X11 #include "evas_engine_api_cairo_x11.h" #endif +#ifdef BUILD_ENGINE_XRENDER_X11 +#include "evas_engine_api_xrender_x11.h" +#endif static int initcount = 0; @@ -226,6 +229,11 @@ e->engine.func = &evas_engine_software_x11_func; else #endif +#ifdef BUILD_ENGINE_XRENDER_X11 + if (e->output.render_method == RENDER_METHOD_XRENDER_X11) + e->engine.func = &evas_engine_xrender_x11_func; + else +#endif #ifdef BUILD_ENGINE_SOFTWARE_XCB if (e->output.render_method == RENDER_METHOD_SOFTWARE_XCB) e->engine.func = &evas_engine_software_xcb_func; @@ -676,6 +684,9 @@ #ifdef BUILD_ENGINE_SOFTWARE_X11 if (!strcmp(name, "software_x11")) return RENDER_METHOD_SOFTWARE_X11; #endif +#ifdef BUILD_ENGINE_XRENDER_X11 + if (!strcmp(name, "xrender_x11")) return RENDER_METHOD_XRENDER_X11; +#endif #ifdef BUILD_ENGINE_SOFTWARE_XCB if (!strcmp(name, "software_xcb")) return RENDER_METHOD_SOFTWARE_XCB; #endif @@ -746,6 +757,9 @@ #ifdef BUILD_ENGINE_SOFTWARE_X11 methods = evas_list_append(methods, strdup("software_x11")); #endif +#ifdef BUILD_ENGINE_XRENDER_X11 + methods = evas_list_append(methods, strdup("xrender_x11")); +#endif #ifdef BUILD_ENGINE_SOFTWARE_XCB methods = evas_list_append(methods, strdup("software_xcb")); #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_image.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -3 -r1.28 -r1.29 --- evas_object_image.c 18 Jun 2005 01:00:29 -0000 1.28 +++ evas_object_image.c 2 Oct 2005 15:15:44 -0000 1.29 @@ -831,7 +831,7 @@ if ((!o->cur.file) || (o->pixels_checked_out > 0)) return; if (o->engine_data) - o->engine_data = obj->layer->evas->engine.func->image_dirty_region(obj->layer->evas->engine.data.output, o->engine_data, 0, 0, 1, 1); + o->engine_data = obj->layer->evas->engine.func->image_dirty_region(obj->layer->evas->engine.data.output, o->engine_data, 0, 0, o->cur.image.w, o->cur.image.h); evas_object_image_unload(obj); /* evas_image_cache_flush(obj->layer->evas);*/ evas_object_image_load(obj); @@ -1615,6 +1615,8 @@ rr = o->pixel_updates->data; o->pixel_updates = evas_list_remove(o->pixel_updates, rr); + obj->layer->evas->engine.func->image_dirty_region(obj->layer->evas->engine.data.output, o->engine_data, rr->x, rr->y, rr->w, rr->h); + idx = evas_object_image_figure_x_fill(obj, o->cur.fill.x, o->cur.fill.w, &idw); idy = evas_object_image_figure_y_fill(obj, o->cur.fill.y, o->cur.fill.h, &idh); @@ -1662,6 +1664,7 @@ o->pixel_updates = evas_list_remove(o->pixel_updates, r); free(r); } + obj->layer->evas->engine.func->image_dirty_region(obj->layer->evas->engine.data.output, o->engine_data, 0, 0, o->cur.image.w, o->cur.image.h); updates = evas_object_render_pre_prev_cur_add(updates, obj); goto done; } ------------------------------------------------------- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs