2010-04-14 10 views
7

Hat jemand da draußen eine Version von GDI32.dll erstellt, die die Hardwarebeschleunigung nutzt, die auf der Maschine verfügbar ist? gdiplus.dll?Win32: Gibt es eine Ersatz-GDI32.dll, die Hardwarebeschleunigung verwendet?

Ab Windows Vista wird GDI nicht mehr hardwarebeschleunigt. (GDI + wurde nie hardwarebeschleunigt). Ohne dass Microsoft GDI (und GDI +) repariert, um auf dem Computer gut laufen zu können: native Anwendungen (C++ - MFC, Delphi usw.) und verwaltete WinForms-Anwendungen werden für immer schlecht funktionieren.

Während ich Direct2D für Business-Anwendungen verwenden kann, kann ich nicht kontrollieren, dass die Entwicklungsumgebung noch Steuerelemente erstellt, mit jahrzehntelanger Bibliotheksunterstützung Code, der die Anwesenheit von GDI annimmt.


Application Compatibility: Graphical Device Interface (GDI):

GDI Primitiven wie LineTo und Rectangle sind jetzt in der Software gerendert eher als Video-Hardware, die die Anzeigetreiber erheblich vereinfachen.

Windows And Video Memory

In XP GDI ist GPU verschiedene Grade beschleunigt, je nachdem wie die OS konfiguriert ist oder der Gerätetreiber (Details siehe Hooking Versus Punting). In Vista, GDI ist nicht GPU

Comparing Direct2D and GDI

Als Folge beschleunigt, in Windows Vista wurde das GDI DDI Display-Treiber geändert nur von einem Microsoft mitgelieferten Treiber implementiert sein , der Canonical Display Treiber (CDD). GDI gerendert zu einem System Speicherbitmap. Verschmutzte Bereiche wurden verwendet, um die Videospeichertextur zu aktualisieren, die der Fenstermanager zu verwendet, um den Desktop zusammenzusetzen.

Antwort

2

Es scheint, dass Vista ein Sonderfall in der Geschichte der GDI-Leistung war. Beide Artikel zeigen, dass die Zukunft für GDI wieder hell aussieht.

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

GDI-Hardware unter Windows XP beschleunigt und beschleunigt auf Windows 7, wenn der Desktop Window Manager ist ausgeführt wird und ein WDDM 1.1-Treiber ist im Einsatz. Direct2D ist hardwarebeschleunigt auf fast jeder WDDM-Treiber und unabhängig davon, ob DWM in Verwendung ist . Unter Vista wird GDI immer auf der CPU rendern.

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

Basierend auf reale Anwendung Statistiken, ... wir arbeiteten mit unseren Grafiken IHV-Partner Unterstützung in ihren Fahrern zur Verfügung zu stellen die am häufigsten verwendeten GDI-Operationen zu beschleunigen.

+0

Die Antwort scheint zu sein "Microsoft erstellte eine Version von GDI32.dll, die Hardwarebeschleunigung verwendet", aber Sie benötigen Windows 7 und WDDM 1.1-Treiber, um es zu erhalten. Kein schlechter Kompromiss. –

+2

ich kann wirklich den Leistungsunterschied von GDI zwischen Vista und 7 sehen, jetzt, dass meine Entwicklungsmaschine Windows 7 ist. Ich bin * wirklich * froh, dass Microsoft die Zeit genommen hat, GDI wieder zu beschleunigen. Ich kann nur hoffen, dass GDI + die gleiche Liebe bekommt. –

1

Nun, ja, GDI ist die "es funktioniert überall jederzeit" API zum Rendern von Grafiken. Es stellt sehr geringe Anforderungen an den Grafiktreiber. Jeder hat das vor langer Zeit richtig verstanden. Was eine Weile gedauert hat, hatte ich eine deutliche Erinnerung an eine ATI Mach Grafikkarte, die mir kein Ende der Probleme gab. Es hat mich davon abgehalten, ATI-Produkte für eine ganze Weile zu kaufen.

Jeder hat DirectX richtig eine weniger lange Zeit auch. Es nutzt das WPF-Rendering-Modell, das vollständig auf DirectX basiert, um die Aufgabe zu erledigen. Milcore ist der Shimname. Sie werden es erst bekommen, wenn Sie sich für das WPF-Programmiermodell entscheiden.

+0

Sooo .... sagst du da ** ist ** eine Version von GDI, die Hardwarebeschleunigung verwendet? –

+0

Habe ich? Nein, habe ich nicht. Die GDI-Videotreiberschnittstelle ermöglicht die Optimierung von BitBlt. Das ist gemacht worden. –

+1

Nun, Sie haben nicht wirklich die eine oder andere Weise gesagt, außer dem "Nun, ja" - was eine Antwort auf die Frage gewesen sein könnte, "Gibt es einen Ersatz gdi32.dll, der Hardwarebeschleunigung verwendet." Zuerst hatte man die Vorteile von GDI (funktioniert überall zu jeder Zeit, sehr geringe Anforderungen, jeder hat recht, ATI hat nicht unterstützt). Dann hast du über DirectX geredet (jeder hat recht, WPF verwendet, implementiert in Milcore,). Aber Sie haben nicht gesagt, ob es eine Version von GDI gibt, die Hardwarebeschleunigung verwendet. Ab Vista wird GDI nicht mehr beschleunigt: Die Grafikkarte wird nicht zum Zeichnen von Primitiven verwendet. –

1

Was meinen Sie mit Hardwarebeschleunigung? Ich meine, GDI macht nicht viel anderes als Raster Blits, aber diese wurden hardwarebeschleunigt. Und da Vista und Windows 7 mit Desktop-Apps nicht viel langsamer sind, sind sie es immer noch.

GDI immer noch die Videotreiber, um alle schweren Arbeiten zu tun, wenn GDI ist nicht hardwarebeschleunigt, dann ist der Treiber Anbieter Fehler, nicht GDI's.

+0

ich meine das Zeichnen von Linien, Rechtecken, Füllen von Rechtecken, Zeichnen von Text, etc. GDI ist nicht hardwarebeschleunigt; Das Rendern erfolgt in der Software auf einer DirectX-Oberfläche außerhalb des Bildschirms. –

+0

Es ist mehr als offensichtlich, dass GDI nicht hardwarebeschleunigt ist. Wie Ian sagte GDI-Rendering passiert in Software. – bman

Verwandte Themen