48 hour game jam
turkeyman at gmail.com
Wed Oct 17 04:57:58 PDT 2012
On 17 October 2012 09:35, Jacob Carlborg <doob at me.com> wrote:
> On 2012-10-16 19:57, Ethan wrote:
>> I'm just going to throw it out there that you don't actually need to
>> touch Objective-C at all. Cocoa/Foundation/all those Objective-C
>> interfaces sit on top of something known as Core Foundation, which are C
>> APIs. The pointers used by Core Foundation can generally be used as
>> Objective-C objects of the same type as well.
> That's not entirely correct. Most of the types in Core Foundation are a
> toll free bridge to the corresponding Objective-C types in the Foundation
> framework. But all the GUI related classes, i.e. AppKit, are not available
> in the same way.
> It would be handy to have a D binding to all the Core- libraries on OSX.
>> I might do that myself when I get my Mac if such a binding doesn't
>> already exist. The book should be equally applicable for iOS as well,
>> but last time I was in iOS land I was still a newbie to the whole OSX
>> programming thing.
> If you're going to write GUI applications on Mac OS X you need to interact
> with the Objective-C frameworks. The reason for this is that, as stated
> above, AppKit is only available from Objective-C and you really need to be
> able to create your own Objective-C classes and subclasses.
> There are two ways to interact with Objective-C
> * Create an Objective-C/D bridge
> * Make D binary compilable with Objective-C
> The Objective-C/D bridge would use the Objective-C runtime functions
> defined in C to interact with Objective-C. Every time an object is passed
> over the bridge it needs to be encapsulated or de-encapsulated. Another
> problem is the code/template bloat. A Hello World application will be
> around 60MB in size. This has already been done:
> The other approach would be to make D binary compaitable with Objective-C,
> that is, provide extern (Objective-C) declarations. This would generate
> basically the same code as the Objective-C compiler would, but with the
> nice syntax of D instead of the horrible syntax that Objective-C is. This
> would also allow you do create bindings to Objective-C classes, methods and
> functions just as with C.
> The problem with this approach, it's a lot of work to modify the compiler.
> But that has already been done as well:
> http://michelf.ca/projects/d-**objc/ <http://michelf.ca/projects/d-objc/>
> This fork of DMD isn't ready yet (there's an alpha available) and there
> hasn't been any changes made in over a year. If I recall correctly, Michel
> Fortin said he hasn't got the time now to work on this. It also the problem
> with always playing catchup with the upstream version of DMD.
It occurred to me last night, I think almost all the work to get OSX
running is actually already done in the iPhone drivers. You might be better
off to copy the iPhone files, and adapt that to OSX. Ethan seems to think
iPhone and OSX are almost identical.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Digitalmars-d