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)