summaryrefslogtreecommitdiff
path: root/src/eom-scroll-view.c
diff options
context:
space:
mode:
authorRussell Haley <[email protected]>2016-02-13 18:59:17 -0600
committerraveit65 <[email protected]>2018-07-11 08:48:55 +0200
commitbbf490bacf488f1e332ed0f5d5568af489aaa3c8 (patch)
tree8c99df8de779e2e7291d175dfcbe00824acb6355 /src/eom-scroll-view.c
parent433c776b757c5cc909d6e614ebf39dbff9379320 (diff)
downloadeom-bbf490bacf488f1e332ed0f5d5568af489aaa3c8.tar.bz2
eom-bbf490bacf488f1e332ed0f5d5568af489aaa3c8.tar.xz
EomScrollView: Use better downscaling filter
Replace all instances of CAIRO_FILTER_BILINEAR with CAIRO_FILTER_GOOD. This produces much less aliasing on downscaled images. CAIRO_FILTER_GOOD uses the same method as CAIRO_FILTER_BILINEAR for scale factors greater than 0.75, according to https://bugs.webkit.org/show_bug.cgi?id=147826. Comparison screenshots made with eog 3.18.1: http://imgur.com/a/NaoOs CAIRO_FILTER_BEST is better still, but the the visual difference is almost imperceptible and the performance impact is severe. https://bugzilla.gnome.org/show_bug.cgi?id=665897 origin commit: https://gitlab.gnome.org/GNOME/eog/commit/fbc1128 fixes https://github.com/mate-desktop/eom/issues/96
Diffstat (limited to 'src/eom-scroll-view.c')
-rw-r--r--src/eom-scroll-view.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/eom-scroll-view.c b/src/eom-scroll-view.c
index 5f424b6..491796c 100644
--- a/src/eom-scroll-view.c
+++ b/src/eom-scroll-view.c
@@ -1410,7 +1410,7 @@ eom_scroll_view_set_antialiasing_in (EomScrollView *view, gboolean state)
priv = view->priv;
- new_interp_type = state ? CAIRO_FILTER_BILINEAR : CAIRO_FILTER_NEAREST;
+ new_interp_type = state ? CAIRO_FILTER_GOOD : CAIRO_FILTER_NEAREST;
if (priv->interp_type_in != new_interp_type) {
priv->interp_type_in = new_interp_type;
@@ -1429,7 +1429,7 @@ eom_scroll_view_set_antialiasing_out (EomScrollView *view, gboolean state)
priv = view->priv;
- new_interp_type = state ? CAIRO_FILTER_BILINEAR : CAIRO_FILTER_NEAREST;
+ new_interp_type = state ? CAIRO_FILTER_GOOD : CAIRO_FILTER_NEAREST;
if (priv->interp_type_out != new_interp_type) {
priv->interp_type_out = new_interp_type;
@@ -1737,8 +1737,8 @@ eom_scroll_view_init (EomScrollView *view)
priv->min_zoom = MIN_ZOOM_FACTOR;
priv->zoom_mode = ZOOM_MODE_FIT;
priv->upscale = FALSE;
- priv->interp_type_in = CAIRO_FILTER_BILINEAR;
- priv->interp_type_out = CAIRO_FILTER_BILINEAR;
+ priv->interp_type_in = CAIRO_FILTER_GOOD;
+ priv->interp_type_out = CAIRO_FILTER_GOOD;
priv->scroll_wheel_zoom = FALSE;
priv->zoom_multiplier = IMAGE_VIEW_ZOOM_MULTIPLIER;
priv->image = NULL;