summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
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.