Hi, First round of pixman patches for qemu, so we have something concrete to discuss. Applies on top of the "console cleanups" patch series posted a few days ago.
The long-term goal is to stop reinventing the wheel over and over when it comes to pixel manipulation and to use pixman instead. This patch series is a start. It switches a central data structure (DisplaySurface) over to pixman, so the ui code can easily use pixman to manipulate pixel data. It also collects some low-hanging fruit to show pixman in action. Comments? cheers, Gerd Gerd Hoffmann (14): console: remove DisplayAllocator pixman: add submodule pixman: windup in configure & makefiles pixman: helper functions pixman: add pixman image to DisplaySurface console: make qemu_alloc_display static console: don't set PixelFormat alpha fields for 32bpp qxl: stop direct access to DisplaySurface fields. vga: stop direct access to DisplaySurface fields. pixman: switch screendump function. pixman/vnc: use pixman images in vnc. pixman/vnc: remove rgb_prepare_row* functions pixman/vnc: remove dead code. pixman: drop obsolete fields from DisplaySurface .gitmodules | 3 + Makefile | 9 ++ Makefile.objs | 1 + configure | 38 ++++++ console.c | 107 +++++++--------- console.h | 62 ++++------ hw/qxl-render.c | 2 +- hw/vga.c | 48 +++----- pixman | 1 + qemu-common.h | 1 - qemu-pixman.c | 60 +++++++++ qemu-pixman.h | 32 +++++ ui/sdl.c | 117 +---------------- ui/vnc-enc-hextile-template.h | 23 ++-- ui/vnc-enc-hextile.c | 53 ++------- ui/vnc-enc-tight.c | 280 +++++++++++++++-------------------------- ui/vnc-enc-zrle.c | 18 ++-- ui/vnc-jobs.c | 3 +- ui/vnc.c | 239 ++++++++++++++++++----------------- ui/vnc.h | 19 +++- 20 files changed, 508 insertions(+), 608 deletions(-) create mode 160000 pixman create mode 100644 qemu-pixman.c create mode 100644 qemu-pixman.h