Инициализируйте Glew изнутри wxGLCanvas под Linux

Когда конструктор для меня wxGLCanvas Подкласс

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

    GLenum err = glewInit();
}

называется glewInit() возвращает мне код ошибки для "Missing GL version".

Это только под Ubuntu, где я связываю с флагами -lGLEW -lGL, wxWidgets - это версия 2.8 и OpenGL 3.0 Mesa 10.1.3. Под ОС Windows ошибки нет.

Я благодарен за любые указатели. Дайте мне знать, если вам нужна дополнительная информация или MWE.

1 ответ

Решение

Я обновил wxWidgets до версии 3.1 и перенес SetCurrent а также glewInit вызов из конструктора обработчику событий, связанному с wxEVT_PAINT и убедился, что он вызывается только один раз.

Теперь это работает.

Другие вопросы по тегам