Перейти к содержимому
Compvision.ru
mrgloom

GDI и производительность.

Recommended Posts

Необходимо вывести на экран около 2-х миллионов линий, используется GDI.

все это рисуется через Polyline или через PolyPolyline.

вообщем и целом что то типа ГИС.

теперь вопросы:

1.Может в GDI уже есть какие то оптимизации например на большом увеличении отсечение всего, что не попало в "кадр", на большом отдалении например рисуются не все линии, а через одну т.к. все равно ничего не видно(если есть то как это называется).

2.От чего зависит производительность? только от процессора? или есть все таки какое то ускорение от видеокарты?

3.На крайний случай можно ли переписать все это на opengl(даже не на чистом, а скорее взять glut или еще чего) +учитывая то что всё завязано на MFC и GDI и как в этом случае будет использоваться железо?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Надо сказать, что GDI по-разному работает в XP/Vista/7, с включённым и выключенным Aero. Самая медленная и неудачная реализация в Висте.

Аппаратное ускорения GDI поддерживает только для операций блитинга (BitBlt, StrenchBlt и т.п.). Рисование линий к ним не относится.

Я бы использовал DirectX или OpenGL: и проще, и быстрей, и удобней. Поначалу может быть просто непривычно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

да я теоретически не против Opengl, но вопрос в том как его встраивать в MFC и надо ли переписывать все процедуры на GDI или например только рисование линий.

скажем можно использовать тот же CDC контекст когда отрисовываем через Opengl, который поступает в функцию draw?

+ еще вопрос как можно замерять производительность?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, все процедуры с выводом надо будет переписать.

Самый лучший способ замера производительности - это профайлер (например, VTune).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а что теперь используют вместо Glaux.lib? или можно и ее использовать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Классический набор для программирования OpenGL графики:

glaux.lib opengl32.lib glew32.lib glu32.lib glut.lib

Его обычно достаточно для любых задач.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Надо сказать, что GDI по-разному работает в XP/Vista/7, с включённым и выключенным Aero. Самая медленная и неудачная реализация в Висте.

Аппаратное ускорения GDI поддерживает только для операций блитинга (BitBlt, StrenchBlt и т.п.). Рисование линий к ним не относится.

а какую то официальную информацию можно почитать по этому поводу?

нашел вот статью, судя по этому обзору с аппаратным ускорением рисуются быстрее только треугольники.

http://www.thg.ru/graphic/obzor_amd_radeon_hd7970/obzor_amd_radeon_hd7970-07.html

и не очень понятно какие методы сравниваются что значит выводится "напрямую"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Думаю где то здесь:Direct2D vs GDI

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×