summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorDavid Herrmann <dh.herrmann@googlemail.com>2013-02-11 16:26:28 +0100
committerDavid Herrmann <dh.herrmann@googlemail.com>2013-02-11 16:26:28 +0100
commitd57c4eb7c983979a8f153e54b2d7c2cdb7423e00 (patch)
treecdd34d57f893f710a73855f242a17ef61abaca80 /docs
parent37f88bd38487466274fbd0281cd3459784186bc5 (diff)
docs: remove pixman comments
We now provide an experimental pixman backend. It still suffers from the same problems but that cannot be fixed easily. Check it out if you want it. Disabled by default, though. Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/pixman.txt47
1 files changed, 0 insertions, 47 deletions
diff --git a/docs/pixman.txt b/docs/pixman.txt
deleted file mode 100644
index e42e9d1..0000000
--- a/docs/pixman.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-= Pixman accelerated Rendering =
-
-Several people recommended using pixman for 2D blitting to improve performance
-as pixman has assembler-accelerated backends. However, pixman does not provide
-the functions we need.
-Most rendering operations we need, do alpha compositing with a foreground and
-background color. With pixman we would have to do something like:
-
- pixman_image_t *pdst = pixman_image_create_bits(
- PIXMAN_x8r8g8b8,
- width,
- height,
- (uint32_t*)dst,
- rb->stride);
- pixman_image_t *pmsk = pixman_image_create_bits(
- PIXMAN_a8,
- width,
- height,
- (uint32_t*)src,
- req->buf->stride);
-
- pixman_color_t fcol = { 0xffff, 0xffff, 0xffff, 0xffff };
- pixman_image_t *psrc = pixman_image_create_solid_fill(
- &fcol);
-
- uint32_t bcol = (req->br << 16) | (req->bg << 8) | req->bb;
- pixman_fill((void*)dst, rb->stride / 4, 32, 0, 0,
- width, height, bcol);
-
- pixman_image_composite(PIXMAN_OP_OVER,
- psrc, pmsk, pdst,
- 0, 0, 0, 0, 0, 0,
- width, height);
-
-That is, we create pixman-images for the destination and the mask. We could
-save them in the video-display and glyph objects so there is actually no need
-to allocate them dynamically. However, the solid color object can be any RGB
-value and thus it must be allocated for every blit. This is way too heavy and
-pixman should really provide a way to create solid images easier. Preferably
-without any function call.
-But the bigger problem is actually that we have to copy data twice. We need to
-first call pixman_fill() and then pixman_image_composite() to get the
-behavior we want. This totally kills performance.
-
-Profiling pixman_image_composite(), we see that it definitely is better than
-our unoptimized blitters, but we need to add a function which does both
-operations at once to pixman to get a decent performance.