PDA

View Full Version : Using C++, Objective-C and OpenGL




Cactus Dan
Mar 13, 2012, 03:08 PM
Howdy,

Well, in my quest for knowledge, I've seen several threads on various forums where there's a discussion of wrapping C++ to Cocoa to be able to create C++ GUI applications on Mac OS. Most of the answers pointed to using Cocoa for the GUI parts (possibly Objective-C++ with .mm files) and C++ for the rest, but not many examples of how to actually do something like that.

I did, however, find this old thread here that gave me inspiration:
http://forums.macrumors.com/showthread.php?t=246143&highlight=c+mix+with+objective+c
... and got the ball rolling.

According to the Application Kit Framework Reference:
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/_index.html%23//apple_ref/doc/uid/20001093

AppKit.framework is really all you need to create a GUI application:
The Application Kit is a framework containing all the objects you need to implement your graphical, event-driven user interface: windows, panels, buttons, menus, scrollers, and text fields.

So, with that in mind, I set out to learn how to mix C++, Objective-C and OpenGL using the AppKit.framework. There isn't much information readily available for this kind of task. Most of the tutorials available for Mac programming are about Cocoa with Interface Builder, and are basically "do this, do that and bang! You're done." kind of tutorials. So, I had to really do my research to come up with a workable solution.

Here's my project so far:
http://www.cactus3d.com/CPPAppKitTest.zip

Since most of my experience is with C/C++ (started learning C on a 68K Centris 650), Objective-C is a bit foreign to me, so I tried to keep the Objective-C code to a minimum. I reckon what I'm asking is if someone could look over the code in the above project and tell me if the Objective-C code is done correctly (specifically the memory management) and possibly offer any suggestions for improvements. It seems to work fine and running it with the debugger console doesn't report any issues.

Adios,
Cactus Dan



Cactus Dan
Mar 19, 2012, 09:56 AM
Howdy,

Hmmmm, a week later with 250+ views and no replies, is it safe to assume the Objective-C code in the project is fine? :confused:

Adios,
Cactus Dan

Nimbuz
Mar 21, 2012, 09:45 AM
.. or maybe you're asking at the wrong place. Try stackoverflow or some other forums where the visitors are mainly developers.

chown33
Mar 21, 2012, 11:03 AM
.. or maybe you're asking at the wrong place. Try stackoverflow or some other forums where the visitors are mainly developers.

Or maybe dumping an entire project and basically saying "Please review this and point out any bugs or design flaws" is asking for more than anyone is willing to do.

Also, since the OP specifically asked about memory management: There are memory tools (zombies and leaks) in Instruments that specifically address memory mgmt.

Cactus Dan
Mar 21, 2012, 01:43 PM
Howdy,

Ah, thanks for the tip. I wasn't aware of Instruments. It works great and no memory leaks in the project. ;)

Adios,
Cactus Dan

oatman13
Feb 14, 2013, 04:34 PM
I find this absolutely fascinating! Have you done anything new or having any new updates to share? Shoot, something like this should be placed into GIT and a team should be assembled to work on it. I absolutely love it!