开发者

Windows/opengl glext.h build issue

So I'm trying to bring a c++ project using Qt and OpenGL written and compiled on a Linux machine over to my Windows 7 machine at home, but I'm running into some difficulty. First I learned that some gl things (like GL_TEXTURE0) were no longer defined because gl.h doesn't define them for windows. Also, the glext.h that I have does not define some functions like glActiveTexture. Both of these issues I found could be solved by bringing in a newer glext.h.

My most immediate issue seems to be that I'm not bringing it in correctly. If I do:

#define GL_GLEXT_LEGACY      //should prevent old glext.h from being included
#define GL_GLEXT_PROTOTYPES  //should make glActiveTexture be defined 
#include <qgl.h>                 
#include "glext.h"           //local up-to-date glext.h
#include <QGLShaderProgram>

then make tells me that I have undefined references to glActiveTexture. If I include QGLShaderProgram before glext.h, then I still have that problem, but make also warns me that I am redefining quite a few thin开发者_StackOverflow社区gs that are defined in both QGLShaderProgram and glext, so I know the latter file is being included. Any help would really be appreciated.


You are on a right path, but like Nick Meyer wrote, you need to get pointers to the functions at runtime.

There is a nice and clean example already in Qt installation directory, at least since 4.6. Check "Boxes" from "demos"-directory. There is glextensions.h/cpp that takes care of those required functions in Qt-way, using Qt's QGLContext etc.


If you're lazy like me, just hop over to http://glew.sourceforge.net and use that, no need to fiddle around with different header files and manually retrieving function pointers. It's as simple as

/* in every source file using OpenGL */
#include <GL/glew.h>

and

/* for each OpenGL context */
if( createGLContext(...) == SUCCESSFULL )
    glewInit()


If you're using Qt you should probably use qmake - and just add

QT += opengl

to your qmake project file.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜