Wednesday, November 30, 2011

SharpDX - A new Managed DirectX/Multimedia API Library (one with Win8/Metro in mind too!)

SharpDX

"SharpDX is a full DirectX framework for the .NET Platform, including the newest DirectX technology. The top three features of SharpDX:

  • SharpDX is providing the latest DirectX and Multimedia API to .Net with true AnyCpu assemblies, running on .Net and Mono.
  • SharpDX is ready for next generation DirectX 11.1 technology and Windows 8 Platform. You can start to develop DirectX Metro style App in C# under Win8!
  • SharpDX is the fastest Managed-DirectX implementation.

SharpDX is using a custom code generator from C++ headers in order to generate an efficient .Net interoperability with C++ DirectX API.

...

Features

The key features and benefits of this API are:

  • Support for the following DirectX API:
    • Direct3D9 & Ex
    • Direct3D10
    • Direct3D10.1
    • Direct3D11 and Effects11
    • Direct3D11.1 (Win8 only)
    • Direct2D1 (including custom rendering, tessellation callbacks)
    • Direct2D1.1 (Win8 only)
    • DirectCompute
    • DirectWrite (including custom client callbacks)
    • D3DCompiler
    • DXGI
    • DXGI 1.1
    • DXGI 1.2 (Win8 only)
    • DirectInput 8
    • XInput
    • RawInput
    • DirectSound 8
    • X3DAudio
    • XACT3
    • XAudio2
    • XAPO
    • WIC
  • API is generated from DirectX SDK headers : meaning a complete and reliable API and an easy support for future API.
  • Managed platform independent .NET API : assemblies are compiled with AnyCpu target. You can run your code on a x64 or a x86 machine with the same assemblies, without recompiling your project.
  • Lightweight individual assemblies : a core assembly - SharpDX - containing common classes and an assembly for each subgroup API (Direct3D10, Direct3D11, DXGI, D3DCompiler...etc.). Assemblies are also lightweight.
  • Fast Interop : the framework is using a genuine way to avoid any C++/CLI while still achieving better performance than existing managed API. Check this benchmark.
  • API naming convention mostly compatible with SlimDX API.
  • Raw DirectX object life management : No overhead of ObjectTable or RCW mechanism, the API is using direct native management with classic COM method "Release".
  • Easily mergeable / obfuscatable : If you need to obfuscate SharpDX assemblies, they are easily obfusctable due to the fact the framework is not using any mixed assemblies. You can also merge SharpDX assemblies into a single exe using with tool like ILMerge.
  • Easily deployable as SharpDX are plain .NET assemblies, there is no need to install VC runtime or .NET GAC install.
  • An integrated math API directly ported from SlimMath

..."

I like the approach this project takes in that it's a pretty slim wrapper for the DirectX API, that's its foundation is tight coupling to he C++ headers.

No comments:

Post a Comment

NOTE: Anonymous Commenting has been turned off for a while... The comment spammers are just killing me...

ALL comments are moderated. I will review every comment before it will appear on the blog.

Your comment WILL NOT APPEAR UNTIL I approve it. This may take some hours...

I reserve, and will use, the right to not approve ANY comment for ANY reason. I will not usually, but if it's off topic, spam (or even close to spam-like), inflammatory, mean, etc, etc, well... then...

Please see my comment policy for more information if you are interested.

Thanks,
Greg

PS. I am proactively moderating comments. Your comment WILL NOT APPEAR UNTIL I approve it. This may take some hours...