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?
Alex