and my side is pretty much done now (just veryfying build integrity etc) .
Let me elaborate a little so there is clarity on what my goal was with this ..
Ease of use :
Irrlicht is inherently easy, its really easy to get a scene running and get things going. Xcode is inherently a pita, but it does help development for people who dont use mac for development. Our latest project at work led me down the iphone path and i found i quite enjoyed it but i found it was tedious at certain levels. grafikrobot took the "smarter" route by using a build system (i would also) but i wanted to make irrlicht a viable tool for iphone development.
The XCode projects :
The projects are not entirely broken, there are only a few actual issues. The problem lies in a few missing files here and there, some mac specifics being included for iphone (not needed stuff) and the new joystick stuff not being compatible properly (havent actually wondered why, i just removed it).
The new project file is cleaned up, and manageable, in the sense that you can drop down the target selector, and change between simulator / device and rebuild with one click. This is already achieved, and the lib build perfectly fine.
The examples and framework :
Being a c++ programmer and long term irrlicht user, i got frustrated with fighting objective c++ and wondering where my pointers were etc. To circumvent any future frustrations on the end users part, i wrote a really simple 3 tier applicatino framework that is targeted at every kind of user.
The c++ user (or, non iphone developer).
The objc/mac/iphone beginner
The iphone developer
The application framework exposes the majority of functions any user could want... such as operating system notifications for low memory, application pausing (via lock button) and other such obvious things. The application already exists and has an irrlichMain() instead of a normal main (tho it would higher up). Inside of that main, you can feel free to hack away at a normal c++ / irrlicht level, and it would just work. Instead of coding in the main function as many do, instead a made an init and a shutdown function, and a render function. The application framework takes care of those, and you only need to call things where appropriate.
The higher levels are aimed at people wanting to learn objc and iphone development. by tearing out the game.update () , and inserting their own code into the obvious places, you can leverage full objc capabilities and expose them lower down (in the c++ classes) or, you can use pure objc. The next level is obviously just the start of the wrapper, where the actual appDelegate and other iphone specifics reside, also giving the control to the developer at that application level.
The problems
At the moment, i have not managed to get the device to render inside the simulator (actually havent tried in a while) , but the only other obvious problem is in the input. I have not seen any input mapping (like touchesBegan etc) and i am busy ampping those downward into the application layers, as well as mapping them into the engine. The problem is actually that the application delegate receives the notifications, as well as the view (the EAGLView) is external. I have written an internal appdelegate which wont be in the first release, but im hoping when i release the second fix of this, it will have it all internally, where you can attach a second delegate to the engine, to receive the events, and the engine will take care of the event reciever classes. I would say the input mapping is about 60 % complete, as well as the internal classes for managing the iphone port.
This means when you create the device, you can specifiy EDT_IPHONE_OGLES1 and it will do what the other drivers do, handle everything internally.
The ETA of the first release
after delaying due to other things and whatever, i will commit to submitting the working project files, and the application to hybrid by wednesday. This will happen, no matter the state it is in (theres things i want to implement, like input mapping, fixing all the examples and making accelerometer control mapping etc etc) ... but still .
Wednesday 20 may, 6pm GMT += (dont hold a gun to me at 6 :10) but ill definately make sure hybrid has the working version by then. Im saying this here so that i will be compelled to MAKE time, cos we have been quite busy lately (for example, releasing our latest game and new website
www.lumaarcade.com).
I will try my hardest! and hybrid can harass me on irc to get it to him
