[SOLVED] Layout is loaded, but nothing is to be seen

Thrakbad

11-04-2010 16:16:53

Hi,

I just experimented a bit with MyGUI. I took the code from this tutorial and just modified it to use MyGUI instead of CEGUI. I simply added a button and told MyGUI to show the mouse pointer. When I run the application, I see nothing. From the log file I get that textures core_micro_font.PNG and core_pointer.png could not be found. But I also read that core_theme.xml etc. were read and loaded. Now these files are in the same directory as the textures, that could not be found, so MyGUI does seem to get my specified resource location right.

EDIT: To clarify the thread title: this also happens with a simple layout generated with the layout editor.

EDIT2: I already found the solution, I had to initialize the platform with the correct resource group like this. This is hidden somewhere in the FAQs. It would be nice to mention this in the Quickstart.
mPlatform->initialise(graphic.getRenderWindow(), graphic.getSceneManager(), "Core");

Maybe it helps: here is the complete log file
----------------------------------------------------------------------------------------------------------------------------------
loging report for : 04/11/2010 17:36:40
----------------------------------------------------------------------------------------------------------------------------------

17:36:40 | Platform | Info | * Initialise: OgreRenderManager | .\src\MyGUI_OgreRenderManager.cpp | 26
17:36:40 | Platform | Info | OgreRenderManager successfully initialized | .\src\MyGUI_OgreRenderManager.cpp | 54
17:36:40 | Platform | Info | * Initialise: OgreDataManager | .\src\MyGUI_OgreDataManager.cpp | 45
17:36:40 | Platform | Info | OgreDataManager successfully initialized | .\src\MyGUI_OgreDataManager.cpp | 49
17:36:40 | Core | Info | * Initialise: Gui | .\src\MyGUI_Gui.cpp | 82
17:36:40 | Core | Info | * MyGUI version 3.0.1 | .\src\MyGUI_Gui.cpp | 86
17:36:40 | Core | Info | * Initialise: ResourceManager | .\src\MyGUI_ResourceManager.cpp | 43
17:36:40 | Core | Info | ResourceManager successfully initialized | .\src\MyGUI_ResourceManager.cpp | 51
17:36:40 | Core | Info | * Initialise: LayerManager | .\src\MyGUI_LayerManager.cpp | 44
17:36:40 | Core | Info | LayerManager successfully initialized | .\src\MyGUI_LayerManager.cpp | 52
17:36:40 | Core | Info | * Initialise: WidgetManager | .\src\MyGUI_WidgetManager.cpp | 66
17:36:40 | Core | Info | WidgetManager successfully initialized | .\src\MyGUI_WidgetManager.cpp | 105
17:36:40 | Core | Info | * Initialise: InputManager | .\src\MyGUI_InputManager.cpp | 41
17:36:40 | Core | Info | InputManager successfully initialized | .\src\MyGUI_InputManager.cpp | 58
17:36:40 | Core | Info | * Initialise: SubWidgetManager | .\src\MyGUI_SubWidgetManager.cpp | 44
17:36:40 | Core | Info | SubWidgetManager successfully initialized | .\src\MyGUI_SubWidgetManager.cpp | 64
17:36:40 | Core | Info | * Initialise: SkinManager | .\src\MyGUI_SkinManager.cpp | 46
17:36:40 | Core | Info | SkinManager successfully initialized | .\src\MyGUI_SkinManager.cpp | 54
17:36:40 | Core | Info | * Initialise: FontManager | .\src\MyGUI_FontManager.cpp | 43
17:36:40 | Core | Info | FontManager successfully initialized | .\src\MyGUI_FontManager.cpp | 52
17:36:40 | Core | Info | * Initialise: ControllerManager | .\src\MyGUI_ControllerManager.cpp | 41
17:36:40 | Core | Info | ControllerManager successfully initialized | .\src\MyGUI_ControllerManager.cpp | 51
17:36:40 | Core | Info | * Initialise: PointerManager | .\src\MyGUI_PointerManager.cpp | 51
17:36:40 | Core | Info | PointerManager successfully initialized | .\src\MyGUI_PointerManager.cpp | 69
17:36:40 | Core | Info | * Initialise: ClipboardManager | .\src\MyGUI_ClipboardManager.cpp | 82
17:36:40 | Core | Info | ClipboardManager successfully initialized | .\src\MyGUI_ClipboardManager.cpp | 96
17:36:40 | Core | Info | * Initialise: LayoutManager | .\src\MyGUI_LayoutManager.cpp | 42
17:36:40 | Core | Info | LayoutManager successfully initialized | .\src\MyGUI_LayoutManager.cpp | 48
17:36:40 | Core | Info | * Initialise: DynLibManager | .\src\MyGUI_DynLibManager.cpp | 34
17:36:40 | Core | Info | DynLibManager successfully initialized | .\src\MyGUI_DynLibManager.cpp | 36
17:36:40 | Core | Info | * Initialise: PluginManager | .\src\MyGUI_PluginManager.cpp | 36
17:36:40 | Core | Info | PluginManager successfully initialized | .\src\MyGUI_PluginManager.cpp | 40
17:36:40 | Core | Info | * Initialise: LanguageManager | .\src\MyGUI_LanguageManager.cpp | 40
17:36:40 | Core | Info | LanguageManager successfully initialized | .\src\MyGUI_LanguageManager.cpp | 44
17:36:40 | Core | Info | * Initialise: FactoryManager | .\src\MyGUI_FactoryManager.cpp | 34
17:36:40 | Core | Info | FactoryManager successfully initialized | .\src\MyGUI_FactoryManager.cpp | 37
17:36:40 | Core | Info | Load ini file 'core_theme.xml' | .\src\MyGUI_ResourceManager.cpp | 152
17:36:40 | Core | Info | Load ini file 'core_language.xml' | .\src\MyGUI_ResourceManager.cpp | 152
17:36:40 | Core | Info | Load ini file 'core_font.xml' | .\src\MyGUI_ResourceManager.cpp | 152
17:36:40 | Core | Info | ResourceTrueTypeFont 'font_DejaVuSans.17' using texture size 512 x 256 | .\src\MyGUI_ResourceTrueTypeFont.cpp | 203
17:36:40 | Core | Info | ResourceTrueTypeFont 'font_DejaVuSans.17' using real height 17 pixels | .\src\MyGUI_ResourceTrueTypeFont.cpp | 204
17:36:40 | Core | Info | ResourceTrueTypeFont 'font_DejaVuSans.14' using texture size 256 x 256 | .\src\MyGUI_ResourceTrueTypeFont.cpp | 203
17:36:40 | Core | Info | ResourceTrueTypeFont 'font_DejaVuSans.14' using real height 14 pixels | .\src\MyGUI_ResourceTrueTypeFont.cpp | 204
17:36:40 | Core | Error | Texture 'core_micro_font.PNG' not found | .\src\MyGUI_TextureUtility.cpp | 55
17:36:40 | Platform | Error | Texture 'core_micro_font.PNG' not found, set default texture | .\src\MyGUI_OgreTexture.cpp | 237
17:36:40 | Core | Info | Load ini file 'core_resource.xml' | .\src\MyGUI_ResourceManager.cpp | 152
17:36:40 | Core | Info | Load ini file 'core_skin.xml' | .\src\MyGUI_ResourceManager.cpp | 152
17:36:40 | Core | Error | Texture 'core.png' not found | .\src\MyGUI_TextureUtility.cpp | 55
17:36:40 | Core | Info | Load ini file 'core_pointer.xml' | .\src\MyGUI_ResourceManager.cpp | 152
17:36:40 | Core | Info | Load ini file 'core_layer.xml' | .\src\MyGUI_ResourceManager.cpp | 152
17:36:40 | Core | Info | Load ini file 'core_settings.xml' | .\src\MyGUI_ResourceManager.cpp | 152
17:36:40 | Core | Error | Texture 'core_pointer.png' not found | .\src\MyGUI_TextureUtility.cpp | 55
17:36:40 | Core | Info | Gui successfully initialized | .\src\MyGUI_Gui.cpp | 129
17:36:43 | Core | Info | * Shutdown: Gui | .\src\MyGUI_Gui.cpp | 136
17:36:43 | Core | Info | * Shutdown: PointerManager | .\src\MyGUI_PointerManager.cpp | 76
17:36:43 | Core | Info | PointerManager successfully shutdown | .\src\MyGUI_PointerManager.cpp | 92
17:36:43 | Core | Info | * Shutdown: InputManager | .\src\MyGUI_InputManager.cpp | 65
17:36:43 | Core | Info | InputManager successfully shutdown | .\src\MyGUI_InputManager.cpp | 70
17:36:43 | Core | Info | * Shutdown: SkinManager | .\src\MyGUI_SkinManager.cpp | 61
17:36:43 | Core | Info | SkinManager successfully shutdown | .\src\MyGUI_SkinManager.cpp | 66
17:36:43 | Core | Info | * Shutdown: SubWidgetManager | .\src\MyGUI_SubWidgetManager.cpp | 71
17:36:43 | Core | Info | SubWidgetManager successfully shutdown | .\src\MyGUI_SubWidgetManager.cpp | 91
17:36:43 | Core | Info | * Shutdown: LayerManager | .\src\MyGUI_LayerManager.cpp | 59
17:36:43 | Core | Info | destroy layer 'Wallpaper' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'Back' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'Overlapped' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'Middle' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'Modal' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'Main' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'Popup' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'FadeMiddle' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'Info' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'ToolTip' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'DragAndDrop' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'FadeBusy' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'Pointer' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'Fade' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | destroy layer 'Statistic' | .\src\MyGUI_LayerManager.cpp | 207
17:36:43 | Core | Info | LayerManager successfully shutdown | .\src\MyGUI_LayerManager.cpp | 70
17:36:43 | Core | Info | * Shutdown: FontManager | .\src\MyGUI_FontManager.cpp | 59
17:36:43 | Core | Info | FontManager successfully shutdown | .\src\MyGUI_FontManager.cpp | 66
17:36:43 | Core | Info | * Shutdown: ControllerManager | .\src\MyGUI_ControllerManager.cpp | 58
17:36:43 | Core | Info | ControllerManager successfully shutdown | .\src\MyGUI_ControllerManager.cpp | 69
17:36:43 | Core | Info | * Shutdown: ClipboardManager | .\src\MyGUI_ClipboardManager.cpp | 103
17:36:43 | Core | Info | ClipboardManager successfully shutdown | .\src\MyGUI_ClipboardManager.cpp | 105
17:36:43 | Core | Info | * Shutdown: LayoutManager | .\src\MyGUI_LayoutManager.cpp | 55
17:36:43 | Core | Info | LayoutManager successfully shutdown | .\src\MyGUI_LayoutManager.cpp | 59
17:36:43 | Core | Info | * Shutdown: PluginManager | .\src\MyGUI_PluginManager.cpp | 47
17:36:43 | Core | Info | PluginManager successfully shutdown | .\src\MyGUI_PluginManager.cpp | 52
17:36:43 | Core | Info | * Shutdown: DynLibManager | .\src\MyGUI_DynLibManager.cpp | 43
17:36:43 | Core | Info | DynLibManager successfully shutdown | .\src\MyGUI_DynLibManager.cpp | 57
17:36:43 | Core | Info | * Shutdown: LanguageManager | .\src\MyGUI_LanguageManager.cpp | 51
17:36:43 | Core | Info | LanguageManager successfully shutdown | .\src\MyGUI_LanguageManager.cpp | 55
17:36:43 | Core | Info | * Shutdown: ResourceManager | .\src\MyGUI_ResourceManager.cpp | 58
17:36:43 | Core | Info | ResourceManager successfully shutdown | .\src\MyGUI_ResourceManager.cpp | 68
17:36:43 | Core | Info | * Shutdown: FactoryManager | .\src\MyGUI_FactoryManager.cpp | 44
17:36:43 | Core | Info | FactoryManager successfully shutdown | .\src\MyGUI_FactoryManager.cpp | 46
17:36:43 | Core | Info | * Shutdown: WidgetManager | .\src\MyGUI_WidgetManager.cpp | 112
17:36:43 | Core | Info | WidgetManager successfully shutdown | .\src\MyGUI_WidgetManager.cpp | 122
17:36:43 | Core | Info | Gui successfully shutdown | .\src\MyGUI_Gui.cpp | 175
17:36:43 | Platform | Info | * Shutdown: OgreRenderManager | .\src\MyGUI_OgreRenderManager.cpp | 61
17:36:43 | Platform | Info | OgreRenderManager successfully shutdown | .\src\MyGUI_OgreRenderManager.cpp | 69
17:36:43 | Platform | Info | * Shutdown: OgreDataManager | .\src\MyGUI_OgreDataManager.cpp | 56
17:36:43 | Platform | Info | OgreDataManager successfully shutdown | .\src\MyGUI_OgreDataManager.cpp | 58


And here is the complete source code:
#include <Ogre.h>
#include <OIS.h>
#include <MyGUI.h>
#include <MyGUI_OgrePlatform.h>

using namespace Ogre;

class ExitListener : public FrameListener
{
public:
ExitListener(OIS::Keyboard *keyboard)
: mKeyboard(keyboard)
{
}

bool frameStarted(const FrameEvent& evt)
{
mKeyboard->capture();
return !mKeyboard->isKeyDown(OIS::KC_ESCAPE);
}

private:
OIS::Keyboard *mKeyboard;
};

class Application
{
public:
void go()
{
createRoot();
defineResources();
setupRenderSystem();
createRenderWindow();
initializeResourceGroups();
setupScene();
setupInputSystem();
setupGUI();
createFrameListener();
startRenderLoop();
}

~Application()
{
mInputManager->destroyInputObject(mKeyboard);
OIS::InputManager::destroyInputSystem(mInputManager);

mGUI->shutdown();
delete mGUI;
mGUI = 0;
mPlatform->shutdown();
delete mPlatform;
mPlatform = 0;

delete mListener;
delete mRoot;
}

private:
Root *mRoot;
SceneManager* mSceneMgr;
RenderWindow* mRenderWindow;
OIS::Keyboard *mKeyboard;
OIS::Mouse *mMouse;
OIS::InputManager *mInputManager;
MyGUI::Gui* mGUI;
MyGUI::OgrePlatform* mPlatform;
ExitListener *mListener;

void createRoot()
{
mRoot = new Root();
}

void defineResources()
{
String secName, typeName, archName;
ConfigFile cf;
cf.load("resources.cfg");

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

void setupRenderSystem()
{
if (!mRoot->restoreConfig() && !mRoot->showConfigDialog())
throw Exception(52, "User canceled the config dialog!", "Application::setupRenderSystem()");
}

void createRenderWindow()
{
mRoot->initialise(true, "Tutorial Render Window");
}

void initializeResourceGroups()
{
TextureManager::getSingleton().setDefaultNumMipmaps(5);
ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
}

void setupScene()
{
mSceneMgr = mRoot->createSceneManager(ST_GENERIC, "Default SceneManager");
Camera *cam = mSceneMgr->createCamera("Camera");
Viewport *vp = mRoot->getAutoCreatedWindow()->addViewport(cam);
}

void setupInputSystem()
{
size_t windowHnd = 0;
std::ostringstream windowHndStr;
OIS::ParamList pl;
mRenderWindow = mRoot->getAutoCreatedWindow();

mRenderWindow->getCustomAttribute("WINDOW", &windowHnd);
windowHndStr << windowHnd;
pl.insert(std::make_pair(std::string("WINDOW"), windowHndStr.str()));
mInputManager = OIS::InputManager::createInputSystem(pl);

try
{
mKeyboard = static_cast<OIS::Keyboard*>(mInputManager->createInputObject(OIS::OISKeyboard, false));
mMouse = static_cast<OIS::Mouse*>(mInputManager->createInputObject(OIS::OISMouse, false));
}
catch (const OIS::Exception &e)
{
throw new Exception(42, e.eText, "Application::setupInputSystem");
}
}

void setupGUI()
{
mPlatform = new MyGUI::OgrePlatform();
mPlatform->initialise(mRenderWindow, mSceneMgr);
mGUI = new MyGUI::Gui();
mGUI->initialise();
mGUI->showPointer();
MyGUI::ButtonPtr button = mGUI->createWidget<MyGUI::Button>("Button", 10, 10, 300, 26, MyGUI::Align::Default, "Main");
button->setCaption("exit");
}

void createFrameListener()
{
mListener = new ExitListener(mKeyboard);
mRoot->addFrameListener(mListener);
}

void startRenderLoop()
{
mRoot->startRendering();
}
};

#if OGRE_PLATFORM == PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"

INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
#else
int main(int argc, char **argv)
#endif
{
try
{
Application app;
app.go();
}
catch(Exception& e)
{
#if OGRE_PLATFORM == PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBoxA(NULL, e.getFullDescription().c_str(), "An exception has occurred!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
fprintf(stderr, "An exception has occurred: %s\n",
e.getFullDescription().c_str());
#endif
}

return 0;
}