Owen Taylor
2ea856a21d
When width/height are 0, copy the src to the dest, don't just return. ( #3017 )
2005-08-22 12:15:28 +00:00
Billy Biggs
89a4e13d73
Fix a typo in the last change.
2005-08-21 21:02:32 +00:00
Billy Biggs
16ce285251
Remove warning about fbCompositeTrans_0888xnx0888 not being tested on big-endian, it's not helpful at this point.
...
Only define _cairo_pixman_have_mmx for fbHaveMMX when the symbol will actually exist.
2005-08-21 20:49:47 +00:00
Billy Biggs
f823dfd932
Fix for bug #4140 :
...
Dereference the pixel value correctly on big endian systems.
2005-08-20 21:28:57 +00:00
Billy Biggs
d809e82980
Special case alpha values of 0 and 0xff. (fbCompositeSrc_8888x8888mmx): Add an MMX implementation for a common operation when using pixman.
...
Prototype for the new function.
Call the new function where appropriate.
2005-08-18 19:13:06 +00:00
Billy Biggs
f5afeec18a
Special case projective transforms so we can avoid doing the expensive 64-bit math. Unroll the bilinear interpolation loops for an extra boost.
2005-08-18 18:46:30 +00:00
Billy Biggs
24ba58e7f5
For the source operator, the output should be cleared if the mask is zero. This fixes the MMX code to match the fbcompose code.
...
Fix a logic mistake that caused the MMX functions not to be used in many cases.
2005-08-18 06:01:40 +00:00
Billy Biggs
4ebe0b63cc
Only mangle exported symbols. This is sufficient and makes debugging a lot easier.
2005-08-17 21:14:02 +00:00
Billy Biggs
c892ee36d9
Fix a typo in the last commit.
2005-08-16 19:54:05 +00:00
Billy Biggs
0398085a6f
Split the MMX code into a separate libtool library to avoid applying the MMX CFLAGS to all of the pixman code. Idea and code from Owen Taylor.
...
Update the mangling header file to include the MMX symbols.
2005-08-16 18:38:38 +00:00
Billy Biggs
9ae7d8a13b
Port MMX code from xserver to pixman.
...
Add an fbpict.c ported from the latest in xserver/fb, including hooks to the MMX code where appropriate. This replaces the old ic.c file.
Replaced by fbpict.c.
Move some X server macros from fbpict.c up into icint.h to keep the diff small.
Add fbmmx and fbpict.c, remove ic.c.
Add a check for the MMX intrinsics. gcc >= 3.4 is required.
2005-08-16 16:50:25 +00:00
Billy Biggs
027157feb6
Fix to be correct for arbitrary xDst values.
2005-08-11 21:07:26 +00:00
Billy Biggs
b25c1203d8
Add support for filling 1bpp images (used to clear A1 masks).
2005-08-10 22:03:00 +00:00
Billy Biggs
910d824b3d
Port fbcompose.c from xserver into pixman. Add #defines for gradients, convolution filters, and indexed colour formats to keep the patch small. Use pixman regions instead of X server regions as appropriate.
...
Remove iccompose.c, replaced by fbcompose.c.
Add a slightly-trimmed version of fbpict.h from xserver/fb to make the port smaller and cleaner.
Use the redundant fbpict.h defines and add in the struct for indexed colour support.
Remove defines now in fbpict.h.
Add some constants and types required by fbcompose.c
Add fbcompose.c and fbpict.h, remove iccompose.c.
reviewed by: cworth and Jeff Muizelaar at various stages
2005-08-10 21:10:11 +00:00
Keith Packard
a05fcce165
Union with empty rectangle should yield SUCCESS, not FAILURE
2005-08-10 13:27:48 +00:00
Carl Worth
0fc4192104
From Keith Packard <keithp@keithp.com>,
...
Build pixman internally as a private part of cairo, with suitable name changes to avoid any visible pixman symbols in the cairo library:
Descend into pixman.
Drop libpixman from Requires.
Don't check for libpixman. Check version of pkg-config and use Requires.private instead of Requires in cairo.pc if possible. Generate pixman Makefiles.
Rip out release-publish target and installation of libpixman.pc.
Add pixman-remap.h. Drop libpixman.la target.
Fix to include config.h rather than ../config.h
This is the cpp magic to rename all pixman functions from the various fb, Fb, INT_pixman, pixman, Render, _Render, or no prefix to _cairo_pixman_ prefixes.
Include pixman-remap.h to get all the cairo-internalized names.
Add -Ipixman/src to get at pixman-remap.h.
2005-08-10 12:36:51 +00:00
Jeff Muizelaar
de87ebcc1c
Fix problems in render fb implementation found by rendercheck:
...
- fbCombineSaturate was pointed at fbCombineDisjointOver, instead of fbCombineDisjointOverReverse as it should. Instead, point fbCombineDisjointOverReverse at fbCombineSaturate (which is likely to be faster).
- fix previously-unused fbCombineSaturate implementation.
- fbCombineMaskAlphaC was just a copy of fbCombineMaskValueC. Make it do what it's supposed to (return a cs.alpha).
- fbCombineAtopC didn't invert the source alpha value.
- fix copy'n'paste errors in fbCombine(Dis/Con)jointGeneralC, also source alpha wasn't treated in a component fashion.
From anholt.
2005-08-05 22:17:08 +00:00
Jeff Muizelaar
71e560a8fa
Temporarily disable the 24bpp WORKING_UNALIGNED_INT because of a crash when using electric-fence when accessing hte last pixel of a drawable (last pixel is 3 bytes, read it as a 4 byte word, and you're reading one extra pixel, which doesn't normally matter, but does in a few rare cases). Should be easy to work around, but that will come later.
...
From jaymz
2005-08-05 21:35:51 +00:00
Jeff Muizelaar
ec93e241b0
Fix fbGetDrawable
...
Patch from Billy Biggs <vektor@dumbterm.net>.
2005-08-05 12:26:33 +00:00
Jeff Muizelaar
3ef2488265
Fix some of the 4 bit per channel PICT definitions
...
Patch from Billy Biggs <vektor@dumbterm.net>.
2005-08-05 12:14:12 +00:00
Jeff Muizelaar
2b20b7a230
Fix up the fast-path compositing operators; those are useful for sources without alpha, but can't be used for sources with alpha. Also, replaced fbCompositeSrcSrc_nxn with call to fbBlt as this function must handle 1, 4, 8, 16, 24, 32 bpp objects. Would be nice to optimize fbBlt for common cases involving 8, 16, 24 and 32bpp.
...
From Keith Packard.
2005-08-05 11:44:49 +00:00
Billy Biggs
ba87f1324f
Optimize spans where the same value is being added to multiple pixels. This improves the speed of rasterizing wide trapezoids.
...
Add an INLINE macro that matches the one from fbpict.h in xserver/fb.
2005-08-01 18:01:24 +00:00
Amaury Jacquot
392a2746ef
fix typo
2005-08-01 06:57:09 +00:00
Jeff Muizelaar
05d84a0a1e
Finish up merging the optimization work from jaymz.
2005-07-30 10:23:21 +00:00
Jeff Muizelaar
bdfb7f4db0
s/uint(8|16|32)_t/CARD(8|16|32)/
2005-07-30 09:43:51 +00:00
Jeff Muizelaar
5ebf2c5d96
Add some optimizations from jaymz. Also adds some compile warnings that will hopefully go away as we continue merging.
2005-07-30 08:48:25 +00:00
Carl Worth
3dd93a930f
Add -head to LIBPIXMAN_VERSION after tagging with SNAPSHOT_0_1_6.
2005-07-28 14:58:25 +00:00
Carl Worth
6d8d18e2dc
Add notes for snapshot 0.1.6.
...
Increment version to 0.1.6.
2005-07-28 14:41:36 +00:00
Owen Taylor
7b2b9df4e7
Fix units for stride return to be FbStip-sized. : ----------------------------------------------------------------------
2005-07-27 14:11:58 +00:00
Jeff Muizelaar
c36fd95f6e
Add call to fbCompositeSrcSrc_nxn that I missed.
2005-07-16 11:27:32 +00:00
Carl Worth
171b053347
Whitespace fix. (pixman_image_destroy): Fix leak of the clip region associated with an image. (NOTE: xserver/render doesn't have the same bug since it has FreePicture that calls into both DestroyPicture and DestroyPictureClip separately).
2005-07-14 11:41:00 +00:00
Jeff Muizelaar
2ff04df852
Begin merging in newer fb code.
...
The code comes from keithp: Initial import of Composite extension along with name change from Apportion. Added some accelerated code to fbpict to make this initial hack a bit faster. "real" extension bits to follow.
2005-07-09 19:00:36 +00:00
Jeff Muizelaar
1d48dc6cdb
More misc merging. Mostly s/pixman_composite/fbComposite/.
2005-07-09 18:13:14 +00:00
Jeff Muizelaar
36a57bcdcb
More misc merging. Mostly stuff like s/uint32_t/CARD32/.
2005-07-09 15:47:43 +00:00
Jeff Muizelaar
574f7f560b
Merge over most of the low-hanging renames from xserver/fb.
2005-06-25 15:03:17 +00:00
Jeff Muizelaar
be38e07c4e
Fix broken build on older gcc's caused by overzealous s/IC_/FB_/g
2005-06-25 14:41:38 +00:00
Jeff Muizelaar
64d5b34a98
s/Ic/Fb/g This gets read of most of the [Ii][cC]'s the rest will probably dealt with on a case by case basis.
...
trimmed function list again.
2005-06-24 20:13:19 +00:00
Jeff Muizelaar
42fc090745
selective s/Ic/fb/g.
...
I took out the list of functions because it was ridiculously long.
2005-06-24 18:28:19 +00:00
Jeff Muizelaar
43e3e7eeff
s/IC_/FB_/g
...
dd #define FB_BITS IC_BITS so that FB_BITS get defined early enough
2005-06-24 18:21:15 +00:00
Jeff Muizelaar
81fa936fd2
s/IcCombine/fbCombine/
2005-06-23 19:41:07 +00:00
Jeff Muizelaar
e77d9776ae
s/pixman_compositeOperand/FbCompositeOperand/g.
2005-06-23 19:39:12 +00:00
Jeff Muizelaar
373e7f68b1
s/pixman_bits_t/FbBits/s
2005-06-23 19:35:45 +00:00
Jeff Muizelaar
aa07c01cb5
more merging:
...
630. Fix incorrect datatype for the pixmap width in fbCompositeSrcAdd_8000x8000(), and add some small optimisations (#A.1423, Keith Packard).
2005-06-23 19:33:34 +00:00
Jeff Muizelaar
81ec183697
Start the xserver/fb -> libpixman merging with a copy optimization.
2005-06-23 19:30:12 +00:00
Keith Packard
ae96f5db6c
Split clipping into separate source and destination operand clips. By default, source operands are not affected by any client clipping. This matches the desired semantics for cairo. When this code is ported back to the X server, that will have to select the clipping option which clip source operands to the client clip.
2005-05-26 13:02:31 +00:00
Carl Worth
b16dafe553
Add -head to CAIRO_VERSION after tagging with SNAPSHOT_0_1_5.
2005-05-18 10:23:48 +00:00
Carl Worth
17c740eb6b
Add notes for snapshot 0.1.5.
...
Increment version to 0.1.5.
2005-05-18 10:13:14 +00:00
Carl Worth
f083b21c76
Clear pointers to NULL after destroying/freeing them.
2005-05-18 09:27:24 +00:00
Carl Worth
55a7bb718f
Declare pixman_fixed16_16_t properly as int32_t rather than just int. Reported by Lance Fetters.
2005-05-18 09:25:54 +00:00
Keith Packard
949daa1bc9
libpixman creates an A8 format object and sometimes forgets to destroy (when the bounds of the trapezoids are empty). Avoids creating the format object in that case.
...
reviewed by: cworth
2005-05-12 20:25:07 +00:00