Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GDI PolyPolyline производительность, векторная графика на GDI 
:(
    Опции темы
mrgloom
Дата 15.6.2011, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



Необходимо вывести на экран около 2-х миллионов линий, используется GDI.
все это рисуется через Polyline или через PolyPolyline.
вообщем и целом что то типа ГИС.
теперь вопросы:
1.Может в GDI уже есть какие то оптимизации например на большом увеличении отсечение всего, что не попало в "кадр", на большом отдалении например рисуются не все линии, а через одну т.к. все равно ничего не видно(если есть то как это называется).
2.От чего зависит производительность? только от процессора? или есть все таки какое то ускорение от видеокарты?
3.На крайний случай можно ли переписать все это на opengl(даже не на чистом, а скорее взять glut или еще чего) +учитывая то что всё завязано на MFC и GDI и как в этом случае будет использоваться железо?
PM MAIL   Вверх
Amp
Дата 15.6.2011, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 2
Всего: 17



Забудь про GDI. Это будет очень медленно. Оптимизаций вроде BSP-деревьев как в QGraphicsView из Qt там нет. Большинство операций аппаратно не ускорено (зависит еще от того, под какой ОС это работает). С помощью OpenGL конечно рисовать можно, особенно если не нужно сглаживание примитивов, клиппинг геометрии и тому подобные вещи. Но лучше бери специализированные библиотеки типа libagg или cairo. Либо Direct2D, если на поддержку Windows XP можно положить.
PM MAIL   Вверх
mrgloom
Дата 15.6.2011, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



можно ли как то рисовать линии через Opengl, используя контекст MFC CDC?
PM MAIL   Вверх
BorisVorontsov
Дата 23.6.2011, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 1
Всего: 10



Собственно, на Windows, до Vista, GDI ускоряется аппаратно. В Аеро отрисовка происходит силами процессора, и там логичнее использовать Direct2D.


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
Amp
Дата 24.6.2011, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 2
Всего: 17



Цитата(BorisVorontsov @  23.6.2011,  13:18 Найти цитируемый пост)
Собственно, на Windows, до Vista, GDI ускоряется аппаратно

Частично, например операции по смешиванию. Интереса ради можно написать небольшую программку, которая анимирует кучу простых линии, запустить и заплакать.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.1434 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.