2010-04-14 8 views
7

Ha qualcuno là fuori ha creato una versione di GDI32.dll che sfrutta l'accelerazione hardware disponibili sulla macchina? gdiplus.dll?Win32: Esiste un GDI32.dll di sostituzione che utilizza l'accelerazione hardware?

partire da Windows Vista, GDI è l'hardware non è più accelerato. (GDI + non è mai stato accelerato hardware). Senza Microsoft di fissaggio GDI (e GDI +) per essere in grado di funzionare bene sul computer: applicazioni native (C++ MFC, Delphi, ecc), e WinForms gestite le applicazioni, continuerà a funzionare male per sempre.

mentre ho potuto uso Direct2D per le applicazioni aziendali, non posso controllare il fatto che l'ambiente di sviluppo crea ancora controlli, con decenni di codice di supporto della libreria, che assume la presenza di GDI.


Application Compatibility: Graphical Device Interface (GDI):

GDI primitive, come LineTo e Rettangolo sono ora resi in software piuttosto che hardware video, che semplificare notevolmente il driver video.

Windows And Video Memory

In XP GDI è GPU accelerata per vari gradi a seconda di come il sistema operativo è configurato o il driver di periferica (per i dettagli vedere Hooking Versus Punting). In Vista, GDI non è GPU accelerata

Comparing Direct2D and GDI

Di conseguenza, in Windows Vista, il driver di visualizzazione GDI DDI è stato modificato per essere implementata solo da un driver fornito Microsoft , il driver Canonical Display (CDD). GDI reso a un sistema bitmap di memoria. regioni sporchi sono stati utilizzati per aggiornare la consistenza memoria video che il window manager utilizza per composito desktop.

risposta

2

Sembra che Vista sia stato un caso speciale nella storia delle prestazioni GDI. Entrambi gli articoli di seguito mostrano che il futuro di GDI sembra di nuovo brillante.

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

GDI è l'accelerazione hardware su Windows XP , e accelerato su Windows 7 quando il window manager Desktop è in esecuzione e un driver WDDM 1.1 è in uso. Direct2D è hardware accelerato su quasi tutti i driver WDDM e indipendentemente da se DWM è in uso. Su Vista, GDI eseguirà sempre il rendering sulla CPU.

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

Sulla base di un'applicazione reale statistiche, ... abbiamo lavorato con i nostri grafica IHV partner per fornire supporto nella loro driver per accelerare le operazioni GDI più comunemente utilizzati.

+0

La risposta sembra essere "Microsoft ha creato una versione di GDI32.dll che utilizza l'accelerazione hardware", ma per ottenere ciò sono necessari i driver Windows 7 e WDDM 1.1. Non un cattivo compromesso. –

+2

posso davvero vedere la differenza di prestazioni di GDI tra Vista e 7, ora che il mio computer di sviluppo è Windows 7. sono davvero * contento che Microsoft abbia avuto il tempo di accelerare nuovamente GDI. Posso solo sperare che GDI + abbia lo stesso amore. –

1

Bene, sì, GDI è l'API "funziona ovunque in qualsiasi momento" per il rendering di grafica. Mette richieste molto basse sul driver video. Tutti hanno avuto ragione molto tempo fa. Il che ha richiesto un po 'di tempo, ho ottenuto un distinto ricordo di una scheda video ATI Mach che non mi ha dato problemi. Mi ha impedito di acquistare prodotti ATI per un bel po '.

Ognuno ha DirectX destra un minore molto tempo fa anche. Si sta avvantaggiando nel modello di rendering WPF, si affida completamente a DirectX per portare a termine il lavoro. Milcore è il nome dello shim. Non lo otterrai finché non acquisti il ​​modello di programmazione WPF.

+0

Sooo .... stai dicendo che ** è ** una versione di GDI che utilizza l'accelerazione hardware? –

+0

L'ho fatto? No, non l'ho fatto. L'interfaccia del driver video GDI consente di ottimizzare BitBlt. Questo è stato fatto. –

+1

Beh, in realtà non hai detto in un modo o nell'altro, ad eccezione del "Bene, sì", che avrebbe potuto essere una risposta alla domanda: "Esiste un gdi32.dll sostitutivo che utilizza l'accelerazione hardware". Innanzitutto hai avuto i vantaggi di GDI (funziona ovunque in qualsiasi momento, richieste molto basse, tutti hanno ragione, ATI non ha supportato). Poi hai parlato di DirectX (tutti hanno ragione, usi WPF, implementati in milcore,). Ma non hai detto se esiste una versione di GDI che utilizza l'accelerazione hardware. A partire da Vista GDI non è più accelerato: non usa la scheda video per disegnare le primitive. –

1

Cosa intendi per accelerazione hardware? Voglio dire, GDI non fa molto altro che raster blit, ma quelli sono stati accelerati dall'hardware. E, dato che Vista e Windows 7 non sono molto più lenti con le app desktop, lo sono ancora.

GDI ottiene ancora i driver video per fare tutto il lavoro pesante, quindi se GDI non è hardware accelerato, allora è colpa dei fornitori di driver, non GDI.

+0

Intendo disegnare linee, rettangoli, riempire rettangoli, disegnare testo, ecc. GDI non è accelerato hardware; il rendering avviene nel software su una superficie DirectX non in schermo. –

+0

È più che evidente che GDI NON è accelerato da hardware. Come Ian ha detto che il rendering GDI avviene nel software. – bman

Problemi correlati