diff options
author | David Herrmann <dh.herrmann@googlemail.com> | 2013-02-11 16:26:28 +0100 |
---|---|---|
committer | David Herrmann <dh.herrmann@googlemail.com> | 2013-02-11 16:26:28 +0100 |
commit | d57c4eb7c983979a8f153e54b2d7c2cdb7423e00 (patch) | |
tree | cdd34d57f893f710a73855f242a17ef61abaca80 /docs | |
parent | 37f88bd38487466274fbd0281cd3459784186bc5 (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.txt | 47 |
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. |