crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V  < 1 2 3 4 >  
Ответить в данную темуНачать новую тему
> Попиксельное заполнение буфера
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  


Цитата(loh @ 21.12.2011, 17:37) *
Проблема в том что частота прихода этих пакетов высокая - например 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  


Цитата(loh @ 27.12.2011, 11:24) *
Типа осцилограммы нормально выводится, мне надо типа сканера в реальном времени при этом новая строка не встаёт в конец картинки, а каждый раз встаёт в начало, смещая всю картинку..


Не совсем понятно что вы имеете ввиду, какая разница с какой стороны происходит скроллинг?

Советую использовать 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  


Цитата(loh @ 27.12.2011, 14:35) *
а как попиксельно заполнять 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  


Цитата(BlueIceScream @ 27.12.2011, 19:19) *
Цитата
Типа осцилограммы нормально выводится, мне надо типа сканера в реальном времени при этом новая строка не встаёт в конец картинки, а каждый раз встаёт в начало, смещая всю картинку..


Вы каждый раз по приходу новой строки данных смещаете значения в QImage?

в последней реализации я не смещал в qimage данные а смещал позицию новых данных, а в пейнтере на graphicsitem два раза вызывал painter->drawimage(image.copy()) соответственно от текущей позиции новых данных до конца картинки и от начала картинки до текущей позиции прямоугольники копировал :)

вроде довольно быстро получалось, но все равно где то косячило...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V  < 1 2 3 4 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.11.2024, 9:48