crossplatform.ru

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

> Qt+OpenGL. Qt "не видит" функции OpenGL, C3861: 'glOrtho': identifier not found
Christor
  опции профиля:
сообщение 28.1.2013, 22:02
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 28.1.2013
Пользователь №: 3689

Спасибо сказали: 0 раз(а)




Репутация:   0  


Доброго времени суток.
Срочно нужна помощь.
Скопировал код со статьи http://www.gamedev.ru/code/articles/OpenGL_Qt4 (своего не добавлял).
В итоге вот такие ошибки:

т.е. Стандартные функции gl не видны. Практически все функции с префиксом gl не работают. Как будто не подключён gl.h (он же вроде должен быть в модуле Qt).
Пробовал другие исходники с OpenGL. Результат тот же.
В чём может быть ошибка? Очень срочну нужно решить проблему.
Qt 5.0 (статья для Qt 4. Может быть с этим связано?)
Очень надеюсь на помощь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Christor
  опции профиля:
сообщение 29.1.2013, 13:16
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 28.1.2013
Пользователь №: 3689

Спасибо сказали: 0 раз(а)




Репутация:   0  


Windows 7. Не виртуалка и не эмулятор.
Сейчас попробую переустановить Qt. Но думаю не поможет.
OpenGL ES ? Я ничего подобного не ставил. Разве с Qt не идут все необходимые OpenGL файлы?
Где должен находиться gl.h ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 29.1.2013, 16:16
Сообщение #3


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Возможно проблемы с драйвером видеокарты.

В Qt4 все работает, проверял сегодня и в Creator и в MSVS2010, Win7x64.
Возможно дело действительно в Qt5, надо будет поиграться.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 29.1.2013, 16:54
Сообщение #4


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Поставил Qt5. Подтверждаю, у меня тоже не видит .)

Смотреть почему - http://qt-project.org/forums/viewthread/22821 (от 20 декабря)

Цитата
OK that is the source of your issues then. The pre-compiled Windows desktop version of Qt5 is built against ANGLE which only provides OpenGL ES 2 support by implementing it on top of DirectX 9.
This was done to ensure that QtQuick2 works on all windows systems, including those with crappy Intel OpenGL drivers ;)
OpenGL ES 2 does not support the legacy fixed function pipeline, only a shader-based one.
There is a bug open to provide a build of Qt 5 using the native desktop OpenGL implementation for Qt 5.0.1. Please go vote for https://bugreports.qt-project.org/browse/QTBUG-28715 to see this happen.
For now, you have two choices:
Live with OpenGL ES 2 support and don’t use legacy OpenGL
Build your own copy of Qt 5 to use the native OpenGL drivers by passing in

-opengl desktop

to configure.

With the 2nd option you should have access to OpenGL from 1.0 up to 4.3 (if your card/driver support it).

Суть вкратце:
1. Устанавливаемая собранная версия Qt собрана с использованием OpenGL ES, чтобы QtQuick 2 мог работать на всех системах с Windows.
2. Как я уже говорил OpenGL ES не поддерживает многих старых функций fixed pipeline, только шейдеры, только хардкор .)
3. Можно проголосовать за десктопную сборку для 5.0.1 по ссылке https://bugreports.qt-project.org/browse/QTBUG-28715 , но пока ее нет.
4. Собственно есть два пути
Отказаться от старых функций и использовать только шейдеры.
Или собрать Qt с использованием нативного OpenGL (используя опцию -opengl desktop)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 14.4.2021, 19:55