Operating System: arch 64 bit Reproducibility: always (samplebrowser + my apps) Reproduction steps: build and run cegui + samplebrowser
I ran into an issue with my application and spent a few days trying to debug then realizing that the sample browser is having the same exact issue. It appears to have an issue loading certain windows while parsing a layout. I was supprised it was also happening in the sample browser because i could not find anyone else with a similar issue in any of the forums.
When running the sample browser using Linux + Ogre (although i doubt that matters since it appears to be part of cegui core), the app starts up and begins to load the apps as I can see the progress bar. Then it fails and spits out the following error. This error is the same error I get when running my application (instead of SamplesFrameWindow it was the name of my TaharezLook/FrameWindow).
CEGUI::UnknownObjectException in function 'CEGUI::NamedElement* CEGUI::NamedElement::getChildElement(const CEGUI::String&) const' (/home/david/git/dependencies_hosted/cegui_07_18_15/cegui/src/NamedElement.cpp:150) : The Element object referenced by '__auto_titlebar__' is not attached to Element at 'SamplesFrameWindow'. CEGUI::InvalidRequestException in function 'void CEGUI::GUILayout_xmlHandler::elementWindowStart(const CEGUI::XMLAttributes&)' (/home/david/git/dependencies_hosted/cegui_07_18_15/cegui/src/GUILayout_xmlHandler.cpp:250) : layout loading has been aborted since no WindowFactory is available for 'SampleBrowserSkin/FrameWindow' objects.
For now i reverted back to revision bbf77fd9b which seems to work fine. The first revision that fails with this error (with compiling successfully) bbfbdff98. I believe that the error maybe introduced within those revision numbers
I have been debugging this to find that the getTitleBar is being called (isTitleBarEnabled from the FrameWindow) and it is expected not to be null. It is null and causing segfault. This seems to be happening when loading the layout file. I believe that the FrameWindow loads 2 child windows. One type is a title bar and the other type is a close button. When the close button is being added to the parent it appears to call updateGeometryRenderSettings. this in turn then tries to access the isTitleBarEnabled method causing the segfault. Typically was the TitleBar window supposed to be added first? Could it have something to do with the unordered_map vs map changes?
I marked this as major because it appears to crash the demo and any applications that use a FrameWindow. Please change if it is not affected others.
I attached the CEGUI.log file.