\\ Home : Articoli : Stampa
Managed DirectX11
Di RobyDx (del 12/06/2010 @ 15:00:00, in ManagedDX11, linkato 5500 volte)

Ai tempi di DirectX7 Microsoft decise di rilasciare un componente per utilizzare in VB6 le funzionalità che erano esclusive per il linguaggio C++. Con la versione 9 le DirectX furono poi portate in .Net ed ottennero un grande successo che portò alla nascita di uno dei prodotti di maggior successo per il pubblico: XNA.

Tramite il framework XNA i programmatori furono in grado di utilizzare il linguaggio .Net per sviluppare in modo unificato e semplice sia per PC che per XBox 360. Nonostante il successo però molti ritennero XNA troppo limitato al settore videoludico (la sua struttura è infatti studiata per sviluppare giochi da poter condividere sulla piattaforma Live di Microsoft). Le due principali carenze sono infatti che è troppo restrittitiva per applicazioni non videoludiche e che, per poter essere accessibile alla XBox 360, la tecnologia dovesse essere limitata alla versione DX9.

Sono però uscite negli anni le DirectX10 e le DirectX11 e da questo punto di vista Microsoft non ha pubblicato alcun componente .Net. Molti quindi fecero quello che Microsoft fece a quei tempi: creare un componente che portasse le DirectX in ambiente .Net. Esistono diversi gruppi che già portano avanti i loro progetti ed io, per necessità personali, ho realizzato il mio componente che ho deciso di mettere a vostra disposizione.

Il Managed DirectX 11 porta tutte le tecnologie incluse nelle DirectX in ambiente .Net 3.5 (quindi Visual Studio 2008 professional o express) permettendovi di utilizzare C# o VB.Net come linguaggio base per giochi e programmi.

Le tecnologie portate sono

  • DXGI
  • D3DX
  • XNAMath
  • Direct2D
  • DirectWrite
  • Direct3D10
  • Direct3D11
  • DirectInput
  • XInput
  • XAudio
  • XAct

Ho cercato di mantenere una mappatura 1:1 tra il relativo componente C++ e quello .Net in modo da permettervi di utilizzare con facilità le guide ed i tutorial che si trovano in giro per C++. Tra gli esempi c'è la decisione di non utilizzare costruttori ma, come nella versione nativa, di lasciare ad oggetti come il Device o a funzioni statiche, incluse nella classe che si sta per creare, il compito di creare gli oggetti.

Allo stesso tempo però ho eliminato problemi tipici del C++ come l'obbligo di eliminare gli oggetti (compito che ho lasciato alla Garbage Collector) e l'utilizzo di puntatori a memorie (ad esempio la scrittura e lettura è affidata a comodi metodi generics a cui passare direttamente array di byte o strutture complesse).

Non esiste una guida all'utilizzo di questi componenti ma, al momento della pubblicazione di questa pagina, è in corso da parte mia la realizzazione di tutorial DirectX11 che utilizzeranno nei sorgenti queste librerie.

Vi lascio i cab con l'unica nota di non spacciarli per vostri ma di fare riferimento sempre a me come ideatore. Per il resto siete liberi di utilizzarli nei vostri progetti come meglio crediate.

Tornate a visitare questa pagina periodicamente per vedere update o bugfix

Release 13/06/2010

  • Aggiornata alla SDK di Giugno 2010
  • Aggiunte le versioni .Net 4.0

Librerie (1600kb)

Librerie + Tutorial (10Mb)