lp:pixman

Created by Christian Reis on 2010-06-12 and last modified on 2019-09-11
Get this branch:
bzr branch lp:pixman

Related bugs

Related blueprints

Branch information

Owner:
Christian Reis
Project:
Pixman
Status:
Development

Import details

Import Status: Reviewed

This branch is an import of the HEAD branch of the Git repository at git://anongit.freedesktop.org/git/pixman.

The next import is scheduled to run in 5 hours.

Last successful import was 18 minutes ago.

Import started 19 minutes ago on alnitak and finished 18 minutes ago taking 20 seconds — see the log
Import started 6 hours ago on alnitak and finished 6 hours ago taking 20 seconds — see the log
Import started 13 hours ago on alnitak and finished 13 hours ago taking 20 seconds — see the log
Import started 20 hours ago on alnitak and finished 20 hours ago taking 20 seconds — see the log
Import started on 2019-09-20 on alnitak and finished on 2019-09-20 taking 20 seconds — see the log
Import started on 2019-09-20 on alnitak and finished on 2019-09-20 taking 20 seconds — see the log
Import started on 2019-09-20 on alnitak and finished on 2019-09-20 taking 20 seconds — see the log
Import started on 2019-09-19 on alnitak and finished on 2019-09-19 taking 20 seconds — see the log
Import started on 2019-09-19 on alnitak and finished on 2019-09-19 taking 20 seconds — see the log
Import started on 2019-09-19 on alnitak and finished on 2019-09-19 taking 20 seconds — see the log

Recent revisions

2102. By Jonathan Kew <email address hidden> on 2019-09-11

Avoid undefined behavior (left-shifting negative value) in pixman_int_to_fixed

Reported in https://bugzilla.mozilla.org/show_bug.cgi?id=1580352. Casting the argument to uint32_t should avoid invoking undefined behavior here. We'll still have *implementation-defined* behavior when casting the result back to pixman_fixed_t, but that's better than *undefined*.

2101. By Dylan Baker <email address hidden> on 2019-09-09

meson: don't use link_with for library()

Meson doesn't do the expected thing when library() creates a static
library. Instead of combining the libraries together into a single
archive it effectively discards them, resulting in missing symbols.

To work around this we manually unpack the archives and shove the .o
files into the final library. This doesn't affect the shared library at
all, but makes the static library have the necessary symbols

Fixes #33

2100. By Jonathan Kew <email address hidden> on 2019-08-30

Explicitly cast byte to uint32_t before left-shifting.

To avoid potential signed integer overflow (undefined behavior), as implicit integer promotion means the operand becomes a (signed) int.

(Issue originally reported at https://bugzilla.mozilla.org/show_bug.cgi?id=1577669)

2099. By Christoph Reiter on 2019-06-10

meson: fix TLS support under mingw

GCC on Windows complains that "__declspec(thread)" doesn't work, but still
compiles it, so the meson check doesn't work. The warning printed by gcc:
"warning: 'thread' attribute directive ignored [-Wattributes]"

Pass -Werror=attributes to make the check fail instead.

This fixes the test suite (minus gtk tests) on Windows with mingw.

2098. By Christoph Reiter on 2019-06-10

meson: allow building a static library

So that passing "-Ddefault_library=both" also creates a static lib.

Note that Libs.private in the .pc file will still be wrong because of
https://github.com/mesonbuild/meson/issues/3934 (it contains things like
-lpixman-mmx)

2097. By Christoph Reiter on 2019-06-10

meson: define SIZEOF_LONG and use -Wundef

meson builds defaulted to SIZEOF_LONG=0 in various places

2096. By Basile Clement <email address hidden> on 2019-06-10

Don't use GNU extension for binary numbers

The dithering code (specifically `dither_factor_bayer_8`) uses a GNU
extension for binary notation, eg 0b001. This is not supported by MSVC
(at least) and breaks the build on this platform [1].

This patches uses hexadecimal notation instead, fixing the build.

[1]: https://lists.freedesktop.org/archives/pixman/2019-June/004883.html

Reviewed-by: Matt Turner <email address hidden>

2095. By Basile Clement <email address hidden> on 2019-05-25

Ordered dithering with blue noise, v2

On some screens (typically low quality laptop screens), using Bayer
ordered dithering has been observed to cause color changes depending on
*where the gradient is rendered on the screen*, causing visible
flickering when moving an image on the screen.

To alleviate the issue, this patch adds support for ordered dithering
using a 64x64 matrix tuned from blue noise. In addition to being devoid
of the positional dependency on screen, the blue noise matrix also
generates more pleasing and less discernable patterns. As such, it is
now the method used for PIXMAN_DITHER_GOOD and PIXMAN_DITHER_BEST
dithering methods.

The 64x64 blue noise matrix has been generated using the provided
`pixman/dither/make-blue-noise.c` script, which uses the
void-and-cluster method.

Changes since v1 (thanks Bill):
 - Use uint16_t for the blue noise matrix for lower memory usage
 - Use bitwise computation for array index

2094. By Basile Clement <email address hidden> on 2019-05-25

demos: Add a dithering demo

This adds a dither.c which provides a demo of the dithering feature.
This is based on the scale.c demo for scaling and provides a selection
of intermediate formats and dithering operators (currently, only
PIXMAN_DITHER_ORDERED_BAYER_8) to use. Images are first blitted onto a
surface of the intermediate format with the requested dither setup, then
blitted back onto a a8r8g8b8 surface for display.

2093. By Basile Clement <email address hidden> on 2019-05-25

test: Check the dithering path in tolerance-test

This adds support for testing dithered destinations in tolerance-test.
When dithering is enabled, the pixel checker allows for an additional
quantization error.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.

Subscribers