Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Windows innehåller flera C++/COM-API:er för grafik. Dessa API:er visas i följande diagram.
              
              
            
- GDI (Graphics Device Interface) är det ursprungliga grafikgränssnittet för Windows. GDI skrevs först för 16-bitars Windows och uppdaterades sedan för 32-bitars och 64-bitars Windows.
 - GDI+ introducerades i Windows XP som en efterföljare till GDI. GDI+-biblioteket nås via en uppsättning C++-klasser som omsluter platta C-funktioner. .NET Framework tillhandahåller också en hanterad version av GDI+ i namnområdet System.Drawing.
 - Direct3D stöder 3D-grafik.
 - Direct2D är ett modernt API för 2D-grafik, efterföljare till både GDI och GDI+.
 - DirectWrite är en textlayout och rastreringsmotor. Du kan använda antingen GDI eller Direct2D för att rita den rastrerade texten.
 - DirectX Graphics Infrastructure (DXGI) utför uppgifter på låg nivå, till exempel att presentera bildrutor för utdata. De flesta program använder inte DXGI direkt. I stället fungerar det som ett mellanliggande lager mellan grafikdrivrutinen och Direct3D.
 
Direct2D och DirectWrite introducerades i Windows 7. De är också tillgängliga för Windows Vista och Windows Server 2008 via en plattformsuppdatering. Mer information finns i Platform Update för Windows Vista.
Direct2D är i fokus för den här modulen. Även om både GDI och GDI+ fortfarande stöds i Windows, rekommenderas Direct2D och DirectWrite för nya program. I vissa fall kan en blandning av teknik vara mer praktisk. I dessa situationer är Direct2D och DirectWrite utformade för att samverka med GDI.
I nästa avsnitt beskrivs några av fördelarna med Direct2D.
Maskinvaruacceleration
Termen maskinvaruacceleration refererar till grafikberäkningar som utförs av grafikprocessorn (GPU) i stället för processorn. Moderna GPU:er är mycket optimerade för de typer av beräkningar som används i renderingsgrafik. I allmänhet är det mer av det här arbetet som flyttas från processorn till GPU:n, desto bättre.
GDI stöder maskinvaruacceleration för vissa åtgärder, men många GDI-åtgärder är bundna till processorn. Direct2D ligger ovanpå Direct3D och drar full nytta av maskinvaruaccelerationen som tillhandahålls av GPU:n. Om GPU:n inte stöder de funktioner som behövs för Direct2D återgår Direct2D till programrendering. Totalt sett överträffar Direct2D GDI och GDI+ i de flesta situationer.
Transparens och aliasskydd
Direct2D stöder helt maskinvaruaccelererad alfablandning (transparens).
GDI har begränsat stöd för alfablandning. De flesta GDI-funktioner stöder inte alfablandning, även om GDI stöder alfablandning under en bitblt-åtgärd. GDI+ stöder transparens, men alfablandningen utförs av processorn, så den drar inte nytta av maskinvaruacceleration.
Maskinvaruaccelererad alfablandning möjliggör även kantutjämning. alias är en artefakt som orsakas av sampling av en kontinuerlig funktion. När till exempel en böjd linje konverteras till bildpunkter kan alias orsaka ett ojämnt utseende. Alla metoder som minskar artefakterna som orsakas av alias anses vara en form av aliasskydd. Inom grafik utförs aliasutjämning genom att kanter blandas med bakgrunden. Här är till exempel en cirkel ritad av GDI och samma cirkel ritad av Direct2D.
              
              
            
Nästa bild visar en detalj i varje cirkel.
              
              
            
Cirkeln som ritas av GDI (vänster) består av svarta bildpunkter som approximeras en kurva. Cirkeln som ritas av Direct2D (höger) använder blandning för att skapa en jämnare kurva.
GDI stöder inte kantutjämning när det ritar upp geometri (linjer och kurvor). GDI kan rita antialiasad text med ClearType; men annars blir GDI-texten också alias. Aliasering är särskilt märkbart för text eftersom de ojämna linjerna stör teckensnittsdesignen, vilket gör texten mindre läsbar. Även om GDI+ stöder aliasutjämning tillämpas det av processorn, så prestandan är inte lika bra som Direct2D.
Vektorgrafik
Direct2D stöder vektorgrafik. I vektorgrafik används matematiska formler för att representera linjer och kurvor. Dessa formler är inte beroende av skärmupplösning, så de kan skalas till godtyckliga dimensioner. Vektorgrafik är särskilt användbart när en bild måste skalas för att stödja olika bildskärmsstorlekar eller skärmupplösningar.
Nästa