How can i create GuiManager?

CmonGirl

29-09-2010 13:19:26

Hi guys. I new begin gui systems. And i have a problem.
I cant create guimanager and window. I use QuickGUI 10.1 version. How can i solve? This is my codes:
class Menu : public ExampleFrameListener
{
public:
Menu(RenderWindow *win, Camera *cam,SceneManager* cscn) : ExampleFrameListener(win, cam),scene_mgr(cscn)
{
gui_root=new QuickGUI::Root();

QuickGUI::SkinTypeManager::getSingleton().loadTypes();

QuickGUI::GUIManagerDesc gui_manager_desc;

gui_manager_desc.sceneManager=scene_mgr;
gui_manager_desc.viewport=mCamera->getViewport();
gui_manager_desc.name="Sentinel_GUI";

mGUIManager=QuickGUI::Root::getSingletonPtr()->createGUIManager(gui_manager_desc);
}

~Menu()
{
}

bool frameStarted(const FrameEvent& evt)
{

return ExampleFrameListener::frameStarted(evt);
}
private:
QuickGUI::GUIManager* mGUIManager;
QuickGUI::Root* gui_root;
SceneManager* scene_mgr;
};

CmonGirl

29-09-2010 14:40:05

I find my problem's solve. But now run-time error.
I copy minimap.camera.box.png , MiniMap.skinTypes and qgui.core.zip folders inside media/gui
And added this line Zip=../../media/gui/qgui.core.zip in resources_d.cfg.
And thats codes:
class Menu : public ExampleFrameListener
{
public:
Menu(RenderWindow *win, Camera *cam,SceneManager* cscn) : ExampleFrameListener(win, cam),scene_mgr(cscn)
{
//Ogre::ResourceGroupManager::getSingleton().initialiseResourceGroup("QuickGui");
QuickGUIRoot = new QuickGUI::Root();
QuickGUI::SkinTypeManager::getSingleton().loadTypes();
QuickGUI::GUIManagerDesc MainManagerDesc;
MainManagerDesc.sceneManager = scene_mgr;
MainManagerDesc.viewport = mWindow->getViewport(0);
MainManagerDesc.queueID = Ogre::RENDER_QUEUE_OVERLAY;

MainGUIManager = QuickGUI::Root::getSingletonPtr()->createGUIManager(MainManagerDesc);
QuickGUI::SheetDesc* MainSheetDesc = QuickGUI::DescManager::getSingleton().getDefaultSheetDesc();
MainSheetDesc->resetToDefault();
MainSheetDesc->widget_dimensions.size = QuickGUI::Size(1280, 1024);//I've also tried to set it to the size of the viewport
QuickGUI::Sheet* MainSheet = QuickGUI::SheetManager::getSingleton().createSheet(MainSheetDesc);

MainGUIManager->setActiveSheet(MainSheet);
}

~Menu()
{
}

bool frameStarted(const FrameEvent& evt)
{

return ExampleFrameListener::frameStarted(evt);
}
private:
SceneManager* scene_mgr;

QuickGUI::Root* QuickGUIRoot;
QuickGUI::Button* ExitButton;
QuickGUI::GUIManager* MainGUIManager;
};

I use Ogre 1.7.1 and QuickGUI 10.1. Program is break this line : QuickGUI::SkinTypeManager::getSingleton().loadTypes();
Someone please help me.

BronzeBeard

30-09-2010 08:05:54

I don't have much time to look right now, but here is a snippet of my code, see if it helps you any....
(i'm using a slightly older version...)


//QuickGUI Registeration
QuickGUI::registerScriptReader();

//create sound manager
SoundManager = new OgreAL::SoundManager();



Ogre::String secName, typeName, archName;
Ogre::ConfigFile cf;

std::string ResourcePath;
ResourcePath = "media/";
cf.load("configure\\resources.cfg");

Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
while (seci.hasMoreElements())
{
secName = seci.peekNextKey();
Ogre::ConfigFile::SettingsMultiMap *settings = seci.getNext();
Ogre::ConfigFile::SettingsMultiMap::iterator i;
for (i = settings->begin(); i != settings->end(); ++i)
{
typeName = i->first;
archName = i->second;
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(ResourcePath + archName, typeName, secName);
}
}
Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5);
Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();

m_pTimer = new Ogre::Timer();
m_pTimer->reset();



//Create QuickGUI root and parse Skins...
new QuickGUI::Root();
QuickGUI::SkinTypeManager::getSingleton().loadTypes();


To shorten it, I register Script Reader for quick gui, I read in all my ogre resources, I make my new quickgui::root, then i loadtypes...


then when i'm ready to use it...

void MenuState::guiCreate()
{
try
{
QuickGUI::GUIManagerDesc descGUI;

descGUI.sceneManager = m_pSceneMgr;
descGUI.viewport = m_pCamera->getViewport();
descGUI.queueID = Ogre::RENDER_QUEUE_OVERLAY;
descGUI.name = "MenuGUIManager";


OgreFramework::getSingletonPtr()->GuiManager = QuickGUI::Root::getSingletonPtr()->createGUIManager(descGUI);

gameSheet = QuickGUI::SheetManager::getSingleton().createSheet("media/GuiSheets/MainMenu.sheet",true);


OgreFramework::getSingletonPtr()->GuiManager->setActiveSheet(gameSheet);
OgreFramework::getSingletonPtr()->GuiManager->notifyViewportDimensionsChanged();
gameSheet->setSize(QuickGUI::Size(OgreFramework::getSingletonPtr()->m_pViewport->getActualWidth(),OgreFramework::getSingletonPtr()->m_pViewport->getActualHeight()));

...
...
bunch of stuff you don't need
...
...
catch(QuickGUI::Exception &qgui_error)
{
OgreFramework::getSingletonPtr()->m_pLog->logMessage(qgui_error.getFullDescription());
}



hope that helps.

kungfoomasta

06-10-2010 01:35:08

Sorry for the delay in response, I've been occupied with other projects. I forget the steps and order required to initialize the library, however the 10.1 zip should contain a working application, PlayPen, which shows how to setup the app.

Your first step would be to see if you can build and run the PlayPen successfully. Assuming you can do this, you can use the PlayPen code as reference, its only a few small files to look at.