| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > GDI PolyPolyline производительность |
| Автор: mrgloom 15.6.2011, 10:25 |
| Необходимо вывести на экран около 2-х миллионов линий, используется GDI. все это рисуется через Polyline или через PolyPolyline. вообщем и целом что то типа ГИС. теперь вопросы: 1.Может в GDI уже есть какие то оптимизации например на большом увеличении отсечение всего, что не попало в "кадр", на большом отдалении например рисуются не все линии, а через одну т.к. все равно ничего не видно(если есть то как это называется). 2.От чего зависит производительность? только от процессора? или есть все таки какое то ускорение от видеокарты? 3.На крайний случай можно ли переписать все это на opengl(даже не на чистом, а скорее взять glut или еще чего) +учитывая то что всё завязано на MFC и GDI и как в этом случае будет использоваться железо? |
| Автор: Amp 15.6.2011, 11:05 |
| Забудь про GDI. Это будет очень медленно. Оптимизаций вроде BSP-деревьев как в QGraphicsView из Qt там нет. Большинство операций аппаратно не ускорено (зависит еще от того, под какой ОС это работает). С помощью OpenGL конечно рисовать можно, особенно если не нужно сглаживание примитивов, клиппинг геометрии и тому подобные вещи. Но лучше бери специализированные библиотеки типа libagg или cairo. Либо Direct2D, если на поддержку Windows XP можно положить. |
| Автор: mrgloom 15.6.2011, 11:49 |
| можно ли как то рисовать линии через Opengl, используя контекст MFC CDC? |
| Автор: BorisVorontsov 23.6.2011, 13:18 |
| Собственно, на Windows, до Vista, GDI ускоряется аппаратно. В Аеро отрисовка происходит силами процессора, и там логичнее использовать Direct2D. |