diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2014-06-19 13:19:01 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2014-09-05 13:27:11 +0200 |
commit | 43c7d8bd449d1c0f435775aefe391666a4b86dd6 (patch) | |
tree | da88f6670402f3b1fa95c8c0fe531339f20315a9 | |
parent | 4c38762fb5cab19f50d2ba004736d7426abba3c0 (diff) | |
download | qemu-43c7d8bd449d1c0f435775aefe391666a4b86dd6.zip qemu-43c7d8bd449d1c0f435775aefe391666a4b86dd6.tar.gz qemu-43c7d8bd449d1c0f435775aefe391666a4b86dd6.tar.bz2 |
console: add qemu_pixman_linebuf_copy
Helper function for copying data from linebuf to framebuffer using
pixman, possibly converting in case src and dst formats differ.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r-- | include/ui/qemu-pixman.h | 2 | ||||
-rw-r--r-- | ui/qemu-pixman.c | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/include/ui/qemu-pixman.h b/include/ui/qemu-pixman.h index 80ed94a..381969d 100644 --- a/include/ui/qemu-pixman.h +++ b/include/ui/qemu-pixman.h @@ -42,6 +42,8 @@ pixman_image_t *qemu_pixman_linebuf_create(pixman_format_code_t format, int width); void qemu_pixman_linebuf_fill(pixman_image_t *linebuf, pixman_image_t *fb, int width, int x, int y); +void qemu_pixman_linebuf_copy(pixman_image_t *fb, int width, int x, int y, + pixman_image_t *linebuf); pixman_image_t *qemu_pixman_mirror_create(pixman_format_code_t format, pixman_image_t *image); void qemu_pixman_image_unref(pixman_image_t *image); diff --git a/ui/qemu-pixman.c b/ui/qemu-pixman.c index 5d8bd46..30c7fdd 100644 --- a/ui/qemu-pixman.c +++ b/ui/qemu-pixman.c @@ -133,6 +133,7 @@ pixman_image_t *qemu_pixman_linebuf_create(pixman_format_code_t format, return image; } +/* fill linebuf from framebuffer */ void qemu_pixman_linebuf_fill(pixman_image_t *linebuf, pixman_image_t *fb, int width, int x, int y) { @@ -140,6 +141,14 @@ void qemu_pixman_linebuf_fill(pixman_image_t *linebuf, pixman_image_t *fb, x, y, 0, 0, 0, 0, width, 1); } +/* copy linebuf to framebuffer */ +void qemu_pixman_linebuf_copy(pixman_image_t *fb, int width, int x, int y, + pixman_image_t *linebuf) +{ + pixman_image_composite(PIXMAN_OP_SRC, linebuf, NULL, fb, + 0, 0, 0, 0, x, y, width, 1); +} + pixman_image_t *qemu_pixman_mirror_create(pixman_format_code_t format, pixman_image_t *image) { |