我想用DirectX制作2D桌面GUI应用程序,但我不知道要使用哪个版本。我最初尝试使用Direct2D,但它从未真正获得普及,因此与其他DirectX相比,它没有很多社区支持或文档,所以它不是一个选项。
所以我有三个选择:
我的一位知识渊博的朋友强烈鼓励DirectX 9.0c说这就是我所需要的,但我对使用8年历史的平台很谨慎。微软几乎是传统支持的顶峰,但我认为它们必须有一个限制。我不知道DX10和DX11之间的区别。
请记住,我是一名新手程序员,所以这主要是一个学习项目。
感谢任何建议!
编辑:我也非常感谢有关版本之间功能或编程范例的任何重大差异的建议。
答案 0 :(得分:1)
微软的主要承诺是其Windows客户。谁仍然运行15年的游戏,使用当时正在使用的任何DirectX版本。 IDirectDraw活得很好。显然,作为开发人员,您将从中受益。当然,DX 9是硬件最广泛支持的,因此这是一个很好的选择。如果您的游戏在旧硬件上表现不佳,请考虑更高的东西,DX版本是自动选择器。
答案 1 :(得分:1)
我应该使用什么版本的DirectX来制作2D桌面GUI应用程序?
DirectX 9,因为你会获得更多用户。
我的一位知识渊博的朋友强烈鼓励DirectX 9.0c说这就是我所需要的,但我对使用8年历史的平台很谨慎。
许多DirectX 7和DirectX 5游戏仍然可以正常使用,更不用说使用DirectDraw的游戏了。所以8岁的平台没有问题。使用较新的(超过9个)版本可能甚至不会对您有所帮助,因此盲目地寻求更高版本号并不是一个好主意。
根据您的具体情况,您也可以考虑使用OpenGL,但只有当您的应用必须是跨平台的时候才有意义。如果您知道该应用程序将仅限于Windows,那么选择DirectX 9是有意义的。
答案 2 :(得分:1)
你是为了工作还是为了好玩而写这个?
如果是为了工作,那么您必须遵守业务或营销人员定义的最低系统要求。如果你的最低操作系统可以是Win7或Vista SP2 w / Platform Update,那么Direct2D是一个可行的选择。否则,DX9就是你必须走的路。
如果它是为了你自己的个人时间的乐趣,那么做任何你认为最有趣的事情:)如果你只想做2D图形,Direct2D肯定会更容易使用。我不担心“它没有获得人气/社区支持”的角度,特别是因为它现在被所有主要桌面应用程序使用(Firefox,Internet Explorer,甚至下一版本的Paint.NET)。此外,Win8将使用一系列有趣的新功能更新Direct2D(根据我的理解,此更新也将适用于Win7。)
Direct2D起初可能很笨拙,但这主要是由于所有COM的东西。一旦你习惯了它并建立自己的小型实用程序warchest,它实际上并不比GDI +复杂。实际上,我已经能够将一堆旧的GDI +代码移植到使用Direct2D / DirectWrite,并且通常它只是逐行替换,例如, SolidBrush - > SolidColorBrush(这是在Paint.NET 4.0代码库中,btw)。
答案 3 :(得分:1)
我使用Direct 2D来渲染函数图,它很容易使用 - 我会说,就像GDI +一样简单。我猜,DirectX 11和DirectX 9(就2D图形而言)的复杂程度非常相似,所以不必担心。
DirectX 9.0运行(比方说)所有现代计算机,11限制你使用Windows Vista(带有平台包)和Windows 7.但是考虑到Windows XP最终会消失并且DirectX会发展,所以我我不确定,是否值得将时间投入到技术方面,而这些技术将不再开发。我建议使用DirectX 11的Direct2D。