Russian Qt Forum
Май 22, 2024, 13:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: OpenGL для отрисовки  (Прочитано 6352 раз)
0x0001
Гость
« : Июнь 01, 2011, 21:54 »

добрый день, скажите возможно ли использовать QtOpenGL модуль рендеринга для отрисовки QAbstractButton и производных, а также остальных GUI Непонимающий Если да, то как?
Спасибо.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Июнь 01, 2011, 22:26 »

Нет. А вам зачем?
Записан
0x0001
Гость
« Ответ #2 : Июнь 01, 2011, 22:38 »

Нет. А вам зачем?
быстрее ....?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Июнь 01, 2011, 23:01 »

Есть интересная опция -graphicssystem opengl, но вот заставляет ли она нативные виджеты рисоваться через огл - яхз. Надо поглядеть как таки кьюстайлы устроены - рисует ли стайл через пейнтер или через нативные вызовы.
Собсно тупой вопрос - ваше приложение тормозит? Или вам "просто так" захотелось огл прикрутить? Знаете ли, офисные машины с интел гма плохо дружат с аппаратным ускорением.
« Последнее редактирование: Июнь 01, 2011, 23:06 от Авварон » Записан
0x0001
Гость
« Ответ #4 : Июнь 02, 2011, 08:06 »

ваше приложение тормозит? Или вам "просто так" захотелось огл прикрутить? Знаете ли, офисные машины с интел гма плохо дружат с аппаратным ускорением.
4 года назад я переложил рендеринг почти всех MFC контроллов(GUI)  на DirectX 9.0, кстати это очень просто... Ни разу проблем не возникало, учитывая 60% утановок П.О. на нетбуки(~20%) & ноуты(~40%) (П.О. для наглядной диагностики сложного оборудования)
Да, там гарфика, необходимо анимировать , увеличивать, сдвигать, вертеть детали и п.р., но САМАЯ проблема, чтобы всё это было, выглядело в одном Дизайн-стиле, короче вопросы к Отд.Дизайна Подмигивающий
Сейчас задача та же (правда нетбуки уже более 60% установок) но на ОС и под Linux и под Win.... т.е. OpenGL only///
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #5 : Июнь 02, 2011, 10:45 »

Попробуйте всё-таки запустить приложение с ключом -graphicssystem opengl
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #6 : Июнь 02, 2011, 11:12 »

Попробуйте всё-таки запустить приложение с ключом -graphicssystem opengl
Код:
Запускается D:\Work\test-build-desktop\debug\test.exe...
hijackWindow() context created for QLabel(0x28fe4c) 1
[c:\ndk_buildrepos\qt-desktop\src\opengl\qglframebufferobject.cpp line 464] GL Error: 1285
QGLFramebufferObject: Framebuffer incomplete, missing attachment.
QGLFramebufferObject: Framebuffer incomplete, missing attachment.
QGLFramebufferObject: Framebuffer incomplete, missing attachment.
QGLFramebufferObject: Framebuffer incomplete, missing attachment.
QGLFramebufferObject: Framebuffer incomplete, missing attachment.
[c:\ndk_buildrepos\qt-desktop\src\opengl\qglframebufferobject.cpp line 599] GL Error: 1285
QGLWindowSurface: Failed to create valid FBO, falling back
QGLPixelBuffer: Unable to find a pixel format with pbuffer  - giving up.
QGLWindowSurface: Failed to create valid pixelbuffer, falling back
QGLWindowSurface: Using plain widget as window surface QGLWindowSurface(0x68dfd8)
QGLShader::link: "Fragment shader(s) linked, vertex shader(s) linked.
 "
QGLShader::link: "Fragment shader(s) linked, vertex shader(s) linked.
 "
QGLShader::link: "Fragment shader(s) linked, vertex shader(s) linked.
 "
QGLShader::link: "Fragment shader(s) linked, vertex shader(s) linked.
 "
Windows 7 x64
Пути c:\ndk_buildrepos\qt-desktop в системе нет - обычная установка C:\QtSDK\ .
« Последнее редактирование: Июнь 02, 2011, 11:15 от LisandreL » Записан
twp
Гость
« Ответ #7 : Июнь 02, 2011, 13:07 »

Да, там гарфика, необходимо анимировать , увеличивать, сдвигать, вертеть детали и п.р., но САМАЯ проблема, чтобы всё это было, выглядело в одном Дизайн-стиле, короче вопросы к Отд.Дизайна Подмигивающий
Сейчас задача та же (правда нетбуки уже более 60% установок) но на ОС и под Linux и под Win.... т.е. OpenGL only///

если нужно встроить контролы в OpenGL сцену то есть отличная демка /QtSDK/Demos/4.7/boxes. А вообще с пятой версии Qt весь рендеринг будет производится средствами OpenGL

Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #8 : Июнь 02, 2011, 13:12 »

Не весь, а только QML. с++ виджеты так и будут использовать пейнтер.
Попробовал запустить на маке с огл график системой. Срипя запустилось, не отрисовывало иконки, были небольшие артефакты. Огл такой огл:(
Надо конечно в багтрекер писать насчет огла. Но там людей мало, хз кто этим заниматься будет.
« Последнее редактирование: Июнь 02, 2011, 13:24 от Авварон » Записан
twp
Гость
« Ответ #9 : Июнь 02, 2011, 13:23 »

Не весь, а только QML. с++ виджеты так и будут использовать пейнтер.
а что тогда значит вот это
Цитировать
Изменение архитектуры графического стека. В качестве центральных элементов новой архитектуры будут выступать Qt Quick и QML Scenegraph. Поддержка QPainter будет сохранена для выполнения расширенных функций, но не сможет быть использована в основном интерфейсе пользователя. Для работы Qt система должна будет поддерживать OpenGL (ES) 2.0. QWidgets будет отображаться поверх графической сцены, а не наоборот, как сейчас реализовано в версии Qt 4;
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #10 : Июнь 02, 2011, 14:29 »

То что они переделают механизм СЦЕНЫ (точнее уже переделали), а виджеты (qml'ные) будут базироваться на ней. Стандартные с++ виджеты будут убраны из QtGui и перенесены в QtWidgets. Их трогать вообще не будут (читай - их закопали).
Записан
twp
Гость
« Ответ #11 : Июнь 02, 2011, 15:46 »

хм, если смотреть на  эту схему, то виджеты как и прежде используют 2D API (QPainter), но отрисовка идет через граф сцены и OpenGL, а нативных вызовов вроде как и нет. Или это совсем другие виджеты?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #12 : Июнь 02, 2011, 15:56 »

Пейнтер и сейчас "может" рисовать через огл. Нативных вызовов там и так нету - я таки поглядел как работают стили. Всё равно конечная отрисовка идет через пейнтер.
Собсвенно на топ уровне будет лежать сцена, в к-ую помещены виджеты, отрисованные в 2д режиме и/или qml элементы. Таким образом, сами виджеты никто не трогает, поверх них ложится лишь еще 1 уровень абстракции - сцена, к-ую и переделывают.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 19.