mstoyke
25-06-2010 15:34:02
To improve the overview I created this new thread.
Related parts of the discussion I quote here. (hidden between other discussions)
Following wrapper discussion posts I moved here.
(This was a note by moderator Beauty)
Another fine idea: I could code a SDK maintenance utility combining all common maintenance tasks like building the SDK from a fresh compilation of MOGRE and so on.
A new all-in-one smart autowrapper tool would also be useful for future development.
Additionally I like Marioko's vision to create a new and better MOGRE from scratch. See here: viewtopic.php?p=38113.
A new all-in-one smart autowrapper tool would also be useful for future development.
I don't see any problems with the autowrapper at the moment. It might not be the best solution because it needs more than just a click on a button to create the wrapper code, but it gets the job done and is, in my opinion, very easy to understand and extend.
Additionally I like Marioko's vision to create a new and better MOGRE from scratch. See here: viewtopic.php?p=38113.
I think the only valid reason for creating everything new from scratch is to change the wrapper from C++/CLI to P/Invoke to make it compatible with Mono to support other platforms than Windows. I used and modified many different wrappers in the past, from simple C++/CLI wrappers to swig-based wrappers for commercial software and libraries that needed to support Windows and Linux/Mono.
In my opinion Mogre has a very clean structure and is incredible stable in most cases. We should not change a running system, but focus on fixing bugs in the codebase now to create a stable release as soon as possible.
A new all-in-one smart autowrapper tool would also be useful for future development.
Bekas (the author of Mogre) wrote, that his wrapper was just a dirty quick hack. If he would do the same job again, then he would do it much more better. But I don't know which details he mean. And I don't know if it's much work. But I think - our people had big problems to update the current wrapper code from Mogre 1.4 to 1.5. Maybe it will be more complex to start over for a new wrapper. Also - would the current Mogre applications be compatible to the new wrapper output?
Additionally I like Marioko's vision to create a new and better MOGRE from scratch. See here: viewtopic.php?p=38113.
I can't talk about this. I have no C++ experience. When I tried to update the MogreNewt wrapper to my own I had much trouble. The lines are looking easy, but it was hard. For example I didn't know for which wrapped function I need * or ^ (managed/unmanaged pointers).
Marioco was working on a tool for autowrapping add-ons. Maybe this was the same project for autowrapping Mogre, too. He is out of the project, but if you really want to do such a job - we could contact him and ask for his code. He never published it, because it was not ready. (......... just in the moment I wrote Marioce a message and invated him to discuss here, too)
I think the only valid reason for creating everything new from scratch is to change the wrapper from C++/CLI to P/Invoke to make it compatible with Mono to support other platforms than Windows. I used and modified many different wrappers in the past, from simple C++/CLI wrappers to swig-based wrappers for commercial software and libraries that needed to support Windows and Linux/Mono.
In my opinion Mogre has a very clean structure and is incredible stable in most cases. We should not change a running system, but focus on fixing bugs in the codebase now to create a stable release as soon as possible.
Very good words. Also it's great to hear this assessment from somebody who has much experience with it.
If there is any real plan to create a P/Invoke wrapper - user boyamer wrote a C# wrapper by hand for his
Alimer Game Engine. He could be asked if somethimes this job is in progress.
User Wolfmanfx created an autowrapper by SWIG using P/invoke (similar to OgreDotNet). I suppose he didn't publish it.
About one year ago there was also a group of people offering help in revive the OgreDotNet wrapper method (by SWIG). The discussion was in the thread Mogre and OgreDotNet -- combine forces?
Currently I would say a new autowrapper is no important focus.
I just wanted to let you know about interesting people. So you have contact persons for further plans
By the way - does somebody has experience with the Axiom engine? It's a full C# port of Ogre and works on Mono. The last update was March 2010. So it's still not outdated.
Is the usage very different to Mogre? If not, maybe there is some stuff we could adopt (e.g. demos).
I used axiom long (,long,long ) time ago, before switching to OgreDotNet, before switching to Mogre. I don't know about their new releases but in the past there was always the problem most ports have compared to wrappers, they stay behind development for one or more versions. The last time I read something about axiom was when were still aiming at porting Ogre 1.2 when Ogre 1.6 was already released.
I think that Axiom would be something I would take a closer look at, if I wanted to target XNA on XBox or Linux without using the outdated OgreDotNet wrapper. It might be the best solution for somebody when the target platform won't support native libraries (like XNA for XBox).
On the pro side, my experience with Axiom was that it was always the easiest way to use Ogre in a .NET environment. For me it was even faster than the native C++ version of Ogre in some cases, maybe because the .NET JIT can do some pretty nice optimizations that are not (easily) possible with a C++ compiler. So I think, if you don't need the latest features of Ogre and just want some easy way to bring some 3D on screen with .NET, Axiom might be a good choice for you.