2010-09-10 5 views
0

J'ai remarqué que Direct3D est COM exposé, mais il ne semble pas y avoir une bibliothèque de types pour cela.Direct3D COM interop en C#

Ma première question est: quel est le point d'exposition de COM si l'infrastructure pour l'utiliser n'est pas vraiment là?

J'ai considéré que je pouvais écrire mes propres interfaces COM en C#. Mais cela m'inquiète un peu que cela n'ait pas déjà été fait, beaucoup. De quelque manière que vous le tournez, vous devez faire une sorte d'encapsuleur si vous prévoyez d'utiliser D3D avec .net. Pourquoi créer un encapsuleur C++/cli ou un wrapper d'exportation dll conçu pour être P/Invoqué lorsque vous ne pouvez que faire COM interop et ne jamais quitter C#? Je suppose qu'il y a probablement une bonne raison à cela, ou il y aurait déjà des bibliothèques qui utilisent cette méthodologie.

Je suis pleinement conscient de SlimDX et Windows API Code Pack. Je suis spécifiquement intéressé par C# COM interop directement avec Direct3D.

J'ai remarqué la bibliothèque MDXGI (codeplex), qui tente de faire cette méthodologie pour DXGI, mais elle ne semble pas être complète ou obtenir beaucoup de réponse de la communauté.

J'ai également vu cette question connexe (Is there COM exposure for Direct3D 10), mais j'ai senti que ma question était au moins un peu différente.

Merci.

Répondre

0

Je suis un auteur du projet MDXGI. Comme vous le voyez l'emballage C# pur a quelques problèmes techniques et aucun support de la communauté.

1

Je voudrais juste noter que MS ne supporte plus l'utilisation gérée de Direct3D. Pour .Net, il existe le framework XNA de Microsoft (http://creators.xna.com/en-US/), qui est une abstraction de D3D lui-même, mais supporte Windows, Xbox360 et Windows Phone 7.