使用Direct X和VS2012

时间:2013-08-07 00:17:07

标签: visual-studio-2012 directx

我同时拥有Visual Studio 2012 Express for Desktop和Windows 8,我想创建Direct X应用程序和游戏。我知道现在有一个Windows SDK,而在win 2012的VS 2012 exp中,IDE预先安装了SDK(我知道来自新的Direct3D项目)。我的问题是,如果我想开发Windows桌面应用程序(使用VS2012exp)它是Windows SDK还是我需要安装Direct X SDK?我怎么知道我的显卡是否支持哪个版本的Direct X?任何Direct X SDK版本都可以与任何Direct X版本一起使用吗?你可以看到我是那个东西的新手,任何评论都会有所帮助。谢谢你的时间。

2 个答案:

答案 0 :(得分:6)

  

如果我想开发Windows应用程序   桌面(使用VS2012exp)是Windows SDK还是我需要的   安装Direct X SDK?

是的,使用Windows 8 SDK 和Visual Studio 2012(或Windows 8.1 SDK和Visual Studio 2013预览版)可以开发任何内容

  • DirectX应用程序(Windows桌面和Windows应用商店)
  • 适用于任何受支持的目标平台(x86,x64,ARM)
  • 适用于任何合理的现代Windows操作系统(从Windows 2000 / XP开始)
  • 使用任何API版本:DirectX 9.3,10.0,10.1,11.0或11.1

注意:

  • DirectX 9 API与10和11完全不同,它已经过时了。仅在将目标定位到Vista以下的Windows版本时才使用它。
  • DirectX 11更像是DirectX 10的改进版本。
  • 因此,在大多数情况下,您需要为DirectX 11.1编程。

不,您不需要安装DirectX SDK。它已被弃用(最新版本 - 2010年6月)。不要在新代码中使用它。仅当您需要编译一些使用D3DX内容的旧代码(例如ID3DXEffect, ID3DXFont, ID3DXLine, ID3DXMesh, ID3DXSprite)时才使用它,例如来自书籍或不同SDK样本的样本。

  

我怎么知道我的显卡是否支持哪个版本的Direct   X?

好吧,如果我们谈论您的显卡,您可以查看您的卡供应商或GPU供应商的网站。或任何信息实用程序,例如GPU-Z

如果我们谈论最终用户硬件,由于DirectX 10-11有feature levels。因此,即使您使用的是最新的API(此时也是DirectX 11.1),您可以定位旧硬件(例如,如果您使用D3D_FEATURE_LEVEL_9_3,则会禁用来自D3D_FEATURE_LEVEL_10_0及更高版本的更新功能)。

请注意,要为最新的feature level 开发,您不需要支持它的GPU。您可以在WARP device上运行和调试应用程序(非常慢,仅用于调试目的,不适用于最终用户发布)。例如,您可以使用旧版DirectX 10卡(Shader model 4.0),但可以使用DirectX 11(Shader model 5.0)

  

任何Direct X SDK版本都适用于任何Direct X版本吗?

最新的DirectX SDK(2010年6月)支持DirectX,最多11个。不支持DirectX 11.1。

答案 1 :(得分:3)

我是Visual Studio中的开发人员,他使用DirectX工具(DX诊断工具和新项目模板)。你在这里问了几个不同的问题,但我会尽力回答那些问题。

1 - DX应用程序开发需要哪些SDK?这里的链接是关于此的最佳信息。基本上在2010年6月的DirectX SDK中,DX SDK与Windows开发SDK结合使用,因此如果您安装最新的Windows SDK,您将拥有开发最新DX应用程序的正确方法。 http://blogs.msdn.com/b/chuckw/archive/2013/07/01/where-is-the-directx-sdk-2013-edition.aspx

此链接还有更多深入的信息,特定于Windows 8上的DX桌面应用程序问题。 http://blogs.msdn.com/b/chuckw/archive/2012/03/23/desktop-games-on-windows-8-consumer-preview.aspx

请注意,您也可以在您的计算机上安装2010年6月的DirectX SDK,这不会对任何事情造成任何影响,我们经常自行安装,因为它有一些有用的示例应用程序可供查看,即使它们有点过时。 http://www.microsoft.com/en-pk/download/details.aspx?id=6812

2 - 我如何知道我的显卡支持的内容?我不确定你是否意味着我如何在运行时在我的DX应用程序中检测到这一点?或者,如果您的意思是我如何快速查找我的特定系统。要找出你自己的GPU,它通常是一个非常快速的查找,只需找到你的设备名称并在线打卡,过去几年发布的大多数东西支持DX11,所以你应该没关系。如果您安装了我上面提到的2010年6月SDK,您可以使用此处提到的功能工具: http://www.danielmoth.com/Blog/What-DX-Level-Does-My-Graphics-Card-Support-Does-It-Go-To-11.aspx

在运行时,DX有代码可用于检查正在运行的图形卡是否能够使用高级DX 11功能。 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 - 任何DirectX SDK都适用于任何DX版本吗?所以在这里你基本上总是希望使用最新的DX SDK,你可以看到上面的功能级别上的链接,你可以针对较低级别的DX,同时仍然使用最新的SDK进行编码。如果您想创建在DX 9卡上运行的应用程序,请使用最新的SDK和目标功能级别9。