From 78fcdfc82ddf7a512ebc4c7dd489f9c8066a6679 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Wed, 30 May 2018 09:18:16 +0100 Subject: Deprecate GDK_INTERP_HYPER The hyperbolic filter has been broken for the past 12 years, and nobody is going to fix it, now, as pixel operations in GdkPixbuf have been thoroughly superseded by Cairo. The only user of GDK_INTER_HYPER in tree is the thumbnailer code, which cannot use Cairo for dependency reasons. Closes: #3 --- gdk-pixbuf/gdk-pixbuf-transform.h | 19 ++++++++++--------- thumbnailer/gnome-thumbnailer-skeleton.c | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/gdk-pixbuf/gdk-pixbuf-transform.h b/gdk-pixbuf/gdk-pixbuf-transform.h index 875628c7f..24e5ad5ae 100644 --- a/gdk-pixbuf/gdk-pixbuf-transform.h +++ b/gdk-pixbuf/gdk-pixbuf-transform.h @@ -56,17 +56,18 @@ G_BEGIN_DECLS * Wolberg's "Digital Image Warping", and is formally defined as the * hyperbolic-filter sampling the ideal hyperbolic-filter interpolated * image (the filter is designed to be idempotent for 1:1 pixel mapping). + * **Deprecated**: this interpolation filter is deprecated, as in reality + * it has a lower quality than the @GDK_INTERP_BILINEAR filter + * (Since: 2.38) * - * This enumeration describes the different interpolation modes that - * can be used with the scaling functions. @GDK_INTERP_NEAREST is - * the fastest scaling method, but has horrible quality when - * scaling down. @GDK_INTERP_BILINEAR is the best choice if you - * aren't sure what to choose, it has a good speed/quality balance. + * This enumeration describes the different interpolation modes that + * can be used with the scaling functions. @GDK_INTERP_NEAREST is + * the fastest scaling method, but has horrible quality when + * scaling down. @GDK_INTERP_BILINEAR is the best choice if you + * aren't sure what to choose, it has a good speed/quality balance. * - * - * Cubic filtering is missing from the list; hyperbolic - * interpolation is just as fast and results in higher quality. - * + * **Note**: Cubic filtering is missing from the list; hyperbolic + * interpolation is just as fast and results in higher quality. */ typedef enum { GDK_INTERP_NEAREST, diff --git a/thumbnailer/gnome-thumbnailer-skeleton.c b/thumbnailer/gnome-thumbnailer-skeleton.c index 73da53e07..75c0f9c10 100644 --- a/thumbnailer/gnome-thumbnailer-skeleton.c +++ b/thumbnailer/gnome-thumbnailer-skeleton.c @@ -301,7 +301,7 @@ int main (int argc, char **argv) scaled = gdk_pixbuf_scale_simple (pixbuf, floor (width * scale + 0.5), floor (height * scale + 0.5), - GDK_INTERP_HYPER); + GDK_INTERP_BILINEAR); #endif gdk_pixbuf_copy_options (pixbuf, scaled); g_object_unref (pixbuf); -- cgit v1.2.1