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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: использование аппаратного ускорителя  (Прочитано 11437 раз)
cherv
Гость
« : Февраль 20, 2010, 14:28 »

Всем доброго времени суток!
я только начинаю свое знакомство с QT и сейчас стоит следующая задача:
необходимо создать GUI с использованием аппаратного ускорителя.
Подскажите, пожалуйста куда копать и какими средствами можно реализовать?
Записан
SABROG
Гость
« Ответ #1 : Февраль 20, 2010, 14:44 »

аппаратного ускорителя

Это тебе нужно собирать второй андронный коллайдер.

Создавай QGraphicsView и ставь ему OpenGL'овский viewport:

Код
C++ (Qt)
QGraphicsView view(&scene);
view.setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
 

Затем создавай свои виджеты и помещай на сцену: QGraphicsScene::addWidget()
Записан
mcrads
Гость
« Ответ #2 : Февраль 20, 2010, 18:25 »

Как понимать использовать аппаратный ускоритель? тебе нежно отрисовывать 3Д графику в отдельном виджете? или же сделать как майкрософт со своими виндовс виста и 7? т.е. "настоящий полностью трехмерный интерфейс"? второе средствами qt проблематично =)) а первое да, SABROG прав ) советую почитать книжки по qt, особенно если найдешь книжку изданную работниками троллей - там подробно разобраны многие фишки.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #3 : Февраль 21, 2010, 03:04 »

Цитировать
второе средствами qt проблематично =))


KDE 4 видел?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Февраль 21, 2010, 06:43 »

>>KDE 4 видел?
я видел, только 3-х мерного там ничего не заметил, заметил, что по сравнению с KDE3 сильно тормозит.
Записан

Юра.
mcrads
Гость
« Ответ #5 : Февраль 21, 2010, 10:08 »

КДЕ4 имеет всего лишь отличную отрисовку с альфа-картами, не более того. ну может более, но это не столь существенно.
(спецэффекты переходов между рабочими столами - немножко другое, я говорю о трехмерных окошках, кнопочках, панели - как в висте / 7)
а если создавать действительно трехмерный интерфейс средствами qt - все это безобразие тормозить будет больше чем кде =) не те средства.
Записан
cherv
Гость
« Ответ #6 : Февраль 21, 2010, 13:14 »

вообщем ситуация следующая:
есть процессор, со встроенным 2D ускорителем, и дабы снизить нагрузку на сам процессор, необходимо задействовать имеющийся ускоритель для прорисовки пользовательского интерфейса(кнопочки, лэйблы и т.д.)

SABROG
Спасибо! Попробую Улыбающийся


Цитата: mcrads
советую почитать книжки по qt, особенно если найдешь книжку изданную работниками троллей

что за работники троллей? как книга называется? в тех книгах, которые у меня есть ничего конкретного не расписано... Грустный
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #7 : Февраль 21, 2010, 13:15 »

я вообще то не фанат KDE 4

Цитировать
по сравнению с KDE3 сильно тормозит.
Я качал последний лайв сд специально чтобы посмотреть - у меня на крате NVidia ничего не тормозило совершенно

Цитировать
спецэффекты переходов между рабочими столами - немножко другое
почему это?

Цитировать
я говорю о трехмерных окошках, кнопочках, панели - как в висте
Если мне не изменяет память то там как раз закос под висту со всеми этими трехмерными кнопочками и безобразием

Цитировать
а если создавать действительно трехмерный интерфейс средствами qt - все это безобразие тормозить будет больше чем кде =) не те средства
1) не понял фразу - KDE и так написан на Qt 4
2) зачем в принципе трехмерный интерфейс, и что имеется ввиду - интерфейс на базе GL типа CeGUI или просто красивые окошки с тенями и т.д.? Если второе думаю в Qt с ними проблем с производительностью не будет..
3) и вообще вы же в курсе про способ ускорения виджетов через OpenGL http://doc.trolltech.com/qq/qq26-openglcanvas.html
4) ну и в конце концов - берем QGlWidget- и там делаем любой интерфейс через OpenGL - думаю даже тот же CeGui можно использовать - только зачем...
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #8 : Февраль 22, 2010, 13:19 »

Использовать в качестве render OpenVG. Если сможешь скомпилировать Qt с его поддержкой. И если твоя видеокарта и драйверы к ней поддерживают OpenVG.
Записан
SABROG
Гость
« Ответ #9 : Февраль 22, 2010, 14:29 »

Использовать в качестве render OpenVG. Если сможешь скомпилировать Qt с его поддержкой. И если твоя видеокарта и драйверы к ней поддерживают OpenVG.

Насколько я знаю OpenVG больше для мобильных устройств рассчитан. К тому же мне не удалось найти ни одного примера сборки OpenVG с Qt под windows и пример работающего приложения.
Записан
BRE
Гость
« Ответ #10 : Февраль 22, 2010, 14:48 »

Насколько я знаю OpenVG больше для мобильных устройств рассчитан. К тому же мне не удалось найти ни одного примера сборки OpenVG с Qt под windows и пример работающего приложения.
Собирал пару версий Qt с ShivaVG под linux, качественно рисовать заставить не получилось. Грустный
Использование OpenGL в качестве graphicssystem дает картинку значительно качественней.
Записан
SABROG
Гость
« Ответ #11 : Февраль 22, 2010, 15:59 »

Хотел собрать ShivaVG в MSYS. Пришлось доставлять кучу отсутствующих пакетов под MSYS, в итоге застрял на этапе ./configure, нет OpenGL и GLUT исходников. Как я понял GLUT невозможно собрать под Windows компилятором MinGW (только MSVC или linux). Есть порт, но он настолько старый, что в FAQ'e по MinGW существует длинная портянка, которая должно исправить проблемы с компиляцией этого порта. В общем я забил на это.
Записан
cherv
Гость
« Ответ #12 : Февраль 28, 2010, 00:43 »

OpenVG не катит, т.к. на сколько я понял это для векторной графики... А вот OpenGL ES 1.1 самое оно. Улыбающийся
Вот только пока что не могу понять как заставить QT использовать именно его а не обычный OpenGL. Если кто-то занимался таким, подскажите плиз....

и еще такой вопрос такой:
в процессе выполнения не происходит прорисовки лейбла 2 раза, т.е. долго думает, а потом поворачивает сразу на 165 градусов.
Как заставить прорисовывать дважды?  Строит глазки

Код:
  
    QGraphicsScene scene;
    QGraphicsView view(&scene);

    view.setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
    view.setViewportUpdateMode(QGraphicsView::FullViewportUpdate);

    QGraphicsProxyWidget *label = scene.addWidget(new QLabel("Hello, world!"));
 
    label->rotate(65);
    view.show();

    sleep(10);

    label->rotate(165);   
    view.show();
Записан
SABROG
Гость
« Ответ #13 : Февраль 28, 2010, 00:52 »

Код:
  
    sleep(10);

Сам же его думать и заставил. Блокируешь главный цикл событий на 10 секунд, в это время никакие события не обрабатываются, а сидят в очереди и жду когда же ты вернешься. Перерисовка окна это тоже событие. Люди отдельные потоки не из прихоти используют, а чтобы интерфейс программы оставался рабочим в момент выполнения долгих операций.

Смотри в сторону Animation Framework или вращай виджет по таймеру.
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #14 : Февраль 28, 2010, 18:05 »

OpenVG не катит, т.к. на сколько я понял это для векторной графики...
А ты думаешь, что когда рисуешь label это во что превращается? Если ты, конечно, не растровый шрифт используешь. В чистом виде векторная графика.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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