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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Тормоза в QGLWidget  (Прочитано 17728 раз)
spbtellurian
Гость
« : Март 31, 2010, 14:15 »

Есть класс окна (унаследован от QWidget ) занимающийся отрисовкой различной 2D графикой в том числе текста.
При наследовании окна отрисовки от QWidget загрузка CPU 3-5%

Посмотрев пример "2D Painting Example" ради эсперемента попробывал унаследоваться от QGLWidget.
Загрузка CPU сильно возросла !!. вместо 3-5% получил 35-37%

Почему у меня такие тормоза Непонимающий


Qt 4.3.3\WinXP\NVidia7900
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Март 31, 2010, 14:19 »

Для начала не мешало бы обновить Qt.
Записан

Qt 5.11/4.8.7 (X11/Win)
spbtellurian
Гость
« Ответ #2 : Март 31, 2010, 14:32 »

Обновлять Qt по каждому чиху можно когда пишешь для себя
а когда есть целый вагон приложений разбросанных по всей стране то вопрос совместимости стоит более остро чем "свежеть" версии Qt

Однако хотелось бы по существу вопроса Строит глазки Почему в отрисовка через QGLWidget оказалась значительно медленнее Непонимающий
Записан
alexman
Гость
« Ответ #3 : Март 31, 2010, 14:42 »

Если код (кроме наследования) не изменился, то скорее всего из-за взаимодействия Qt и OpenGL.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #4 : Март 31, 2010, 14:45 »

Цитировать
Обновлять Qt по каждому чиху можно когда пишешь для себя
а когда есть целый вагон приложений разбросанных по всей стране то вопрос совместимости стоит более остро чем "свежеть" версии Qt
Почитайте тогда это, может измените свое мнение.
Записан

Qt 5.11/4.8.7 (X11/Win)
spbtellurian
Гость
« Ответ #5 : Март 31, 2010, 14:48 »

Код один в один. Просто изменил название класса от котрого у наследвался.

посмотрел примерчик из QT SDK "2D Painting Example" вдохновился опсание мол QGLWidget ускоряет отрисовку 2D. А на практике то получается совесм наоборот.

Маленький примерчк "2D Painting Example" рисует одинаково что в QWidget что в QGLWidget а вот на релаьном дел у меня полный ахтунг получилось.
Записан
alexman
Гость
« Ответ #6 : Март 31, 2010, 14:52 »

Код один в один. Просто изменил название класса от котрого у наследвался.
А кто тогда будет функции
Код:
virtual void	initializeGL ()
virtual void paintGL ()
virtual void resizeGL ( int width, int height )
переопределять?
Записан
alexman
Гость
« Ответ #7 : Март 31, 2010, 14:54 »

посмотрел примерчик из QT SDK "2D Painting Example" вдохновился опсание мол QGLWidget ускоряет отрисовку 2D. А на практике то получается совесм наоборот.
Не может быть! Скорее всего что-то не очень хорошо спроектировано! Грустный
Записан
spbtellurian
Гость
« Ответ #8 : Март 31, 2010, 15:03 »

Цитата: alexman link=topic=13015.msg84014#msg84014
А кто тогда будет функции
[code
virtual void   initializeGL ()
virtual void   paintGL ()
virtual void   resizeGL ( int width, int height )
[/code]
переопределять?
Будет плесать от печки т.е. от QT SDK там есть примерчик "2D Painting Example". И там нет переопределений выше озвученных методов.
Записан
spbtellurian
Гость
« Ответ #9 : Март 31, 2010, 15:07 »

Не может быть! Скорее всего что-то не очень хорошо спроектировано! Грустный
Всё возможно. Вероятно мой код заточен под QWidget и для QGLWidget его надо модефицировать. Тогда возникает другой вопрос что и как ?

to ALL:
Кто сталкивался с подобным переносом отрисовки может подскажет какие есть грабли ?
Записан
ieroglif
Гость
« Ответ #10 : Март 31, 2010, 15:52 »

граблей много, почти все индивидуальны и проходятся исключительно на собственном опыте.
Записан
spbtellurian
Гость
« Ответ #11 : Март 31, 2010, 15:57 »

ну то что граблей млжет быть много это опнятно.
Вопрос в другом:
Кто сталкивается с проблемами производительности при переходе от QWidget к QGLWidget ?
Записан
alexman
Гость
« Ответ #12 : Март 31, 2010, 16:00 »

Трудный вопрос (сугубо индивидуально)Подмигивающий
Записан
spbtellurian
Гость
« Ответ #13 : Март 31, 2010, 16:04 »

Чегото я вас не понимаю привожу конкретный пример спрашиваю конкретный вопрос а вы всё какими то общими фразами...

Вот конкретно вы alexman и ieroglif сталкивались с описанной мной проблемой и если да то как решили ?
Записан
ieroglif
Гость
« Ответ #14 : Март 31, 2010, 18:33 »

Вот, конкретно, мы - иероглиф, писали (да и до сих пор под настроение пишем) 3д игру под огл при юзании qt.
итогом стало что что один и тот же код под линухом давал 25фпс, а под вендой = 60.
а уж сколько я там граблей то перекопал что бы убыстрить - и не вспомнишь.
понимаешь, несколько месяцев ковырялся в огле пытаясь соптимизировать код - так что граблей много, они индивидуальны, и рассказать про них можно только двумя фактами:
1. кури маны, читай книги по оглу, ковыряйся, пропуй писать примеры и т.д.
2. повторить п.1. пока всё на заработает на устраивающем тебя уровне.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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