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