I tested instead with GDK_INTERP_BILINEAR and I find the result pretty good with (I think) an acceptable penalty.
I did a comparison on my AMD Athlon 64 5000+ containing 83 nds roms to know how much more CPU it costs compared to the original code:
upscale to 64 pixels penalty : 12.93103448275862068900 %
upscale to 100 pixels penalty : 29.10052910052910052900 %
upscale to 128 pixels penalty : 34.61538461538461538400 %
upscale to 192 pixels penalty : 46.18395303326810176100 %
upscale to 200 pixels penalty : 47.43362831858407079600 %
The change is in: "gnome-nds-thumbnailer.c" line 186 of 198
change
scaled = gdk_pixbuf_scale_simple (pixbuf, output_size, output_size, 0);
by
scaled = gdk_pixbuf_scale_simple (pixbuf, output_size, output_size, GDK_INTERP_BILINEAR);
I think this is because the upscaling algorithm used is GDK_INTERP_NEAREST which is not that good. library. gnome.org/ devel/gdk- pixbuf/ stable/ gdk-pixbuf- scaling. html#GDK- INTERP- BILINEAR- -CAPS)
(documentation: http://
I tested instead with GDK_INTERP_BILINEAR and I find the result pretty good with (I think) an acceptable penalty. 62068900 % 10052900 % 61538400 % 10176100 % 07079600 %
I did a comparison on my AMD Athlon 64 5000+ containing 83 nds roms to know how much more CPU it costs compared to the original code:
upscale to 64 pixels penalty : 12.931034482758
upscale to 100 pixels penalty : 29.100529100529
upscale to 128 pixels penalty : 34.615384615384
upscale to 192 pixels penalty : 46.183953033268
upscale to 200 pixels penalty : 47.433628318584
The change is in: "gnome- nds-thumbnailer .c" line 186 of 198 scale_simple (pixbuf, output_size, output_size, 0); scale_simple (pixbuf, output_size, output_size, GDK_INTERP_ BILINEAR) ;
change
scaled = gdk_pixbuf_
by
scaled = gdk_pixbuf_