MOGRE and OGRE 1.6

Kerion

26-11-2008 20:02:56

Any movement on this? I plan to do it myself soon, having worked with MOGRE's internals before to get new SDK versions going. But if someone is close to having it working, I'd rather not duplicate the work. If no one is close, I'll do it and post it as an unofficial SDK release.

Zonder

27-11-2008 20:30:22

Well Marioko said he was working on it in this post

http://www.ogre3d.org/phpBB2addons/view ... ght=#46817

But that was nearly 3 months now so I don't think he is able to be on here for some reason

Not sure anyone else was working on it. Would try it my self but I am very new to mogre

RichTufty

28-11-2008 12:48:35

My understanding is that everyone is very busy at the moment and just doesn't have time!
I know that a lot of people are waiting for MOGRE to be updated to be inline with the current Ogre release.

If I had the time, and knew more about the process then I'd offer to help. I'm currently struggling to find the time to create a Hydrax wrapper, I don't know if it can be incorporated with the new MOGRE release?

The MOGRE authority seems to have gone quiet over the last few months, and I think people are getting concerned about it being kept up to date.

If you don't hear from anyone, then I don't see why you shouldn't have a go yourself at getting MOGRE up to date?

Marioko

28-11-2008 13:48:57

hi again!!

you are very right RichTufty, currently i am realy busy with some projects.. i know we need do something if we want keep mogre alive.

Kerion if you can, we will thanks any help you can do.. If you build MOGRE 1.6 and works. Then i can upload it as an official release.

Remember we are a community and MOGRE is open source, everybody can contribute.

Kerion

28-11-2008 16:55:34

Alrighty, I'll see what I can whip up over the weekend. As I said, I've worked with MOGRE 1.4's internals before, so I understand the process of building a MOGRE SDK. It's really just a matter of fixing API inconsistencies and adding any new classes as CLRObject's.

RichTufty

28-11-2008 17:02:50

Good luck and let us know how you get on!! :lol:

Kerion

04-12-2008 16:11:01

Just an update. I didn't get a ton of time this weekend to work on this, but I've started. I have the latest OGRE source moved in to place, and I've made a pass at auto-generation. I think it's mostly there, but I need to do some testing. I am working on some other projects in parallel to this, so it's taking me a little more time than I'd like, but it's moving along.

Kerion

04-12-2008 18:12:48

Question for Marioko or Bekas,

In the AutoWrap attributes.xml, FrameListener is listed twice.

Once as:


<class name="FrameListener">
<function name="frameStarted" DefaultReturnValue="true"/>
<function name="frameEnded" DefaultReturnValue="true"/>
</class>


and once as:


<class name="FrameListener" WrapType="NativeDirector" StopDelegationForReturn="false"/>


Are these definitions concatenated when this file is loaded, or is only the second definition used? Couldn't these be put in the same <class> tag?

Bekas

04-12-2008 18:54:18

@Kerion:
Many thanks for stepping up to upgrade Mogre, I really appreciate it!

The definitions are concatenated; if you think it's more intuitive to be in one <class> tag feel free to make the change.

Kerion

04-12-2008 19:25:56

@Kerion:
Many thanks for stepping up to upgrade Mogre, I really appreciate it!

The definitions are concatenated; if you think it's more intuitive to be in one <class> tag feel free to make the change.


No, it's fine as two, I was really just curious.

Things are moving along good now for the upgrade, the only real issue I am struggling with is how to handle the new custom allocator stuff. I am of the mind to just ignore and not allow that to be changed on the C# side.

Bekas

04-12-2008 19:45:13

Things are moving along good now for the upgrade, the only real issue I am struggling with is how to handle the new custom allocator stuff. I am of the mind to just ignore and not allow that to be changed on the C# side.
Isn't this an Ogre-side compilation feature (I mean compiling native Ogre with specific allocation strategies) ? What do you mean about changing it in the C# side ?

Kerion

04-12-2008 19:49:13

Things are moving along good now for the upgrade, the only real issue I am struggling with is how to handle the new custom allocator stuff. I am of the mind to just ignore and not allow that to be changed on the C# side.
Isn't this an Ogre-side compilation feature (I mean compiling native Ogre with specific allocation strategies) ? What do you mean about changing it in the C# side ?


There is a new class called CustomAllocatorPolicy. I just need to add it as a 'Ignore' to attributes.xml, otherwise it breaks auto-wrap. That's really all I meant :)

Kerion

04-12-2008 23:42:07

New question for you guys.

With the new ScriptCompilers, there are some namespace level un-named enums that come in as @0. Easy to work around in AutoWrap, but since I plan to expose the ScriptCompilers (as they aren't _OgrePrivate), should I hack some names in for those enums?

I am not sure how important the enums are, they appear to just be token and lexer ID's for the lexer and parser, so they may be ignorable. Just curious what your thoughts are on them.

Bekas

05-12-2008 00:11:31

I am not sure how important the enums are, they appear to just be token and lexer ID's for the lexer and parser, so they may be ignorable.
They seem internal-ish to the ScriptCompiler implementation. My vote is on ignoring them.

orestone

03-01-2009 05:28:31

Is this port of MOGRE to the OGRE 1.6 code base still on the go?

I am hoping to use OGRE and MOGRE with VS 2008 and I really do not want to get too involved with C++ in my next project as I am now a contented C# convert.

I am afraid that I cannot help in the port as I have no experience in either OGRE or MOGRE :roll: and I'd be more of a hinderance than a help!

Beauty

04-01-2009 17:07:49

The current MogreSDK 1.4.8 was compiled by VS 2008. You can work with it.
By using the compiled Mogre library you don't need to know about C++.

GermanDZ

22-01-2009 19:12:20

Hey! I am back after many days traveling for Europe.

I have some relaxed (almost free) time now. I could work on the migration, but I will need some guides. I am experienced programmer (Java, C#, C, C++) and I know VS2008 very well, but NEVER undertood about the parser/autowrapper/etcetera.

My notebook is a MacBook now, but I have tested VS2008 on WinXP on VMWare Fusion with success.

Please let me know how can I contribute.


Another offer is that I have to do a Final Project for my Engineering degree, so I opened to suggestions. I was thinking in spend the effort of the project to something related to MOGRE ¿Ideas?

Beauty

22-01-2009 20:43:41

Welcome back and I hope you did enjoy your travel :D

Nice that you want to help. I don't know internals. Only that I suppose it's good to have knowledge in C++/CLI.

Isn't it a pain to program with a Mac(Book)?
Some days ago somebody told about his keyboard problems.
E.g. the brackets { } are not printed to the keys and you have to remember strange shortcuts for it. Also it doesn't help to use a "normal" USB keyboard, because Mac OSX apply the same keyboard layout and you can't change it.
Maybe this is wrong, but that I heard. ... ok, I don't want to hijack the topic. It just comes up my mind.

GermanDZ

23-01-2009 17:01:29


Isn't it a pain to program with a Mac(Book)?
Some days ago somebody told about his keyboard problems.
E.g. the brackets { } are not printed to the keys and you have to remember strange shortcuts for it. Also it doesn't help to use a "normal" USB keyboard, because Mac OSX apply the same keyboard layout and you can't change it.
Maybe this is wrong, but that I heard. ... ok, I don't want to hijack the topic. It just comes up my mind.


Uhhmm just a little, the IT Crowd (sic) of the company bought me a Spanish MacBook, so the main problem is the location of < and >. But after some days you will be ok.

You are from Germany, so your keyboards have the Z and Y keys swapped. That is awful. Bye the way, my travel included 3 (or 4) days through Germany, realy nice (Freiburg, Sttutgart, Heidelberg, Frankfurt, Düsseldorf).

I wait for instructions from Marioko...

Beauty

30-01-2009 12:43:36

For the MogreSDK 1.6 there is the idea to integrate fully runnable wiki tutorials.
If somebody wants to share his thoughts, he can read/write about it in this thread.


Bekas / Marioco, with wich software did you create the installer?
(By the way - there is an unanswered question about the Mogre logo of the installer :( ... look here)


What's about to use a wiki page for the forthcoming MogreSDKs?
There we could collect ideas, a todo list, a buglist etc.
It would be a better overview.

Kodachi_Garou

17-02-2009 16:13:14

Hi all,

I've had some experience before with understanding and modifying deep MOGRE internals (e.g. garbage-collection issue) and I've been using MOGRE a lot, so I guess I could/should give a hand in developing this port.

Anyone can bring me up to date on what's the current status of the update? If everyone's busy I'll check it myself as soon as I have the time, but it'd be quicker if someone pointed out what's missing yet.

Best regards and keep up the excellent work,

Gonçalo

Beauty

17-02-2009 17:53:13

Nice that you want to help. This would be really great :D

By the way - it is no port of Ogre. Mogre is a C++/CLI wrapper.

Bekas and Marioco have the most knowledge about the Mogre wrapper.
They have less time, but for detail questions they would help (I hope).
I don't know if there is a small documentation of wrapper internals or how to use/compile it. I just know, they someone said it is an autowrapper.

The current (bleeding) state of code is in the SVN trunk.

@Kerion: If you improved the code after the last commit, it would be nice if you update the SVN.

Maybe the wiki page Building MOGRE from source is useful for you.

Bekas

17-02-2009 21:03:19

I've had some experience before with understanding and modifying deep MOGRE internals (e.g. garbage-collection issue) and I've been using MOGRE a lot, so I guess I could/should give a hand in developing this port.

Anyone can bring me up to date on what's the current status of the update? If everyone's busy I'll check it myself as soon as I have the time, but it'd be quicker if someone pointed out what's missing yet.

Hey Gonçalo,

A helping hand would be greatly appreciated!

Some bits of useful info can be found in the posts of Kerion in this thread and these too:
http://www.ogre3d.org/addonforums/viewtopic.php?f=8&t=8789
http://www.ogre3d.org/addonforums/viewtopic.php?f=8&t=8778

Post any specific problems/questions that you may have.

mcaden

05-03-2009 00:24:51

So yeah, I've been away a couple months. Any update on this?

Beauty

12-03-2009 23:57:04

For the update I think it's very important to look to sinbads porting notes
www.ogre3d.org/wiki/index.php/ShoggothN ... ting_notes

Spanky

21-03-2009 00:22:48

I would definitely be interested in this as well as I'm building my editor based on Mogre. I have never gotten into the nitty gritty of how Mogre is actually created but I am taking a stab at it now as I'm not sure of the status of anyone else. I will first say that I have no experience doing this so I may be completely wrong in something but I figured I would post what I've done to possibly get a conversation going about all of the issues we have getting upgraded to Ogre 1.6

As for what I have done so far, here are the steps, in order, that I have performed so far. They may not even be the right steps but I think this is going to be a trial and error thing to get working.

1. Grab the trunk SVN of Mogre
2. Download Ogre v1-6-1 source distribution
3. Copy the ‘ogre’ directory from step 2 into the same directory as cpp2java, Mogre, SDK
4. Go to http://www.java.com and install the latest java runtime [I didn't have it installed]
5. Run build.bat inside of cpp2java [this takes a minute or so and there should be no errors]
6. Open AutoWrap.csproj, compile and run it [save the solution file when it asks]
7. Hit ‘Produce’ and after a second or two, hit Ok
8. Close the program and close the AutoWrap solution, we’re done with it now

I am going through and doing a diff to the old 1.4.8 port and bringing any of the DECLAR_INIT_CLROBJECT_METHOD_OVERRIDE and other related macros into the 1.6 source. I'm not exactly sure what the heck this does so if anyone has any clarification, that'd be awesome.

I might start with the 1.4.8 build and figure out how to create Mogre out of that since it's been done before and I might be able to find more relevant information but it's a start I guess. If people want to post ideas about what to do next or what they have done, I think we could definitely get 1.6 going with Mogre.

Shawn

Beauty

21-03-2009 04:02:24

Nice that you want to help.
If you want to autowrap 1.4 (for testing purpose), then you should use this old source:
http://mogre.svn.sourceforge.net/viewvc ... 1.4/Mogre/

By the way - it sounds a little bit strange, that a Java tool wraps a C++ project to .NET (C#/VB).
Maybe there are compatibily problems if you want to combine an auto wrapper tool with Mogre (created by an other autowrapper).
Also there are some little differences of class members. Especially in the Ray classes.

Spanky

21-03-2009 04:18:09

The java portion comes from the fact that the AutoWrap for Mogre relies on a conversion that's done using cpp2java. It's in the Mogre wiki on the building from source page. That was what they used so it wasn't something I did :) But yes, it seems weird to use Java to convert from C++ to C#.

I'm actually at the stage now where I am hitting the new items in 1.6.0 that have no existing support so this is where the real work comes in. I'll write up a doc about exactly what I did to get to this point [it's semi in my previous post but I've got it all written down so I'll write it up properly soon so maybe others can join in]. I'm trying to figure out exactly what the Attributes.xml file is so if anyone has *any* information on that, it'd be appreciated.

I'm currently working on the new script compiler classes. I'll let you know how that goes.

Beauty

21-03-2009 04:55:05

It seems so that Bekas made a tiny secret of cpp2java. I didn't see that he answered this quistion, although he read/wrote to the thread(s).

Ask Bekas (the author of Mogre) for unclear questions. Maybe he need a pm if he doesn't answer here.

Please check all the porting notes (as I wrote above).

If you got a compilable 1.6 version, you could update it to the SVN before you add the new Ogre features. Maybe on this point someone else can help (because the troubles are gone).

It's very good that you documentated your steps and changes.
A good way of publishing it is the wiki. Also updates are easy there.
You can use this link to create a page with the name Mogre update notes 1.6. (Or use choose an other one.)

Beauty

21-03-2009 05:21:27

Mogre Wishlist:
(after there is a working 1.6 version)

* Maybe cpp2java supports converting member descriptions?
Then it would be nice if the autowrapper would create XML comments for classes / members.

* Maybe add MovableText to Mogre.

Beauty

21-03-2009 05:29:45

Now I found a thread where Bekas wrote something about his wrapper. It seems to be an own development.
cpp2java he told as an alternative if somebody wants to create a new wrapper. (But maybe he used some code of it?)
viewtopic.php?p=42559#p42559

Spanky

23-03-2009 04:37:53

As an update, I have a compilable version of Ogre 1.6.1 done. I was able to start my editor with it but got back a list of RenderSystems that had a null in it so I am going to have to debug that to figure out what the problem was. I think I might know [it was an internal thing done by me]. I don't know what features are currently missing but everything my editor used compiled fine so all of the base functionality exists.

I will begin writing up a wiki page about everything I have learned over the past 2 days attempting to get it to work. I had never done any of the wrapping things before so it was a new experience for me but to be able to do it in a single weekend with no knowledge and without the maintainer is a very good sign for the future of Mogre. Hopefully I will be able to write a fully featured document over the next week or so [I am very busy with work] that will let anyone else get v1.6.1 working with Mogre.

I do know for a fact that a bit of the script compiler stuff has been disabled but the bulk of it is there.

1 thing I would like to do is understand/document AutoWrap some more. I also want to be able to get a list of every class, function, enum, etc that was ignored/not wrapped along with a potential reason why. Hopefully this feature will give us a head start when the next version of Ogre comes out. If anyone has *any* knowledge as to what the various types you can use in AutoWrap [Interface, NativeDirector, etc] are, then please let me know. I'd like to provide information not only about *what* I did to get Ogre 1.6.1 working but also *why* I did it.

Stay tuned for the wiki link which will probably show up by next weekend [March 28-29, 2009]

Shawn

Beauty

23-03-2009 11:08:44

You do great work.
Maybe I also need to write an own wrapper (for a Mogre add-on) without knowledge about.
So this would help.

Did you use the source code of the trunk version in Mogre SVN or did you use the stable 1.4.x version as the base of your update?

It would be good if you publish the current state. Also special questions / tasks you can tell (e.g. by wiki).
So other people can look at it and maybe help.

lithander

03-04-2009 15:04:08

*bump*

Could anyone give me an update of the current status? What is needed before we have an up to date (1.6.1) Version of MogreSDK?

Now that our game (The Book of Unwritten Tales) is released we're planning to move our C++ Game code to 1.6.1 and it would be great if we could update the tools too... I'd help if I knew how and where!

Beauty

03-04-2009 21:05:07

You mean from C++ (Ogre) to Mogre?
The screenshots are really beautyful!
www.book-of-unwritten-tales.com

By the way - maybe you want to write some backgrounds about the game for the wiki?
This would be interesting + helpful for others.
Example: Tibor - Tale of a Kind Vampire

lithander

05-04-2009 00:05:57

No, the game itself is written in C++ and will remain so. But we're still using Ogre version 1.4.8 at the moment and before we consider what code could be reused for a future project we plan to upgrade the game source to work with the current ogre version.

The reason for my interest in Mogre is that we can only make full use of some of the new features (like animation blend masks) if we can get them to work in the tools, too. And we usually write our tools in C# - so that's where Mogre comes into play.

As to your other suggestion: I'm a big fan of "Post Mortems" as I think there's a lot to learn from reading them. But regarding Bout I wouldn't be sure where to start. I find it easier to actually answer precise questions then to write a comprehensive article about what we did, learned and thought just from scratch! Open a thread or write a PM and I'll do what I can to fill you (and everyone else interested) in on the details! :P

Lee04

19-04-2009 19:02:09

This is super great news :)

Now both PythonOgre and Mogre is quite up to date 6.1.
It's only OgreDotNet that are back in the dark ages.

BTW where can I download Mogre with Ogre 6.1 support?

Bekas

19-04-2009 19:13:46

Hey, I've sorted things out and at the moment I'm compiling a Mogre 1.6.2 (it's taking tooooooo loooooooong.. "I'll better go watch a movie" long :? )

If everything seems fine, I'll put the binaries up for people to test them.

Beauty

19-04-2009 20:53:57

Nice that the father of Mogre took his magical fingers to the project again :)

@Bekas:
* On which basic you did the update? The old 1.4 code or a further update try of a 1.6 version?
* Do you need an up to date version yourself or do you want to help others?
* Is your autowrapper based to cpp2java like Spanky suppose?
* Do you keep in mind my little whish list? (see upper post)

@Spanky:
What's about your version? I didn't see news. If you have no time at the moment, it would (had?) be good, if you publish the code. So other people could work on it.
Spanky - please keep your update notes and put it online. Also if Bekas has a different update - this information can help other people for further updates. Or if somebody wants to make a wrapper for an add-on.

Generally it would be nice to have some autowrapper documentation.

Bekas

19-04-2009 21:41:16

* On which basic you did the update? The old 1.4 code or a further update try of a 1.6 version?
Picked up from the trunk (1.6 leftovers).

* Do you need an up to date version yourself or do you want to help others?
I'd like to help bring Mogre to the shiny new 1.6 era.

* Is your autowrapper based to cpp2java like Spanky suppose?
It sure is.

* Do you keep in mind my little whish list? (see upper post)
Comments would be sweet and I'm pretty sure it's doable but it needs further work..
MovableText doesn't need to be part of the mogre dll, could work as a separate dll; must look into it..

As further info, I'm trying a slightly different approach now. There won't be a separate Mogre.dll that links to OgreMain.dll. OgreMain.dll will work both as native Ogre and as managed Mogre (only one dll). This should "solve" most of the "Could not load Mogre.dll" type of errors, where the problem was that there was a mismatch between Mogre.dll and OgreMain(_d).dll.

Beauty

19-04-2009 22:19:38

MovableText doesn't need to be part of the mogre dll, could work as a separate dll; must look into it.

wiki: MOGRE MovableText
To add the class MovableText to the Mogre Namespace, you have to build Mogre from source. Add the file MovableText.h to include directory and MovableText.cpp to src directory of your Mogre Sources path.

Also I think that I read in the forum that it works only if it will be included by compiling. (I'm not shure if this was Ogre or Mogre related.) So I supposed it's not possible to add it externaly.
The way of use I like. Just set the text as a SceneNode property.
On the other side - maybe it's bad to blow up the core code (which could enlagre the risk of bugs and errors).
What does you (all) think about?

There won't be a separate Mogre.dll ... should "solve" ... "Could not load Mogre.dll"
I don't remember such errors, but I didn't use the debug versions. (I think I tried it 1 year ago, but had some problems - there are additionally depencies). But if this solves problems and has no disadvantages I think we can do so.
The related wiki pages I can update.


Can you write down the depencies for this groups, please?
1) for compiling
2) for developers (debug version)
3) for developers (release version)
4) for users

* Which version of DirectX Redist is needed at minimum? (e.g. March 2008 / November 2008)
* I suppose the DirectX SDK needed for group 1) and 2) (which version?)

Bekas

19-04-2009 22:47:09

wiki: MOGRE MovableText
To add the class MovableText to the Mogre Namespace, you have to build Mogre from source. Add the file MovableText.h to include directory and MovableText.cpp to src directory of your Mogre Sources path.

Also I think that I read in the forum that it works only if it will be included by compiling. (I'm not shure if this was Ogre or Mogre related.) So I supposed it's not possible to add it externaly.

Yeah, it wasn't possible to add it externally due to how Mogre was compiled. This was part of a general problem of how to convert extensions like MovableText. I'm pretty sure that it's possible to have Mogre compiled in a way for extensions to reside on separate dlls. This is much better than adding everything into one dll.

Can you write down the depencies for this groups, please?
1) for compiling
2) for developers (debug version)
3) for developers (release version)
4) for users

* Which version of DirectX Redist is needed at minimum? (e.g. March 2008 / November 2008)
* I suppose the DirectX SDK needed for group 1) and 2) (which version?)

-For compiling, detailed instructions to come...
-For debug version, developers should get Visual C++ express so that the debug C runtime is installed (if they don't have Visual Studio)
-For the binaries that I'll put up, developers/users will need Directx Redist November 2008
-DirectX SDK is only needed for compiling.

Beauty

19-04-2009 23:09:14

Some time ago I read that in Ogre (main) source the directory ogrenew was removed.
When I told this in a Mogre thread I got an answer that this is not so easy for Mogre. I don't remember the reason. Maybe the used Ogre code had modifications? Maybe this based to the splitted DLLs (Ogre + Mogre).
Maybe this issue needs attention?
I just wanted to tell you this difference to Ogre original.

boyamer

20-04-2009 09:34:12

When it will be released?

Can't wait to try it out

Bekas

20-04-2009 19:58:29

Hrmf, the linker throws an "out of memory" error when trying to compile release mogre. This really sucks, I may have to go back to the separate Mogre/OgreMain dlls scheme :?

Beauty

21-04-2009 10:42:26

Do you need a donation for more RAM? :lol:

Bekas

21-04-2009 12:10:59

Good news everyone, step right here: http://www.ogre3d.org/addonforums/viewtopic.php?f=8&t=9831

Beauty

20-11-2009 00:15:17

I'll write up a doc about exactly what I did to get to this point [it's semi in my previous post but I've got it all written down so I'll write it up properly soon so maybe others can join in]. I'm trying to figure out exactly what the Attributes.xml file is so if anyone has *any* information on that, it'd be appreciated.
I will begin writing up a wiki page about everything I have learned over the past 2 days attempting to get it to work. I had never done any of the wrapping things before so it was a new experience for me but to be able to do it in a single weekend with no knowledge and without the maintainer is a very good sign for the future of Mogre. Hopefully I will be able to write a fully featured document over the next week or so [I am very busy with work] that will let anyone else get v1.6.1 working with Mogre.
[...]
Stay tuned for the wiki link which will probably show up by next weekend [March 28-29, 2009]


I'm not shure if you did post your wrapping notes. It still can be useful.
Currently the wrapping is working again, but I think there is no documentation about.
It would be nice if you just post the plain notes to a new section of this wiki page. Later it can be improved and moved to an own wiki page.