QtOgre Application Framework - Now using Qt 4.5

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!

Re: QtOgre Application Framework - Now using Qt 4.5

Postby mboeni » Mon Oct 11, 2010 9:50 pm

Hi mate

Yep, that worked, one obstacle less ;)

I do get the configuration window now (having had to delete ogre.cfg and resources.cfg) but no "Mode" (resolution) is made available.

When clicking "ok" i get the following error
Code: Select all
Unable to apply desired settings to the window. Please consult the system log for details


and an assertion error / stack overflow:
Code: Select all
The thread 'Win32 Thread' (0xf68) has exited with code 3 (0x3).
First-chance exception at 0x774672c0 in generat0rX.exe: 0xC00000FD: Stack overflow.
Unhandled exception at 0x774672c0 in generat0rX.exe: 0xC00000FD: Stack overflow.


The settings ini:
Code: Select all
[Graphics]
RenderSystem=Direct3D9 Rendering Subsystem
SelectedWindowMode=-1
AllowPerfHUD=false
EnableGammaCorrection=false
FSSAFactor=2
EnableVerticalSync=false


The log says:
Code: Select all
   10:45:48 pm -    Debug test
   10:45:48 pm -    Warning test
   10:45:48 pm -    Critical test
   10:45:48 pm -    link XMLID_34_ hasn't been detected!
   10:45:48 pm -    link XMLID_34_ hasn't been detected!
   10:45:48 pm -    link XMLID_36_ hasn't been detected!
   10:45:48 pm -    link XMLID_34_ hasn't been detected!
   10:45:48 pm -    link XMLID_34_ hasn't been detected!
   10:45:48 pm -    link XMLID_36_ hasn't been detected!
   10:45:55 pm -    Failed to set main window resolution. The list of resolutions was:
   10:45:55 pm -    The requested index was: "-1"


and in my main.cpp I'm doing this:
Code: Select all
#include "generat0rx.h"
#include <QtGui/QApplication>
#include <qplastiquestyle.h>
#include <Application.h>
#include "OgreEngineLogic.h"

int main(int argc, char *argv[])
{
   QApplication::setStyle ( new QPlastiqueStyle() );

   QtOgre::Application app(argc, argv, new QtOgre::OgreEngineLogic);

   //QApplication app (argc, argv);
   generat0rX w;
   w.show();
   //return app.exec();
   return app.exec(QtOgre::DisplaySettingsDialog);
}


Any ideas?

Cheerio,
Michael

PS: I have used the Qt Add-in for MSVS 2010 to create the Qt app.
User avatar
mboeni
Halfling
 
Posts: 54
Kudos: 0
Joined: 02 Aug 2010
Location: Zurich, Switzerland

Re: QtOgre Application Framework - Now using Qt 4.5

Postby PolyVox » Mon Oct 11, 2010 10:06 pm

It reads the settings for the dialog from settings.pro. You might need to make sure it can find this file on start up. As an example it could look like this:

Code: Select all
[System]
DefaultWindowOpacity=1.0

[Graphics]
RenderSystem=OpenGL Rendering Subsystem
WindowModes=800x600, 1024x768, 1280x1024, FullScreen
SelectedWindowMode=1
AllowPerfHUD=false
EnableGammaCorrection=false
FSSAFactor=2
EnableVerticalSync=false


I'm not sure if that is the reason for the crash though.

Also, I assume the demo app runs sucessfully?
User avatar
PolyVox
OGRE Contributor
OGRE Contributor
 
Posts: 1316
Kudos: 18
Joined: 21 Nov 2006
Location: Groningen, The Netherlands

Re: QtOgre Application Framework - Now using Qt 4.5

Postby mboeni » Mon Oct 11, 2010 10:44 pm

I actually had to copy/paste the settings into "settings.ini" (settings.pro seems to be ignored).

I now get a selection of resolutions for OpenGL. When clicking OK after choosing one, the app freezes for a few seconds, then dies with an assertion error:
Code: Select all
The thread 'Win32 Thread' (0x14ac) has exited with code 3 (0x3).
The thread 'Win32 Thread' (0x6ac) has exited with code 3 (0x3).
The thread 'Win32 Thread' (0x17c0) has exited with code 3 (0x3).
The thread 'Win32 Thread' (0x11ec) has exited with code 3 (0x3).
The thread 'Win32 Thread' (0x1094) has exited with code 3 (0x3).
The thread 'Win32 Thread' (0x101c) has exited with code 3 (0x3).
The program '[5848] generat0rX.exe: Native' has exited with code 3 (0x3).


By the way: is there a full definition file for "settings.ini"? I have checked the Ogre dirs but haven't found it.

The attached screenshot shows the assertion error i get. Perhaps that helps

Thanks,
Michael
Attachments
QtOgre_Error.png
User avatar
mboeni
Halfling
 
Posts: 54
Kudos: 0
Joined: 02 Aug 2010
Location: Zurich, Switzerland

Re: QtOgre Application Framework - Now using Qt 4.5

Postby PolyVox » Mon Oct 11, 2010 10:58 pm

mboeni wrote:I actually had to copy/paste the settings into "settings.ini" (settings.pro seems to be ignored).


Sorry, that's what I meant.

mboeni wrote:By the way: is there a full definition file for "settings.ini"? I have checked the Ogre dirs but haven't found it.


It's in 'ogreaddons\QtOgreFramework\Demo\settings.ini. It's nothing to do with Ogre (it's passed to a QSettings class in Qt). Actually I think I reworked some of this so the Ogre *.cfg files would work as well. Can't remember if I did this or how far I got, so you'll have to check the code.

mboeni wrote:The attached screenshot shows the assertion error i get. Perhaps that helps


So what happens if you drop into the debugger (probably 'Retry' or 'Wiederholen') and look at the call stack? Where is it crashing?

Also, can you confirm whether the Demo application works?
User avatar
PolyVox
OGRE Contributor
OGRE Contributor
 
Posts: 1316
Kudos: 18
Joined: 21 Nov 2006
Location: Groningen, The Netherlands

Re: QtOgre Application Framework - Now using Qt 4.5

Postby mboeni » Mon Oct 11, 2010 11:03 pm

I checked the "...\Demo\settings.ini" and its about the same as I have it now. I just thought it's an ogre feature (determining the possible resolutions, etc).

Yes the demo works okay.

Here is the stack trace:
Code: Select all
>   msvcp100d.dll!std::_Debug_message(const wchar_t * message=0x0156d020, const wchar_t * file=0x0156c4c8, unsigned int line=236)  Line 15   C++
    msvcp100d.dll!std::_Debug_message(const unsigned short * message=0x0156d020, const unsigned short * file=0x0156c4c8, unsigned int line=236)  Line 20 + 0x11 bytes   C++
    generat0rX.exe!std::_Tree_const_iterator<std::_Tree_val<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,Ogre::Camera *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,Ogre::STLAllocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,Ogre::Camera *>,Ogre::CategorisedAllocPolicy<0> >,0> > >::operator*()  Line 236 + 0x15 bytes   C++
    generat0rX.exe!std::_Tree_iterator<std::_Tree_val<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,Ogre::Camera *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,Ogre::STLAllocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,Ogre::Camera *>,Ogre::CategorisedAllocPolicy<0> >,0> > >::operator*()  Line 397   C++
    generat0rX.exe!std::_Tree_iterator<std::_Tree_val<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,Ogre::Camera *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,Ogre::STLAllocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,Ogre::Camera *>,Ogre::CategorisedAllocPolicy<0> >,0> > >::operator->()  Line 402   C++
    generat0rX.exe!Ogre::MapIteratorWrapper<std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,Ogre::Camera *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,Ogre::STLAllocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,Ogre::Camera *>,Ogre::CategorisedAllocPolicy<0> > >,std::_Tree_iterator<std::_Tree_val<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,Ogre::Camera *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,Ogre::STLAllocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,Ogre::Camera *>,Ogre::CategorisedAllocPolicy<0> >,0> > > >::peekNextValue()  Line 288 + 0xb bytes   C++
    generat0rX.exe!QtOgre::OgreEngineLogic::loadScene(QString filename="media/scenes/test.scene")  Line 206 + 0x31 bytes   C++
    generat0rX.exe!QtOgre::OgreEngineLogic::initialise()  Line 45   C++
    generat0rX.exe!QtOgre::Application::initialise()  Line 249 + 0x15 bytes   C++
    generat0rX.exe!QtOgre::Application::exec(QtOgre::SettingsDialogMode eDialogMode=DisplaySettingsDialog)  Line 343   C++
    generat0rX.exe!main(int argc=1, char * * argv=0x0126f988)  Line 17 + 0x7 bytes   C++
    generat0rX.exe!WinMain(HINSTANCE__ * instance=0x01290000, HINSTANCE__ * prevInstance=0x00000000, char * __formal=0x003c2b3a, int cmdShow=1)  Line 131 + 0x12 bytes   C++
    generat0rX.exe!__tmainCRTStartup()  Line 547 + 0x2c bytes   C
    generat0rX.exe!WinMainCRTStartup()  Line 371   C

User avatar
mboeni
Halfling
 
Posts: 54
Kudos: 0
Joined: 02 Aug 2010
Location: Zurich, Switzerland

Re: QtOgre Application Framework - Now using Qt 4.5

Postby mboeni » Mon Oct 11, 2010 11:11 pm

Addendum:

commenting out loadScene in the initialize method perhaps helps (different error):
Code: Select all
    OgreMain_d.dll!01e7f980()    
    [Frames below may be incorrect and/or missing, no symbols loaded for OgreMain_d.dll]   
    OgreMain_d.dll!01bf455f()    
>   generat0rX.exe!QtOgre::OgreEngineLogic::initialise()  Line 45 + 0x51 bytes   C++
    generat0rX.exe!QtOgre::Application::initialise()  Line 249 + 0x15 bytes   C++
    generat0rX.exe!QtOgre::Application::exec(QtOgre::SettingsDialogMode eDialogMode=DisplaySettingsDialog)  Line 343   C++
    generat0rX.exe!main(int argc=1, char * * argv=0x007cf988)  Line 17 + 0x7 bytes   C++
    generat0rX.exe!WinMain(HINSTANCE__ * instance=0x00c20000, HINSTANCE__ * prevInstance=0x00000000, char * __formal=0x00412b3a, int cmdShow=1)  Line 131 + 0x12 bytes   C++
    generat0rX.exe!__tmainCRTStartup()  Line 547 + 0x2c bytes   C
    generat0rX.exe!WinMainCRTStartup()  Line 371   C

User avatar
mboeni
Halfling
 
Posts: 54
Kudos: 0
Joined: 02 Aug 2010
Location: Zurich, Switzerland

Re: QtOgre Application Framework - Now using Qt 4.5

Postby PolyVox » Mon Oct 11, 2010 11:17 pm

Hard to say exactly... it looks like there is some problem setting up the camera in loadScene. The code comments indicate what I'm doing here:

Code: Select all
//The QtOgre DotScene loading code will clear the existing scene except for cameras, as these
//could be used by existing viewports. Therefore we clear and viewports and cameras before
//calling the loading code.
mApplication->ogreRenderWindow()->removeAllViewports();
mSceneManager->destroyAllCameras();


But you probably have to step through in the debugger to see what's going wrong.

mboeni wrote:Yes the demo works okay.


Then you might need to start from that and just make smaller changes at a time.
User avatar
PolyVox
OGRE Contributor
OGRE Contributor
 
Posts: 1316
Kudos: 18
Joined: 21 Nov 2006
Location: Groningen, The Netherlands

Re: QtOgre Application Framework - Now using Qt 4.5

Postby mboeni » Mon Oct 11, 2010 11:21 pm

Hmm, seems that the forum swallowed my last post...

I re-checked whether the demo works and you were right: the version I compiled locally does NOT work, i get the same kind of error:
Code: Select all
>   Demo.exe!std::_Tree_const_iterator<std::_Tree_val<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,Ogre::Camera *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,Ogre::STLAllocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,Ogre::Camera *>,Ogre::CategorisedAllocPolicy<0> >,0> > >::operator*()  Line 237 + 0x37 bytes   C++
    Demo.exe!std::_Tree_iterator<std::_Tree_val<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,Ogre::Camera *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,Ogre::STLAllocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,Ogre::Camera *>,Ogre::CategorisedAllocPolicy<0> >,0> > >::operator*()  Line 397   C++
    Demo.exe!std::_Tree_iterator<std::_Tree_val<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,Ogre::Camera *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,Ogre::STLAllocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,Ogre::Camera *>,Ogre::CategorisedAllocPolicy<0> >,0> > >::operator->()  Line 402   C++
    Demo.exe!Ogre::MapIteratorWrapper<std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,Ogre::Camera *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,Ogre::STLAllocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,Ogre::Camera *>,Ogre::CategorisedAllocPolicy<0> > >,std::_Tree_iterator<std::_Tree_val<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,Ogre::Camera *,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,Ogre::STLAllocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,Ogre::Camera *>,Ogre::CategorisedAllocPolicy<0> >,0> > > >::peekNextValue()  Line 288 + 0xb bytes   C++
    Demo.exe!QtOgre::DemoGameLogic::loadScene(QString filename="media/scenes/test.scene")  Line 207 + 0x3d bytes   C++
    Demo.exe!QtOgre::DemoGameLogic::initialise()  Line 48   C++
    Demo.exe!QtOgre::Application::initialise()  Line 249 + 0x15 bytes   C++
    Demo.exe!QtOgre::Application::exec(QtOgre::SettingsDialogMode eDialogMode=DisplaySettingsDialog)  Line 343   C++
    Demo.exe!main(int argc=1, char * * argv=0x01d94c08)  Line 12 + 0x7 bytes   C++
    Demo.exe!__tmainCRTStartup()  Line 555 + 0x19 bytes   C
    Demo.exe!mainCRTStartup()  Line 371   C



Sorry for that - i checked the wrong demo.exe
User avatar
mboeni
Halfling
 
Posts: 54
Kudos: 0
Joined: 02 Aug 2010
Location: Zurich, Switzerland

Re: QtOgre Application Framework - Now using Qt 4.5

Postby PolyVox » Mon Oct 11, 2010 11:23 pm

mboeni wrote:Sorry for that - i checked the wrong demo.exe


So which one did you check? Surely you had to build it yourself as the executable isn't in SVN. If you mean it works with my build configuration but not yours then you might needs to check where your files are placed. Or other options. Perhaps your version can't find the test.scene file for example?
User avatar
PolyVox
OGRE Contributor
OGRE Contributor
 
Posts: 1316
Kudos: 18
Joined: 21 Nov 2006
Location: Groningen, The Netherlands

Re: QtOgre Application Framework - Now using Qt 4.5

Postby mboeni » Mon Oct 11, 2010 11:32 pm

I tested the prebuilt version accidentally. I am compiling the latest version from SVN now.

I just tried to rebuild the framework but that seems pretty messed up
like
Code: Select all
Error   1   error C2039: 'Log' : is not a member of 'Ui'   e:\workspace\cpp_libraries\qtogreframework\qtogre\include\Log.h   21   1   QtOgreStatic
Error   2   error C2499: 'QtOgre::Log' : a class cannot be its own base class   e:\workspace\cpp_libraries\qtogreframework\qtogre\include\Log.h   21   1   QtOgreStatic
Error   3   error C2653: 'Ui' : is not a class or namespace name   E:\workspace\cpp_libraries\QtOgreFramework\QtOgre\include\Log.h   20   1   QtOgreStatic


I'll wipe the whole thing and start from scratch..
User avatar
mboeni
Halfling
 
Posts: 54
Kudos: 0
Joined: 02 Aug 2010
Location: Zurich, Switzerland

Re: QtOgre Application Framework - Now using Qt 4.5

Postby mboeni » Mon Oct 11, 2010 11:44 pm

I rebuilt the whole thing (with no errors) but am still getting the same problems with Demo and my app...
User avatar
mboeni
Halfling
 
Posts: 54
Kudos: 0
Joined: 02 Aug 2010
Location: Zurich, Switzerland

Re: QtOgre Application Framework - Now using Qt 4.5

Postby PolyVox » Tue Oct 12, 2010 6:42 pm

Ok, so you've got a clean and unmodified copy of the framework and Demo, and the Demo is still crashing on startup?

Try editiong Demo/Source/main.cpp and replacing 'new DemoGameLogic' with 'new GameLogic'. If it runs it will initialise Ogre and just give you a black screen. They'll be no loading of resources or updating, etc.
User avatar
PolyVox
OGRE Contributor
OGRE Contributor
 
Posts: 1316
Kudos: 18
Joined: 21 Nov 2006
Location: Groningen, The Netherlands

Re: QtOgre Application Framework - Now using Qt 4.5

Postby mboeni » Tue Oct 12, 2010 11:01 pm

Yes. And with the change you proposed, the demo works fine.
User avatar
mboeni
Halfling
 
Posts: 54
Kudos: 0
Joined: 02 Aug 2010
Location: Zurich, Switzerland

Re: QtOgre Application Framework - Now using Qt 4.5

Postby PolyVox » Wed Oct 13, 2010 10:26 pm

Right, sorry, I'm not getting enough time to post...

mboeni wrote:Yes. And with the change you proposed, the demo works fine.


And by 'fine', you mean you get the black screen? :-) The point of that test was that apparently Ogre is at least initialising properly so the problem is elsewhere. You should be able to get the same result by changing main.cpp back how it was and then cutting out the content of the initialize(), update(), etc functions in DemoGameLogic. You can then build them up a bit at a time until you work out where the problem is.

Regarding 'loadScene()' - this really provides just very basic .scene loading and I doubt if you'll want to use it in a real application. You can instead just set the scene up in code similar to how the Ogre tutorials do it. But the Demo application relies on it because it expects it to create cameras, certain entities etc. If you do remove this function from the Demo you'll need to make changes elsewhere as well.
User avatar
PolyVox
OGRE Contributor
OGRE Contributor
 
Posts: 1316
Kudos: 18
Joined: 21 Nov 2006
Location: Groningen, The Netherlands

Re: QtOgre Application Framework - Now using Qt 4.5

Postby yaxinhoo » Fri Dec 10, 2010 9:29 am

in thermite

i can't find the <cstdint> , replace it with <boost/cstdint.hpp> , it can't work too.

i am using
qt4.6
vs2008
boost1.44
ogre1.7.1
yaxinhoo
Gremlin
 
Posts: 173
Kudos: 0
Joined: 06 Jun 2010

Re: QtOgre Application Framework - Now using Qt 4.5

Postby PolyVox » Fri Dec 10, 2010 7:57 pm

yaxinhoo wrote:in thermite

i can't find the <cstdint> , replace it with <boost/cstdint.hpp> , it can't work too.

i am using
qt4.6
vs2008
boost1.44
ogre1.7.1


As discussed in the Thermite forums. I'm just posting this message so the question is not left open.
User avatar
PolyVox
OGRE Contributor
OGRE Contributor
 
Posts: 1316
Kudos: 18
Joined: 21 Nov 2006
Location: Groningen, The Netherlands

Re: QtOgre Application Framework - Now using Qt 4.5

Postby David Wagg » Fri Feb 04, 2011 10:17 pm

Great work, Polyvox! Tried a couple of unhappy Qt-Ogre crossbreeds already, but your implementation seems to work rather well. There are a few oddities though (I'm using QtOgre rev. 2977, ogre v1-7 tip, Qt 4.7.1, Windows Vista x64):

1) Fog doesn't seem to work. I added the bolded parts to DemoGameLogic.cpp, line 216.
Ogre::Viewport* viewport = mApplication->ogreRenderWindow()->addViewport(mCamera);
viewport->setBackgroundColour(Ogre::ColourValue(0.5f, 0.0f, 0.0f));
mSceneManager->setFog( Ogre::FOG_EXP, Ogre::ColourValue(0.5f, 0.0f, 0.0f), 0.005f );

This doesn't do what I expected - instead of red fog, the skybox is just tinted red, and there's no effect at all on the models. Any ideas why this doesn't work? Basic Tutorial 3 (http://www.ogre3d.org/tikiwiki/Basic+Tu ... =Tutorials) worked for me, so I'm guessing it's something to do with Qt.

2) If I select fullscreen OpenGL then the Qt widgets don't show up on top, and the main menu window doesn't pop up when I press escape. Alt-tabbing out and back in sometimes makes them appear, but not reliably. Fullscreen DirectX is fine. I had similar problems with other Qt-Ogre hybrids, is this a known issue?
David Wagg
Gnoblar
 
Posts: 2
Kudos: 0
Joined: 05 Dec 2010

Re: QtOgre Application Framework - Now using Qt 4.5

Postby PolyVox » Sat Feb 05, 2011 4:28 pm

David Wagg wrote:1) Fog doesn't seem to work. I added the bolded parts to DemoGameLogic.cpp, line 216.
Ogre::Viewport* viewport = mApplication->ogreRenderWindow()->addViewport(mCamera);
viewport->setBackgroundColour(Ogre::ColourValue(0.5f, 0.0f, 0.0f));
mSceneManager->setFog( Ogre::FOG_EXP, Ogre::ColourValue(0.5f, 0.0f, 0.0f), 0.005f );

I just tested this and saw the behaviour you described, but actually you just need to increase you exponent. Setting it to 0.05f seemed to work.
David Wagg wrote:2) If I select fullscreen OpenGL then the Qt widgets don't show up on top, and the main menu window doesn't pop up when I press escape. Alt-tabbing out and back in sometimes makes them appear, but not reliably. Fullscreen DirectX is fine. I had similar problems with other Qt-Ogre hybrids, is this a known issue?

Yes, I think this is a problem with Vista (and possibly windows 7) when using OpenGL in fullscreen mode. I forget the exact details but if you google for 'vista opengl problems' you might find something. Actually, I think it was to do with the widgets being partially transparent.. search the QtOgre codebase for 'setWindowOpacity' and try forcing this to 1.0. I'm not sure though...
User avatar
PolyVox
OGRE Contributor
OGRE Contributor
 
Posts: 1316
Kudos: 18
Joined: 21 Nov 2006
Location: Groningen, The Netherlands

Re: QtOgre Application Framework - Now using Qt 4.5

Postby David Wagg » Sat Feb 05, 2011 5:59 pm

PolyVox wrote:you just need to increase you exponent. Setting it to 0.05f seemed to work.


Could've sworn I fiddled with those values, but apparently not :oops: Thanks, fog is working for me now!

PolyVox wrote:Yes, I think this is a problem with Vista (and possibly windows 7) when using OpenGL in fullscreen mode. I forget the exact details but if you google for 'vista opengl problems' you might find something. Actually, I think it was to do with the widgets being partially transparent.. search the QtOgre codebase for 'setWindowOpacity' and try forcing this to 1.0. I'm not sure though...


Playing with setWindowOpacity didn't make any difference. Unfortunately, it's a bit like looking for a needle in a haystack with google. I found a few posts suggesting that Aero is interfering, but disabling Aero did not fix this problem.

This example (http://doc.qt.nokia.com/stable/opengl-overpainting.html) shows Qt playing nicely with OpenGL. Transparent widgets drawn on top of the GL context, works fine in full-screen too. The source code for their QGLWidget is pretty hideous though, I wouldn't want to try to reproduce that with Ogre.

Anyway, I suppose it's not worth worrying about, since it's so easy to switch render systems in Ogre. I'll just use the D3D9 renderer on Windows, OpenGL on other platforms.
David Wagg
Gnoblar
 
Posts: 2
Kudos: 0
Joined: 05 Dec 2010

Re: QtOgre Application Framework - Now using Qt 4.5

Postby uzik » Sun Apr 10, 2011 1:51 pm

About the licensing, something new occurred that may take care of your concerns:

http://arstechnica.com/open-source/news/2009/01/nokia-qt-lgpl-switch-huge-win-for-cross-platform-development.ars
---A dream doesn't become reality through magic; it takes sweat, determination and hard work.
uzik
Goblin
 
Posts: 202
Kudos: 6
Joined: 25 Feb 2007
Location: USA

Re: QtOgre Application Framework - Now using Qt 4.5

Postby jacmoe » Sun Apr 10, 2011 3:33 pm

New?
We knew that since it happened which was in 2009. :)
Ogitor switched to using Qt shortly after that.
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, Fueled by Passion.
Ogre AppWizards - Ogre project wizards for VC 8-10, Code::Blocks and KDevelop.
OgreAssimpConverter - command-line to convert models to Ogre format.
TwOgreGUI - wrapper for AntTweakBar GUI library.
I accept donations | Me on Google+
User avatar
jacmoe
OGRE Moderator
OGRE Moderator
 
Posts: 21024
Kudos: 161
Joined: 22 Jan 2004
Location: Denmark

Re: QtOgre Application Framework - Now using Qt 4.5

Postby pwr » Thu Dec 29, 2011 12:38 am

Hi!
Have limited experience with different GUI systems when used with Ogre. Found this Qt framework for Ogre and tried it out. It works fine, but I'm a bit concerned about the frame rate of my game that I'm developing. I have tested to use OgreWidget in my project and am noticing that the frame rate drops (around 20-30fps) when widgets are drawn on top of my 3d scene. I've also had this problem with other implementations of OgreWidget that I have tried.

What I'm wondering is how the performance is when comparing the Qt approach with other existing GUI library for Ogre. Is the drop in fps when drawing widgets normal, also when other GUI libs are used?
I hope that this questions isn't already exists in this long thread. If that is the case, I'm sorry that I've missed the answer and reposted the question.
I'm using MacOSX 1.6 and Ogre3d 1.7

BR
pwr
Gnoblar
 
Posts: 7
Kudos: 0
Joined: 11 Mar 2011

Re: QtOgre Application Framework - Now using Qt 4.5

Postby PolyVox » Thu Dec 29, 2011 1:13 am

I think that the system is indeed slower when drawing Qt widgets on top of the Ogre widget. This may be because it has to syncronise two drawing loops or there may be other reasons. It's also particularly bad if the widgets are transparent - I guess in this case it has to pull the framebuffer back to perform the blending. Actually I'm a bit hazy here as I haven't worked on it for a while (and I'm no longer maintaining this project).

For maximum performance you want to render your widgets as part of the Ogre scene, rather than rendering on top of it. Most game-specifc GUIs will work like this. In theory it's possible to do something similar with Qt (for example see this thread) though it's a bit more complex.
User avatar
PolyVox
OGRE Contributor
OGRE Contributor
 
Posts: 1316
Kudos: 18
Joined: 21 Nov 2006
Location: Groningen, The Netherlands

Re: QtOgre Application Framework - Now using Qt 4.5

Postby praveenaj » Wed Jan 11, 2012 9:29 am

Hi,

I'm a newbie to both Qt and Ogre, Can someone please explain me how to get this framework working with a new Qt application? I need to have a Ogre window/panel inside a Qt widget.

Thanks.
praveenaj
Gnoblar
 
Posts: 2
Kudos: 0
Joined: 11 Jan 2012

Re: QtOgre Application Framework - Now using Qt 4.5

Postby PolyVox » Wed Jan 11, 2012 11:42 am

Hi, I got several messages from you but decided to reply to this one to keep the information publicly viewable.

The QtOgre framework is an application (not a library) so you need to build it from source code. The prebuilt binaries serve only as a demo. Are you able to build it from source yet? If so you can start replacing the demo logic with your own code.

But actually it sounds like you are after a widget to embed in an existing application. In this case the framework may not be what you want. It does contain such a widget (QtOgreWidget I think it is called) but you may have to do some work to seperate it from the rest of the framework. You might be better looking on the Ogre wiki as I believe there is a Qt widget example there (or search the forums - it often comes up).

Also, I'm no longer maintaining this project so I can't be sure it still compiles. It was last tested with either Qt 4.5 or 4.6, and probably with Ogre 1.7 though I'm not sure.
User avatar
PolyVox
OGRE Contributor
OGRE Contributor
 
Posts: 1316
Kudos: 18
Joined: 21 Nov 2006
Location: Groningen, The Netherlands

PreviousNext

Return to Showcase

Who is online

Users browsing this forum: Bing [Bot] and 5 guests