OpenGL: glGetError() returns invalid enum after call to glewInit()

前端 未结 2 1124
甜味超标
甜味超标 2020-12-03 17:09

I use GLEW and freeglut. For some reason, after a call to glewInit(), glGetError() returns error code 1280, even with glewExperimental = GL_FALSE.

I cannot compile

相关标签:
2条回答
  • 2020-12-03 17:27

    Did you see the comment on this wiki page?

    http://www.opengl.org/wiki/OpenGL_Loading_Library

    It mentions why this occurs, and it says "in some cases you may still get GL_INVALID_ENUM after specifying glewExperimental depending on your glew version".

    It sounds like it might be safe to ignore as long as you're not seeing any other problems.

    0 讨论(0)
  • 2020-12-03 17:34

    It seems glew just does not work correctly... The easiest solution for me was using libepoxy. It does not require any init thing. Just replace your

    #include <GL/glew.h>
    

    with

    #include <epoxy/gl.h>
    #include <epoxy/glx.h>
    

    and remove all the glew code. If you use gcc, you will also have to replace "-lGLEW" with "-lepoxy". That's it. For example I have something like:

    g++ main.cpp -lepoxy -lSDL2 -lSDL2_image -lSDL2_mixer -lglut -lGLU -o main
    

    It seems to be important to keep epoxy flag before others.

    0 讨论(0)
提交回复
热议问题