Commit Graph

1948 Commits

Author SHA1 Message Date
Alexander Larsson
865c37d574 Add pixman_image_get_destroy_data()
This way you can get back user data that was set using
pixman_image_set_destroy_function().
2010-02-09 15:57:18 +01:00
Alexander Larsson
cca1cef3f2 Add extern "C" guards for c++ 2010-02-09 13:22:38 +01:00
Søren Sandmann Pedersen
8e85059436 Move checks for src/mask repeat right before walking the region.
Also add a couple of additional checks to the src/mask repeat check.
2010-01-28 16:02:27 -05:00
Søren Sandmann Pedersen
eea58eab93 Compute src, mask, dest flags and base fast path decisions on them.
This makes sets the stage for caching the information by image instead
of computing it on each composite invocation.

This patch also computes format codes for images such as PIXMAN_solid,
so that we can no longer end up in the situation that a fast path is
selected for a 1x1 solid image, when that fast path doesn't actually
understand repeating.
2010-01-28 11:52:56 -05:00
Søren Sandmann Pedersen
6197db91a3 Add src_, mask_, and dest_flags fields to fast path arrays
Update all the fast path tables to match using a new
PIXMAN_STD_FAST_PATH macro.

For now, use 0 for the flags fields.
2010-01-28 11:52:55 -05:00
Søren Sandmann Pedersen
ff6eaac50e Move calls to source_is_fastpathable() into get_source_format() 2010-01-28 11:52:55 -05:00
Søren Sandmann Pedersen
171dc48756 Fold get_fast_path() into _pixman_run_fast_path()
Also factor out the source format code computation to its own
function.
2010-01-28 11:52:55 -05:00
Søren Sandmann Pedersen
459c7a52f6 Consolidate the source and mask sanity checks in a function 2010-01-28 11:52:55 -05:00
Søren Sandmann Pedersen
27a4fb4747 Move pixbuf checks after src_format and mask_format have been computed. 2010-01-28 11:52:55 -05:00
Søren Sandmann Pedersen
2def1a8867 Move the sanity checks for src, mask and destination into get_fast_path() 2010-01-28 11:52:55 -05:00
Søren Sandmann Pedersen
d76aab4d03 Turn some uint16_t variables to int32_t in the fast paths.
This is necessary now that we have a 32 bit version of
pixman_image_composite().
2010-01-27 07:11:11 -05:00
Søren Sandmann Pedersen
15d07d6c2a Implement get_scanline_64() correctly for solid fill images.
Previously they would be evaluated at 8 bits and then expanded.
2010-01-26 14:46:33 -05:00
Benjamin Otte
0e8550798f Make pixman_image_fill_rectangles() call pixman_image_fill_boxes()
Avoids duplication of code
2010-01-26 20:22:52 +01:00
Benjamin Otte
d0d284da0a Add pixman_image_fill_boxes() API
It's basically the 32bit version of pixman_image_fill_rectangles(), just
with a saner data type.
2010-01-26 20:22:52 +01:00
Benjamin Otte
e841c556d5 Add pixman_image_composite32()
This is equal to pixman_image_composite(), just with 32bit parameters.
pixman_image_composite() now just calls pixman_image_composite32()
2010-01-26 20:22:52 +01:00
Benjamin Otte
78b6c47078 Make region argument to pixman_region(32)_init_rects() const
No indenting of the header to keep git blame working
2010-01-26 20:22:51 +01:00
Benjamin Otte
b194bb78c8 Fix typo 2010-01-26 20:22:51 +01:00
Julien Cristau
1861775e1d Remove myself from Uploaders 2010-01-23 01:46:38 +01:00
Søren Sandmann Pedersen
c066c347ae Fix some warnings 2010-01-19 14:23:57 -05:00
Søren Sandmann Pedersen
8fce7b18f3 Post-release version bump 2010-01-17 19:34:27 -05:00
Søren Sandmann Pedersen
23e1ba3c06 Pre-release version bump 2010-01-17 18:56:11 -05:00
Søren Sandmann Pedersen
8dabd1fdd8 bits: Print an error if someone tries to create an image with bpp < depth
Something in the X server apparently does this.
2010-01-17 16:47:15 -05:00
Søren Sandmann Pedersen
2c3cbc83c4 When fetching from an alpha map, replace the alpha channel of the image
Previously it would be multiplied onto the image pixel, but the Render
specification is pretty clear that the alpha map should be used
*instead* of any alpha channel within the image.

This makes the assumption that the pixels in the image are already
premultiplied with the alpha channel from the alpha map. If we don't
make this assumption and the image has an alpha channel of its own, we
would have to first unpremultiply that pixel, and then premultiply the
alpha value onto the color channels, and then replace the alpha
channel.
2010-01-17 16:47:15 -05:00
Søren Sandmann Pedersen
0df6098f3d pixman_image_validate() needs to also validate the alpha map.
This is the other half of bug 25950.
2010-01-17 16:47:15 -05:00
Søren Sandmann Pedersen
7f00dc62e4 When fetching from an alpha map, use the alpha map's fetch function.
Don't use the one from the image. This is the first half of bug 25950.
2010-01-17 16:47:15 -05:00
Søren Sandmann Pedersen
042f978b04 test: Add new alphamap test program.
This program demonstrates three bugs relating to alpha maps:

- When fetching from an alpha map into 32 bit intermediates, we use
  the fetcher from the image, and not the one from the alpha map.

- For 64 bit intermediates we call fetch_pixel_generic_lossy_32()
  which then calls fetch_pixel_raw_64, which is NULL because alpha
  images are never validated.

- The alpha map should be used *in place* of any existing alpha
  channel, but we are actually multiplying it onto the image.
2010-01-17 16:47:15 -05:00
Julien Cristau
57810f4228 Rename the build directory to not include DEB_BUILD_GNU_TYPE for no good reason. Thanks, Colin Watson! 2010-01-16 16:48:52 +00:00
Søren Sandmann Pedersen
05c38141b4 fetch-test: Fix spelling error (pallete -> palette) 2010-01-16 07:41:23 -05:00
Alan Coopersmith
c46a87e45a Update Sun license notices to current X.Org standard form
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
2010-01-14 09:42:41 -08:00
Søren Sandmann Pedersen
3df6cb3431 fetch-test: Various formatting fixes 2010-01-10 09:15:24 -05:00
Pierre-Loup A. Griffais
7862f9b96e Interpret the angle of a conical gradient in degrees.
The conical gradient angle's fixed point degrees to
radians conversion code is missing a factor of pi.
2010-01-06 01:26:07 +02:00
Julien Cristau
33671757f5 Prepare changelog for upload 2010-01-02 11:26:33 +00:00
Julien Cristau
610203e9f5 Bump Standards-Version to 3.8.3. 2010-01-02 11:26:05 +00:00
Julien Cristau
ee1fcf5f41 Add dependencies on ${misc:Depends} (lintian). 2010-01-02 11:25:49 +00:00
Julien Cristau
4a14f4ffbd Bump changelogs 2010-01-02 11:18:28 +00:00
Julien Cristau
476822daae Merge tag 'pixman-0.16.4' into debian-unstable 2009-12-29 22:11:18 +00:00
Søren Sandmann Pedersen
54f51c4a75 region: Enable or disable fatal errors and selfchecks based on version number
There is a couple of bugs in bugzilla where bugs in the X server
triggered asserts in the pixman region code. It is probably better to
let the X server survive this. (In fact, I thought I had disabled them
for 0.16.0, but apparently not).

The patch below uses these rules:

    - In _stable_ pixman releases, assertions and selfchecks are turned
      off. Assertions, so that the X server doesn't die. Selfchecks,
      for performance reasons.

    - In _unstable_ pixman releases, both assertions and selfcheck are
      turned on. These releases are what get added to development
      distributions such as rawhide, so we want as much self-checking
      as possible.

    - In _random git checkouts_, assertions are enabled, so that bugs
      are caught, but selfchecks are disabled so that you can use them
      for performance work without having to fiddle with turning
      selfchecks off.
2009-12-17 02:22:00 -05:00
Søren Sandmann Pedersen
91ec7fecc9 Some minor formatting fixes. 2009-12-16 23:15:04 -05:00
Søren Sandmann Pedersen
97cf4d494c arm-simd: Whitespace fixes 2009-12-16 17:54:41 -05:00
Søren Sandmann Pedersen
28778c997e mmx: Eliminate trailing whitespace. 2009-12-16 17:49:44 -05:00
Søren Sandmann Pedersen
c6c43c65f7 Add 'check' to release-check make target 2009-12-16 15:27:50 -05:00
Søren Sandmann Pedersen
b3afacf9c9 Reorder tests so that they fastest ones run first. 2009-12-16 15:27:50 -05:00
Marvin Schmidt
bbc5108bf8 Build tests and run non-GTK+ ones on make check
Setting TESTS will run the tests on `make check`

Bug 25131
2009-12-16 15:24:36 -05:00
Siarhei Siamashka
4476832070 ARM: added 'neon_combine_add_u' function 2009-12-16 20:56:13 +02:00
Siarhei Siamashka
f2c7a04c41 ARM: added 'neon_combine_over_u' function 2009-12-16 20:56:08 +02:00
Siarhei Siamashka
24cd286af6 ARM: macro template for single scanline compositing functions
Existing template already supports 2D images processing,
but pixman also needs some NEON optimized functions for
improving performance when compositing is decoupled
into "fetch -> process -> store" stages and done via
temporary scanline buffer. That's why a new simplified
template which deals only with the generation of single
scanline processing functions is handy.
2009-12-16 20:55:54 +02:00
Siarhei Siamashka
ae8d9df624 Use canonical pixman license notice for recently added ARM NEON assembly files 2009-12-16 20:39:21 +02:00
Søren Sandmann Pedersen
92865d4dec Pre-release version bump 2009-12-15 11:30:49 -05:00
Søren Sandmann Pedersen
ec6de472d0 region: Enable or disable fatal errors and selfchecks based on version number
There is a couple of bugs in bugzilla where bugs in the X server
triggered asserts in the pixman region code. It is probably better to
let the X server survive this. (In fact, I thought I had disabled them
for 0.16.0, but apparently not).

The patch below uses these rules:

    - In _stable_ pixman releases, assertions and selfchecks are turned
      off. Assertions, so that the X server doesn't die. Selfchecks,
      for performance reasons.

    - In _unstable_ pixman releases, both assertions and selfcheck are
      turned on. These releases are what get added to development
      distributions such as rawhide, so we want as much self-checking
      as possible.

    - In _random git checkouts_, assertions are enabled, so that bugs
      are caught, but selfchecks are disabled so that you can use them
      for performance work without having to fiddle with turning
      selfchecks off.
2009-12-15 11:30:34 -05:00
Siarhei Siamashka
ce78288d77 ARM: added 'neon_composite_src_pixbuf_8888' fast path
This is ARM NEON optimized conversion of native RGBA format used by
GTK/GDK into native 32bpp RGBA format used by cairo/pixman.
2009-12-09 15:22:09 +02:00