qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] [v2] Update cocoa.m to match new DisplayState c


From: Stefano Stabellini
Subject: Re: [Qemu-devel] [PATCH] [v2] Update cocoa.m to match new DisplayState code
Date: Tue, 27 Jan 2009 10:47:53 +0000
User-agent: Thunderbird 2.0.0.14 (X11/20080505)

Samuel Benson wrote:

> Yes it was, but a `make clean` fixed that right up.
> The problem I'm seeing now is an x86 guest on an x86 host at 16 bit color,
> Windows XP at 16bit color on an x86 mac seems to incorrectly read the
> pixel data; 24 bit works
> like a charm. Gentoo in framebuffer mode at 16 bit color renders
> correctly on PPC host, as does
> Windows XP in 16 and 24 bit color. There is no difference in the match
> calculation for 16bit
> color in the host code for PPC or x86, so very odd that only the x86
> version seems corrupt.
> 





As I was telling you before, the guest in 16bpp is one of the "odd"
cases, because everything usually is converted into 32bpp.
It only happen when both host and guest are x86 because the 16bpp
optimization that the displaystate interface change introduced is only
enabled when guest and host have the same endianness.

I think the way you specify bitsPerComponent may be incorrect in the
16bpp case, because the format is actually 565:

red 5 bits
green 6 bits
blue 5 bits

isn't there a way to provide the full color masks like with sdl?

guest_screen = SDL_CreateRGBSurfaceFrom(ds_get_data(ds), ds_get_width(ds), 
ds_get_height(ds),
                                            ds_get_bits_per_pixel(ds), 
ds_get_linesize(ds),
                                            ds->surface->pf.rmask, 
ds->surface->pf.gmask,
                                            ds->surface->pf.bmask, 
ds->surface->pf.amask);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]