|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.07.2013, 15:37 | #1 |
Пользователь
Регистрация: 14.06.2013
Сообщений: 11
|
Добрый день.
написал приложение на c++ cli с использованием windows forms. устраивает все, кроме скорости отрисовки на picturebox. отрисовываю, создавая заранее битмап и заполняя его попиксельно. в winforms радует простота использования кнопок и всего готового. если я правильно понимаю, то с использованием Qt я получу тоже самое. те простота использования, но такая же система отрисовки. Вычитал, что для повышения скорости рисования чего-либо стоит использовать либы. например SDL. но вот вопрос, что мне с ним делать? впихнуть SDL_surface в свою форму, я так понимаю, не могу. или могу? если та, то как? отрисовывать все элементы управления в окне, созданном SDL - вроде это очень долго. есть еще какие-то дополнительные либы для отрисовки элементов упарвления, но я не разобрался пока, какие, как используются и тп. Поэтому ОСНОВНОЙ ВОПРОС - подскажите, что в данных случаях логичнее всего делать, по какому пути пойти? внедрять либы отрисовки в управление или либы по созданию элементов управления в приложение, в основе которого библиотека рисования? или есть другие варианты? Спасибо. дополнение общая задача - потоковое считывание данных с usb порта в матрицу и вывод значений этой матрицы в виде черно-белой картины (яркость пикселей зависит от размера значений в матрице, а положение точек на картине - положение значений в матрице). дополнительно есть вывод графиков из тех же значений (по одной строке матрицы). и куча кнопок управления устройством, подключенным по usb. Последний раз редактировалось Stilet; 10.07.2013 в 18:00. |
10.07.2013, 17:45 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
в Qt есть модуль QtGL что позволит применить видеокарту для отрисовки.
в WinForms тоже какие то либы видел подобные. SDL, как вариант тоже. а по задаче, вам надо оптимизировать таки рисование, такими темпами, у вас все равно упрется в проц, даже при работе с видяхой. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
10.07.2013, 20:08 | #3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Если надо попиксельно, то никакой GL не спасет...
Быстрее всего будет выделить память, записывать все пикселы напрямую а потом уже из этой памяти делать картинку и кидать на екран. Поскольку все данные под своим контролем можно будет сэкономить кучу проверок и вычислений адресов. |
10.07.2013, 21:33 | #4 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
10.07.2013, 22:36 | #5 |
Форумчанин
Регистрация: 09.07.2013
Сообщений: 249
|
эмм...омм...картинки размер уменьшить никак?качество ухудшить? рисовать в отдельном потоке(пока рисуется, буфер копится в очередь)?
Ещё вариант GPU использовать наример через OpenCL.
do not use your brain
Последний раз редактировалось Кащей; 10.07.2013 в 23:01. |
10.07.2013, 23:10 | #6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
попиксельное рисование в данном случае практически не ускорить, а насчет потока мысль уже допустимая. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
10.07.2013, 23:21 | #7 |
Форумчанин
Регистрация: 09.07.2013
Сообщений: 249
|
Так он же в память рисует попикслельно, это же тоже как массив заполнить а потом выгрузить, так почему же это рисование не ускорить на GPU? или я чтото не понял? или его устройство через USB данные медленно передаёт что и ускорять нечего?
Читаю и вижу что он матрицу заполняет, хомяк, почитай доку, мож можно сразу подходящую матрицу сделать чтобы не отрисовывать её попиксельно, а вывалить как буфер с картинкой?
do not use your brain
|
10.07.2013, 23:36 | #8 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
тем более OpenCL не даст рисовать это сразу, это уже к шейдерам разве что. Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
10.07.2013, 23:39 | #9 |
Форумчанин
Регистрация: 09.07.2013
Сообщений: 249
|
ладно, молчу.
do not use your brain
|
11.07.2013, 09:40 | #10 | ||
Пользователь
Регистрация: 14.06.2013
Сообщений: 11
|
ухудшать и уменьшать картинку не могу. с многопоточностью пока не работал. это в крайнем случае, над этим думал, но руки пока не дошли разобраться.
Цитата:
Цитата:
++ в настоящее время собираюсь переползать с винды на линукс + qt. в этом случае что лучше всего использовать? |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отрисовка графика на C++ | Angriff | Visual C++ | 0 | 12.12.2012 18:31 |
Отрисовка легенды | Алек | JavaScript, Ajax | 2 | 08.12.2011 16:38 |
Скорость рисования и остальная скорость | ZotaC | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 121 | 13.11.2010 22:51 |
отрисовка updown | edik | Компоненты Delphi | 0 | 27.12.2009 12:39 |
Тест на скорость вывода графики | mutabor | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 23 | 23.02.2008 22:03 |