I have both Visual Studio 2012 Express for Desktop and for Windows 8, and I wanted to create Direct X applications and games. I know that there is a Windows SDK now, and in VS 2012 exp for win8 the IDE is pre-installed with the SDK (I know that from the new Direct3D project). My question is, if I wanted to develop applications for Windows Desktop (using VS2012exp) does it come Windows SDK or do I need to install Direct X SDK? And how do I know if my graphics card support which version of Direct X? Will any Direct X SDK version work with any Direct X version? As you can see I am a newbie at that stuff and any comment would be helpful. Thanks for your time.
相关问题
- Scaling of the point sprites (Direc3D 9)
- Resharper 7 on VS2012 ignores assembly redirect in
- Error installing MVVMCross from nuget into a PCL
- Why can't I bind to winproc?
- Getting Sum of an SQL table column until the sum r
相关文章
- Visual Studio Hangs on Loading UI Library
- “Csc.exe” exited with code -1073741819
- Add Fakes Assembly option missing
- anyone can explain the “field of view”
- Visual Studio wants to build with wrong platform t
- Visual Studio 2012 debug tests keyboard shortcut
- Visual Studio: How to properly build and specify t
- How to normalize a mesh into -1 to 1, then revert
Yes, with Windows 8 SDK and Visual Studio 2012 (or Windows 8.1 SDK and Visual Studio 2013 preview) you can develop anything:
Note:
And no, you don't need to install DirectX SDK. It was deprecated (latest version - june 2010). Do not use it in new code. Use it only if you need to compile some old code which uses D3DX stuff (such as
ID3DXEffect, ID3DXFont, ID3DXLine, ID3DXMesh, ID3DXSprite
), e.g. samples from books or different SDK samples.Well, if we talking about your videocard, you can look at your card vendor's or GPU vendor's site. Or any of informational utilities, such as GPU-Z.
If we talking about end-user hardware, since DirectX 10-11 there are
feature levels
. So even if you are using latest API (DirectX 11.1 at this moment), you can target old hardware (for example, if you usingD3D_FEATURE_LEVEL_9_3
, newer features, fromD3D_FEATURE_LEVEL_10_0
and higher will be disabled).Note, that to develop for latest
feature level
you don't need GPU that supports it. You can run and debug application on WARP device (ivery slow and meant for debugging purposes only, not for end-user release). For example, you can have old DirectX 10 card (Shader model 4.0), but target to DirectX 11 (Shader model 5.0)Latest DirectX SDK (june 2010) supports DirectX up to 11. No DirectX 11.1 support.
I'm a developer in Visual Studio who works with the DirectX tooling (the DX Diagnostic Tool and on the new project templates). You're asking a few different questions in here, but I'll try my best to answer the ones that I can.
1 - What SDKs are needed for DX application development? This link here as the best information on this. Basically as of the June 2010 DirectX SDK the DX SDK was combined with the Windows development SDK so if you install the most recent Windows SDK you'll have the right stuff for developing the newest DX applications. http://blogs.msdn.com/b/chuckw/archive/2013/07/01/where-is-the-directx-sdk-2013-edition.aspx
This link also has more indepth info specific to the issue of DX Desktop apps on Windows 8. http://blogs.msdn.com/b/chuckw/archive/2012/03/23/desktop-games-on-windows-8-consumer-preview.aspx
Note here that you can also install the June 2010 DirectX SDK on your machine, that won't hurt anything, we often install it ourselves as it has some useful sample applications to look at even if they are a bit outdated. http://www.microsoft.com/en-pk/download/details.aspx?id=6812
2 - How do I know what my graphics card supports? I'm not sure if you mean how do I detect this in my DX application at runtime? Or if you mean how do I just look it up quickly for my specific system. To figure out your own GPU it's usually a pretty quick lookup, just find your device name and punch it in online, most stuff released in the last several years supports DX11 so you should be fine here. If you installed the June 2010 SDK that I mentioned above you can use the capability tool mentioned here: http://www.danielmoth.com/Blog/What-DX-Level-Does-My-Graphics-Card-Support-Does-It-Go-To-11.aspx
At runtime DX has code to use to check if the running graphics card has the ability to use advanced DX 11 features. http://msdn.microsoft.com/en-us/library/windows/desktop/hh404562(v=vs.85).aspx#check_support_of_new_direct3d_11.1_features_and_formats
http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876(v=vs.85).aspx
3 - Will any DirectX SDK work with any DX version? So here you basically always want to be using the latest DX SDK as you could see with the link on feature levels above you can target lower levels of DX while still coding using the most recent SDK. Just use the most recent SDK and target feature level 9 if you wanted to create apps that run on DX 9 cards.