crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Определение поддерживаемой версии 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
#include <QtGui>
#include <QIODevice>

void getOGLVersion();

int main(int argc, char** argv)
{  
   QApplication app(argc, argv);

   getOGLVersion();

   //...

   return app.exec();

void getOGLVersion()
{
   int i=(int)QGLFormat::openGLVersionFlags();
   QFile a("info.txt");
   a.open(QIODevice::WriteOnly);
   QTextStream out(&a);
   out << hex << i;
   a.close();
}

Вместо этого на Виндоус получаю число 3f - его нет в таблице, на ОпенСюзе 11.2 получаю 1f - его тоже нет в таблице. Пробовал через switch(), тогда просто нет совпадений и получаю дефаулт. Как быть? Похоже на баг или у меня кривые руки?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.4.2024, 16:17