在 Linux 下从 wxGLCanvas 中初始化 Glew

Initialize Glew from within wxGLCanvas under Linux

当我的wxGLCanvas子class

的构造器
MyGLCanvas::MyGLCanvas(wxWindow* parent)
        : wxGLCanvas(parent, wxID_ANY, 0)
{
    wxGLContext *m_context = new wxGLContext(this);
    SetCurrent(*m_context);

    GLenum err = glewInit();
}

被称为 glewInit() returns 我是 "Missing GL version" 的错误代码。

这仅在 Ubuntu 下,我 link 带有标记 -lGLEW -lGL,wxWidgets 是版本 2.8 和 OpenGL 3.0 Mesa 10.1.3。 Windows下OS没有报错

感谢您的指点。如果您需要任何其他信息或 MWE,请告诉我。

我将 wxWidgets 更新到 3.1 版并将 SetCurrentglewInit 调用从构造函数移动到绑定到 wxEVT_PAINT 的事件处理程序并确保它是只调用一次。

现在可以了。