[Top][All Lists]

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

Re: [Qemu-devel] [patch] cocoa.m - Core Graphics support

From: Alexander Graf
Subject: Re: [Qemu-devel] [patch] cocoa.m - Core Graphics support
Date: Wed, 30 Jan 2008 20:05:03 +0100

On Jan 30, 2008, at 7:59 PM, Alexander Graf wrote:

On Jan 21, 2008, at 5:18 PM, Mike Kronenberg wrote:

This is a complete rewrite of cocoa.m to support Core Graphics.

As mentioned in earlier threads, the QuickDraw API is depreciated starting with OS X 10.4.
Now with OS X 10.5 it won't even compile QuickDraw code on x86_64.

This implementation of cocoa.m has the following features:

[new] partial drawing of the window as needed, implemented with CG.
[new] fullscreen support
[new] tablet support
[new] View menu and item to enter Fullscreen (cmd-f)
[new] Help menu and items to show qemu-doc.html (cmd-?) and qemu- tec.html in the OS X "Help Viewer"
[new] -name is shown in Title-bar of window
[fix] Application menu creation for 10.4+ (API is private as of 10.4)
[fix] Mouse-clicks on the guests window widgets are no longer intercepted [fix] apple keyboard shortcuts forwarded (minimize (cmd-m), hide QEMU (cmd-h), quit QEMU (cmd-q))

It should compile on ppc/intel starting form 10.3 (10.2 with the known workarounds).

Please test and comment

I'm sorry that I didn't find the time to test this implementation before.

It's damn slow.

I ran it using my x86_64 on 10.5.1, targetting x86_64-softmmu and booting a linux kernel. I could literally see every like getting repainted (which btw did not happen with my quick hacky version I sent to the list some time ago).

I think the major problem is that too much is being done during drawRect. If I understand the code correctly, you create CGImage objects on every repaint, which is prone to be slow.

Why not simply reuse the framebuffer qemu provides anyway and leave everything else to CG?

I just reread my mail again and realized that I didn't say anything positive. Sorry about that.

It's great to see someone working on Mac OS X support and thanks a lot for writing a compatible implementation of cocoa.m that works with every Mac OS X version out there.


reply via email to

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