MyGUI / mygui

Fast, flexible and simple GUI.
http://mygui.info/
Other
714 stars 205 forks source link

OpenGL functions not declared #175

Closed pvigier closed 4 years ago

pvigier commented 4 years ago

Hi,

Since commit 5d59358, I can't build MyGUI with OpenGL3 render system with MinGW-w64 GCC 9.3 compiler anymore. It seems it does not like the change from #include "GL/glew.h" to #include <GL/gl.h>.

Here is the build log:

[ 92%] Building CXX object Platforms/OpenGL3/OpenGL3Platform/CMakeFiles/MyGUI.OpenGL3Platform.dir/src/MyGUI_OpenGL3DataManager.cpp.obj
[ 93%] Building CXX object Platforms/OpenGL3/OpenGL3Platform/CMakeFiles/MyGUI.OpenGL3Platform.dir/src/MyGUI_OpenGL3Platform.cpp.obj
[ 94%] Building CXX object Platforms/OpenGL3/OpenGL3Platform/CMakeFiles/MyGUI.OpenGL3Platform.dir/src/MyGUI_OpenGL3RTTexture.cpp.obj
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp: In constructor ‘MyGUI::OpenGL3RTTexture::OpenGL3RTTexture(unsigned int)’:
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:37:3: error: ‘glGenFramebuffersEXT’ was not declared in this scope
   37 |   glGenFramebuffersEXT(1, &mFBOID);
      |   ^~~~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:38:24: error: ‘GL_FRAMEBUFFER_EXT’ was not declared in this scope
   38 |   glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, mFBOID);
      |                        ^~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:38:3: error: ‘glBindFramebufferEXT’ was not declared in this scope
   38 |   glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, mFBOID);
      |   ^~~~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:46:3: error: ‘glGenRenderbuffersEXT’ was not declared in this scope
   46 |   glGenRenderbuffersEXT(1, &mRBOID);
      |   ^~~~~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:47:25: error: ‘GL_RENDERBUFFER_EXT’ was not declared in this scope
   47 |   glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, mRBOID);
      |                         ^~~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:47:3: error: ‘glBindRenderbufferEXT’ was not declared in this scope
   47 |   glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, mRBOID);
      |   ^~~~~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:48:3: error: ‘glRenderbufferStorageEXT’ was not declared in this scope
   48 |   glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, mWidth, mHeight);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:52:49: error: ‘GL_COLOR_ATTACHMENT0_EXT’ was not declared in this scope; did you mean ‘GL_COLOR_ARRAY_COUNT_EXT’?
   52 |   glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, mTextureID, 0);
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~~~
      |                                                 GL_COLOR_ARRAY_COUNT_EXT
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:52:3: error: ‘glFramebufferTexture2DEXT’ was not declared in this scope
   52 |   glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, mTextureID, 0);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:55:52: error: ‘GL_DEPTH_ATTACHMENT_EXT’ was not declared in this scope
   55 |   glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, mRBOID);
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:55:3: error: ‘glFramebufferRenderbufferEXT’ was not declared in this scope
   55 |   glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, mRBOID);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp: In destructor ‘virtual MyGUI::OpenGL3RTTexture::~OpenGL3RTTexture()’:
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:64:4: error: ‘glDeleteFramebuffersEXT’ was not declared in this scope
   64 |    glDeleteFramebuffersEXT(1, &mFBOID);
      |    ^~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:69:4: error: ‘glDeleteRenderbuffersEXT’ was not declared in this scope
   69 |    glDeleteRenderbuffersEXT(1, &mRBOID);
      |    ^~~~~~~~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp: In member function ‘virtual void MyGUI::OpenGL3RTTexture::begin()’:
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:78:26: error: ‘GL_FRAMEBUFFER_EXT’ was not declared in this scope
   78 |     glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, mFBOID);
      |                          ^~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:78:5: error: ‘glBindFramebufferEXT’ was not declared in this scope
   78 |     glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, mFBOID);
      |     ^~~~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp: In member function ‘virtual void MyGUI::OpenGL3RTTexture::end()’:
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:90:24: error: ‘GL_FRAMEBUFFER_EXT’ was not declared in this scope
   90 |   glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); // unbind
      |                        ^~~~~~~~~~~~~~~~~~
/home/pierre/Programming/Vagabond/dep/mygui/Platforms/OpenGL3/OpenGL3Platform/src/MyGUI_OpenGL3RTTexture.cpp:90:3: error: ‘glBindFramebufferEXT’ was not declared in this scope
   90 |   glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); // unbind
      |   ^~~~~~~~~~~~~~~~~~~~
Platforms/OpenGL3/OpenGL3Platform/CMakeFiles/MyGUI.OpenGL3Platform.dir/build.make:111: recipe for target 'Platforms/OpenGL3/OpenGL3Platform/CMakeFiles/MyGUI.OpenGL3Platform.dir/src/MyGUI_OpenGL3RTTexture.cpp.obj' failed
make[2]: *** [Platforms/OpenGL3/OpenGL3Platform/CMakeFiles/MyGUI.OpenGL3Platform.dir/src/MyGUI_OpenGL3RTTexture.cpp.obj] Error 1
CMakeFiles/Makefile2:221: recipe for target 'Platforms/OpenGL3/OpenGL3Platform/CMakeFiles/MyGUI.OpenGL3Platform.dir/all' failed
make[1]: *** [Platforms/OpenGL3/OpenGL3Platform/CMakeFiles/MyGUI.OpenGL3Platform.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2

Best, Pierre

Altren commented 4 years ago

I tested it mostly on linux. Could you check that it's the only issue with OpenGL MinGW build. I'll revert that change

pvigier commented 4 years ago

448e2c9 is building fine.

If I revert only the include changes in 5d59358, it also works.

Altren commented 4 years ago

Do I need to revert all glew.h -> gl.h changes, or only some of them?

pvigier commented 4 years ago

OpenGLRTTexture, OpenGLTexture, OpenGLVertexBuffer, OpenGL3RTTexture, OpenGL3Texture and OpenGL3VertexBuffer need #include "GL/glew.h".

The BaseManagers work with #include <GL/gl.h>. But I need to link the demos with -lsetupapi in either way. (That is maybe due to the fact that I am cross-compiling for Windows on Linux.)

Altren commented 4 years ago

Done