From 0dfeec9a9a7298d4c5389bb9151a5ad8a8ab9ed4 Mon Sep 17 00:00:00 2001 From: Klaus Ethgen Date: Tue, 11 Aug 2015 23:19:25 +0100 Subject: [PATCH] Remove over optimization Thanks Uwe Ohse for this find. "it looks good, but is dead slow, for each and every call to gdk_cairo_set_source_pixbuf takes at least 15 milliseconds on my not really slow machine, which amounts to over 2 seconds if 144 tiles have to be drawn (tested with many jpegs and a few large pngs). i propose to remove this optimization until someone fixes it. After removal geeqie is fast, again." --- src/renderer-tiles.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/renderer-tiles.c b/src/renderer-tiles.c index f48fe572..72ea0554 100644 --- a/src/renderer-tiles.c +++ b/src/renderer-tiles.c @@ -1333,21 +1333,6 @@ static void rt_tile_render(RendererTiles *rt, ImageTile *it, { draw = rt_source_tile_render(rt, it, x, y, w, h, new_data, fast); } - else if ((pr->zoom == 1.0 || pr->scale == 1.0) && - pr->aspect_ratio == 1.0 && - !has_alpha && - orientation == EXIF_ORIENTATION_TOP_LEFT && - !(pr->func_post_process && !(pr->post_process_slow && fast)) && - !(rt->stereo_mode & PR_STEREO_ANAGLYPH)) - { - /* special case: faster, simple, scale 1.0, base orientation, no postprocessing */ - cairo_t *cr; - cr = cairo_create(it->surface); - cairo_rectangle (cr, x, y, w, h); - gdk_cairo_set_source_pixbuf(cr, pr->pixbuf, -it->x - GET_RIGHT_PIXBUF_OFFSET(rt), -it->y); - cairo_fill (cr); - cairo_destroy (cr); - } else { gdouble scale_x, scale_y; -- 2.20.1