Git Product home page Git Product logo

mygui's Introduction

mygui's People

Contributors

acmepjz avatar adriankhl avatar akortunov avatar altren avatar aptakhin avatar arcnor avatar assumeru avatar autoantwort avatar cholerix avatar deniskoronchik avatar glebm avatar h3xx avatar hiradur avatar jushar avatar kacprzak avatar lanodan avatar maqifrnswa avatar mitra-projects avatar mynameco avatar paroj avatar psi29a avatar scarletts avatar sercero avatar skopanev avatar snoutmate avatar spire42 avatar susnux avatar valpackett avatar vlosev avatar xzwang2005 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mygui's Issues

CMAKE_INSTALL_PREFIX not working correctly on OS X

I'm using OS X 10.10 and the ogre2 branch, I'm compiling MyGUI from the command line.

I set CMAKE_INSTALL_PREFIX on the command line this way

cmake -DCMAKE_INSTALL_PREFIX="~/install"

But MyGUI still tries to install some files to the system directory:

[ 95%] Built target MyGUIEngine
[100%] Built target MyGUI.OgrePlatform
Install the project...
-- Install configuration: "RelWithDebInfo"
-- Up-to-date: /Users/hiradur/install/lib/pkgconfig/MYGUI.pc
-- Installing: /Library/Frameworks/MyGUIEngine.framework
CMake Error at MyGUIEngine/cmake_install.cmake:60 (file):
  file INSTALL cannot make directory
  "/Library/Frameworks/MyGUIEngine.framework": Permission denied
Call Stack (most recent call first):
  cmake_install.cmake:36 (include)

make: *** [install] Error 1

EDIT: The problem is originating from CMake/Utils/MyGUIConfigTargets.cmake. I'll see if I can fix it.

VAO binding error using Ogre with GL 3.3

We have been moving to a exclusive GL 3.3 renderer, which has been available in Ogre since version 1.9 (and finally is maturing in 1.10 and 2.x), but currently there is a issue where GL_INVALID_OPERATOR with Array object is not active.
OpenGL 3.3 and above requires a attached Vertex Array Object to be attached before rendering.

Ogre 2.1 will also drop GL 2.1 support, and since GL 3.3 becomes more standard, it might be a good idea to get this working.

OpenGL tutorials

Can you show a page with OpenGL tutorials?

If no can you sketch here several main steps how to use MyGui with OpenGL?

Like who initialize glew, what interfaces must be should be implemented, order of calls, ....

MyGUI-3.2.0 Can not found resource under Linux.

BUG Can not found resource under Linux.

FILE:
MyGUI_OpenGLDataManager.cpp

METHOD:
const std::string& OpenGLDataManager::getDataPath(const std::string& _name)
{
static std::string path;
VectorString result;
common::VectorWString wresult;

for (VectorArhivInfo::const_iterator item = mPaths.begin(); item != mPaths.end(); ++item)
{
common::scanFolder(wresult, (_item).name, (_item).recursive, MyGUI::UString(_name).asWStr(), true);
}

// FIXED! HERE
for (common::VectorWString::const_iterator item = wresult.begin(); item != wresult.end(); ++item)
{

if MYGUI_PLATFORM == MYGUI_PLATFORM_WIN32

result.push_back(MyGUI::UString(*item).asUTF8());

else

std::string full_name = MyGUI::UString(*item).asUTF8();
std::string temp = full_name.substr(full_name.length() – _name.length());

if (temp == _name)
result.push_back(MyGUI::UString(*item).asUTF8());

endif

}

path = result.size() == 1 ? result[0] : “”;
return path;
}

RenderItem memory leak

Reusing RenderItems relies on updateCompression(), which is only called in renderToTarget. If the application is not currently rendering (e.g. when the window is minimized), this will not work.

Test case in Demo_Colour (leak 300 MB/s on my machine):
Note I added mWindow->setVisible(false) so you don't have to minimize it.

diff --git a/Common/Base/Ogre/BaseManager.cpp b/Common/Base/Ogre/BaseManager.cpp
index aa7496e..44d8ea3 100644
--- a/Common/Base/Ogre/BaseManager.cpp
+++ b/Common/Base/Ogre/BaseManager.cpp
@@ -150,6 +150,7 @@ namespace base
        while (true)
        {
            Ogre::WindowEventUtilities::messagePump();
+           mWindow->setVisible(false);
 
            if (mWindow->isActive() == false)
            {
@@ -268,6 +269,8 @@ namespace base
 
        captureInput();
 
+       onFrame();
+
        return true;
    }
 
diff --git a/Common/Base/Ogre/BaseManager.h b/Common/Base/Ogre/BaseManager.h
index 856d2e9..7e3cc37 100644
--- a/Common/Base/Ogre/BaseManager.h
+++ b/Common/Base/Ogre/BaseManager.h
@@ -57,6 +57,8 @@ namespace base
        virtual void createScene() { }
        virtual void destroyScene() { }
 
+       virtual void onFrame() {}
+
        virtual void setupResources();
 
        virtual void injectMouseMove(int _absx, int _absy, int _absz);
diff --git a/Demos/Demo_Colour/DemoKeeper.cpp b/Demos/Demo_Colour/DemoKeeper.cpp
index b2cd332..afbed7c 100644
--- a/Demos/Demo_Colour/DemoKeeper.cpp
+++ b/Demos/Demo_Colour/DemoKeeper.cpp
@@ -37,6 +37,10 @@ namespace demo
        mEditPanel = new EditPanel();
 
        mColourPanel->eventColourAccept = MyGUI::newDelegate(this, &DemoKeeper::notifyColourAccept);
+
+       mParent = MyGUI::Gui::getInstance().createWidget("Widget", 0, 0, 42, 42, MyGUI::Align::Default, "Overlapped");
+       mImage1 = mParent->createWidget("ImageBox", 0, 0, 42, 42, MyGUI::Align::Default);
+       mImage2 = mParent->createWidget("ImageBox", 0, 0, 42, 42, MyGUI::Align::Default);
    }
 
    void DemoKeeper::destroyScene()
@@ -45,6 +49,16 @@ namespace demo
        mEditPanel = nullptr;
        delete mColourPanel;
        mColourPanel = nullptr;
+
+       MyGUI::Gui::getInstance().destroyWidget(mParent);
+   }
+
+   void DemoKeeper::onFrame()
+   {
+       mImage1->setImageTexture("Pick.png");
+       mImage2->setImageTexture("Colours.png");
+       mImage1->setImageTexture("Colours.png");
+       mImage2->setImageTexture("Pick.png");
    }
 
    void DemoKeeper::notifyColourAccept(ColourPanel* _sender)
diff --git a/Demos/Demo_Colour/DemoKeeper.h b/Demos/Demo_Colour/DemoKeeper.h
index dc382b1..d171d2e 100644
--- a/Demos/Demo_Colour/DemoKeeper.h
+++ b/Demos/Demo_Colour/DemoKeeper.h
@@ -22,6 +22,9 @@ namespace demo
        virtual void createScene();
        virtual void destroyScene();
 
+   protected:
+       virtual void onFrame();
+
    private:
        void notifyColourAccept(ColourPanel* _sender);
        virtual void setupResources();
@@ -29,6 +32,10 @@ namespace demo
    private:
        ColourPanel* mColourPanel;
        EditPanel* mEditPanel;
+
+      MyGUI::Widget* mParent;
+      MyGUI::ImageBox* mImage1;
+      MyGUI::ImageBox* mImage2;
    };
 
 } // namespace demo

Fix suggestion: call updateCompression() in LayerNode::addToRenderItem.

Flipped RTTLayer

Hi,

I believe this to be a bug. If you need more code examples, I can provide them.

I have multiple RTTLayers in the scene.
I use the new LayerManager::createLayerAt function to create them on the fly.

The first layer (which holds content on it), is - for some reason - flipped vertically. By first layer, I mean mLayerNodes[0].

Layers which are empty (to be filled later) don't seem to be affected by this (?).

Here's a screenshot showing the issue (Front, small texture is correct, back texture is flipped).
screenshot05262015_202328854

For now, my (very ugly) workaround is to create a texture which is not shown before creating other textures.

Use native glew distribution

In file included from Platforms/OpenGL/OpenGLPlatform/include/GL/glew.c:32:0:
Platforms/OpenGL/OpenGLPlatform/include/GL/glew.h:135:9: error: unknown type name '__int64'
typedef __int64 ptrdiff_t;
^
In file included from Platforms/OpenGL/OpenGLPlatform/include/GL/glew.h:1123:0,
from Platforms/OpenGL/OpenGLPlatform/include/GL/glew.c:32:
D:/Software/Msys2/mingw64/x86_64-w64-mingw32/include/GL/glu.h:25:7: error: unknown type name 'wchar_t'
const wchar_t *APIENTRY gluErrorUnicodeStringEXT(GLenum errCode);
^
ninja: build stopped: subcommand failed.

Snap windows to screen edges when resizing

From the OpenMW bugtracker:

"When moving windows, they snap to the edges of the screen. When resizing a window, however, it doesn't do the same, and it takes some pixel precision with the mouse in order to get the border lined up with the screen. This can create the case where one of the edges isn't quite visible since it's off the screen.

Not a big issue, just an OCD-inducing one. Invoking the same behaviour here as with moving windows would make interface behaviour that little bit more consistent, though."

UnitTest_AttachDetach crashes on some mouse clicks

To reproduce, launch UnitTest_AttachDetach and randomly click with the mouse until it hits something (I think it's the window close button). It crashes with an exception:

item not found
An exception has occured : MyGUI EXCEPTION : item not found
 in MyGUI at /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_LayerItem.cpp (line 38)terminate called after throwing an instance of 'MyGUI::Exception'
  what():  MyGUI EXCEPTION : item not found
 in MyGUI at /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_LayerItem.cpp (line 38)
 

Stack trace:

0   __cxa_throw /usr/lib/x86_64-linux-gnu/libstdc++.so.6        0x7ffff6905a30  
1   MyGUI::LayerItem::removeChildItem   MyGUI_LayerItem.cpp 38  0x7ffff7a9b5be  
2   MyGUI::Widget::_updateChilds    MyGUI_Widget.cpp    1392    0x7ffff7b5d068  
3   MyGUI::Widget::addWidget    MyGUI_Widget.cpp    1377    0x7ffff7b5daf7  
4   MyGUI::Widget::_linkChildWidget MyGUI_Widget.cpp    1050    0x7ffff7b5fa1b  
5   MyGUI::Widget::attachToWidget   MyGUI_Widget.cpp    854 0x7ffff7b62edf  
6   MyGUI::Widget::setWidgetStyle   MyGUI_Widget.cpp    908 0x7ffff7b64dd3  
7   demo::step_change_type  DemoKeeper.cpp  242 0x411fe5    
8   demo::step_change_type  DemoKeeper.cpp  251 0x412045    
9   demo::DemoKeeper::notifyFrameStarted    DemoKeeper.cpp  320 0x413153    
10  operator()  MyGUI_DelegateImplement.h   290 0x7ffff7a79c90  
11  MyGUI::Gui::frameEvent  MyGUI_Gui.cpp   328 0x7ffff7a79c90  
12  MyGUI::OgreRenderManager::renderQueueStarted    MyGUI_OgreRenderManager.cpp 207 0x41f58f    

InputManager::eventChangeKeyFocus is not triggered in some cases

The following cases do not generate eventChangeKeyFocus:

  • The key focus widget is hidden by setVisible(false).
  • The key focus is manually changed using setKeyFocusWidget.

I know MyGUI's policy is usually to not generate events when they resulted from something the user has done. But maybe we can make an exception here?
Anyway, even ignoring that, I found 5 calls to setKeyFocusWidget from within MyGUI widgets, so this is a problem even within MyGUI itself (I did not check setVisible).

My personal use case for the event is to call SDL_StartTextInput or SDL_StopTextInput when an EditBox gains or loses key focus. Unfortunately this does not work if I manually changed widget focus using setKeyFocusWidget (event won't fire). Thus I had to create my own setKeyFocusWidget method that generates event and only then calls MyGUI::InputManager::setKeyFocusWidget. This is not a great solution, because it is still "possible" to bypass this and call the MyGUI setKeyFocusWidget method by mistake, resulting in subtle bugs.

Boost folder

Hi, the MyGUI doesn't found the Boost folder that I used to build Ogre: is there a CMake parameter to set?

Implement Tools and Demos build using OpenGL Render System on Linux

While targeting the Ogre Render System, everything compiles just fine with:

cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DMYGUI_RENDERSYSTEM=3 ../mygui; make -j8

as shown here:
https://travis-ci.org/psi29a/mygui/jobs/34474097

however using the OpenGL Render System, it bombs out because it requires windows.h and the rabbit hole goes downwards from there. Doing this:

cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DMYGUI_RENDERSYSTEM=4 ../mygui; make -j8

fails as shown here:
https://travis-ci.org/psi29a/mygui/jobs/34474098

The only way to make it through is to disable the tools and demos, as either would require compiling Common which is where the problem is.

cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DMYGUI_RENDERSYSTEM=4 -DMYGUI_BUILD_DEMOS=FALSE -DMYGUI_BUILD_TOOLS=FALSE ../mygui; make -j8

I would expect that I should be able to do both with demos and tools without requiring windows. Perhaps there is some misplaced #ifdef logic going on?

theme like the editor

hi!
the editor has a new theme?
it's possible to use it (or start modifying it) into my project?
thanks

Created widgets not cleaned up when window is not rendering

Make the following change to the test case I posted on #20:

diff --git a/Demos/Demo_Colour/DemoKeeper.cpp b/Demos/Demo_Colour/DemoKeeper.cpp
index afbed7c..44f92f8 100644
--- a/Demos/Demo_Colour/DemoKeeper.cpp
+++ b/Demos/Demo_Colour/DemoKeeper.cpp
@@ -55,10 +55,9 @@ namespace demo
 
    void DemoKeeper::onFrame()
    {
-       mImage1->setImageTexture("Pick.png");
-       mImage2->setImageTexture("Colours.png");
-       mImage1->setImageTexture("Colours.png");
-       mImage2->setImageTexture("Pick.png");
+       while (mImage1->getChildCount())
+           MyGUI::Gui::getInstance().destroyWidget(mImage1->getChildAt(0));
+       MyGUI::ImageBox* image = mImage1->createWidget("ImageBox", 0, 0, 42, 42, MyGUI::Align::Default);
    }
 
    void DemoKeeper::notifyColourAccept(ColourPanel* _sender)

Or, both in 1 patch, here: http://pastebin.com/gFBrjJXi

Demos failure

All demos start with runtime or mygui exceptions.

BaseManager for DummyPlatform does not compile on non-Windows

Compile MyGUI with RENDERSYSTEM = 1 and BUILD_DEMOS=1
Result:

/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.h:69:3: error: ‘HWND’ does not name a type
   HWND hWnd;
   ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.h:70:3: error: ‘HINSTANCE’ does not name a type
   HINSTANCE hInstance;
   ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:18:1: error: ‘LRESULT’ does not name a type
 LRESULT CALLBACK DXWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp: In constructor ‘base::BaseManager::BaseManager()’:
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:65:3: error: class ‘base::BaseManager’ does not have any field named ‘hWnd’
   hWnd(0),
   ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:66:3: error: class ‘base::BaseManager’ does not have any field named ‘hInstance’
   hInstance(nullptr),
   ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp: In member function ‘void base::BaseManager::_windowResized()’:
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:77:3: error: ‘RECT’ was not declared in this scope
   RECT rect = { 0, 0, 0, 0 };
   ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:77:8: error: expected ‘;’ before ‘rect’
   RECT rect = { 0, 0, 0, 0 };
        ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:78:17: error: ‘hWnd’ was not declared in this scope
   GetClientRect(hWnd, &rect);
                 ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:78:24: error: ‘rect’ was not declared in this scope
   GetClientRect(hWnd, &rect);
                        ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:78:28: error: ‘GetClientRect’ was not declared in this scope
   GetClientRect(hWnd, &rect);
                            ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp: In member function ‘bool base::BaseManager::create(int, int)’:
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:94:3: error: ‘WNDCLASS’ was not declared in this scope
   WNDCLASS wc =
   ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:94:12: error: expected ‘;’ before ‘wc’
   WNDCLASS wc =
            ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:99:18: error: ‘wc’ was not declared in this scope
   RegisterClass(&wc);
                  ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:99:20: error: ‘RegisterClass’ was not declared in this scope
   RegisterClass(&wc);
                    ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:102:3: error: ‘hWnd’ was not declared in this scope
   hWnd = CreateWindow(wc.lpszClassName, TEXT("Dummy Render Window"), WS_OVERLAPPED | WS_SYSMENU,
   ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:102:67: error: ‘TEXT’ was not declared in this scope
   hWnd = CreateWindow(wc.lpszClassName, TEXT("Dummy Render Window"), WS_OVERLAPPED | WS_SYSMENU,
                                                                   ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:102:70: error: ‘WS_OVERLAPPED’ was not declared in this scope
   hWnd = CreateWindow(wc.lpszClassName, TEXT("Dummy Render Window"), WS_OVERLAPPED | WS_SYSMENU,
                                                                      ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:102:86: error: ‘WS_SYSMENU’ was not declared in this scope
   hWnd = CreateWindow(wc.lpszClassName, TEXT("Dummy Render Window"), WS_OVERLAPPED | WS_SYSMENU,
                                                                                      ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:103:22: error: ‘SM_CXSCREEN’ was not declared in this scope
    (GetSystemMetrics(SM_CXSCREEN) - width) / 2, (GetSystemMetrics(SM_CYSCREEN) - height) / 2, width, height, GetDesktopWindow(), NULL, wc.hInstance, this);
                      ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:103:33: error: ‘GetSystemMetrics’ was not declared in this scope
    (GetSystemMetrics(SM_CXSCREEN) - width) / 2, (GetSystemMetrics(SM_CYSCREEN) - height) / 2, width, height, GetDesktopWindow(), NULL, wc.hInstance, this);
                                 ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:103:67: error: ‘SM_CYSCREEN’ was not declared in this scope
    (GetSystemMetrics(SM_CXSCREEN) - width) / 2, (GetSystemMetrics(SM_CYSCREEN) - height) / 2, width, height, GetDesktopWindow(), NULL, wc.hInstance, this);
                                                                   ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:103:127: error: ‘GetDesktopWindow’ was not declared in this scope
    (GetSystemMetrics(SM_CXSCREEN) - width) / 2, (GetSystemMetrics(SM_CYSCREEN) - height) / 2, width, height, GetDesktopWindow(), NULL, wc.hInstance, this);
                                                                                                                               ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:103:154: error: ‘CreateWindow’ was not declared in this scope
    (GetSystemMetrics(SM_CXSCREEN) - width) / 2, (GetSystemMetrics(SM_CYSCREEN) - height) / 2, width, height, GetDesktopWindow(), NULL, wc.hInstance, this);
                                                                                                                                                          ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:109:20: error: ‘SW_NORMAL’ was not declared in this scope
   ShowWindow(hWnd, SW_NORMAL);
                    ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:109:29: error: ‘ShowWindow’ was not declared in this scope
   ShowWindow(hWnd, SW_NORMAL);
                             ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:123:3: error: ‘hInstance’ was not declared in this scope
   hInstance = wc.hInstance;
   ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp: In member function ‘void base::BaseManager::run()’:
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:140:3: error: ‘MSG’ was not declared in this scope
   MSG msg;
   ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:140:7: error: expected ‘;’ before ‘msg’
   MSG msg;
       ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:143:24: error: ‘msg’ was not declared in this scope
    while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
                        ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:143:41: error: ‘PM_REMOVE’ was not declared in this scope
    while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
                                         ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:143:50: error: ‘PeekMessage’ was not declared in this scope
    while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
                                                  ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:145:26: error: ‘TranslateMessage’ was not declared in this scope
     TranslateMessage(&msg);
                          ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:146:25: error: ‘DispatchMessage’ was not declared in this scope
     DispatchMessage(&msg);
                         ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:150:13: error: ‘msg’ was not declared in this scope
    else if (msg.message == WM_QUIT)
             ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:150:28: error: ‘WM_QUIT’ was not declared in this scope
    else if (msg.message == WM_QUIT)
                            ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:155:24: error: ‘GetActiveWindow’ was not declared in this scope
    if (GetActiveWindow() != hWnd)
                        ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:155:29: error: ‘hWnd’ was not declared in this scope
    if (GetActiveWindow() != hWnd)
                             ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:156:5: error: ‘::Sleep’ has not been declared
     ::Sleep(50);
     ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp: In member function ‘void base::BaseManager::destroy()’:
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:170:7: error: ‘hWnd’ was not declared in this scope
   if (hWnd)
       ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:172:22: error: ‘DestroyWindow’ was not declared in this scope
    DestroyWindow(hWnd);
                      ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:176:35: error: ‘hInstance’ was not declared in this scope
   UnregisterClass(WND_CLASS_NAME, hInstance);
                                   ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:176:44: error: ‘UnregisterClass’ was not declared in this scope
   UnregisterClass(WND_CLASS_NAME, hInstance);
                                            ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp: In member function ‘size_t base::BaseManager::getWindowHandle()’:
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:213:18: error: ‘hWnd’ was not declared in this scope
   return (size_t)hWnd;
                  ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp: In member function ‘void base::BaseManager::setWindowCaption(const wstring&)’:
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:218:18: error: ‘hWnd’ was not declared in this scope
   SetWindowTextW(hWnd, _text.c_str());
                  ^
/home/scrawl/Dev/mygui/Common/Base/Dummy/BaseManager.cpp:218:37: error: ‘SetWindowTextW’ was not declared in this scope
   SetWindowTextW(hWnd, _text.c_str());

Split out libraries as shared libraries

Currently on Debian (and Ubuntu), we carry a patch around to split out the MyGUIEngine into separate shared libraries. In addition to this, we also correct the SOVERSION for these new shared libs.

Is it possible to make this the default behavior?

I haven't forked and asked for a PR because I wasn't sure how best this should be done or if needed to discuss it more.

Here is our patch:

Description: build the library as a shared library
Author: Scott Howard 

--- a/Platforms/Ogre/OgrePlatform/CMakeLists.txt
+++ b/Platforms/Ogre/OgrePlatform/CMakeLists.txt
@@ -8,11 +8,12 @@ include_directories(
 
 include(${PROJECTNAME}.list)
 
-add_library(${PROJECTNAME} ${HEADER_FILES} ${SOURCE_FILES})
+add_library(${PROJECTNAME} SHARED ${HEADER_FILES} ${SOURCE_FILES})
+set_target_properties(${PROJECTNAME} PROPERTIES VERSION 0debian1.0.0 SOVERSION 0debian1)
 
 add_dependencies(${PROJECTNAME} MyGUIEngine)
 
-target_link_libraries(${PROJECTNAME} ${OGRE_LIBRARIES})
+target_link_libraries(${PROJECTNAME} ${OGRE_LIBRARIES} MyGUIEngine boost_system)
 link_directories(${OGRE_LIB_DIR})
 
 install(FILES ${HEADER_FILES}
--- a/Plugins/CMakeLists.txt
+++ b/Plugins/CMakeLists.txt
@@ -1,7 +1,7 @@
 option(MYGUI_BUILD_HIKARI_PLUGIN "Build Plugin HikariWidget" FALSE)
 option(MYGUI_BUILD_BERKELIUM_PLUGIN "Build Plugin BerkeliumWidget" FALSE)
 
-add_subdirectory(Plugin_StrangeButton)
+#add_subdirectory(Plugin_StrangeButton)
 
 if (MYGUI_BUILD_HIKARI_PLUGIN)
    if (WIN32)
--- a/Platforms/OpenGL/OpenGLPlatform/CMakeLists.txt
+++ b/Platforms/OpenGL/OpenGLPlatform/CMakeLists.txt
@@ -9,14 +9,15 @@ include_directories(
 
 include(${PROJECTNAME}.list)
 
-add_definitions(-DGLEW_STATIC)
+#add_definitions(-DGLEW_STATIC)
 add_definitions(-DGL_GLEXT_PROTOTYPES)
 
-add_library(${PROJECTNAME} ${HEADER_FILES} ${SOURCE_FILES})
+add_library(${PROJECTNAME} SHARED ${HEADER_FILES} ${SOURCE_FILES})
+set_target_properties(${PROJECTNAME} PROPERTIES VERSION 0debian1.0.0 SOVERSION 0debian1)
 
 add_dependencies(${PROJECTNAME} MyGUIEngine)
 
-target_link_libraries(${PROJECTNAME} ${OPENGL_LIBRARIES} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES})
+target_link_libraries(${PROJECTNAME} GL ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} MyGUIEngine GLEW)
 link_directories(${OPENGL_LIB_DIR} ${PNG_LIBRARY})
 
 # installation rules
--- a/Platforms/OpenGL/OpenGLPlatform/MyGUI.OpenGLPlatform.list
+++ b/Platforms/OpenGL/OpenGLPlatform/MyGUI.OpenGLPlatform.list
@@ -8,7 +8,6 @@ set (HEADER_FILES
   include/MyGUI_OpenGLVertexBuffer.h
 )
 set (SOURCE_FILES
-  include/GL/glew.c
   src/MyGUI_OpenGLDataManager.cpp
   src/MyGUI_OpenGLPlatform.cpp
   src/MyGUI_OpenGLRTTexture.cpp
@@ -26,7 +25,6 @@ SOURCE_GROUP("Header Files" FILES
   include/MyGUI_OpenGLVertexBuffer.h
 )
 SOURCE_GROUP("Source Files" FILES
-  include/GL/glew.c
   src/MyGUI_OpenGLDataManager.cpp
   src/MyGUI_OpenGLPlatform.cpp
   src/MyGUI_OpenGLRTTexture.cpp
--- a/MyGUIEngine/CMakeLists.txt
+++ b/MyGUIEngine/CMakeLists.txt
@@ -44,7 +44,8 @@ endif ()
 
 # setup MyGUIEngine target
 add_library(${PROJECTNAME} ${MYGUI_LIB_TYPE} ${HEADER_FILES} ${SOURCE_FILES})
-set_target_properties(${PROJECTNAME} PROPERTIES VERSION ${MYGUI_VERSION} SOVERSION ${MYGUI_VERSION_MAJOR})
+set_target_properties(${PROJECTNAME} PROPERTIES VERSION ${MYGUI_VERSION} SOVERSION ${MYGUI_VERSION_MAJOR} LINK_INTERFACE_LIBRARIES "")
+target_link_libraries(${PROJECTNAME} dl)
 if (MYGUI_USE_FREETYPE)
    target_link_libraries(${PROJECTNAME}
        ${FREETYPE_LIBRARIES}

OGRE DLL not found

Hi all!
trying to create a project with cmake I have this error:

ERROR    compiled OGRE DLL's wasn't found

I think that the problem is the OGRE_BUILD config: what folder need to put?

thanks!

Public LayerManager::deleteLayer function?

Hi,

Recently, you added the createLayerAt function (thanks again for that!).

Is there a way to delete such a layer again?
There's the LayerManager::delete, but it's private. And calling:

delete mLayer;

throws an error if the layer is not empty.

How do I remove a (dynamically added) layer?

Sleek and minimal default theme

The first thing a user/developer sees before choosing a game/library for his game is how it looks like.
I believe that if we'd use a better theme for MyGUI, it would attract a lot of new peoples and developers to work on/with the project.

The current MyGUI themes are just simple gradients and they have nothing special.
Here's a project i'm working on (Rigs of rods) with a MyGUI theme I made with a friend.

screenshot_26
screenshot_27
screenshot_28
screenshot_29

This theme can be found at: https://github.com/RigsOfRods/rigs-of-rods/tree/master/bin/resources/mygui

Half of the comments are russian.

This makes it incredibly hard to understand the code and/or contribute. I would recommend to translate all russian comments to english, perhaps with some automated translate tool. This would make the project much more accessible and understandable for newcomers, especially as it lacks a proper documentation such as how to build and quick start examples.

LayoutEditor freezes when double-clicking on a directory

Steps to reproduce:

  • Select "File -> Load"
  • If necessary, go "Up" once to see a directory in the list
  • Double click on the directory

LayoutEditor will freeze. I attached gdb to see what it's doing:

#0  0x00007f17f89cf9f5 in eof (this=0x7fff2ae0e050) at /usr/include/c++/4.8/bits/basic_ios.h:185
#1  MyGUI::DataStream::eof (this=0x2c24e10) at /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_DataStream.cpp:43
#2  0x00007f17f8aec110 in MyGUI::xml::Document::open (this=this@entry=0x7fff2ae0e230, _stream=_stream@entry=0x2c24e10)
    at /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_XmlDocument.cpp:507
#3  0x00007f17f8aec321 in MyGUI::xml::Document::open (this=this@entry=0x7fff2ae0e230, _stream=...) at /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_XmlDocument.cpp:441
#4  0x00007f17f8aec8eb in MyGUI::xml::Document::open (this=this@entry=0x7fff2ae0e230, _filename=...) at /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_XmlDocument.cpp:431
#5  0x00007f17f8aeca38 in MyGUI::xml::Document::open (this=this@entry=0x7fff2ae0e230, _filename=...) at /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_XmlDocument.cpp:934
#6  0x000000000049ab13 in tools::EditorWidgets::load (this=0x2da9bd0, _fileName=...) at /home/scrawl/Dev/mygui/Tools/LayoutEditor/EditorWidgets.cpp:71
#7  0x000000000048c076 in tools::EditorState::load (this=this@entry=0x2da94a0) at /home/scrawl/Dev/mygui/Tools/LayoutEditor/EditorState.cpp:313
#8  0x000000000048c8fd in tools::EditorState::notifyEndDialogOpenSaveFile (this=0x2da94a0, _sender=, _result=)
    at /home/scrawl/Dev/mygui/Tools/LayoutEditor/EditorState.cpp:438
#9  0x00007f17f8677208 in operator() (a2=true, a1=0x3452940, this=0x3452948) at /home/scrawl/Dev/mygui/Tools/EditorFramework/sigslot.h:2134
#10 tools::OpenSaveFileDialog::accept (this=this@entry=0x3452940) at /home/scrawl/Dev/mygui/Tools/EditorFramework/OpenSaveFileDialog.cpp:111
#11 0x00007f17f8678356 in tools::OpenSaveFileDialog::notifyListSelectAccept (this=0x3452940, _sender=, _index=)
    at /home/scrawl/Dev/mygui/Tools/EditorFramework/OpenSaveFileDialog.cpp:101
#12 0x00007f17f8a1f783 in operator() (p2=3, p1=0x34572e0, this=0x3457658) at /home/scrawl/Dev/mygui/MyGUIEngine/include/MyGUI_DelegateImplement.h:293
#13 operator() (p2=3, p1=0x34572e0, this=0x3457648) at /home/scrawl/Dev/mygui/MyGUIEngine/include/MyGUI_EventPair.h:74
#14 MyGUI::ListBox::notifyMouseDoubleClick (this=0x34572e0, _sender=) at /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ListBox.cpp:258
#15 0x00007f17f8ad8c1c in operator() (p1=0x346ccc0, this=) at /home/scrawl/Dev/mygui/MyGUIEngine/include/MyGUI_DelegateImplement.h:293
#16 MyGUI::WidgetInput::_riseMouseButtonDoubleClick (this=0x346cd50) at /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_WidgetInput.cpp:97
#17 0x00007f17f89f98bf in MyGUI::InputManager::injectMouseRelease (this=0x2b462d0, _absx=337, _absy=294, _id=...)

Dont use old windows API

his function has been superseded by the SetWindowLongPtr function. To write code that is compatible with both 32-bit and 64-bit versions of Windows, use the SetWindowLongPtr function.

This function has been superseded by the SetClassLongPtr function. To write code that is compatible with both 32-bit and 64-bit versions of Windows, use SetClassLongPtr.

mmon/Base/OpenGL/BaseManager.cpp:32:73: error: cast from 'LPVOID {aka void*}' to 'LONG {aka long int}' loses precision [-fpermissive]
SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG)((LPCREATESTRUCT)lParam)->lpCreateParams);

createInput(size_t)':
Common/Input/Win32/InputManager.cpp:232:48: error: cast from 'LRESULT ()(HWND, UINT, WPARAM, LPARAM) {aka long long int ()(HWND__*, unsigned int, long long unsigned int, long long int)}' to 'long int' loses precision [-fpermissive]
SetWindowLongPtr(mHwnd, GWLP_WNDPROC, (long)windowProc);
^
ninja: build stopped: subcommand failed.

UnitTest_GraphView is broken

First, I had to add the "/Media/Common/Scene" path to resources.xml, otherwise it wouldn't start because it failed to find Robot.mesh.

Then, The GraphView is completely empty (scrolling doesn't reveal anything either): http://scrawl.bplaced.net/temp/screen06-12-49.png

MyGUI.log:

06:12:42  |  Platform  |  Info  |  * Initialise: RenderManager  |  /home/scrawl/Dev/mygui/Platforms/Ogre/OgrePlatform/src/MyGUI_OgreRenderManager.cpp  |  43
06:12:42  |  Platform  |  Info  |  RenderManager successfully initialized  |  /home/scrawl/Dev/mygui/Platforms/Ogre/OgrePlatform/src/MyGUI_OgreRenderManager.cpp  |  71
06:12:42  |  Platform  |  Info  |  * Initialise: DataManager  |  /home/scrawl/Dev/mygui/Platforms/Ogre/OgrePlatform/src/MyGUI_OgreDataManager.cpp  |  27
06:12:42  |  Platform  |  Info  |  DataManager successfully initialized  |  /home/scrawl/Dev/mygui/Platforms/Ogre/OgrePlatform/src/MyGUI_OgreDataManager.cpp  |  35
06:12:42  |  Core  |  Info  |  * Initialise: Gui  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_Gui.cpp  |  61
06:12:42  |  Core  |  Info  |  * MyGUI version 3.2.1  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_Gui.cpp  |  66
06:12:42  |  Core  |  Info  |  * Initialise: ResourceManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceManager.cpp  |  32
06:12:42  |  Core  |  Info  |  ResourceManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceManager.cpp  |  40
06:12:42  |  Core  |  Info  |  * Initialise: LayerManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_LayerManager.cpp  |  33
06:12:42  |  Core  |  Info  |  LayerManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_LayerManager.cpp  |  41
06:12:42  |  Core  |  Info  |  * Initialise: WidgetManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_WidgetManager.cpp  |  53
06:12:42  |  Core  |  Info  |  WidgetManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_WidgetManager.cpp  |  84
06:12:42  |  Core  |  Info  |  * Initialise: InputManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_InputManager.cpp  |  46
06:12:42  |  Core  |  Info  |  InputManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_InputManager.cpp  |  66
06:12:42  |  Core  |  Info  |  * Initialise: SubWidgetManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SubWidgetManager.cpp  |  36
06:12:42  |  Core  |  Info  |  SubWidgetManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SubWidgetManager.cpp  |  56
06:12:42  |  Core  |  Info  |  * Initialise: SkinManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  36
06:12:42  |  Core  |  Info  |  SkinManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  46
06:12:42  |  Core  |  Info  |  * Initialise: FontManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_FontManager.cpp  |  32
06:12:42  |  Core  |  Info  |  FontManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_FontManager.cpp  |  42
06:12:42  |  Core  |  Info  |  * Initialise: ControllerManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ControllerManager.cpp  |  33
06:12:42  |  Core  |  Info  |  ControllerManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ControllerManager.cpp  |  42
06:12:42  |  Core  |  Info  |  * Initialise: PointerManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_PointerManager.cpp  |  43
06:12:42  |  Core  |  Info  |  PointerManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_PointerManager.cpp  |  62
06:12:42  |  Core  |  Info  |  * Initialise: ClipboardManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ClipboardManager.cpp  |  32
06:12:42  |  Core  |  Info  |  ClipboardManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ClipboardManager.cpp  |  39
06:12:42  |  Core  |  Info  |  * Initialise: LayoutManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_LayoutManager.cpp  |  28
06:12:42  |  Core  |  Info  |  LayoutManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_LayoutManager.cpp  |  35
06:12:42  |  Core  |  Info  |  * Initialise: DynLibManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_DynLibManager.cpp  |  26
06:12:42  |  Core  |  Info  |  DynLibManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_DynLibManager.cpp  |  30
06:12:42  |  Core  |  Info  |  * Initialise: PluginManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_PluginManager.cpp  |  30
06:12:42  |  Core  |  Info  |  PluginManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_PluginManager.cpp  |  34
06:12:42  |  Core  |  Info  |  * Initialise: LanguageManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_LanguageManager.cpp  |  30
06:12:42  |  Core  |  Info  |  LanguageManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_LanguageManager.cpp  |  34
06:12:42  |  Core  |  Info  |  * Initialise: FactoryManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_FactoryManager.cpp  |  25
06:12:42  |  Core  |  Info  |  FactoryManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_FactoryManager.cpp  |  27
06:12:42  |  Core  |  Info  |  * Initialise: ToolTipManager  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ToolTipManager.cpp  |  33
06:12:42  |  Core  |  Info  |  ToolTipManager successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ToolTipManager.cpp  |  45
06:12:42  |  Core  |  Info  |  Load ini file 'MyGUI_GeneratedFonts.xml'  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceManager.cpp  |  114
06:12:42  |  Core  |  Info  |  Load ini file 'MyGUI_Fonts.xml'  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceManager.cpp  |  114
06:12:42  |  Core  |  Info  |  ResourceTrueTypeFont: Font 'DejaVuSansFont_15' using texture size 128 x 256.  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceTrueTypeFont.cpp  |  769
06:12:42  |  Core  |  Info  |  ResourceTrueTypeFont: Font 'DejaVuSansFont_15' using real height 17 pixels.  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceTrueTypeFont.cpp  |  770
06:12:42  |  Core  |  Info  |  Load ini file 'MyGUI_CommonSkins.xml'  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceManager.cpp  |  114
06:12:42  |  Core  |  Info  |  Load ini file 'MyGUI_BlueWhiteTheme.xml'  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceManager.cpp  |  114
06:12:42  |  Core  |  Info  |  Load ini file 'MyGUI_BlueWhiteImages.xml'  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceManager.cpp  |  114
06:12:42  |  Core  |  Info  |  Load ini file 'MyGUI_BlueWhiteSkins.xml'  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceManager.cpp  |  114
06:12:42  |  Core  |  Info  |  Load ini file 'MyGUI_BlueWhiteTemplates.xml'  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceManager.cpp  |  114
06:12:42  |  Core  |  Info  |  Load ini file 'MyGUI_PointerImages.xml'  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceManager.cpp  |  114
06:12:42  |  Core  |  Info  |  Load ini file 'MyGUI_Pointers.xml'  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceManager.cpp  |  114
06:12:42  |  Core  |  Info  |  Load ini file 'MyGUI_Layers.xml'  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceManager.cpp  |  114
06:12:42  |  Core  |  Info  |  Load ini file 'MyGUI_Settings.xml'  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_ResourceManager.cpp  |  114
06:12:42  |  Core  |  Info  |  Gui successfully initialized  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_Gui.cpp  |  111
06:12:42  |  Core  |  Error  |  Skin 'PopupMenuLine' not found. Replaced with default skin. [ContextMenu.layout]  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  92
06:12:42  |  Core  |  Error  |  Skin 'PopupMenuLine' not found. Replaced with default skin. [ContextMenu.layout]  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  92
06:12:42  |  Core  |  Error  |  Skin 'PopupMenuLine' not found. Replaced with default skin. [ContextMenu.layout]  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  92
06:12:42  |  Core  |  Error  |  Skin 'PopupMenuLine' not found. Replaced with default skin. [ContextMenu.layout]  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  92
06:12:42  |  Core  |  Error  |  Skin 'PopupMenuLine' not found. Replaced with default skin. [ContextMenu.layout]  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  92
06:12:42  |  Core  |  Error  |  Skin 'PopupMenuLine' not found. Replaced with default skin. [ContextMenu.layout]  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  92
06:12:42  |  Core  |  Error  |  Skin 'PopupMenuLine' not found. Replaced with default skin. [ContextMenu.layout]  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  92
06:12:42  |  Core  |  Error  |  Skin 'PopupMenuLine' not found. Replaced with default skin. [ContextMenu.layout]  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  92
06:12:42  |  Core  |  Error  |  Skin 'PopupMenuLine' not found. Replaced with default skin. [ContextMenu.layout]  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  92
06:12:42  |  Core  |  Error  |  Skin 'PopupMenuLine' not found. Replaced with default skin. [ContextMenu.layout]  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  92
06:12:42  |  Core  |  Error  |  Skin 'PopupMenuLine' not found. Replaced with default skin. [ContextMenu.layout]  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  92
06:12:42  |  Core  |  Error  |  Skin 'PopupMenuLine' not found. Replaced with default skin. [ContextMenu.layout]  |  /home/scrawl/Dev/mygui/MyGUIEngine/src/MyGUI_SkinManager.cpp  |  92

Can't find resources.cfg for tools.

I attempted to build the project using CMake. I changed to project to use only a Release/Debug build,but 32 and 64bit version. There is no problem with that, I can use the library properly, but I can't get the tools to work. After manually changing where it looks for resources and recompiling, now it finds everything, except my language files, but input doesn't work. How am I supposed to make the project find its resource files originally?

Load Plugins in LayoutEditor

I would like the ability to load a MyGUI plugin in the LayoutEditor. As far as I can tell, this is currently not possible. Maybe consider using a "plugins.cfg"-type file just like Ogre does?

Plugin XML files are platform specific

In Plugin XML files, for example Media/Tools/LayoutEditor/Settings/StrangeButtonPlugin.xml, the plugins are listed like so:

            <Source>Plugin_StrangeButton.dll</Source>

This is not portable due to the ".dll" extension. My suggestion is to have the XML files not list the file extension, like this:

            <Source>Plugin_StrangeButton</Source>

And make the plugin loader responsible for adding the correct file extension, depending on the platform.

Additionally, MyGUI plugins on Linux are being built with filename "libPlugin_StrangeButton.so". To prevent this, one needs to make sure to remove the default library prefix within cmake:

set_target_properties(${MYLIBRARY} PROPERTIES PREFIX "")

Example app please

Hi, I'm wondering if you can make a barebones example app that doesnt own the window. For example, I already have a multi context opengl framework in place already, I just want to use (try) this sdk out. It looks like if I mod the sourcecode I can get this to piggy back onto an existing app, but maybe I'm going about it the wrong way. (as my app will call swapbuffers etc). Also, creating a window not using the xml layout would be helpfull too in this example app. looking over the code I see you do need some xml configurations, which is fine, I just want to create a window at runtime, and be able to move this window around the clientwindow driving by something other than a mouse, but still need to know when the mouse is over the window. So all in all, I think I need a "shell" that knows the current clientrect to know the winow size so I can place all the children to this "shell" in it.. and so mygui can probalby control mouseover etc. Make sense? All in all, if you make barebone example to do this properly.. I can probably figure this out

-- Anonymous, created 2011-04-23

windres fail

[8/116] D:\Software\Msys2\mingw64\bin\windres.exe -O coff -IE:/BackUp/MyGUI_3.2.0/MyGUIEngine/include -IE:/BackUp/MyGUI_3.2.0/Demos/Demo_PanelView/. -IE:/BackUp/MyGUI_3.2.0/Common -IE:/BackUp/MyGUI_3.2.0/Demos/Demo_PanelView/../../Common/Base/OpenGL -IE:/BackUp/MyGUI_3.2.0/Platforms/OpenGL/OpenGLPlatform/include -IE:/BackUp/MyGUI_3.2.0/Demos/Demo_PanelView/../../Common/Input/Win32 -msse -w -DMYGUI_OPENGL_PLATFORM -DMYGUI_SAMPLES_INPUT_WIN32 E:/BackUp/MyGUI_3.2.0/Common/Base/BaseResource.rc Demos/Demo_PanelView/CMakeFiles/Demo_PanelView.dir///Common/Base/BaseResource.rc.obj
[9/116] D:\Software\Msys2\mingw64\bin\windres.exe -O coff -IE:/BackUp/MyGUI_3.2.0/MyGUIEngine/include -IE:/BackUp/MyGUI_3.2.0/Demos/Demo_Picking/. -IE:/BackUp/MyGUI_3.2.0/Common -IE:/BackUp/MyGUI_3.2.0/Demos/Demo_Picking/../../Common/Base/OpenGL -IE:/BackUp/MyGUI_3.2.0/Platforms/OpenGL/OpenGLPlatform/include -IE:/BackUp/MyGUI_3.2.0/Demos/Demo_Picking/../../Common/Input/Win32 -msse -w -DMYGUI_OPENGL_PLATFORM -DMYGUI_SAMPLES_INPUT_WIN32 E:/BackUp/MyGUI_3.2.0/Common/Base/BaseResource.rc Demos/Demo_Picking/CMakeFiles/Demo_Picking.dir///Common/Base/BaseResource.rc.obj
[10/116] D:\Software\Msys2\mingw64\bin\c++.exe -DMYGUI_OPENGL_PLATFORM -DMYGUI_SAMPLES_INPUT_WIN32 -O2 -g -DNDEBUG -IMyGUIEngine/include -IDemos/Demo_Picking/. -ICommon -IDemos/Demo_Picking/../../Common/Base/OpenGL -IPlatforms/OpenGL/OpenGLPlatform/include -IDemos/Demo_Picking/../../Common/Input/Win32 -msse -w -MMD -MT Demos/Demo_Picking/CMakeFiles/Demo_Picking.dir/DemoKeeper.cpp.obj -MF "Demos/Demo_Picking/CMakeFiles/Demo_Picking.dir/DemoKeeper.cpp.obj.d" -o Demos/Demo_Picking/CMakeFiles/Demo_Picking.dir/DemoKeeper.cpp.obj -c Demos/Demo_Picking/DemoKeeper.cpp
FAILED: D:\Software\Msys2\mingw64\bin\windres.exe -O coff -IE:/BackUp/MyGUI_3.2.0/MyGUIEngine/include -IE:/BackUp/MyGUI_3.2.0/Tools/SkinEditor/. -IE:/BackUp/MyGUI_3.2.0/Common -IE:/BackUp/MyGUI_3.2.0/Tools/SkinEditor/../../Common/Base/OpenGL -IE:/BackUp/MyGUI_3.2.0/Platforms/OpenGL/OpenGLPlatform/include -IE:/BackUp/MyGUI_3.2.0/Tools/SkinEditor/../../Common/Input/Win32 -msse -w -DMYGUI_OPENGL_PLATFORM -DMYGUI_SAMPLES_INPUT_WIN32 E:/BackUp/MyGUI_3.2.0/Tools/SkinEditor/SkinEditor.rc Tools/SkinEditor/CMakeFiles/SkinEditor.dir/SkinEditor.rc.obj
D:\Software\Msys2\mingw64\bin\windres.exe: invalid option -- m
Usage: D:\Software\Msys2\mingw64\bin\windres.exe [option(s)] [input-file] [output-file]
The options are:
-i --input= Name input file
-o --output= Name output file
-J --input-format= Specify input format
-O --output-format= Specify output format
-F --target= Specify COFF target
--preprocessor= Program to use to preprocess rc file
--preprocessor-arg= Additional preprocessor argument
-I --include-dir=

Include directory when preprocessing rc file
-D --define [=] Define SYM when preprocessing rc file
-U --undefine Undefine SYM when preprocessing rc file
-v --verbose Verbose - tells you what it's doing
-c --codepage= Specify default codepage
-l --language= Set language when reading rc file
--use-temp-file Use a temporary file instead of popen to read
the preprocessor output
--no-use-temp-file Use popen (default)
-r Ignored for compatibility with rc
@ Read options from
-h --help Print this help message
-V --version Print version information
FORMAT is one of rc, res, or coff, and is deduced from the file name
extension if not specified. A single file name is an input file.
No input-file is stdin, default rc. No output-file is stdout, default rc.
D:\Software\Msys2\mingw64\bin\windres.exe: supported targets: pe-x86-64 pei-x86-64 pe-bigobj-x86-64 elf64-x86-64 elf64-l1om elf64-k1om pe-i386 pei-i386 elf32-i386 elf64-little elf64-big elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex

Can't #include "MyGUI_OpenGLRenderManager.h" due to "MyGUI_OpenGLImageLoader.h" not being installed

While trying to build a MyGUI/OpenGL hello world program, I get the following error:

/usr/local/include/MYGUI/MyGUI_OpenGLRenderManager.h:14:37: fatal error:
MyGUI_OpenGLImageLoader.h: No such file or directory

include "MyGUI_OpenGLImageLoader.h"

It seems like "make install" doesn't install the "MyGUI_OpenGLImageLoader.h" file (maybe because it isn't listed in "MyGUI.OpenGLPlatform.list"?)

The rest of the OpenGL platform headers are in /usr/local/include so I'm fairly certain I built MyGUI with the OpenGL platform correctly.

Question on FactoryManager::registerFactory()

the code is:
void FactoryManager::registerFactory(const std::string& _category, const std::string& _type, Delegate::IDelegate* _delegate)
{
//FIXME
mRegisterFactoryItems[_category][_type] = _delegate;
}

FactoryManager uses a map (mRegisterFactoryItems) to keep track of all the delegates. but it's marked with "FIXME". I wonder what needs to be fixed ? Is there any flaws with current method?

shared_ptr causing compiling failure in Mac

In Mac, majority of the compiling issues are related to the customized version shared_ptr class, particularly when compared to nullptr with '==' or '!=' operators. However, the same code compiles fine in Windows and Linux (any ideas?).

Here's some fixes I can think of:

  1. overload the operators - it did work based on my test, but prone to bug implementing a smart pointer
  2. use std::shared_ptr<> - require more changes in the code base, any may not compile on older compilers, but much more reliable
  3. somehow modify cmake script to make clang behave the save as gnu compiler so that the errors just go away ? don't know how though

any thoughts?

Boost System missing from CMake?

On my system (Ubuntu 14.04) the Demos and Tools didn't compile, instead I got a linker error:
"undefined symbol: _ZN5boost6system15system_categoryEv"

I fixed this by modiying MyGUI's CMakeLists files.
I added:
find_package( Boost COMPONENTS system REQUIRED )
and linking against it by adding
${Boost_SYSTEM_LIBRARIES}
into the "target_link_libraries" in the function "mygui_app" in CMake/Utils/MyGUIConfigTargets.cmake

I know too little about cmake in order to know if this is a "good" fix or not, so I didn't make a pull request.

Build failure (mingw64 and singleton)

[11/15] D:\Software\Msys2\mingw64\bin\c++.exe   -DMYGUI_OPENGL_PLATFORM -DMYGUI_SAMPLES_INPUT_WIN32 -w -O2 -g -DNDEBUG -IMyGUIEngine/include -ITools/FontEditor/. -ICommon -ITools/FontEditor/../../Common/Base/OpenGL -IPlatforms/OpenGL/OpenGLPlatform/include -ITools/FontEditor/../../Common/Input/Win32 -ITools/EditorFramework -MMD -MT Tools/FontEditor/CMakeFiles/FontEditor.dir/SettingsResourcePathsControl.cpp.obj -MF "Tools/FontEditor/CMakeFiles/FontEditor.dir/SettingsResourcePathsControl.cpp.obj.d" -o Tools/FontEditor/CMakeFiles/FontEditor.dir/SettingsResourcePathsControl.cpp.obj -c Tools/FontEditor/SettingsResourcePathsControl.cpp
FAILED: cmd.exe /c cd . && D:\Software\Msys2\mingw64\bin\c++.exe  -w -O2 -g -DNDEBUG  -mwindows Tools/ImageEditor/CMakeFiles/ImageEditor.dir/__/__/Common/Precompiled.cpp.obj
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/AnimationInfo.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/AnimationViewControl.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/ApplicationState.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/ChangeTextureValueAction.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/EditorState.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/FrameListControl.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/FrameTextureController.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/GroupListControl.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/GroupTextureController.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/ImageEditor.rc.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/ImageExportSerializer.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/ImageListControl.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/IndexListControl.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/IndexTextureController.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/SettingsGeneralControl.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/SettingsResourcePathsControl.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/SettingsResourcesControl.cpp.obj Tools/ImageEditor/CMakeFiles/ImageEditor.dir/StatisticInfoControl.cpp.obj  -o bin/ImageEditor.exe -Wl,--out-implib,lib\libImageEditor.dll.a -Wl,--major-image-version,0,--minor-image-version,0  lib/libCommon.a lib/libMyGUI.OpenGLPlatform.a -lgdiplus lib/libMyGUIEngine.dll.a lib/libEditorFramework.dll.a lib/libCommon.a lib/libMyGUI.OpenGLPlatform.a -lglu32 -lopengl32 -lgdiplus lib/libMyGUIEngine.dll.a -lfreetype -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd .
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools12ScopeManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools12ScopeManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools12ScopeManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools12ScopeManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools11GridManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools11GridManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools11GridManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools11GridManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13ColourManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools13ColourManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13ColourManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools13ColourManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13DialogManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools13DialogManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13DialogManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools13DialogManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools17MessageBoxManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools17MessageBoxManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools17MessageBoxManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools17MessageBoxManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13ExportManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools13ExportManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13ExportManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools13ExportManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools14CommandManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools14CommandManagerEE14mClassTypeNameE]+0x0): undefined reference to
`MyGUI::Singleton::mClassTypeName'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools14CommandManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools14CommandManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools18RecentFilesManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools18RecentFilesManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools18RecentFilesManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools18RecentFilesManagerEE10msInstanceE]+0x0): undefined reference to
`MyGUI::Singleton::msInstance'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13HotKeyManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools13HotKeyManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13HotKeyManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools13HotKeyManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools12StateManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools12StateManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools12StateManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools12StateManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools15SettingsManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools15SettingsManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/ImageEditor/CMakeFiles/ImageEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools15SettingsManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools15SettingsManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
collect2.exe: error: ld returned 1 exit status
FAILED: cmd.exe /c cd . && D:\Software\Msys2\mingw64\bin\c++.exe  -w -O2 -g -DNDEBUG  -mwindows Tools/SkinEditor/CMakeFiles/SkinEditor.dir/__/__/Common/Precompiled.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/ApplicationState.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/ChangeSeparatorOffsetAction.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/ChangeSeparatorVisibleAction.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/ChangeSkinSizeAction.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/ChangeTextureValueAction.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/CreateSkinDataAction.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/EditorState.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/PropertyAlignControl.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/PropertyRegionTextTypeControl.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/PropertyRegionTypeControl.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/RegionListControl.cpp.obj
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/RegionTextureController.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/SeparatorListControl.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/SeparatorTextureController.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/SettingsGeneralControl.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/SettingsResourcePathsControl.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/SettingsResourcesControl.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/SkinDataUtility.cpp.obj
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/SkinEditor.rc.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/SkinExportSerializer.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/SkinListControl.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/SkinTextureController.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/StateListControl.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/StateTextureController.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/StatisticInfoControl.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/TestState.cpp.obj Tools/SkinEditor/CMakeFiles/SkinEditor.dir/TestWindow.cpp.obj  -o bin/SkinEditor.exe -Wl,--out-implib,lib\libSkinEditor.dll.a -Wl,--major-image-version,0,--minor-image-version,0  lib/libCommon.a lib/libMyGUI.OpenGLPlatform.a -lgdiplus
lib/libMyGUIEngine.dll.a lib/libEditorFramework.dll.a lib/libCommon.a lib/libMyGUI.OpenGLPlatform.a -lglu32 -lopengl32 -lgdiplus lib/libMyGUIEngine.dll.a -lfreetype -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd .
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools12ScopeManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools12ScopeManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools12ScopeManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools12ScopeManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools11GridManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools11GridManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools11GridManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools11GridManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13ColourManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools13ColourManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13ColourManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools13ColourManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13DialogManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools13DialogManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13DialogManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools13DialogManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools17MessageBoxManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools17MessageBoxManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools17MessageBoxManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools17MessageBoxManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13ExportManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools13ExportManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13ExportManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools13ExportManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools14CommandManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools14CommandManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools14CommandManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools14CommandManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools18RecentFilesManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools18RecentFilesManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools18RecentFilesManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools18RecentFilesManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13HotKeyManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools13HotKeyManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools13HotKeyManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools13HotKeyManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools12StateManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools12StateManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools12StateManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools12StateManagerEE14mClassTypeNameE]+0x0): undefined reference to `MyGUI::Singleton::mClassTypeName'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools15SettingsManagerEE14mClassTypeNameE[.refptr._ZN5MyGUI9SingletonIN5tools15SettingsManagerEE14mClassTypeNameE]+0x0): undefined reference to
`MyGUI::Singleton::mClassTypeName'
Tools/SkinEditor/CMakeFiles/SkinEditor.dir/Application.cpp.obj:Application.cpp:(.rdata$.refptr._ZN5MyGUI9SingletonIN5tools15SettingsManagerEE10msInstanceE[.refptr._ZN5MyGUI9SingletonIN5tools15SettingsManagerEE10msInstanceE]+0x0): undefined reference to `MyGUI::Singleton::msInstance'
collect2.exe: error: ld returned 1 exit status

cross-platform support for demos implemented with SDL2

hi,

I've implemented the cross-platform support for demos with SDL2 and SDL2_image (for GL renderer only, but GL3 is largely the same and will be implemented later). Here's the detail of the change:
xzwang2005@afdba24

The code is running with some bugs (pixel format conversion and keyboard input). Right now, I manually added dependencies in the project, which need to be added into CMake scripts. How do you prefer this to be done? Include SDL2/SDL2_image projects or set options for use to specify where to find the lib?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.