winequartz.drv Mac OS X UI discontinued?
Saulius Krasuckas
saulius2 at ar.fi.lt
Thu Oct 2 13:16:49 CDT 2008
Sorry for the lag,
* On Thu, 10 Jul 2008, Adam Strzelecki wrote:
>
>> Is it really technically impossible to access the Quartz APIs or write
>> Mac applications using C?
>
> Well it is possible, for example iTunes is non Objective-C Carbon
> (API) app AFAIK. Problem is that Carbon (pure C interface) is
> considered as deprecated by Apple and may disappear from future
> releases of OSXes at all, most 98% of applications are Objective-C
> Cocoa anyway. Moreover most of the functionality introduced in 10.5 or
> 10.4 went just into Cocoa, and never was backported to Carbon.
> So it isn't matter that it isn't possible, but it is IMHO more
> reasonable to do it in Objective-C.
Then what about some thunking from carbonic source code to binary
Objective-C code?
Well, I have found some text [1] on the web about bridging D (not C) [2]
with ObjectiveC:
| So basically, since the whole Objective-C runtime is accessible from C
| calls, it’s pretty easy to do whatever we want with it.
If that's true, then some MacOSy hacker should give it a try. The bigger
task here probably would be implementation of some callback stuff in C
with the right calling convention / ABI (as ObjC seems to send some kind
of "messages" back).
Somewhat scary part may be bridging of exception handling, but if Wine did
this for WinAPI, with gobjc/libFoundation present and with Apple docs
given [3] it should be doable also.
I googled a bit more. There are at least two ways of achieving this
mentioned in the docs of libFoundation: by using XML-RPC call and by
wrapping classes in ANSI-C APIs. [4]
And the last -- I found libffi for Unix-like systems which seems to be
used on the MacOS X [5]:
| On Mac OS X libffi is commonly used with BridgeSupport, which provides
| programming language neutral descriptions of framework interfaces, and
| Nu which binds direct Objective-C access from Lisp.
HTH.
[1] http://michelf.com/weblog/2007/d-objc-bridge/
[2] http://en.wikipedia.org/wiki/D_(programming_language)
[3] http://www.google.lt/search?q=+objectivec+abi+site:developer.apple.com
[4] http://www.opengroupware.org/en/devs/languages/ansic/index.html
[5] http://en.wikipedia.org/wiki/Libffi
More information about the wine-devel
mailing list