2014-06-18 20:50 GMT+02:00 Bill Spitzak <spit...@gmail.com>: > This patch is for Cairo but I now feel the correct solution is to place > this in pixman (and thus into XRender). Although the patch is for Cairo > it primarily consists of a replacement for pixman_generate_separable_filter > and changes to how it is called for the GOOD and BEST settings. I could > try to rewrite it as a pixman patch if desired. > > Would appreciate any feedback at all on this. Thank you! > > This code contains an all-new filter generator to replace the one that is > in pixman. Results in 222 pass/298 failed image tests, which is much better > than the previous versions of this patch. > > Filter generator (which should probably be in pixman): > > - Single filter, no "reconstruction" and "sample" filter > - Filters for derivative < 1 work > - Fixed IMPULSE and BOX > - Added TRIANGLE, CATMULL, NOTCH. Remove LANZCOS2. > - Renamed CUBIC to MITCHELL > > Cairo's filter settings: > > - CAIRO_FILTER_GOOD: uses BOX filter for scales less than .75 in either > direction. Uses PIXMAN_FILTER_GOOD (ie BILINEAR) otherwise. > > - CAIRO_FILTER_BEST: uses CATMULL filter always. Upscaling more than 2x will > produce anti-aliased square pixels, similar to OS/X. > > - CAIRO_FILTER_GAUSSIAN: this obsolete value is used to test other filters. > The program must declare and poke the filter into the static varialbe > ikernel. This should be removed for production code. > > NYI: This version uses the fallback for xlib always. The xlib and xcb backends > must be rewritten to use the fallback version if filtering is needed. Or the > filtering code must be moved to XRender.
This looks way better and more comprehensive than my attempts at fixing the downscaling problem. I would support getting this into trunk, preferably along with the rest of your patches, before the 1.14 release. It looks like the magic value 1.35 used in _pixman_image_set_properties is undocumented - was it derived experimentally? Unfortunately I won't have time to test how this works with Inkscape for the next 2-3 weeks. Regards, Krzysztof _______________________________________________ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman