Mercurial > hg > forks > geeqie
changeset 1877:24e8e78cd581
rt_tile_render cleanup part 2
author | Vladimir Nadvornik <nadvornik@suse.cz> |
---|---|
date | Fri, 28 Jan 2011 13:05:14 +0100 |
parents | cdf087e6e22f |
children | 11850512dbdd |
files | src/renderer-tiles.c |
diffstat | 1 files changed, 13 insertions(+), 40 deletions(-) [+] |
line wrap: on
line diff
--- a/src/renderer-tiles.c Fri Jan 28 12:44:32 2011 +0100 +++ b/src/renderer-tiles.c Fri Jan 28 13:05:14 2011 +0100 @@ -1305,50 +1305,23 @@ { draw = rt_source_tile_render(rt, it, x, y, w, h, new_data, fast); } - else if (pr->zoom == 1.0 || pr->scale == 1.0) + else if ((pr->zoom == 1.0 || pr->scale == 1.0) && + !has_alpha && + pr->orientation == EXIF_ORIENTATION_TOP_LEFT && + !(pr->func_post_process && !(pr->post_process_slow && fast))) { - - gdouble src_x, src_y; - gint pb_x, pb_y; - gint pb_w, pb_h; - pr_tile_coords_map_orientation(pr->orientation, it->x, it->y, - pr->image_width, pr->image_height, - rt->tile_width, rt->tile_height, - &src_x, &src_y); - pr_tile_region_map_orientation(pr->orientation, x, y, - rt->tile_width, rt->tile_height, - w, h, - &pb_x, &pb_y, - &pb_w, &pb_h); - - if (!has_alpha && - pr->orientation == EXIF_ORIENTATION_TOP_LEFT && - !(pr->func_post_process && !(pr->post_process_slow && fast))) - { - /* faster, simple, base orientation, no postprocessing */ - gdk_draw_pixbuf(it->pixmap, + /* special case: faster, simple, scale 1.0, base orientation, no postprocessing */ + gdk_draw_pixbuf(it->pixmap, #if GTK_CHECK_VERSION(2,20,0) - box->style->fg_gc[gtk_widget_get_state(box)], + box->style->fg_gc[gtk_widget_get_state(box)], #else - box->style->fg_gc[GTK_WIDGET_STATE(box)], + box->style->fg_gc[GTK_WIDGET_STATE(box)], #endif - pr->pixbuf, - it->x + x + stereo_pixbuf_off, it->y + y, - x, y, - w, h, - pr->dither_quality, it->x + x, it->y + y); - } - else - { - rt_tile_get_region(has_alpha, - pr->pixbuf, it->pixbuf, pb_x, pb_y, pb_w, pb_h, - (gdouble) 0.0 - src_x - stereo_pixbuf_off, - (gdouble) 0.0 - src_y, - 1.0, 1.0, GDK_INTERP_NEAREST, - it->x + pb_x, it->y + pb_y); - rt_tile_apply_orientation(rt, &it->pixbuf, pb_x, pb_y, pb_w, pb_h); - draw = TRUE; - } + pr->pixbuf, + it->x + x + stereo_pixbuf_off, it->y + y, + x, y, + w, h, + pr->dither_quality, it->x + x, it->y + y); } else {