Jump to content
Compvision.ru
Sign in to follow this  
mrgloom

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

Recommended Posts

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


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

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

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

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×