2012-04-08 61 views
0

我想用DirectX制作2D桌面GUI应用程序,但我不知道要使用哪个版本。我最初尝试使用Direct2D,但它从未真正获得普及,因此与其他DirectX相比,没有太多的社区支持或文档,因此它不是一种选择。我应该使用什么版本的DirectX来制作2D桌面GUI应用程序?

所以我有三种选择:

  1. 的DirectX 9.0c
  2. 的DirectX 10
  3. 的DirectX 11(未11.1,我没有得到Windows 8的)

一位懂行的朋友我强烈鼓励DirectX 9.0c说这就是我需要的,但我对使用8年的平台保持警惕。微软几乎是传统支持的顶峰,但我认为他们必须有一个限制。我不知道DX10和DX11的区别。

请记住,我是一个新手程序员,所以这主要是一个学习项目。

任何意见是赞赏!

编辑:我也很感谢在版本之间的功能或编程范例的任何重大差异的建议。

+0

任何你要使用DirectX而不是常规Windows API的理由? – 2012-04-10 19:25:33

回答

1

我应该使用哪种版本的DirectX来制作2D桌面GUI应用程序?

DirectX 9,因为你会得到更多的用户。

我的一位知识渊博的朋友强烈鼓励DirectX 9.0c说这就是我所需要的,但我对使用8年的平台保持警惕。

许多DirectX 7和DirectX 5游戏仍然可以正常工作,更不用说使用DirectDraw的标题了。所以8年的平台没有问题。使用更新版本(超过9版本)可能不会让您受益,因此盲目走高版本号码并不是一个好主意。

根据您的情况,您也可以考虑使用OpenGL,但只有在您的应用必须跨平台时才有意义。如果您知道该应用程序将仅适用于Windows,则选择DirectX 9是有道理的。

1

微软的主要承诺是对其Windows用户。谁仍然运行15年前使用DirectX版本的游戏。 IDirectDraw是活着的,很好。显然你会从其次作为开发者受益。当然,DX 9是最受硬件支持的,所以这是一个很好的选择。如果你的游戏在旧硬件上表现不佳,那么考虑更高一些的东西,DX版本是一个自动选择器。

+0

谢谢!顺便说一句,我不是编写游戏,而是编写桌面应用程序(相对简单的图形,几乎没有任何数学)。你知道DX版本的功能是否存在显着差异?编程概念有何变化? – Joshua 2012-04-08 17:15:38

+0

这是另一个问题。点击“Ask Question”按钮询问它。 – 2012-04-08 17:33:00

+0

这些问题有助于回答原始问题。我不想为同样的动机创造新的问题。 – Joshua 2012-04-08 17:35:19

1

你是为了工作还是为了好玩而写这篇文章?

如果是为了工作,那么您必须遵循商业或市场营销人员定义的最低系统要求。如果您的最低操作系统可以是Win7或带有平台更新的Vista SP2,那么Direct2D是一个可行的选择。否则,DX9是你必须去的方式。

如果是在你自己的个人时间上玩的话,那么做你认为最有趣的事:)如果你只是想做2D图形,Direct2D肯定会更容易工作。我不会担心“它没有获得流行/社区支持”的角度,特别是因为它现在被所有主要桌面应用程序(Firefox,Internet Explorer,甚至是下一版本的Paint.NET)都使用。此外,Win8将更新Direct2D的一大堆有趣的新功能(而且这个更新也将适用于Win7,据我所知)。

Direct2D起初可能很笨拙,但主要是由于所有的COM东西。一旦你习惯了它并建立你自己的小实用程序,它确实不比GDI +更复杂。事实上,我已经能够将一堆旧的GDI +代码移植到使用Direct2D/DirectWrite,并且通常它只是逐行替换,例如, SolidBrush - > SolidColorBrush(这是在Paint.NET 4.0代码库中,顺便说一句)。

+0

“建立你自己的小实用程序最好的”在这种情况下,使用最安全的框架会更合理。 – SigTerm 2012-04-10 20:37:25

+0

在我的情况下,它能够创建类似SolidColorBrush的东西,而无需先创建渲染目标,然后根据需要创建“真实”ID2D1SolidColorBrush的内部位。这非常棒,因为我不必担心重新创建资源,并且在每个我想使用D2D的地方都需要重新设置管道。所以实际上我猜你是对的,因为我的“框架”是我自己的用于D2D,DWrite等的.NET互操作层。:) – 2012-04-10 23:44:30

+0

这是为了好玩。顺便说一句,我已经尝试过Direct2D ...我尝试在屏幕上呈现位图时遇到了很多麻烦;你必须搞清楚Windows映像组件,即使这样它也无法理解我试图渲染的位图资源中的数据。在Direct3D中,有一个名为'CreateTextureFromResource'的函数。作品完美无瑕。我决定,当我可以使用更受欢迎的和有文档记录的Direct3D时,Direct2D不值得遇到麻烦。感谢您的答复! – Joshua 2012-04-11 12:25:20

1

我使用Direct 2D渲染函数图形,它非常易于使用 - 我想说,就像GDI +一样简单。我猜想,DirectX 11和DirectX 9(2D图形方面)的复杂程度非常相似,所以不用担心。

DirectX 9.0在所有现代计算机上运行(比方说),并且11将您限制在Windows Vista(带平台包)和Windows 7上。但是请注意,Windows XP最终会消失,并且DirectX会发展,所以我不确定,将您的时间投入到技术上是不值得的,这是不会再发展的。那么我会建议DirectX 11的Direct2D。

相关问题