Enlightenment CVS committal Author : monkeyiq Project : misc Module : gevas2
Dir : misc/gevas2/src Modified Files: gevas.c gevas.h gevasimage.c Log Message: After some light playing gevas-resize and evas-resize benchmark are now similar in speed. =================================================================== RCS file: /cvsroot/enlightenment/misc/gevas2/src/gevas.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- gevas.c 29 Apr 2005 07:11:04 -0000 1.14 +++ gevas.c 4 May 2005 02:28:44 -0000 1.15 @@ -212,8 +212,7 @@ /* internal functions */ void _show_evas_checked_bg(GtkWidget * widget, GtkgEvas * ev) { - - if (!ev->show_checked_bg) + if (!ev->show_checked_bg) return; if (GTK_WIDGET_REALIZED(widget) @@ -561,6 +560,8 @@ GTK_WIDGET_SET_FLAGS(GTK_WIDGET(ev), GTK_CAN_FOCUS); /* printf("gevas_init() 1\n"); */ + ev->current_idle = 0; + ev->evas_render_call_count = 0; ev->ecore_timer_id = 0; ev->scrolledwindow = 0; ev->evas = evas_new(); @@ -918,7 +919,7 @@ /* Set realized flag */ GTK_WIDGET_SET_FLAGS(widget, GTK_REALIZED); -#if 0 +#if 1 Visual *vis; Colormap cmap; GdkVisual *gdk_vis; @@ -934,11 +935,14 @@ cmap = GDK_COLORMAP_XCOLORMAP(gtk_widget_get_colormap(widget)); /* evas_get_optimal_colormap(ev->evas, */ /* GDK_WINDOW_XDISPLAY(GDK_ROOT_PARENT())); */ - gdk_vis = gdkx_visual_get(XVisualIDFromVisual(vis)); + gdk_vis = gdkx_visual_get(XVisualIDFromVisual(vis)); gdk_cmap = gdkx_colormap_get(cmap); - attributes.visual = gdk_vis; /*gtk_widget_get_visual (widget); */ + attributes.visual = gdk_vis; /*gtk_widget_get_visual (widget); */ attributes.colormap = gdk_cmap; /*gtk_widget_get_colormap (widget); */ +#else + attributes.visual = gtk_widget_get_visual (widget); + attributes.colormap = gtk_widget_get_colormap (widget); #endif /* Evas window */ @@ -949,8 +953,6 @@ attributes.width = widget->allocation.width; attributes.height = widget->allocation.height; attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gtk_widget_get_visual (widget); - attributes.colormap = gtk_widget_get_colormap (widget); attributes.event_mask = gtk_widget_get_events(widget) | GDK_EXPOSURE_MASK; attributes.event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK @@ -975,17 +977,7 @@ widget->style = gtk_style_attach(widget->style, widget->window); gtk_style_set_background(widget->style, widget->window, GTK_STATE_NORMAL); - - gdk_window_set_back_pixmap(widget->window, NULL, FALSE); -/* evas_set_output(ev->evas, */ -/* GDK_WINDOW_XDISPLAY(widget->window), */ -/* GDK_WINDOW_XWINDOW(widget->window), */ -/* GDK_VISUAL_XVISUAL(gtk_widget_get_visual(widget)), */ -/* GDK_COLORMAP_XCOLORMAP(gtk_widget_get_colormap(widget))); */ -/* evas_output_size_set(ev->evas, widget->allocation.width, */ -/* widget->allocation.height); */ -/* evas_output_viewport_set(ev->evas, 0, 0, widget->allocation.width, */ -/* widget->allocation.height); */ + gdk_window_set_back_pixmap(widget->window, NULL, FALSE); evas_output_method_set(evas, evas_render_method_lookup("software_x11")); evas_output_size_set(evas, @@ -1015,13 +1007,11 @@ } - /* only shows if the user has requested it */ _show_evas_checked_bg(widget, ev); // FIXME: Maybe we can do something better than single buffering? - gtk_widget_set_double_buffered( widget, 0); - + gtk_widget_set_double_buffered( widget, 0 ); // printf("gevas_realize() end\n"); @@ -1283,6 +1273,7 @@ + ev->evas_render_call_count++; evas_render(ev->evas); @@ -1322,6 +1313,12 @@ } +long +gevas_get_evas_render_call_count( GtkgEvas * ev ) +{ + return ev->evas_render_call_count; +} + static gint gevas_view_redraw_cb(gpointer data) { GtkgEvas* gevas = GTK_GEVAS( data ); @@ -1332,9 +1329,11 @@ /* prevent evas from breaking if window isn't mapped */ if(!GTK_WIDGET_MAPPED(ev)) return FALSE; + // fprintf(stderr,"gevas_view_redraw_cb! gevas:%p\n", gevas); + ev->evas_render_call_count++; evas_obscured_clear(ev->evas); evas_render(ev->evas); @@ -1554,6 +1553,8 @@ gboolean oldv = ev->show_checked_bg; ev->show_checked_bg = GTK_VALUE_BOOL(*arg); +// printf("gevas_checked_bg old:%d new:%d\n", oldv, ev->show_checked_bg ); + if (oldv) { evas_object_hide( ev->checked_bg ); } else { =================================================================== RCS file: /cvsroot/enlightenment/misc/gevas2/src/gevas.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- gevas.h 29 Apr 2005 05:19:15 -0000 1.2 +++ gevas.h 4 May 2005 02:28:44 -0000 1.3 @@ -152,7 +152,10 @@ // for using edjies guint ecore_timer_id; - }; + + // how many evas_render()s were called + long evas_render_call_count; +}; struct _GtkgEvasClass { @@ -191,6 +194,7 @@ void gevas_add_image_prefix( GtkgEvas * ev, const char* p ); void gevas_remove_image_prefix ( GtkgEvas * ev, const char* p ); + long gevas_get_evas_render_call_count( GtkgEvas * ev ); /** protected **/ =================================================================== RCS file: /cvsroot/enlightenment/misc/gevas2/src/gevasimage.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- gevasimage.c 15 Nov 2004 16:41:22 -0000 1.11 +++ gevasimage.c 4 May 2005 02:28:44 -0000 1.12 @@ -166,6 +166,18 @@ } +void +gevasimage_set_smooth_scale( GtkgEvasObj* object, int v ) +{ + evas_object_image_smooth_scale_set(EVASO(object), v); +} + +int +gevasimage_get_smooth_scale( GtkgEvasObj* object ) +{ + return evas_object_image_smooth_scale_get(EVASO(object)); +} + void gevasimage_get_image_border(GtkgEvasObj * object, int *l, int *r, int *t, ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. Get your fingers limbered up and give it your best shot. 4 great events, 4 opportunities to win big! Highest score wins.NEC IT Guy Games. Play to win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs