Same code, new PC, CEGUI Stopped working?

For help with general CEGUI usage:
- Questions about the usage of CEGUI and its features, if not explained in the documentation.
- Problems with the CMAKE configuration or problems occuring during the build process/compilation.
- Errors or unexpected behaviour.

Moderators: CEGUI MVP, CEGUI Team

Illiander
Not too shy to talk
Not too shy to talk
Posts: 21
Joined: Mon Sep 06, 2010 20:03

Same code, new PC, CEGUI Stopped working?

Postby Illiander » Tue Nov 10, 2015 17:15

Symptoms:

On my old computer, I had a project that used CEGUI, and CEGUI was working just fine.
On my new computer (same hardware, OS updated with clean reinstall) all I get is a small square in the window colour in the middle of my opengl window.

Code hasn't changed. CEGUI version may have increased.

OS is Gentoo, and CEGUI isn't throwing me error messages (at least, none that I can see).

Relevent bits of code (a lot of the initialisation stuff for TaharezLook came direct from a tutorial):

Code: Select all

#include <CEGUI/CEGUI.h>
#include <CEGUI/RendererModules/OpenGL/GL3Renderer.h>

class CEGUIHandler
{
public:
    CEGUIHandler();
    ~CEGUIHandler();

    CEGUI::Window* init(std::string base);
    CEGUI::Window* get_base(std::string base);

    CEGUI::Editbox* getActiveEditbox();

    void set_mode(std::string base);

    void hello_window(std::string base);

    void menu(std::string base);

    void model_viewer(std::string base);

private:
    std::map<std::string, CEGUI::Window*> roots;
};

//****************** header/implementation file split *******************

#include <CEGUI/System.h>

CEGUIHandler::CEGUIHandler()
{
    /*CEGUI::OpenGL3Renderer& myRenderer =*/ CEGUI::OpenGL3Renderer::bootstrapSystem();
    //CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();

    // initialise the required dirs for the DefaultResourceProvider
    CEGUI::DefaultResourceProvider* rp = static_cast<CEGUI::DefaultResourceProvider*>
    (CEGUI::System::getSingleton().getResourceProvider());
    rp->setResourceGroupDirectory("schemes", "/usr/share/cegui-0/schemes/");
    rp->setResourceGroupDirectory("imagesets", "/usr/share/cegui-0/imagesets/");
    rp->setResourceGroupDirectory("fonts", "/usr/share/cegui-0/fonts/");
    rp->setResourceGroupDirectory("layouts", "/usr/share/cegui-0/layouts/");
    rp->setResourceGroupDirectory("looknfeels", "/usr/share/cegui-0/looknfeel/");
    rp->setResourceGroupDirectory("lua_scripts", "/usr/share/cegui-0/lua_scripts/");
    // This is only really needed if you are using Xerces and need to
    // specify the schemas location
    rp->setResourceGroupDirectory("schemas", "/usr/share/cegui-0/xml_schemas/");


    // set the default resource groups to be used
    CEGUI::ImageManager::setImagesetDefaultResourceGroup("imagesets");
    CEGUI::Font::setDefaultResourceGroup("fonts");
    CEGUI::Scheme::setDefaultResourceGroup("schemes");
    CEGUI::WidgetLookManager::setDefaultResourceGroup("looknfeels");
    CEGUI::WindowManager::setDefaultResourceGroup("layouts");
    CEGUI::ScriptModule::setDefaultResourceGroup("lua_scripts");
    // setup default group for validation schemas
    CEGUI::XMLParser* parser = CEGUI::System::getSingleton().getXMLParser();
    if (parser->isPropertyPresent("SchemaDefaultResourceGroup"))
        parser->setProperty("SchemaDefaultResourceGroup", "schemas");
    // create (load) the TaharezLook scheme file
    // (this auto-loads the TaharezLook looknfeel and imageset files)
    CEGUI::SchemeManager::getSingleton().createFromFile( "TaharezLook.scheme" );
    // create (load) a font.
    // The first font loaded automatically becomes the default font, but note
    // that the scheme might have already loaded a font, so there may already
    // be a default set - if we want the "DejaVuSans-10" font to definitely
    // be the default, we should set the default explicitly afterwards.
    CEGUI::FontManager::getSingleton().createFromFile( "DejaVuSans-10.font" );

    CEGUI::System::getSingleton().getDefaultGUIContext().getMouseCursor().setDefaultImage( "TaharezLook/MouseArrow" );
    CEGUI::System::getSingleton().getDefaultGUIContext().setDefaultTooltipType( "TaharezLook/Tooltip" );
}

CEGUI::Window* CEGUIHandler::init(std::string base)
{
    CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();

    CEGUI::Window* myRoot = wmgr.createWindow( "DefaultWindow", "root" );
    myRoot->setMousePassThroughEnabled(true);
    CEGUI::System::getSingleton().getDefaultGUIContext().setRootWindow( myRoot );
    myRoot->setPosition( CEGUI::UVector2( CEGUI::UDim( 0.0f, 0.0f ), CEGUI::UDim( 0.0f, 0.0f ) ) );
    myRoot->setSize( CEGUI::USize( CEGUI::UDim( 1.0f, 0.0f ), CEGUI::UDim( 1.0f, 0.0f ) ) );

    roots[base] = myRoot;

    return myRoot;
}

void CEGUIHandler::set_mode(std::string base)
{
    CEGUI::System::getSingleton().getDefaultGUIContext().setRootWindow( roots[base] );
}

CEGUI::Window* CEGUIHandler::get_base(std::string base)
{
    if (roots.find(base) != roots.end())
        return roots[base];
    else
        return 0;
}

void CEGUIHandler::menu(std::string base)
{
    CEGUI::Window* myRoot = roots[base];
    CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();

    CEGUI::FrameWindow* fWnd = static_cast<CEGUI::FrameWindow*>(wmgr.createWindow( "TaharezLook/FrameWindow", "MenuWindow" ));
    myRoot->addChild( fWnd );
    fWnd->setPosition( CEGUI::UVector2( CEGUI::UDim( 0.25f, 0.0f ), CEGUI::UDim( 0.25f, 0.0f ) ) );
    fWnd->setSize( CEGUI::USize( CEGUI::UDim( 0.5f, 0.0f ), CEGUI::UDim( 0.5f, 0.0f ) ) );
    fWnd->setText( "Main Menu" );

    CEGUI::Window* viewer_button = CEGUI::WindowManager::getSingleton().createWindow("TaharezLook/Button","ViewerButton");
    viewer_button->setPosition(CEGUI::UVector2(CEGUI::UDim(0.25,0),CEGUI::UDim(0.25,0)));
    viewer_button->setSize(CEGUI::USize(CEGUI::UDim(0,100),CEGUI::UDim(0,25)));
    viewer_button->setText("Model Viewer");
    fWnd->addChild(viewer_button);

    CEGUI::Window* demo_button = CEGUI::WindowManager::getSingleton().createWindow("TaharezLook/Button","DemoButton");
    demo_button->setPosition(CEGUI::UVector2(CEGUI::UDim(0.25,0),CEGUI::UDim(0.50,0)));
    demo_button->setSize(CEGUI::USize(CEGUI::UDim(0,50),CEGUI::UDim(0,25)));
    demo_button->setText("Demo");
    fWnd->addChild(demo_button);

    CEGUI::Window* exit_button = CEGUI::WindowManager::getSingleton().createWindow("TaharezLook/Button","ExitButton");
    exit_button->setPosition(CEGUI::UVector2(CEGUI::UDim(0.25,0),CEGUI::UDim(0.75,0)));
    exit_button->setSize(CEGUI::USize(CEGUI::UDim(0,50),CEGUI::UDim(0,25)));
    exit_button->setText("Exit");
    fWnd->addChild(exit_button);
}


I've got this all sequestered away in one class because it doesn't/didn't play nicely with the XWindows initialisation stuff, which is also sequestered away in it's own class. I'll probably split out the "make a new set of CEGUI bits" code at some point, into a selection of classes, but that's not really important if I can't get CEGUI windows to show up properly at all.

What's changed?/what have I messed up?/What other information do I need to fix this?

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Same code, new PC, CEGUI Stopped working?

Postby Ident » Thu Nov 12, 2015 20:07

Use v0-8, you probably have an updated version of glm that causes this, it is fixed in latest v0-8 branch. Tell me if this fixed it. I am pushing our 0.8.5 release forward, it needs to be released asap because it fixes breaking issues like this one.
CrazyEddie: "I don't like GUIs"

Illiander
Not too shy to talk
Not too shy to talk
Posts: 21
Joined: Mon Sep 06, 2010 20:03

Re: Same code, new PC, CEGUI Stopped working?

Postby Illiander » Fri Nov 13, 2015 12:44

Yup, I'm using cegui 0.8.4 (and glm 0.9.6.1, in case that's a useful datapoint)

What's the download url for v0-8? (mirror://sourceforge/crayzedsgui/cegui-0.8.3.tar.bz2 and mirror://sourceforge/crayzedsgui/cegui-0.8.2.tar.bz2 didn't work, and they're the only two post 0.8 ebuilds I could find)

I don't really want to wait for the gentoo devs to get a 0.8.5 ebuild together, as not having the gui work is a pretty big stumbling block for development, but I also want to keep cegui handled by my package manager, because not doing that will lead to madness.


It *is* reassuring to know it wasn't something I broke though. :-/

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Same code, new PC, CEGUI Stopped working?

Postby Ident » Fri Nov 13, 2015 12:49

CrazyEddie: "I don't like GUIs"

Illiander
Not too shy to talk
Not too shy to talk
Posts: 21
Joined: Mon Sep 06, 2010 20:03

Re: Same code, new PC, CEGUI Stopped working?

Postby Illiander » Fri Nov 13, 2015 18:56

Thanks, got that installed, but now it's not playing nicely with something else and refusing to even compile.

First error is:

Code: Select all

/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional: In instantiation of '_Result std::_Bind<_Functor(_Bound_args ...)>::__call(std::tuple<_Args2 ...>&&, std::_Index_tuple<_Indexes ...>) [with _Result = bool; _Args = {}; long unsigned int ..._Indexes = {0ul}; _Functor = std::_Mem_fn<void (ModelViewer::*)()>; _Bound_args = {ModelViewer*}]':
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional:1355:24:   required from '_Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) [with _Args = {}; _Result = bool; _Functor = std::_Mem_fn<void (ModelViewer::*)()>; _Bound_args = {ModelViewer*}]'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:91:41:   required by substitution of 'template<class U> static CEGUI::FunctorCopySlot_detail::Yes CEGUI::FunctorCopySlot_detail::HasBoolNoArgsOp<T>::Test(CEGUI::FunctorCopySlot_detail::HasBoolNoArgsOp<T>::SFINAE<U, (& U:: operator())>*) [with U = U; T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>] [with U = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]'


The stack of includes that throws that error expands out to this (I think) (I removed duplicates for clarity, and including something a second time "should" be a no-op):

Code: Select all

#include <functional>
#include <boost/date_time.hpp>
#include <vector>
#include <string>
#include <event2/bufferevent.h>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/array.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/serialization/map.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/list.hpp>
#include <boost/serialization/version.hpp>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#define GLEW_STATIC
#include <GL/glew.h>
#include <GL/glu.h>
#define GLM_FORCE_RADIANS
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <map>
#include <list>
#include <boost/thread.hpp>
#include <CEGUI/CEGUI.h>
#include <CEGUI/RendererModules/OpenGL/GL3Renderer.h>


Anything there jump out as a know issue? I am using boost function pointers in my code, but it seems that the error is getting thrown before the compiler even gets there.

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Same code, new PC, CEGUI Stopped working?

Postby Ident » Fri Nov 13, 2015 19:08

Martin changed something about bindings which caused problems with boost binding, I thought this was fixed. I just informed Martin of your problem.
CrazyEddie: "I don't like GUIs"

User avatar
Kulik
CEGUI Team
Posts: 1382
Joined: Mon Jul 26, 2010 18:47
Location: Czech Republic
Contact:

Re: Same code, new PC, CEGUI Stopped working?

Postby Kulik » Sat Nov 14, 2015 17:09

Paste the full error message please, the main part of it is missing.

Illiander
Not too shy to talk
Not too shy to talk
Posts: 21
Joined: Mon Sep 06, 2010 20:03

Re: Same code, new PC, CEGUI Stopped working?

Postby Illiander » Sat Nov 14, 2015 21:04

This is my entire compiler output, hopefully I won't have missed anything this time, but it will include several copies of the error messages I'm getting.

Sorry about that, but better too much than too little, right?

Code: Select all

-------------- Build: Debug in Engine (compiler: GNU GCC Compiler)---------------

g++ -Wall -fexceptions -std=gnu++0x -g -I../../include -I../../src -I../../geom/include -I../../geom/src -I../../4x/include -I../../4x/src -I/usr/include/freetype2 -I/usr/include -I/usr/include/cegui-0 -I/usr/include/assimp -I/usr/include/ImageMagick-6 -Iinclude -c /home/illy/Documents/Game_Concepts/Engine/4x/src/model_viewer.cpp -o obj/Debug/4x/src/model_viewer.o
In file included from ../../include/game_event.h:4:0,
                 from ../../include/../4x/include/model_viewer.h:4,
                 from /home/illy/Documents/Game_Concepts/Engine/4x/src/model_viewer.cpp:1:
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional: In instantiation of '_Result std::_Bind<_Functor(_Bound_args ...)>::__call(std::tuple<_Args2 ...>&&, std::_Index_tuple<_Indexes ...>) [with _Result = bool; _Args = {}; long unsigned int ..._Indexes = {0ul}; _Functor = std::_Mem_fn<void (ModelViewer::*)()>; _Bound_args = {ModelViewer*}]':
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional:1355:24:   required from '_Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) [with _Args = {}; _Result = bool; _Functor = std::_Mem_fn<void (ModelViewer::*)()>; _Bound_args = {ModelViewer*}]'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:91:41:   required by substitution of 'template<class U> static CEGUI::FunctorCopySlot_detail::Yes CEGUI::FunctorCopySlot_detail::HasBoolNoArgsOp<T>::Test(CEGUI::FunctorCopySlot_detail::HasBoolNoArgsOp<T>::SFINAE<U, (& U:: operator())>*) [with U = U; T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>] [with U = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:93:46:   required from 'const bool CEGUI::FunctorCopySlot_detail::HasBoolNoArgsOp<std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)> >::Value'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:117:12:   required from 'struct CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolNoArgsOp<std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)> >, void>'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:223:17:   required by substitution of 'template<class T> bool CEGUI::FunctorCopySlot_detail::call(const T&, void (T::*)()const, const CEGUI::EventArgs&, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolEventArgsConstOp<T> >::Type*, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolEventArgsOp<T> >::Type*, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasVoidEventArgsConstOp<T> >::Type*, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasVoidEventArgsOp<T> >::Type*, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolNoArgsConstOp<T> >::Type*, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolNoArgsOp<T> >::Type*, void*) [with T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:268:79:   required from 'bool CEGUI::FunctorCopySlot<T>::operator()(const CEGUI::EventArgs&) [with T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]'
/home/illy/Documents/Game_Concepts/Engine/4x/src/model_viewer.cpp:232:1:   required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional:1296:50: error: void value not ignored as it ought to be
         (get<_Indexes>(_M_bound_args), __args)...);
                                                  ^
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional: In instantiation of '_Result std::_Bind<_Functor(_Bound_args ...)>::__call_c(std::tuple<_Args2 ...>&&, std::_Index_tuple<_Indexes ...>) const [with _Result = bool; _Args = {}; long unsigned int ..._Indexes = {0ul}; _Functor = std::_Mem_fn<void (ModelViewer::*)()>; _Bound_args = {ModelViewer*}]':
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional:1369:24:   required from '_Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) const [with _Args = {}; _Result = bool; _Functor = std::_Mem_fn<void (ModelViewer::*)()>; _Bound_args = {ModelViewer*}]'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:82:41:   required by substitution of 'template<class U> static CEGUI::FunctorCopySlot_detail::Yes CEGUI::FunctorCopySlot_detail::HasBoolNoArgsConstOp<T>::Test(CEGUI::FunctorCopySlot_detail::HasBoolNoArgsConstOp<T>::SFINAE<U, (& U:: operator())>*) [with U = U; T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>] [with U = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:84:46:   required from 'const bool CEGUI::FunctorCopySlot_detail::HasBoolNoArgsConstOp<std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)> >::Value'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:117:12:   required from 'struct CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolNoArgsConstOp<std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)> >, void>'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:209:17:   required by substitution of 'template<class T> bool CEGUI::FunctorCopySlot_detail::call(T&, bool (T::*)(), const CEGUI::EventArgs&, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolEventArgsConstOp<T> >::Type*, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolEventArgsOp<T> >::Type*, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasVoidEventArgsConstOp<T> >::Type*, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasVoidEventArgsOp<T> >::Type*, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolNoArgsConstOp<T> >::Type*, void*, void*) [with T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:268:79:   required from 'bool CEGUI::FunctorCopySlot<T>::operator()(const CEGUI::EventArgs&) [with T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]'
/home/illy/Documents/Game_Concepts/Engine/4x/src/model_viewer.cpp:232:1:   required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional:1305:50: error: void value not ignored as it ought to be
         (get<_Indexes>(_M_bound_args), __args)...);
                                                  ^
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional: In instantiation of '_Result std::_Bind<_Functor(_Bound_args ...)>::__call(std::tuple<_Args2 ...>&&, std::_Index_tuple<_Indexes ...>) [with _Result = bool; _Args = {const CEGUI::EventArgs&}; long unsigned int ..._Indexes = {0ul}; _Functor = std::_Mem_fn<void (ModelViewer::*)()>; _Bound_args = {ModelViewer*}]':
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional:1355:24:   required from '_Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) [with _Args = {const CEGUI::EventArgs&}; _Result = bool; _Functor = std::_Mem_fn<void (ModelViewer::*)()>; _Bound_args = {ModelViewer*}]'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:55:41:   required by substitution of 'template<class U> static CEGUI::FunctorCopySlot_detail::Yes CEGUI::FunctorCopySlot_detail::HasBoolEventArgsOp<T>::Test(CEGUI::FunctorCopySlot_detail::HasBoolEventArgsOp<T>::SFINAE<U, (& U:: operator())>*) [with U = U; T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>] [with U = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:57:46:   required from 'const bool CEGUI::FunctorCopySlot_detail::HasBoolEventArgsOp<std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)> >::Value'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:117:12:   required from 'struct CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolEventArgsOp<std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)> >, void>'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:165:17:   required by substitution of 'template<class T> bool CEGUI::FunctorCopySlot_detail::call(const T&, void (T::*)(const CEGUI::EventArgs&)const, const CEGUI::EventArgs&, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolEventArgsConstOp<T> >::Type*, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolEventArgsOp<T> >::Type*, void*, void*, void*, void*, void*) [with T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:268:79:   required from 'bool CEGUI::FunctorCopySlot<T>::operator()(const CEGUI::EventArgs&) [with T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]'
/home/illy/Documents/Game_Concepts/Engine/4x/src/model_viewer.cpp:232:1:   required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional:1296:50: error: void value not ignored as it ought to be
         (get<_Indexes>(_M_bound_args), __args)...);
                                                  ^
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional: In instantiation of '_Result std::_Bind<_Functor(_Bound_args ...)>::__call_c(std::tuple<_Args2 ...>&&, std::_Index_tuple<_Indexes ...>) const [with _Result = bool; _Args = {const CEGUI::EventArgs&}; long unsigned int ..._Indexes = {0ul}; _Functor = std::_Mem_fn<void (ModelViewer::*)()>; _Bound_args = {ModelViewer*}]':
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional:1369:24:   required from '_Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) const [with _Args = {const CEGUI::EventArgs&}; _Result = bool; _Functor = std::_Mem_fn<void (ModelViewer::*)()>; _Bound_args = {ModelViewer*}]'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:46:41:   required by substitution of 'template<class U> static CEGUI::FunctorCopySlot_detail::Yes CEGUI::FunctorCopySlot_detail::HasBoolEventArgsConstOp<T>::Test(CEGUI::FunctorCopySlot_detail::HasBoolEventArgsConstOp<T>::SFINAE<U, (& U:: operator())>*) [with U = U; T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>] [with U = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:48:46:   required from 'const bool CEGUI::FunctorCopySlot_detail::HasBoolEventArgsConstOp<std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)> >::Value'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:117:12:   required from 'struct CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolEventArgsConstOp<std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)> >, void>'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:151:17:   required by substitution of 'template<class T> bool CEGUI::FunctorCopySlot_detail::call(T&, bool (T::*)(const CEGUI::EventArgs&), const CEGUI::EventArgs&, typename CEGUI::FunctorCopySlot_detail::DisableIf<CEGUI::FunctorCopySlot_detail::HasBoolEventArgsConstOp<T> >::Type*, void*, void*, void*, void*, void*, void*) [with T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]'
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:268:79:   required from 'bool CEGUI::FunctorCopySlot<T>::operator()(const CEGUI::EventArgs&) [with T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]'
/home/illy/Documents/Game_Concepts/Engine/4x/src/model_viewer.cpp:232:1:   required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.5/include/g++-v4/functional:1305:50: error: void value not ignored as it ought to be
         (get<_Indexes>(_M_bound_args), __args)...);
                                                  ^
Process terminated with status 1 (0 minute(s), 3 second(s))
12 error(s), 24 warning(s) (0 minute(s), 3 second(s))

Illiander
Not too shy to talk
Not too shy to talk
Posts: 21
Joined: Mon Sep 06, 2010 20:03

Re: Same code, new PC, CEGUI Stopped working?

Postby Illiander » Wed Nov 25, 2015 09:43

Well, I tried pulling the <functional> includes away from the CEGUI includes, but I'm using them too intertwined for that to be possible.

Any news on fixing this at the CEGUI end?

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Same code, new PC, CEGUI Stopped working?

Postby Ident » Wed Nov 25, 2015 19:10

Martin is looking into it, things are complicated and he is scheduling very little time on CEGUI currently so we have to wait until he gets to looking at it. I have no clue about it so I cant do anything here and I dont wanna look into this since I have other tasks for CEGUI open.

The issue is also the reason we didn't release 0.8.5 yet
CrazyEddie: "I don't like GUIs"

Illiander
Not too shy to talk
Not too shy to talk
Posts: 21
Joined: Mon Sep 06, 2010 20:03

Re: Same code, new PC, CEGUI Stopped working?

Postby Illiander » Fri Dec 04, 2015 17:02

Ok, this is looking like it will take longer than I have to fix, so I guess I'll downgrade for now.

What's the last known version of glm that works?

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Same code, new PC, CEGUI Stopped working?

Postby Ident » Fri Dec 04, 2015 18:59

0.9.4

Afterwards the warning for removal of GLM_FORCE_RADIANS was introduced.

Sorry for the inconvenience!
CrazyEddie: "I don't like GUIs"

Illiander
Not too shy to talk
Not too shy to talk
Posts: 21
Joined: Mon Sep 06, 2010 20:03

Re: Same code, new PC, CEGUI Stopped working?

Postby Illiander » Sat Dec 05, 2015 13:05

I rolled back to glm 0.9.3.2 (latest pre0.9.4 that's easily accessible on Gentoo), and am still getting similar issues.

Those ones seemed to be from my boost version. (Errors were popping up on the boost/date_time include)

So I rolled back to boost 1.52 and cegui 0.8.4 (both the earliest still on the main Gentoo tree (other than a cegui 0.6.2, which I think is pre-falagard skinning?)) and am only getting one error:

Code: Select all

g++ -Wall -fexceptions -std=gnu++0x -g -I../../include -I../../src -I../../geom/include -I../../geom/src -I../../4x/include -I../../4x/src -I/usr/include/freetype2 -I/usr/include -I/usr/include/cegui-0 -I/usr/include/assimp -I/usr/include/ImageMagick-6 -Iinclude -c /home/illy/Documents/Game_Concepts/Engine/4x/src/model_viewer.cpp -o obj/Debug/4x/src/model_viewer.o
In file included from /usr/include/cegui-0/CEGUI/SubscriberSlot.h:32:0,
                 from /usr/include/cegui-0/CEGUI/BoundSlot.h:31,
                 from /usr/include/cegui-0/CEGUI/Event.h:31,
                 from /usr/include/cegui-0/CEGUI/AnimationInstance.h:33,
                 from /usr/include/cegui-0/CEGUI/CEGUI.h:35,
                 from ../../include/CEGUIHandler.h:4,
                 from /home/illy/Documents/Game_Concepts/Engine/4x/src/model_viewer.cpp:3:
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h: In instantiation of 'bool CEGUI::FunctorCopySlot<T>::operator()(const CEGUI::EventArgs&) [with T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]':
/home/illy/Documents/Game_Concepts/Engine/4x/src/model_viewer.cpp:241:1:   required from here
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:50:30: error: void value not ignored as it ought to be
         return d_functor(args);
                              ^
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h: In member function 'bool CEGUI::FunctorCopySlot<T>::operator()(const CEGUI::EventArgs&) [with T = std::_Bind<std::_Mem_fn<void (ModelViewer::*)()>(ModelViewer*)>]':
/usr/include/cegui-0/CEGUI/FunctorCopySlot.h:51:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^


Now, I remember having some issues with <functional> and void returns before, so it might just be I need to swap something back to returning a dummy int, but given the location of the bug, I'm not so sure.

I'll take another look through my own code next week and see if I can fix it at my end, otherwise I guess I'll have to go dig up a cegui 0.8.3 or something.

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: Same code, new PC, CEGUI Stopped working?

Postby Ident » Sat Dec 05, 2015 13:15

0.8.4 doesnt have the boost::function issues. Or at least that would be news to me. What are you using now?
CrazyEddie: "I don't like GUIs"

Illiander
Not too shy to talk
Not too shy to talk
Posts: 21
Joined: Mon Sep 06, 2010 20:03

Re: Same code, new PC, CEGUI Stopped working?

Postby Illiander » Sat Dec 05, 2015 16:39

Cegui 0.8.4

Boost 1.52.0

glm 0.9.3.2

edit: And I just went through and swapped out all my void returning functors with dummy int returns, just to be sure, that last compile error is still there.
Last edited by Illiander on Sat Dec 05, 2015 16:53, edited 1 time in total.


Return to “Help”

Who is online

Users browsing this forum: No registered users and 23 guests