Commit Graph

1147 Commits

Author SHA1 Message Date
Søren Sandmann Pedersen
271a0d34a0 Move edge stepper macros into pixman-edge.c 2009-06-21 22:36:14 -04:00
Søren Sandmann Pedersen
92eca118ad Delete FB_MASK and FB_ALLONES macros 2009-06-21 22:36:14 -04:00
Søren Sandmann Pedersen
9541538a97 Implement fbStore_a2g2b2r2 2009-06-21 22:36:14 -04:00
Søren Sandmann Pedersen
433d94e60b Replace switch functions in pixman-access.c with a table of accessors.
Also delete unused orig_data pointer.
2009-06-21 22:35:54 -04:00
Søren Sandmann Pedersen
d78e30b26b Rename pixman_image_can_get_solid() to pixman_image_is_solid 2009-06-21 19:06:25 -04:00
Søren Sandmann Pedersen
6e20c25743 Turn fbComposeGetSolid() macro into a pixman_image_get_solid() function. 2009-06-21 18:58:53 -04:00
Søren Sandmann Pedersen
76aa72e8ca Delete unused WRITE_ACCESS() macro 2009-06-21 18:51:36 -04:00
Søren Sandmann Pedersen
3c0ed5b92d Move pixman_image_fill_rectangles() to pixman.c 2009-06-21 18:51:06 -04:00
Søren Sandmann Pedersen
fb0fe616f2 Delete unused mod macro 2009-06-21 18:43:27 -04:00
Søren Sandmann Pedersen
bfa6f8c0b0 Eliminate bit fiddling macros from pixman-private.h.
There was one remaining use of FbMaskBits in the a1 trap rasterizer;
just move that macro there.
2009-06-21 18:40:25 -04:00
Søren Sandmann Pedersen
84886292e2 Implement fbComposeGetSolid() as a call to pixman_image_get_scanline() 2009-06-21 18:29:39 -04:00
Søren Sandmann Pedersen
8e40734174 Eliminate FbStipMask macro.
It was only used for storing into a1 images, and that code could be
written more clearly by computing the bit index directly.
2009-06-21 16:45:17 -04:00
Søren Sandmann Pedersen
590d034bb3 Implement pixman_format_supported_destination() in terms of pixman_format_supported_source() 2009-06-21 16:07:50 -04:00
Søren Sandmann Pedersen
16a87a89e1 Move FbGen macro into pixman-combine.c 2009-06-21 15:09:02 -04:00
Søren Sandmann Pedersen
d18722cdb6 Use DIV instead of _div In pixman-trap.c. 2009-06-21 13:29:59 -04:00
Søren Sandmann Pedersen
81d6725f31 Move edge utilities into pixman-trap.c 2009-06-21 13:29:59 -04:00
Søren Sandmann Pedersen
793c92dadb Move compiler dependencies to a new pixman-compiler.h file 2009-06-21 13:29:59 -04:00
Søren Sandmann Pedersen
5624ca0417 Rename FastPathInfo to pixman_fast_path_t 2009-06-21 13:29:59 -04:00
Søren Sandmann Pedersen
afcfc8efc4 Eliminate MSBFirst, LSBFirst, IMAGE_BYTE_ORDER, and BITMAP_BIT_ORDER.
Just use WORDS_BIGENDIAN instead.
2009-06-21 13:29:55 -04:00
Søren Sandmann Pedersen
fd83e3594b Rename combine.inc and combine.h.inc to pixman-combine.{c,h}.template. 2009-06-21 09:50:24 -04:00
Søren Sandmann Pedersen
d7234efc9a Only use force_align_arg_pointer on gcc/x86-32 2009-06-21 09:44:22 -04:00
Søren Sandmann Pedersen
093112a1b7 Rename pixman-pict.c to pixman.c
There are no traces of fbpict.c in it anymore.
2009-06-21 09:02:09 -04:00
M Joonas Pihlaja
b7b6847b66 Remove redundant NULL checks from general_composite_rect().
The general_composite_rect() function has two invocations
of the return_if_fail() macro before any of its variable
declarations.  Removing them allows for compilation to
succeed using a pre-C99 compiler.
2009-06-21 12:32:35 +03:00
Søren Sandmann Pedersen
d4dc812380 Get rid of pixman_region_internal_set_static_pointers()
Instead just define the function in pixman-region16.c
2009-06-19 13:19:02 -04:00
Søren Sandmann Pedersen
8b344e417e Rename PixmanTimer to pixman_timer_t 2009-06-19 13:15:41 -04:00
Søren Sandmann Pedersen
2f9787a9cf Rename GradientWalker to pixman_gradient_walker_t 2009-06-19 13:15:09 -04:00
Søren Sandmann Pedersen
cacfd7fe33 Delete unused IS_SOURCE_IMAGE() macro 2009-06-19 13:14:11 -04:00
Søren Sandmann Pedersen
216f46eb7e Remove commented-out fbAddTriangles 2009-06-19 13:07:35 -04:00
Søren Sandmann Pedersen
43f3825660 Remove useless FbBits typedef 2009-06-19 13:04:26 -04:00
Søren Sandmann Pedersen
8821885207 Delete unused CombineFunc{32,64} types 2009-06-19 13:02:54 -04:00
Søren Sandmann Pedersen
e063bd5555 Rename bits_image.fetch_pixels_{32,64} to fetch_pixels_raw_{32,64}
Also add a couple of comments about what these functions do.
2009-06-19 12:57:56 -04:00
Søren Sandmann Pedersen
ce29447474 Delete empty FASTCALL macro 2009-06-19 12:31:56 -04:00
Søren Sandmann Pedersen
207c9480b5 Delete FbComposeData type 2009-06-19 12:15:38 -04:00
Søren Sandmann Pedersen
9dfaa6365f Remove unused pixmanFetchGradient() declaration 2009-06-19 12:09:58 -04:00
Søren Sandmann Pedersen
da001051d8 Remove dstMask from pixman-fast-path.c
These were used to zero the x8 channel of PIXMAN_x8r8g8b8
destinations. However, we treat this channel as undefined, so there is
no need to zero it.
2009-06-19 11:53:34 -04:00
Søren Sandmann Pedersen
304412752e Eliminate trivial READ and WRITE macros in pixman-fast-path.c 2009-06-19 10:09:02 -04:00
William Bonnet
ac3fdeb97b Fix build on Sun Studio.
Don't use return in a void function.
2009-06-19 07:27:28 -04:00
Jonathan Morton
94964c221f [NEON] Add ARGB8-over-RGB565 compositing blitter. 2009-06-16 12:11:01 -04:00
Jonathan Morton
af660613ee [NEON] Add transparent rect blitter. 2009-06-16 12:10:57 -04:00
Jonathan Morton
8eeeca9932 [NEON] Replace Ian's glyph-blitter with a better one.
Each scanline of the destination is bulk-loaded into a cached buffer on
the stack (using the QuadWordCopy routine) before being processed.  This
is the primary benefit on uncached framebuffers, since it is necessary
to minimise the number of accesses to such things and avoid
write-to-read turnarounds.

This also simplifies edge handling, since QuadWordCopy() can do a
precise writeback efficiently via the write-combiner, allowing the main
routine to "over-read" the scanline edge safely when required.  This is
why the glyph's mask data is also copied into a temporary buffer of
known size.

Each group of 8 pixels is then processed using fewer instructions,
taking advantage of the lower precision requirements of the 6-bit
destination (so a simpler pixel multiply can be used) and using a more
efficient bit-repacking method.

(As an aside, this patch removes nearly twice as much code as it
introduces.  Most of this is due to duplication of Ian's inner loop,
since he has to handle narrow cases separately.  RVCT support is of
course preserved.)

We measured the doubling of performance by rendering 96-pixel height
glyph strings, which are fillrate limited rather than latency/overhead
limited.  The performance is also improved, albeit by a smaller amount,
on the more usual smaller text, demonstrating that internal overhead is
not a problem.
2009-06-16 12:08:58 -04:00
Søren Sandmann Pedersen
1a7f25946b Post-release version bump 2009-06-16 11:59:20 -04:00
Søren Sandmann Pedersen
9733b2c4d4 Pre-release version bump 2009-06-16 11:52:48 -04:00
Jonathan Morton
b1cb5922f7 Add RVCT support for straight blitter. 2009-06-15 13:49:27 -04:00
Jonathan Morton
b6a3868ced Better CFLAGS handling for recent ARM platforms. 2009-06-15 13:49:25 -04:00
Jonathan Morton
1217c11a02 Misc warning fixes. 2009-06-15 13:42:24 -04:00
Søren Sandmann Pedersen
68ec1244cd Add API to set a function to be called when the image is destroyed. 2009-06-13 10:20:43 -04:00
Søren Sandmann Pedersen
ebc39ed35a Work around X server bug.
X servers prior to

	ebfd6688d1927288155221e7a78fbca9f9293952

relied on pixman not clipping to destination geometry whenever an
explicit clip region was set. Since only X servers set
source_clipping, we can just trigger off of that.
2009-06-13 10:20:19 -04:00
Søren Sandmann Pedersen
08eb065c56 Move region computation closer to the region walking.
Computing the composite is region is a bit expensive, so only compute
it if we are likely to actually walk it.
2009-06-13 10:20:19 -04:00
Søren Sandmann Pedersen
78ca4eea64 Simplify clipping rule
The new rule is:

- Output is clipped to the destination clip region.

- If a source image has the clip_sources property set, then there
  is an additional step, after repeating and transforming, but before
  compositing, where pixels that are not in the source clip are
  rejected. Rejected means no compositing takes place (not that the
  pixel is treated as 0). By default source clipping is turned off;
  when they are turned on, only client-set clips are honored.

The old rules were unclear and inconsistently implemented.
2009-06-13 10:20:19 -04:00
Søren Sandmann Pedersen
b9683cb2ae Fix pixman_image_is_opaque()
- Don't claim that non-repeating bits images are opaque.

- Don't claim that conical gradients are opaque ever.
2009-06-13 10:18:18 -04:00