Попиксельное заполнение буфера |
Здравствуйте, гость ( Вход | Регистрация )
Попиксельное заполнение буфера |
wiz29 |
27.12.2011, 8:33
Сообщение
#21
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
как я понял, тебе нужно выводить нечто в виде осциллограммы, советую посмотреть в сторону qwt
Сообщение отредактировал wiz29 - 27.12.2011, 8:34 |
|
|
Sokoloff |
27.12.2011, 9:23
Сообщение
#22
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
Проблема в том что частота прихода этих пакетов высокая - например 200 пакетов в секунду, Скорее всего затратность можно снизить раза в три. Стандартная скорость развертки на мониторах 60-70 Гц, т.е. стандартный монитор в принципе не может показать 200 пакетов в секунду. Поэтому можно обновлять картинку не после каждого пакета, а после поступления 3-х. |
|
|
loh |
27.12.2011, 10:24
Сообщение
#23
|
Студент Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: 0 |
У меня с тормозами даже кадров 5-6 в секунду было, картинка рисовалась 200-300мс, ну я сейчас попробую ряд советов отсюда взять и по новой сделать
Типа осцилограммы нормально выводится, мне надо типа сканера в реальном времени при этом новая строка не встаёт в конец картинки, а каждый раз встаёт в начало, смещая всю картинку.. |
|
|
wiz29 |
27.12.2011, 10:39
Сообщение
#24
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Типа осцилограммы нормально выводится, мне надо типа сканера в реальном времени при этом новая строка не встаёт в конец картинки, а каждый раз встаёт в начало, смещая всю картинку.. Не совсем понятно что вы имеете ввиду, какая разница с какой стороны происходит скроллинг? Советую использовать QPixmap для вывода, он поддерживает аппаратный скролл и оч. быстро выводится на экран. Делай скрол пиксмапу и дорисовывай нужные данные, там где их еще нет после скролла. подсистема рисования qt достаточно быстрая штука. Сообщение отредактировал wiz29 - 27.12.2011, 10:42 |
|
|
loh |
27.12.2011, 13:35
Сообщение
#25
|
Студент Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вооо класс! Я знал что должна быть какая то штука типа этого скрола но не мог найти ))
а как попиксельно заполнять pixmap, так же быстро как image, типа bits or scanline функций? Хотя вообще этот скрол есть и для виджета и для графического айтема) ладно всем спасибо буду пробовать варианты) Ах да, ещё спросил забыть один вопрос, но не совсем по теме! Почему qt программа, открывающая в коде графические файлы, жпег например в qimage, не читает эти файлы на винде с отключенным кешированием памяти? |
|
|
wiz29 |
27.12.2011, 13:59
Сообщение
#26
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
а как попиксельно заполнять pixmap, так же быстро как image, типа bits or scanline функций? Для Qpixmap нет возможности работать попиксельно, тк это устройство-зависимый формат. Как вариант, используй QImage для недостающих частей картинки и затем рисуй эти куски через QPainter в QPixmap |
|
|
loh |
27.12.2011, 14:16
Сообщение
#27
|
Студент Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: 0 |
А не знаешь, аппаратный скрол только в пиксмапе? Вот в q graphics item, положим, он какой?
|
|
|
wiz29 |
27.12.2011, 14:17
Сообщение
#28
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
qgraphicsitem может кешироваться подсистемой qgraphicsview, там нет понятия скролла для item'a как такового, поскольку это векторная графика.
|
|
|
BlueIceScream |
27.12.2011, 18:19
Сообщение
#29
|
Студент Группа: Участник Сообщений: 56 Регистрация: 21.11.2011 Из: Республика Дагестан Пользователь №: 3016 Спасибо сказали: 18 раз(а) Репутация: 3 |
Цитата Типа осцилограммы нормально выводится, мне надо типа сканера в реальном времени при этом новая строка не встаёт в конец картинки, а каждый раз встаёт в начало, смещая всю картинку.. Вы каждый раз по приходу новой строки данных смещаете значения в QImage? |
|
|
loh |
27.12.2011, 23:07
Сообщение
#30
|
Студент Группа: Участник Сообщений: 60 Регистрация: 11.5.2008 Пользователь №: 171 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата Типа осцилограммы нормально выводится, мне надо типа сканера в реальном времени при этом новая строка не встаёт в конец картинки, а каждый раз встаёт в начало, смещая всю картинку.. Вы каждый раз по приходу новой строки данных смещаете значения в QImage? в последней реализации я не смещал в qimage данные а смещал позицию новых данных, а в пейнтере на graphicsitem два раза вызывал painter->drawimage(image.copy()) соответственно от текущей позиции новых данных до конца картинки и от начала картинки до текущей позиции прямоугольники копировал вроде довольно быстро получалось, но все равно где то косячило... |
|
|
Текстовая версия | Сейчас: 26.11.2024, 20:23 |