Commit Graph

175 Commits

Author SHA1 Message Date
Karl Tomlinson
fb57b9638d b=709477 use precise region extents instead of loose clip extents for clip rect r=jrmuizel 2012-08-18 08:43:21 +12:00
Robert O'Callahan
877d5999b3 Bug 768775. Improve the precision of the calculation of the number of stops that need to be added to handle 'repeat' and 'reflect', when we're filling a path. r=bas 2012-07-25 21:35:28 +12:00
Jeff Muizelaar
091c38ffda Bug 683243. Dither 16 bit gradients. r=BenWa
This does a 2x2 ordered dither in the same way that Skia does.

One of the things I'm currently unhappy with is that it duplicates
the gradient walker code for 16 bits. We could turn it into a large
macro that does the appropriate things for 16 bit and 32 bit
versions, but that's not particularly appealing.
2012-07-04 11:42:29 -04:00
Jeff Muizelaar
3770f17103 Bug 683243. Add a 16 bit pipeline. r=BenWa
This is to support dithering 16 bit gradients with decent performance.
2012-07-11 12:58:17 -04:00
Phil Ringnalda
cfef187ad4 Back out 0c1f34eb5b93 and 0f987ac28e8c (bug 683243) for Android R2 bustage 2012-07-12 22:27:34 -07:00
Jeff Muizelaar
40983c8443 Bug 683243. Dither 16 bit gradients. r=BenWa
This does a 2x2 ordered dither in the same way that Skia does.

One of the things I'm currently unhappy with is that it duplicates
the gradient walker code for 16 bits. We could turn it into a large
macro that does the appropriate things for 16 bit and 32 bit
versions, but that's not particularly appealing.

--HG--
extra : rebase_source : ef89cd53d68166db825bb993e1262db342ba9b5d
2012-07-04 11:42:29 -04:00
Jeff Muizelaar
6d431e1711 Bug 683243. Add a 16 bit pipeline. r=BenWa
This is to support dithering 16 bit gradients with decent performance.

--HG--
extra : rebase_source : cffa90d5959211c8c1953867d85c7799ed52d662
2012-07-11 12:58:17 -04:00
Robert O'Callahan
221cda4051 Bug 768348. Avoid ExtCreatePen failures by avoiding rounding widths and dash lengths down to zero. r=jrmuizel
--HG--
extra : rebase_source : 5231a02af67486dbd0e663d3756ad60fe1483157
2012-07-02 11:49:34 +12:00
Jeff Muizelaar
915ee48539 Bug 754364. Add bilinear non-repeat and repeat fast paths. r=joe
This gives significantly faster bilinear sampling when we
don't have NEON.

--HG--
extra : rebase_source : 4473dd220020e65e4bc22b84fa780c7828b357a7
2012-05-15 18:26:16 -04:00
Ryan VanderMeulen
4fa5e1a4a3 Backout df38ed62a24a (bug 754364) due to Windows red. a=CLOSED TREE 2012-05-15 20:29:13 -04:00
Jeff Muizelaar
5748bfbc37 Bug 754364. Add bilinear non-repeat and repeat fast paths. r=joe
This gives significantly faster bilinear sampling when we
don't have NEON.
2012-05-15 18:26:16 -04:00
Jeff Muizelaar
da3d6ffb97 Bug 689707. Use lower precision bilinear interpolation. r=joe
This takes the bilinear interpolation code from Skia. It
uses 4 bits of precision instead of 8. This lets it interpolate
two components at a time because the results fit in 16 bits.

The lower precision code is only used in the fallback code
and not in any of the specialized code for NEON. This means
pixman gives different results depending on the cpu which isn't
great. However, this was easiest and the NEON code doesn't
gain as much from using lower precision.

Skia actually uses even lower interpolation when working with
565 but that's harder to plug in right now, and this gives
a reasonable improvement.
2012-05-10 22:12:52 -04:00
Jeff Muizelaar
a5b2537481 Bug 751668. Avoid incorrectly using EXTEND_NONE. r=joe
It seems like we sometimes end up using EXTEND_NONE unintentionally, this is
likely caused by different rounding between cairo and pixman. Pixman already
does a similar reduction to EXTEND_NONE so there's not point in duplicating it
here.

--HG--
extra : rebase_source : 5649a2583a8a01084567bfb06cb3c788437210f5
2012-05-03 15:21:52 -04:00
Jeff Muizelaar
4277a03964 Bug 746695. Update libpixman to 0.24.4 a=joe
Alan Coopersmith (2):
      Change MMX ldq_u to return _m64 instead of forcing all callers to cast
      Make mmx code compatible with Solaris Studio 12.3 compilers

Andrea Canciani (13):
      Include noop in win32 builds
      Silence autoconf warnings
      radial: Improve documentation and naming
      radial: Fix typos and trailing whitespace
      win32: Build benchmarks
      Workaround bug in llvm-gcc
      test: Fix compilation on win32
      build: Reuse sources and pixman-combine build rules
      build: Reuse test sources
      build-win32: Share targets and variables across win32 makefiles
      build-win32: Add root Makefile.win32
      test: Do not include config.h unless HAVE_CONFIG_H is defined
      build-win32: Add 'check' target

Benjamin Otte (2):
      tests: Add PNG_CFLAGS/LIBS to tests
      build: replace @VAR@ with $(VAR) in makefiles

Bobby Salazar (1):
      Android Runtime Detection Support For ARM NEON

Chris Wilson (1):
      bits: optimise fetching width==1 repeats

Colin Walters (1):
      autogen.sh: Support GNOME Build API

Jeff Muizelaar (1):
      Add definitions of INT64_MIN and INT64_MAX

Jon TURNEY (1):
      Fix build on cygwin after commit efdf65c0c4fff551fb3cd9104deda9adb6261e22

Matt Turner (11):
      lowlevel-blt: add over_x888_8_8888
      mmx: fix formats in commented code
      mmx: convert while (w) to if (w) when possible
      mmx: rename USE_MMX to USE_X86_MMX
      mmx: wrap x86/MMX inline assembly in ifdef USE_X86_MMX
      mmx: fix unaligned accesses
      mmx: prepare pixman-mmx.c to be compiled for ARM/iwmmxt
      mmx: compile on ARM for iwmmxt optimizations
      mmx: optimize unaligned 64-bit ARM/iwmmxt loads
      Make sure iwMMXt is only detected on ARM
      Correct the minimum gcc version needed for iwmmxt

Naohiro Aota (1):
      Don't use non-POSIX test

Nis Martensen (1):
      Fix a few typos in pixman-combine.c.template

Siarhei Siamashka (4):
      C fast path for scaled src_x888_8888 with nearest filter
      ARM: workaround binutils bug #12931 (code sections alignment)
      test: better coverage for BILINEAR->NEAREST filter optimization
      BILINEAR->NEAREST filter optimization for simple rotation and translation

Søren Sandmann (5):
      mmx: Delete some unused variables
      sse2: Delete some unused variables
      demos: Comment out some unused variables
      ARM: Fix two bugs in neon_composite_over_n_8888_0565_ca().
      test: Make fuzzer-find-diff.pl executable

Søren Sandmann Pedersen (63):
      Add a "noop" implementation.
      Add a noop composite function for the DST operator
      Move noop dest fetching to noop implementation
      Add a noop src iterator
      Move NULL iterator into pixman-noop.c
      Move NOP src iterator into noop implementation.
      Replace instances of "dst_*" with "dest_*"
      In pixman-general.c rename image_parameters to {src, mask, dest}_image
      Replace argumentxs to composite functions with a pointer to a struct
      blitters-test: Make common formats more likely to be tested.
      Pre-release version bump to 0.23.2
      Post-release version bump to 0.23.3
      Makefile.am: Add pixman@lists.freedesktop.org to RELEASE_ANNOUNCE_LIST
      Fix lcg_rand_u32() to return 32 random bits.
      New test of pixman_region_contains_{rectangle,point}
      Speed up pixman_region{,32}_contains_rectangle()
      Use find_box_for_y() in pixman_region_contains_point() too
      Don't include stdint.h in lowlevel-blt-bench.c
      In pixman_image_create_bits() allow images larger than 2GB
      Rename pixman-fast-path.h to pixman-inlines.h
      Use repeat() function from pixman-inlines.h in pixman-bits-image.c
      Move bilinear interpolation to pixman-inlines.h
      Pre-release version bump to 0.23.4
      Post-release version bump to 0.23.5
      test: New function to save a pixman image to .png
      Use pkg-config to determine the flags to use with libpng
      test: Use smaller boxes in region_contains_test()
      A few tweaks to a comment in pixman-combine.c.template
      Add a generic unorm_to_unorm() conversion utility
      Add general pixel converter
      Add initial version of the MAKE_ACCESSORS() macro
      Use MAKE_ACCESSORS() to generate all the 32 bit accessors
      Use MAKE_ACCESSORS() to generate accessors for all the 16bpp formats
      Use MAKE_ACCESSORS() to generate accessors for 8bpp RGB formats
      Use MAKE_ACCESSORS() to generate accessors for 4 bpp RGB formats
      Use MAKE_ACCESSORS() to generate accessors for 24bpp formats
      Use MAKE_ACCESSORS() to generate accessors for the a1 format.
      Use MAKE_ACCESSORS() to generate accessors for paletted formats
      Remove x and y coordinates from analyze_extents() and compute_sample_extents()
      Split computation of sample area into own function
      Eliminate compute_sample_extents() function
      test: Occasionally use a BILINEAR filter in blitters-test
      Strength-reduce BILINEAR filter to NEAREST filter for identity transforms
      Don't include stdint.h in scaling-helpers-test.
      Add src, mask, and dest flags to the composite args struct.
      Pre-release version bump to 0.23.6
      Post-release version bump to 0.23.7
      Add stable release / development snapshot to draft release notes
      gradient walker: Correct types and fix formatting
      Use sentinels instead of special casing first and last stops
      Simplify gradient_walker_reset()
      Merge branch 'gradients'
      Fix use of uninitialized fields reported by valgrind
      Pre-release version bump to 0.23.8
      Post-release version bump to 0.23.9
      Pre-release version bump to 0.24.0
      Post-release version bump to 0.24.1
      gradient-walker: For NONE repeats, when x < 0 or x > 1, set both colors to 0
      pixman-image.c: Fix typo in pixman_image_set_transform()
      Fix some signed overflow bugs
      Reject trapezoids where top (botttom) is above (below) the edges
      Fix bugs with alpha maps
      Pre-release version bump to 0.24.2

Taekyun Kim (25):
      Replace boolean arguments with flags for bilinear fast path template
      REPEAT_NORMAL support for bilinear fast path template
      sse2: Declare bilinear src_8888_8888 REPEAT_NORMAL composite function
      ARM: Add REPEAT_NORMAL functions to bilinear BIND macros
      Enable REPEAT_NORMAL bilinear fast path entries
      Bilinear REPEAT_NORMAL source line extension for too short src_width
      ARM NEON: Standard fast path out_reverse_8_8888
      ARM: NEON better instruction scheduling of over_n_8_8888
      ARM: NEON better instruction scheduling of over_n_8888
      sse2: Macros for assembling bilinear interpolation code fractions
      sse2: Bilinear scaled over_8888_8888
      sse2: Bilinear scaled over_8888_8_8888
      init/fini functions for pixman_image_t
      Add new fast path flag FAST_PATH_BITS_IMAGE
      Move _pixman_lookup_composite_function() to pixman-utils.c
      Simple repeat fast path
      Simple repeat: Extend too short source scanlines into temporary buffer
      ARM: NEON: Some cleanup of bilinear scanline functions
      ARM: NEON: Bilinear macro template for instruction scheduling
      ARM: NEON: Replace old bilinear scanline generator with new template
      ARM: NEON: Instruction scheduling of bilinear over_8888_8888
      ARM: NEON: Instruction scheduling of bilinear over_8888_8_8888
      ARM: NEON: Standard fast path src_n_8_8888
      ARM: NEON: Standard fast path src_n_8_8
      ARM: NEON: Fix assembly typo error in src_n_8_8888
2012-04-20 00:07:56 -04:00
Ehsan Akhgari
ccd236979e Bug 737909 - Add a patch file to gfx/cairo; r=joe
DONTBUILD
2012-03-22 11:37:19 -04:00
Pallavi Kumarijha
3235551d77 Bug 712554 - Remove MSVC6 support from Cairo Readme. r=jmuizelaar 2012-03-10 13:14:29 -05:00
Bas Schouten
0cae097489 Bug 715658: Properly invalidate cached SourceSurfaces. r=jrmuizel 2012-01-31 06:15:23 +01:00
Jeff Muizelaar
b1a552dca2 Bug 715704. Add a quartz implementation of mark_dirty_rectangle. r=roc
We need to drop our CGImage cache when the surface has been changed by outside users.
2012-01-05 18:40:01 -05:00
Thomas Prip Vestergaard
9fdf146bd7 Bug 710992 - Fix third argument in memcmp call in pixman-image.c; r=roc 2012-01-02 19:15:04 +01:00
Adrian Johnson
f5ccf3e8a4 Bug 454532. cairo: Print as Unicode. r=jrmuizel
--HG--
extra : rebase_source : 3b10e50f3763535d7eee5aa5dcdc6ca2ad445ad3
2011-09-14 11:44:15 -07:00
Ehsan Akhgari
78f4e1ccb9 Revert to 176fae7de173 which was fine.
Sorry for breaking the history, won't trust TBPL, ever again. :(
2011-09-02 09:15:54 -04:00
Ehsan Akhgari
a171549936 Revert to changeset e6fc4594c22e which was the last one to get a green Win7 tp run 2011-09-02 09:03:08 -04:00
Ehsan Akhgari
effcb104f8 Bug 684049 - cairoint.h should only use lround in C99 programs; r=jrmuizel 2011-09-01 17:46:52 -04:00
Matt Woodrow
5e32aaf40c Bug 675837 - Only flush Quartz surfaces on the success paths during cairo_quartz_get_image. r=roc 2011-08-27 12:02:03 +12:00
Jeff Muizelaar
037d7d743d Bug 668921. cairo: Fix fixup_unbounded_boxes() to work even if the box is smaller than the extents. r=ickle
Currently fixup_unbounded_boxes assumes that the extents are tight when we only
have one box. This is not always true. e.g. when we tesselate boxes we can end
up with only one box which is smaller than the extents and the extents are not
updated.

--HG--
extra : rebase_source : 5e01da7d845c1cd34f9e87d5c7de22dafe9df7a4
2011-08-19 11:26:23 -04:00
Ed Morley
3bd1c95cf1 Bug 631155 - undefined return value in function '_cairo_surface_wrapper_flush'; r=jrmuizel 2011-07-11 09:14:12 -04:00
Ed Morley
c8157ac7e6 Bug 664311 - Remove WinCE code from gfx/; r=jmuizelaar 2011-06-18 11:04:30 +02:00
Jeff Muizelaar
8a7f7e69e4 Bug 637828. Reset the transform on the dest image. r=joe a=blocking-fennec 2011-03-07 19:17:37 -05:00
Mats Palmgren
d182933121 Bug 624198 - Don't use fwprintf with char* format. Flush stderr so that all error messages appears before exit. r=vlad a=jst 2011-01-21 04:26:39 +01:00
Mats Palmgren
3b5c54ab1f Bug 624198 - Crash due to missing cairo_clip_init call in cairo_gstate_show_text_glyphs. r=vlad a=jst 2011-01-21 04:26:39 +01:00
Robert O'Callahan
96ffca9921 Bug 593604. cairo patch for changeset e427b4ea7e2f; a=NPOTB 2011-01-19 21:27:54 +13:00
Robert O'Callahan
b20b042174 Bug 593604. cairo patch for changeset bacc54d452a9l a=NPOTB 2011-01-19 21:27:54 +13:00
Robert O'Callahan
acae7af63a Bug 363861. cairo patch for changeset 8857392e37ae; a=NPOTB 2011-01-19 21:27:54 +13:00
Joe Drew
610ac9f1c9 Bug 611433 - Add cairo_quartz_surface_create_for_data. r=jrmuizel a=blocking2.0 2010-12-16 23:33:07 -08:00
Ginn Chen
1308832119 Bug 612234 Part 3: Make internal pixman functions hidden for Solaris Studio compiler r=jmuizelaar a=blocking-2.0 2010-11-30 14:38:47 +08:00
Daniel Holbert
0dba28bdd4 Bug 612662 patch 3: Drop cairo_quartz_surface_t's "imageSurfaceEquiv" member if we fail to create it. r=roc a=blocking-final+ 2010-11-19 08:56:06 -08:00
Robert O'Callahan
5dc58e0b07 Bug 579885. Part 4: Paint opaque surfaces using kPrivateCGCompositeCopy when possible. r=jrmuizel,a=blocking 2010-11-12 14:43:42 +13:00
Robert O'Callahan
d78da67af5 Bug 579985. Part 3.1: Pass cairo_content_t parameter when creating CGLayer surfaces. r=jrmuizel,a=blocking 2010-11-12 14:42:22 +13:00
Robert O'Callahan
bc9c9cca06 Bug 579985. Using CGContextSetAlpha to implement mask alpha doesn't work for some operators. r=jrmuizel,a=blocking 2010-11-12 14:42:22 +13:00
Robert O'Callahan
ec94c756f0 Bug 593270. Part 2: Treat EXTEND_PAD like EXTEND_NONE when painting. r=jrmuizel,a=joe 2010-11-12 14:42:22 +13:00
Robert O'Callahan
6cc10debb6 Bug 593270. Part 1: Move surface setup code to a helper function. r=jrmuizel,a=joe 2010-11-12 14:42:22 +13:00
Joe Drew
69ac8b8909 Bug 575521 - Add cairo_quartz_surface_get_image to get the image associated with a quartz surface, if it exists. r=jrmuizel,vlad,bas 2010-11-11 15:31:23 -05:00
Jeff Muizelaar
5e9ef56af6 cairo: Fix a clip test to test the right coordinate. r=ehsan,a=gavin
Fixed upstream by 498c10032ea3f8631a928cd7df96766f2c8ddca4
2010-08-17 20:08:57 -04:00
Karl Tomlinson
ac5a6eaab0 b=583115 use XCopyArea for operator SOURCE with compatible COLOR_ALPHA surfaces to support simple overlapping self-copies r=jrmuizel
--HG--
extra : rebase_source : 201d9032b9dca80f71e154c68f0724e6826162eb
2010-08-03 13:26:27 +12:00
Jeff Muizelaar
3ba06c07be Bug 518172. cairo: Disable the previous_scaled_font cache. r=karlt
Rotated text was sometimes broken because there was a mismatch of
assumptions between cairo and Gecko about how important it was
for the ctm of a scaled_font to match the ctm of a context. This
temporarily fixes the problem by disabling the previous_scaled_font
cache with bug #583035 tracking a more permanent fix.
2010-08-02 10:00:21 -04:00
Karl Tomlinson
fd17ad7b52 b=562574 fixes for cairo_copy_clip_rectangle_list and empty cairo_clip_extents r=jrmuizel
--HG--
extra : rebase_source : 7559cb07311c0328d62a625c631a6ab822934b0d
2010-07-23 10:22:51 +12:00
Oleg Romashin
adbbd32f76 Bug 550673 - Fix glyphs rendering for cairo-qpainter-surface. r=jmuizelaar
--HG--
extra : rebase_source : efbaa01f0716eafb3cf53a2e21eed49c9e88e54a
2010-07-17 09:52:35 +03:00
Bas Schouten
6449f02198 Bug 577200. Part 1: Add cairo API to set up a Win32 surface for an HDC with an alpha channel. r=jrmuizel 2010-07-16 09:07:44 +12:00
Oleg Romashin
459e0bf49c Bug 567065 - Try to create offscreen Xlib surface from existing visual if possible. r=jmuizelaar. 2010-06-16 04:32:26 -04:00
Benjamin Otte
5710ee0da8 b=571448 In the XCopyArea region code, don't modify src_x/y when they are later used in the unbounded fixup code r=jrmuizel 2010-06-27 20:03:16 +12:00