Определение поддерживаемой версии OpenGL с помощью модуля QtOpenGL |
Здравствуйте, гость ( Вход | Регистрация )
Определение поддерживаемой версии OpenGL с помощью модуля QtOpenGL |
registr |
24.1.2011, 19:37
Сообщение
#1
|
Участник Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: 1 |
Столкнулся с интересной проблемой, а потом как показалось даже ужасающий. В модуле QtOpenGL есть специальный метод, чтобы определить поддерживаемую платформой версию OpenGL. В Ассистанте написано мол так, используйте функцию QGLFormat::openGLVersionFlags(), чтобы определить поддерживаемую версию OpenGL на вашей платформе. Теперь через модуль QtOpenGL должна произойти связь с системными реализациями WGL, GLX, AGL и возвращена табличная констанста в 16-системе. На Windows по определению должна быть констаната, соответствующая версии 1.1, так как WGL поддерживате только 1.1
Вместо этого на Виндоус получаю число 3f - его нет в таблице, на ОпенСюзе 11.2 получаю 1f - его тоже нет в таблице. Пробовал через switch(), тогда просто нет совпадений и получаю дефаулт. Как быть? Похоже на баг или у меня кривые руки? |
|
|
Алексей1153 |
24.1.2011, 19:55
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
смотрю в справочнике таблицу - есть константы 0x40 (2.1) и 0x20 (2.0). Ты как-будто бы 1 отнял от числа. Скопируй сюда весь enum QGLFormat::OpenGLVersionFlag
а версии 1.1 соответствует 0x01 кстати, там тип не int, а uint32_t ааа, всё, дошло до меня. Там же комбинация битов! Вот и ответ 3f - это версии от 1.1 до 2.0 включительно Сообщение отредактировал Алексей1153 - 24.1.2011, 19:53 |
|
|
Текстовая версия | Сейчас: 22.12.2024, 14:47 |