| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > OpenGL 3 4 в QT но средсвами |
| Автор: Vetos 22.11.2011, 00:16 |
| я хочу использовать от QT только оболочку, т.е. окно (со всеми обработчиками и так далее). Хочу использовать OpenGL с библитекой Gle. QT оборачивает как основные функции так и расширения ОГЛ, а я гдето в помощи читал что подключение Gle(ну того что Glew для винды) не приветсвуется и ошибки будут сыпаться пачками. Вот хочу спросить наперед у опытных программеров, возможен ли такой гибридный подход, либо используй OpenGL в QT, либо не используй QT вообще? Хотелось просто потом портироваться на мобильник, а конкретно рыться в симбиане неохото(первая попытка неудалась), а через QT все доступно. |
| Автор: alexvs11 22.11.2011, 01:02 |
| я пытался отрисовывать на Qt'шном окне DirectX'ом - и скажу, что если это и возможно, то результат зависит от версии библиотеки и скрытых внутренних механизмов Qt использует свой стек рендеринга, думаю встраиваться в него не самая удачная идея |
| Автор: bsa 22.11.2011, 10:36 | ||
| Vetos, нет никаких проблем, кроме криво реализованных хидеров в gle. Таким образом, если ты ОЧЕНЬ хочешь ее использовать, то делай отдельный модуль (читай *.cpp файл), который будет с ней работать, но не будет подключать хидеры QtOpenGL. На сколько я помню, gle просто открывает все возможное функции OpenGL (читай расширения), а не только те, что открыты по умолчанию. Если ты хочешь потом портировать на мобильник, то следует сразу ознакомиться с GLES (кажется как). Чтобы потом не было мучительно больно.
Вот что делают энтузиасты: http://prog.org.ru/wiki/index.php?title=QDirect3DWidget. |
| Автор: bsa 22.11.2011, 13:26 | ||
а если http://doc.qt.nokia.com/4.7/qglwidget.html почитать?
|
| Автор: alexvs11 22.11.2011, 13:48 |
| bsa, а если пост автора почитать? из него следует, что автор собирается использовать opengl не через обертки Qt, а через нативную библиотеку |
| Автор: bsa 22.11.2011, 13:57 |
| alexvs11, ты видимо документацию так и не прочитал... Или не понял... Или не захотел понять... Для тех кто в танке: QGLWidget создает контекст OpenGL, который необходим для отрисовки сцены с использованием данной библиотеки. Далее у тебя есть возможность использовать средства QPainter или OpenGL для отрисовки. Выбор остается за тобой. Чтобы тебе было удобней, создано несколько виртуальных методов, которые вызываются при инициализации контекста для его настройки, изменении размера виджета (для настройки вьюпорта, например), а так же paintGL для отрисовки сцены. |
| Автор: alexvs11 22.11.2011, 20:42 |
| bsa, ок, победили об таком использовании я не знал |
| Автор: bsa 22.11.2011, 21:46 |
Именно поэтому я и отослал к документации. Рекомендую в следующий раз не брезговать и читать ее, когда возникает спор. |
| Автор: Vetos 23.11.2011, 00:17 | ||||||
Спасибо за ответы!
Т.е. я просто создаю класс который будет рисовать что мне нужно, командами поднятыми Gle, сразу на окне QT с поднятым контекстом? Или же создавать контекст прийдется вручную без QGLWidget?
моб тянет OGL ES 2.0, для моего уровня особых отличий небудет, просто вдальнейшем хотелось поковырять библиотеку для десктопов
Так получается что всетаки GLWidget может использоваться только встроенными функциями? Или всетаки возможен вариант использования контекста GLWidget? Впринцыпе начну я знакомиться с функциональносттью QT по отношению к GL, всеравно и так и так прийдется его использовать для мобилки. Но всеже если какието приемлемые варианты известны прошу помощи. Для начала попробую перенести уроки gl33lessons на QT, если QT поддерживает весь функционал уроков, то впринципе на первых порах мне будет достаточно. И всетаки идея с гибридным использованием не покидает мою голову. Я просто гдето на nokia.com читал что QT не поддерживает OpenGL на 100%, может это какието старые странички, может в 4.7.4 версии уже все реализовано??? |
| Автор: bsa 23.11.2011, 10:18 | ||||||||
Зачем? QGLWidget позволяет тебе встраивать OpenGL сцену в интерфейс приложения. Зачем отказываться от такой возможности?
Эти примеры придется немного отредактировать. В частности, убрать создание контекста (это QGLWidget сделает за тебя) и разнести код по трем виртуальным функциям. Это не сложно. |
| Автор: Vetos 23.11.2011, 22:50 | ||
Спасибо
вот и я думаю, богатый функционал Qt уже состовляет пол движка, и скрипты и сеть, и т.д. Буду изучать (Ужеб давно пора бы) Если комуто понадобится то полная поддержка версий OpenGL свыше 3.1 есть только в версии Qt 4.8.0 ( сам пользуюсь версией Qt 4.8.0 RC ) |