Okay, thanks for the questions
I'll answer the points out of orders since the questions are related, and earlier answers basically answer later questions.
There is no VC++ 6 project/workspace files at the moment as compatibility work is needed. This will be happening shortly, but I have no ETA for it.
All raw inputs are injected into the Gui system by the client application. In the demos, these inputs come via Ogre. This has two main implications; first, is that it's up to the client application where the inputs come from (i.e. you are not obliged to use the Ogre input system), and second, the client does not have to feed all inputs into the Gui system...
There are various ways to solve your focus switching example. The solution you gave is certainly valid. But the point above about the client not having to send all inputs into the Gui is valid here - basically, you could set your application up to detect the Tab key independant of the Gui, and hold a state variable that determines whether raw mouse input is consumed by the application (for mouse look), or whether raw mouse input is sent to the Gui system.
For event propogation, you are mostly right, the full story is as follows (and has a small potential issue, as i'll mention).
Raw input (mouse movement, mouse buttons, keys, and characters) are taken from whichever input source is being used (in the demos this is Ogre), and are injected into the Gui 'System' object. The system object looks at the input, possibly does some translation and/or conversion with it (the Gui system will generate certain events, like double-clicks, from the raw inputs). The 'event' is then passed to the active window (which is usually the top level window/widget but may not be) - when I say passed, this is done via a direct method call on the target Window of an appropraite 'on<some event>' handler. The handler may or may not handle the input, if it does not handle the input, the input is sent to that Windows parent until it is either handled or until the last Window rejects the input. Now, this only happens for input events, other intenal events (like 'window sized' or whatever) do not propogate back up the chain. The 'on<some event>' handler will also fire/raise an external signal - this is the subscription system and gives client code full access to all events on all windows. The potential issue I mentioned is that when you subscribe your application to the input type events (that is, the ones that travel back up the parental chain), you can't signal that you have handled the event in client code, so this means that the event will still be sent to the parent (until a Window handles it internally) - this behaviour may or may not cause problems for certain people in certain scenarios. The internals of this system may change in the future, though the interface for client code will remain stable.
HTH
CE.
CEGui+ogre
Moderators: CEGUI MVP, CEGUI Team
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
CEGui+ogre
Hi, thanks for the info
Those particular VC6 issues are annoying - you also get a similar, but different, set of errors if you compile without stlport. The solution will have to be some pre-processor conditionals around that area of the code - it unfortunately seems that where will be no globally compatibile solution. Once this issue is out of the way, there were a few other minor issues, and many, many, warnings. I may decide to produce the VC6 fixes next week, since at that stage the base system will be about 99% feature complete.
I've actually been putting off getting the VC++2005 express beta, as I thought it would serve as too much of a distraction and that I'd end up getting nothing done . If I make good progress today, I may install it tomorrow
Since all those compile issues for VC2005 are with boost, which version of boost are you using for the tests, is it a release version or the latest CVS?
Thanks again for the tests, any further information would also be welcomed
Those particular VC6 issues are annoying - you also get a similar, but different, set of errors if you compile without stlport. The solution will have to be some pre-processor conditionals around that area of the code - it unfortunately seems that where will be no globally compatibile solution. Once this issue is out of the way, there were a few other minor issues, and many, many, warnings. I may decide to produce the VC6 fixes next week, since at that stage the base system will be about 99% feature complete.
I've actually been putting off getting the VC++2005 express beta, as I thought it would serve as too much of a distraction and that I'd end up getting nothing done . If I make good progress today, I may install it tomorrow
Since all those compile issues for VC2005 are with boost, which version of boost are you using for the tests, is it a release version or the latest CVS?
Thanks again for the tests, any further information would also be welcomed
CEGui+ogre
OK, I see now that I need to check out a newer version of ogre from CVS. I'm going to try that now.
(Finally, this web site let me register. For some reason last night every username I tried was rejected as invalid)
(Finally, this web site let me register. For some reason last night every username I tried was rejected as invalid)
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
CEGui+ogre
(Finally, this web site let me register. For some reason last night every username I tried was rejected as invalid)
This is some strage sourceforge cookie issue. There may come a time when this comes up (and you can't sign back in) - so you need to find a sourceforge cookie named 'username' and delete it, then all will be okay again - I get this too, lol
It looks like you've nearly cracked it I don't know if Ogre will compile with VC++ 2005, some people on the forums over there have tried and not had much luck - though you seem to be doing well with everything else, so maybe you'll do okay with that too
CEGui+ogre
Hehe, the real scary thing will be if it fails during run. If I get serious runtime errors, that will probably do me in.
CEGui+ogre
Ok, I ran into a problem in the ogre renderer. In the current and future versions of Ogre, it seems they are cutting back the functionality of Ogre::String() due to it causing random crashes on some systems. In particular, the << operator no longer works.
I *think* what I have changed will work, but I'm not a STL expert, but I'll share what I did.
I changed this code segment in ogretexture.cpp:
to this:
compiling this in now...
I *think* what I have changed will work, but I'm not a STL expert, but I'll share what I did.
I changed this code segment in ogretexture.cpp:
Code: Select all
/*************************************************************************
return a Ogre::string that contains a unique name.
*************************************************************************/
Ogre::String OgreTexture::getUniqueName(void)
{
Ogre::String str;
str << "_cegui_ogre_" << d_texturenumber;
++d_texturenumber;
return str;
}
to this:
Code: Select all
/*************************************************************************
return a Ogre::string that contains a unique name.
*************************************************************************/
Ogre::String OgreTexture::getUniqueName(void)
{
Ogre::StringUtil::StrStreamType strstream;
Ogre::String str;
strstream << "_cegui_ogre_" << d_texturenumber;
str = strstream.str();
++d_texturenumber;
return str;
}
compiling this in now...
CEGui+ogre
Well, it all compiles, now it wants ogremain.lib.
The 3rd party binary libs included with ogre do not seem to be built for multi-threaded operation, so I guess I have to recompile those as well. The problems mostly seem to be centered around the ogre linking to its own freetype.lib binary. So maybe I just need to recompile freetype; maybe I could just link it against freetype2? Hmm I'll have to see.
The 3rd party binary libs included with ogre do not seem to be built for multi-threaded operation, so I guess I have to recompile those as well. The problems mostly seem to be centered around the ogre linking to its own freetype.lib binary. So maybe I just need to recompile freetype; maybe I could just link it against freetype2? Hmm I'll have to see.
- CrazyEddie
- CEGUI Project Lead
- Posts: 6760
- Joined: Wed Jan 12, 2005 12:06
- Location: England
- Contact:
CEGui+ogre
Well, it all compiles, now it wants ogremain.lib.
This could be a release/debug difference since the debug ogre is now named ogremain_d.lib and the release version is ogremain.lib.
The 3rd party ogre libs should work okay as they are - ogre is built using the same runtime setting as CEGUI (multithreaded dll) so I'd have thought if there was a problme with the libs provided in the depenencies package then it would have surfaced by now
The freetype libs used by ogre and CEGUI, while basically the same thing, do not interact in any way. Since these are both statically linked, there should be no chance for a conflict there.
CEGui+ogre
The 3rd party ogre libs should work okay as they are - ogre is built using the same runtime setting as CEGUI (multithreaded dll) so I'd have thought if there was a problme with the libs provided in the depenencies package then it would have surfaced by now
I didn't really think about that, but you're right, it should work out of the box. The strange thing is I pointed ogremain.lib build to use the freetype2 that I built myself... and it worked!
I'm really not all that familiar with the windows dev environment. I usually till now write console apps for things I do. So the whole windows dependency thing makes no sense to me right now. I don't really know what the difference in a multithreaded DLL and non threaded DLL is. I guess the multithreaded is reentrant, while the other is not. So I guess that means for MT DLL all sublibs compiled to it, they must be built reentrant too? Or maybe only the dynamic ones?
Anyway...
But I am still hammering away on getting all of the plugin libraries to build; they don't work yet.
Return to “Modifications / Integrations / Customisations”
Who is online
Users browsing this forum: No registered users and 5 guests