Win32: есть ли замена GDI32.dll, которая использует аппаратное ускорение? - PullRequest
8 голосов
/ 14 апреля 2010

Кто-нибудь создал версию GDI32.dll, которая использует аппаратное ускорение, доступное на машине? gdiplus.dll

Начиная с Windows Vista, GDI больше не аппаратно ускоряется. (GDI + никогда не был аппаратно ускорен). Если Microsoft не исправит GDI (и GDI +), чтобы он мог нормально работать на компьютере: собственные приложения (C ++ MFC, Delphi и т. Д.) И управляемые приложения WinForms будут продолжать работать плохо вечно.

Хотя я мог бы использовать Direct2D для бизнес-приложений, я не могу контролировать тот факт, что среда разработки все еще создает элементы управления с десятилетним кодом поддержки библиотек, что предполагает наличие GDI.


Совместимость приложений: графический интерфейс устройства (GDI) :

Примитивы GDI, такие как LineTo и Прямоугольник теперь отображается в программном обеспечении а не видеооборудование, которое значительно упростит отображение драйверов.

Windows и видеопамять

В XP GDI ускоряется до различные степени в зависимости от того, как ОС настроена или драйвер устройства (подробности см. Сцепление по сравнению с Понтировавший ). В Vista GDI не ускоряется GPU

Сравнение Direct2D и GDI

В результате в Windows Vista GDI Драйвер дисплея DDI был изменен на реализовано только Microsoft прилагаемый драйвер Canonical Display Драйвер (CDD). GDI отображается в системе битовая карта памяти. Грязные регионы были использованы обновить текстуру видеопамяти который оконный менеджер использует для композитный рабочий стол.

Ответы [ 3 ]

3 голосов
/ 05 августа 2010

Похоже, что Vista была особым случаем в истории производительности GDI. Обе статьи ниже показывают, что будущее GDI снова выглядит светлым.

http://msdn.microsoft.com/en-us/library/ff729480%28VS.85%29.aspx

GDI аппаратно ускоряется в Windows XP и ускоряется на Windows 7, когда диспетчер окон рабочего стола работает и драйвер WDDM 1.1 используется. Direct2D аппаратно ускорен почти любой драйвер WDDM и независимо о том, используется ли DWM. На Vista, GDI всегда будет отображаться на процессоре.

http://blogs.msdn.com/b/e7/archive/2009/04/25/engineering-windows-7-for-graphics-performance.aspx

Основано на реальных приложениях. статистика ... мы работали с нашими партнеры по графике IHV, чтобы обеспечить поддержка в своих драйверах для ускорения наиболее часто используемые операции GDI.

1 голос
/ 15 апреля 2010

Что вы подразумеваете под аппаратным ускорением? Я имею в виду, что GDI не делает ничего, кроме растровых бликов, но они были аппаратно ускорены. И, учитывая, что Vista и Windows 7 не намного медленнее с настольными приложениями, они все еще работают.

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

1 голос
/ 15 апреля 2010

Ну, да, GDI - это API "он работает где угодно и когда угодно" для рендеринга графики. Это предъявляет очень низкие требования к видеодрайверу. Все давно поняли это правильно. Это заняло некоторое время, и я получил отчетливую память о видеокарте ATI Mach, которая не давала мне никаких проблем. Это остановило меня от покупки продуктов ATI на долгое время.

Все уже давно поняли DirectX. Он использует преимущества модели рендеринга WPF, полностью полагаясь на DirectX для выполнения работы. Милкор - это имя шим. Вы не получите его, пока не купитесь на модель программирования WPF.

...