[cairo] Running cairo-test-suite with -as / cairo_surface_set_device_scale() and the test suite / image scaling madness
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).
More information about the cairo