SlimDX Features

Supported Systems

SlimDX supports a wide range of APIs, operating systems, and configurations. All versions of Windows XP, Vista, Server 2003, Server 2008, and 7 are supported, for both 32 and 64 bit. There is a minimum requirement of .NET 2.0, but any subsequent version (including or excluding service packs) will work.



Supported APIs

  • Math Library
  • Direct3D9
  • Direct3D9Ex
  • Direct3D10
  • Direct3D 10.1
  • Direct3D 11
  • Direct2D
  • D3DCompiler
  • DirectWrite
  • DirectInput
  • DirectSound
  • DXGI
  • DXGI 1.1
  • Windows Multimedia
  • Raw Input
  • X3DAudio
  • XAPO
  • XACT3
  • XAudio2
  • XInput


Interoperability

SlimDX has full support for sharing DirectX objects with other libraries. All SlimDX objects expose their native pointers for use by other code, and SlimDX can wrap native pointers with its own objects. This allows seamless cooperation with libraries such as DirectShow.NET, CUDA.NET, native code DirectX libraries, and more.



64-bit Systems and "Any CPU"

SlimDX includes x64 bit assemblies, and is the only DirectX interface for .NET to do so. The redistributable and SDK installers automatically register the correct assemblies. Applications can also compile for the "Any CPU" architecture when using SlimDX, and the correct version will be selected. As a result, SlimDX based applications can smoothly target both x86-32 and x86-64 bit machines without the headaches introduced by other similar libraries. (Itanium IA64 is not a supported configuration, sorry.)



Performance

Performance is a crucial factor in all of the design work done on SlimDX, and the team works carefully to ensure that overhead is kept to a minimum. SlimDX has proven to be faster than both XNA and MDX in several performance tests, although the margin is often negligible. Additionally, an experimental offshoot of SlimDX called SlimGen that is still under development promises to bring SIMD support straight into the math library, boosting performance considerably.



.NET 4.0 Support

SlimDX is the only DirectX interface for .NET to provide full .NET 4.0 binaries. This means no having to go through extra configuration steps to ensure that your .NET 4.0 application can use SlimDX properly.

Choosing a Managed Game API

There are several APIs available for developing games in .NET. The following table and feature discussions demonstrate the differences between these APIs, hopefully making it easy to pick the one that is best suited for your needs.


Features SlimDX XNA MDX Windows Code Pack OpenTK
Actively Developed
 
Native .NET 4 Binaries
 
 
 
 
Source License
MIT
 
 
MIT
Support for x64
 
 
 
ClickOnce
 
 
 
SIMD Math
 
 
 
 
WPF Interop
 
 
 
GAC Installer
 
 
Platforms SlimDX XNA MDX Windows Code Pack OpenTK
Windows
Xbox 360
 
 
 
 
Windows Phone 7
 
 
 
 
Mac
 
 
 
 
Linux
 
 
 
 
Graphics APIs SlimDX XNA MDX Windows Code Pack OpenTK
Direct3D 9
 
 
Direct3D 10
 
 
 
Direct3D 11
 
 
 
OpenGL
 
 
 
 
Direct2D
 
 
 
Input APIs SlimDX XNA MDX Windows Code Pack OpenTK
Keyboard
 
Mouse
 
Joystick
 
 
Xbox 360 Gamepad
 
 
 
Audio APIs SlimDX XNA MDX Windows Code Pack OpenTK
DirectSound
 
 
 
XACT
 
 
 
XAudio2
 
 
 
 
OpenAL
 
 
 
 

When to use XNA Game Studio

Use XNA when you need Xbox360 or Windows Phone 7 support. If you are only targeting the Windows operating system and are comfortable with the added complexity, SlimDX provides access to newer rendering APIs such as Direct3D 11 and Direct2D. Even if you end up using XNA, SlimDX is still a viable choice for creating tools and plugins for the content pipeline.



When to use MDX

Don't. MDX has been deprecated for many years now. It still targets an older .NET framework version and suffers from many bugs and flaws such as loader lock that will never be fixed. SlimDX supports everything exposed by MDX and much more, so there's no excuse for choosing MDX for a new project.



When to use the Windows API Code Pack

It is the opinion of the SlimDX team that the Code Pack is an inferior choice when it comes to DirectX support for .NET. While its offering is certainly adequate, it is not better than SlimDX in any area and lacks quite a few features that are present in SlimDX. Additionally it does not support Direct3D 9, which can be a deal breaker if you require Windows XP support.



When to use OpenTK

Use OpenTK whenever you want OpenGL support, or must support the Mac and Linux platforms. If you are only targeting Windows, you may be better off with Windows specific technologies like DirectX.