[cairo] Running cairo-test-suite with -as / cairo_surface_set_device_scale() and the test suite / image scaling madness

Bill Spitzak spitzak at gmail.com
Wed Jul 9 13:08:17 PDT 2014


I am working on a new version of the patch that moves all the changes to 
pixman. It appears this will be a lot cleaner, and will make it work for 
X11 backends. Changes are:

- Rename PIXMAN_KERNEL_LINEAR to PIXMAN_KERNEL_BILINEAR. This makes it 
clear that it is identical to the built-in BILINEAR.

- Add enumeration for PIXMAN_KERNEL_TRIANGLE. Some software uses this 
and it may be what users expected from "linear".

- Rename PIXMAN_KERNEL_CUBIC to PIXMAN_KERNEL_MITCHELL (to avoid 
confusion as most software uses "cubic" for an interpolating filter)

- Replace PIXMAN_KERNEL_GAUSSIAN with PIXMAN_KERNEL_NOTCH (gaussian is 
useless for reconstruction, notch is useful and is similar blurry 
result). Note that actual blurring of images will want gaussian but that 
is not image reconstruction!

- Replace PIXMAN_KERNEL_LANCZOS2 with PIXMAN_KERNEL_CATMULL_ROM (it is 
almost infinitesimally different, and some argue it is nicer, and 
matches other software).

- Add aliases for these so old code still works.

- Rewrite pixman_filter_create_separable_convolution. New filter 
generating function takes the size and distance, rather than one number, 
allowing them to integrate over the source pixels. If "reconstruction" 
is not impulse it will use it at size=1 for sizes less than one, 
otherwise it uses the "sampling" filter.

- Make PIXMAN_FILTER_GOOD use the box convolution for scales less than 
.75, otherwise BILINEAR.

- Make PIXMAN_FILTER_BEST use CATMULL_ROM at all scales (thus producing 
square pixels when scaling up).

Any opinions?


More information about the cairo mailing list