Direct2D

Direct2D è una collezione di API per lo sviluppo semplificato di di grafica bidimensionale e vettoriale per sistema operativo Microsoft Windows. Direct2D è una libreria grafica ad alte prestazioni che mantiene l'interoperabilità con le API GDI e GDI+ e le API Direct3D/DirectDraw.[1] È in grado di sfruttare l'accelerazione video, se si sta usando una scheda grafica compatibile.

Caratteristiche

L'API Direct2D è basata sul C++ e interfaccia codice managed con codice nativo. Come Direct3D, fa uso del COM, il che rende necessario solo un ridotto grado di astrazione. A differenza di WPF (sigla inglese per Windows Presentation Foundation), Direct2D è una API di rendering "immediate mode" (analogamente al GDI/GDI+), che richiede delle semplici invocazioni BeginDraw/Draw/EndDraw; in Direct2D non esiste il concetto di "scena"; la libreria non conserva strutture ad albero; lo stato del rendering viene mantenuto tra le diverse richieste di disegno.

Direct2D riesce a minimizzare l'utilizzo CPU e può usare rendering hardware, su una scheda grafica che supporta Direct3d 10.1 e/o Direct3D 10 Feature Level 9 con i driver WDDM 1.1; il rendering software viene usato come fallback (ed è implementato tramite WARP10) nei casi in cui non si può accedere all'hardware, come nella sessione 0, e per il rendering remoto lato server.

Le performance e l'utilizzo di memoria di Direct2D variano linearmente with primitive counts[non chiaro] sia nel software, sia nello hardware.

Direct2D supporta le seguenti funzionalità:

  • rendering di testo ClearType (fornito da DirectWrite)
  • antialiasing primitiva per primitiva
  • Comandi di draw e fill, per forme geometriche (segmenti, curve) e per immagini raster
  • pennelli che usano un colore fisso, con gradiente (lineare o radiale), e immagini raster.
  • rendering su livelli intermedi
  • Operazioni sulle figure geometriche (per es. unione, intersezione, allargamento, disegno del contorno, ecc.)

Direct2D permette di ottenere interoperabilità con GDI, GDI+ e Direct3D e permette di effettuare il rendering da e verso una superficie Direct3D, oppure un device context (HDC) GDI/GDI+ (con la piena serializzazione delle superfici e dei device context, il che le permette di lavorare con altre tecnologie native per Windows come DirectWrite, Windows Imaging Component, ecc.) Questa interoperabilità permette allo sviluppatore di sostituire gradualmente sequenze di codice critiche con codice che usi Direct2D, senza dover modificare l'intero codice sorgente.

Direct2D usa un sistema di coordinate device-independent, il che consente di ridimensionare le coordinate in automatico, in funzione di impostazioni DPI diverse e che dipendono dalle risoluzioni video e dalle dimensioni delle periferiche di output.

Implementazioni

Internet Explorer 9 e Mozilla Firefox 4 usano Direct2D e DirectWrite.[2]

Note

  1. ^ Direct2D, su msdn.microsoft.com. URL consultato il 26 marzo 2011.
  2. ^ Microsoft isn't the only one developing a hardware-accelerated browser Archiviato il 24 settembre 2019 in Internet Archive., 24 novembre, 2009.

Voci correlate

Collegamenti esterni

  • Blog of Direct2D Lead Developer Thomas Olsen, su blogs.technet.com. URL consultato il 26 marzo 2011 (archiviato dall'url originale il 16 febbraio 2009).
  • Blog of Direct2D Developer Tom Mulcahy, su blogs.msdn.com. URL consultato il 26 marzo 2011 (archiviato dall'url originale il 21 febbraio 2009).
  • Direct2D White Papers, su msdn.microsoft.com.
  • Windows 7: Introducing Direct2D and DirectWrite - PDC 2008 video
  • Windows API Code Pack for Microsoft .NET Framework - permette di sviluppare applicazioni Direct2D in codice managed
  • Introducing Direct2D - June 2009 issue of MSDN Magazine
  • Drawing with Direct2D - September 2009 issue of MSDN Magazine
  • Direct2D API for Microsoft .Net Framework 4 Archiviato il 27 dicembre 2017 in Internet Archive. - API Direct2D per il Microsoft .Net Framework 4