Sign in to follow this  

DX9.0c / DX9.0L / DX10 versus XNA?

Recommended Posts

DXnut    262
I am a tad confused about all this. I read some stuff on MSDN, but cannot find a real answer. So here it goes.... MDX 1.1 was their managed (.NET assembly) that acted as a managed interop wrapper around the current DX9.0c COM stuff. Right? MDX2.0 was just a new version of the same thing that added new functionality. But they have now deprecated MDX2.0. DX9.0c will be the final release for Windows XP, and DX9.0L will be the final release of DX9 that is written for Vista? So, I would imagine that 9.0L has the same interfaces we currently use for 9.0c, and the difference is what is used behind the scenes (what DLLs are linked to based on your compile target)? XNA is what then? They say that it is written for C# (not VB .NET?). It is meant so that game programmers can target Vista and XBOX360 with a unified set of managed resources. So, is it also a managed wrapper to interop with the same DX9.0L or DX10 COM components that we can also use with unmanaged C++? If we want to target DX10 for Vista and the special version of DX9 (?) for XBOX360 how is this done? Do you chose which version of DX it is to work with? If you just want to program for Vista can you chose DX9.0L or DX10 as your target? Or is it totally divorced from the DX9-DX10 COM stuff we use with C++? My real question would be if you can tell it to target DX9.0L instead of DX10 for Vista, so you could support Vista running with older graphics cards?? Then I would like to know how you would write your HLSL shaders to target SM4.0 or the DX9 versions?? I am missing the connection between XNA and DX. Thanks!

Share this post

Link to post
Share on other sites
Demirug    884
Yes MDX 1.1 is a interop layer written in managed C++ for .Net 1.1. Beside of a loader lock problem (in the debugger) it works nice with .Net 2.0 apps.

DX 9.0L is the old name for what is now called “DirectX for Windows Vista”. It still supports all known interfaces. There are some new interfaces that are used from the new desktop manager and you will get some advantages from the new video driver system.

XNA is another DirectX 9 wrapper. Written in C++/CLR for .Net 2.0 (PC version) and for a special compact framework version to run on the XBOX 360.

Direct3D 10 is still a COM based C/C++ API. There is no official managed version yet and the whole XNA framework doesn’t even know something about Direct3D 10.

Vista still supports the “old” DirectX versions. Therefore it will run DirectX 9 and XNA applications without problems. If you don’t want to use Direct3D 10 you don’t need to do it.

HLSL for SM4 is a little bit different than HLSL for older SM. But the compiler support a compatibility mode that allows to compile shaders < SM4 with the SM4 profile.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this