~kiko/pixman/trunk

  • Committer: Bryce Harrington
  • Author(s): Basile Clement
  • Date: 2019-05-25 14:29:55 UTC
  • Revision ID: git-v1:ddcc41b999562efdd9f88daa51ffbf39782748b5
Implement basic dithering for the wide pipeline, v3

This patch implements dithering in pixman.  A "dither" property is added
to BITS images, which is used to:

 - Force rendering to the image to go through the floating point
   pipeline.  Note that this is different from FAST_PATH_NARROW_FORMAT
   as it should not enable the floating point pipeline when reading from
   the image.

 - Enable dithering in dest_write_back_wide.  The dithering uses the
   destination format to determine noise amplitude.

This does not change pixman's behavior when dithering is disabled (the
default).

Additional types and functions are added to the public API:

 - The `pixman_dither_t` enum exposes the available dithering methods.
   Currently a single dithering method based on 8x8 Bayer matrices is
   implemented (PIXMAN_DITHER_ORDERED_BAYER_8).  The PIXMAN_DITHER_FAST,
   PIXMAN_DITHER_GOOD and PIXMAN_DITHER_BEST aliases are provided and
   should be used to benefit from future specializations.

 - The `pixman_image_set_dither` function allows to set the dithering
   method to use when rendering to a bits image.

 - The `pixman_image_set_dither_offset` function allows to set a
   vertical and horizontal offsets for the dither matrix.  This can be
   used after scrolling to ensure a consistent spatial positioning of
   the dither matrix.

Changes since previous version (v2):
 - linear_gradient_is_horizontal optimization is still compatible with
   the wide pipeline.  The code disabling it was a remnant of a previous
   patch which performed dithering directly inside linear_get_scanline,
   and thus needed to be called independently for each scanline.

Changes since v1:
 - Renamed PIXMAN_DITHER_BAYER_8 to PIXMAN_DITHER_ORDERED_BAYER_8
 - Disable dithering for channels with 32bpp or more (since they can
   represent exactly the wide values already).  This makes the patches
   compatible with the newly added floating point format.

Dithering is compatible with linear_gradient_is_horizontal
Filename Latest Rev Last Changed Committer Comment Size
..
contrib 2060 5 years ago Adam Jackson Merge branch 'ci' into 'master' ci: Add .gitlab-c Diff
demos 1278 13 years ago Søren Sandmann Pedersen Move all the GTK+ based test programs to a new sub Diff
pixman 1 17 years ago Soren Sandmann Pedersen Add the files. Diff
test 14 17 years ago Soren Sandmann Pedersen Add a simple test program; fix linking problems Diff
.editorconfig 2069 5 years ago Matt Turner editorconfig: use tabs for Makefiles Reviewed-by: 225 bytes Diff Download File
.gitignore 1968 9 years ago Pekka Paalanen test: Added more demos and tests to .gitignore fil 645 bytes Diff Download File
.gitlab-ci.yml 2064.1.3 5 years ago Adam Jackson gitlab-ci: Add meson build to pipeline test 450 bytes Diff Download File
arm-simd-test.S 2079 5 years ago Dylan Baker meson: store ARM SIMD and NEON tests as text files 184 bytes Diff Download File
AUTHORS 1 17 years ago Soren Sandmann Pedersen Add the files. Empty Diff Download File
File autogen.sh 1481 12 years ago Søren Sandmann Pedersen autogen.sh: Support GNOME Build API http://people 209 bytes Diff Download File
ChangeLog 1 17 years ago Soren Sandmann Pedersen Add the files. Empty Diff Download File
CODING_STYLE 1062 13 years ago Søren Sandmann Pedersen CODING_STYLE: Delete the stuff about trailing spac 4.1 KB Diff Download File
configure.ac 2089 5 years ago Matt Turner Post-release version bump to 0.38.5 Signed-off-by 32.9 KB Diff Download File
COPYING 1214 13 years ago Siarhei Siamashka COPYING: added Nokia to the list of copyright hold 2 KB Diff Download File
INSTALL 2 17 years ago Soren Sandmann Pedersen Change autogen.sh to call autoreconf. Remove refer 9.1 KB Diff Download File
Makefile.am 2087 5 years ago Matt Turner Makefile.am: Ship Meson assembly test files in the 4.9 KB Diff Download File
Makefile.win32 1667 11 years ago Andrea Canciani build: Improve win32 build system Handle cross-di 384 bytes Diff Download File
Makefile.win32.common 2081 5 years ago Matt Turner Windows: Support building with SHELL=cmd.exe When 1.5 KB Diff Download File
meson.build 2089 5 years ago Matt Turner Post-release version bump to 0.38.5 Signed-off-by 13.5 KB Diff Download File
meson_options.txt 2064.1.2 5 years ago Adam Jackson meson: Add a meson build system This commit adds 2.6 KB Diff Download File
neon-test.S 2079 5 years ago Dylan Baker meson: store ARM SIMD and NEON tests as text files 216 bytes Diff Download File
NEWS 1 17 years ago Soren Sandmann Pedersen Add the files. Empty Diff Download File
pixman-1-uninstalled.pc.in 378 15 years ago Chris Wilson Fix pixman-1-uninstalled.pc to point to the libtoo 193 bytes Diff Download File
pixman-1.pc.in 1668 11 years ago Matt Turner build: Remove useless DEP_CFLAGS/DEP_LIBS variable 230 bytes Diff Download File
README 1774 11 years ago Søren Sandmann Pedersen README: Add guidelines on how to contribute patche 3.6 KB Diff Download File
RELEASING 2073 5 years ago Maarten Lankhorst Bump version to 0.38.0 And update RELEASING for t 1.6 KB Diff Download File