[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 4/4] console: stop using PixelFormat
From: |
Benjamin Herrenschmidt |
Subject: |
Re: [Qemu-devel] [PATCH 4/4] console: stop using PixelFormat |
Date: |
Sat, 21 Jun 2014 15:27:02 +1000 |
On Wed, 2014-06-18 at 14:23 +0200, Gerd Hoffmann wrote:
> With this patch the qemu console core stops using PixelFormat and pixman
> format codes side-by-side, pixman format code is the primary way to
> specify the DisplaySurface format:
>
> * DisplaySurface stops carrying a PixelFormat field.
> * qemu_create_displaysurface_from() expects a pixman format now.
>
> Functions to convert PixelFormat to pixman_format_code_t (and back)
> exist for those who still use PixelFormat. As PixelFormat allows
> easy access to masks and shifts it will probably continue to exist.
Finally got to start playing with that stuff (got busy with other things
for a while) and untangling vga.c (remove whole chunks of it actually
since we know the target is always 32bpp when we need to convert or
"draw" so it's a lot easier).
While at it, I noticed this patch is missing this, feel free to fold in
no need to add an ack or anything, it's trivial:
diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index 032eb7a..f9cdd96 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -711,15 +711,17 @@ static void xenfb_update(void *opaque)
/* resize if needed */
if (xenfb->do_resize) {
+ pixman_format_code_t format;
+
xenfb->do_resize = 0;
switch (xenfb->depth) {
case 16:
case 32:
/* console.c supported depth -> buffer can be used directly */
+ format = qemu_default_pixman_format(xenfb->depth, true);
surface = qemu_create_displaysurface_from
- (xenfb->width, xenfb->height, xenfb->depth,
- xenfb->row_stride, xenfb->pixels + xenfb->offset,
- false);
+ (xenfb->width, xenfb->height, format,
+ xenfb->row_stride, xenfb->pixels + xenfb->offset);
break;
default:
/* we must convert stuff */