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: Mon, 2 Mar 2009 11:33:27 +0000
User-agent: Thunderbird 2.0.0.14 (X11/20080505)

Andreas Färber wrote:

> Acked-by: Andreas Faerber <address@hidden>
> 
> The patch fixes compilation, and I have tested the following guests on  
> ppc host:
> Debian/sparc32 (OpenBIOS and penguin feet are yellow)
> Haiku/x86 @ 16bit, 15bit, 8bit (blue background, everything looks  
> normal)
> 
> This patch implicitly adds a new feature, it centers the window on  
> size change ("[normalWindow center];"). Previously the window would  
> extend below the desktop bounds after the BIOS/OpenBIOS screen. Maybe  
> that should be split out from the DisplayState changes?
> 
> This patch probably needs a Signed-off-by from Stefano since it is  
> likely based upon his draft patch from Dec 19.
> 
> There was an additional patch from Stefano in this thread that I have  
> not yet tested. It was supposed to fix some Windows guests as a last  
> resort (disabling 16-bit optimizations due to lacking support in  
> Cocoa), but nobody replied to it yet apparently.
> 
> I haven't checked in-depth in which way C. W. Bett's diff is related  
> to these two. It does seem to contain an additional output typo fix  
> not in here. Could you post that as a separate patch?
> 







The problem with this patch is that it won't handle correctly the
following case: host and guest x86, host is a MacOS host, guest is a
Windows guest with 16bpp resolution.  The cause of the problem is that
Windows uses 565 RGB for 16bpp while MacOS seems to be unable not only
to render but even to convert this resolution into another.

Due to the lack of alternatives I suggest to introduce the following
hack to workaround the problem:

---

diff --git a/hw/vga.c b/hw/vga.c
index 2084ff4..b742c78 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -1621,7 +1621,7 @@ static void vga_draw_graphic(VGAState *s, int full_update)
         disp_width != s->last_width ||
         height != s->last_height ||
         s->last_depth != depth) {
-#if defined(WORDS_BIGENDIAN) == defined(TARGET_WORDS_BIGENDIAN)
+#if defined(WORDS_BIGENDIAN) == defined(TARGET_WORDS_BIGENDIAN) && 
!defined(CONFIG_COCOA)
         if (depth == 16 || depth == 32) {
 #else
         if (depth == 32) {


---

Apart from this issue the cocoa patch is fine, you can add my signed off
line to it.





reply via email to

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