2013-07-05 78 views
2

我只是想了解的路子走对了用于创建图形应用程序(游戏!!)一个初学者。由于我对Windows非常沉迷,我选择使用DirectX作为图形库,使用C++。 关键是:DirectX 9,10,11(还有更多来自Microsoft ..):我选择哪一个?我知道DX9中的编程与DX10/11是向前兼容的,但DX11向后兼容DX10/9吗?我的意思并不仅仅是为了编程级别的兼容性,而是为了实际的运行时兼容性:如果用户在DX9环境下运行DX11应用程序,它会工作得很好吗?如果不是,我如何制作DX“通用”应用程序?DirectX的向后兼容性

此外,闲谈问题(回答这个完全可选):我读了很多好的关于Qt和wxWidgets的。你会建议使用其中的一个而不是DirectX吗?目前我还没有其他操作系统的可移植性计划,但是,如果我改变了主意,是否会更好地做好准备?

非常感谢谁的人会回答:)

+0

DirectX是旨在创建游戏和图形密集型应用程序,而不是“正规”的图形化应用程序 - 它们是完全不同的目标,你会得到很多的性能和自由的图形,但你没有得到任何“标准的东西”,即“常规”应用程序的基础上(标准控件/小部件,只是说一件事)。所以,如果你想构建图形应用程序,你应该转向一些面向小部件的工具箱;恕我直言,如果你正在做C++开发Qt目前是最好的之一,但还有其他几个质量替代品(具有不同的长处/弱点)。 –

+0

我担心有人会回答这个问题。事实上,我在网上阅读的几乎所有教程都是面向游戏的。少数人展示了如何实现简单的具有控件的绘画(绘图)应用程序,但我认为控件不是在DX中制作的。 – T3STY

+0

*您可以*建立在DirectX控件 - 实际上,WPF提供了许多控制,是建立在DirectX的 - 但的DirectX不提供这些,你必须给他们从头开始,这通常是根本不是一个好主意,写(你浪费了很多时间来获得不理想的结果)。 –

回答

0

关于你的第一个问题,你可以的代码DX11和DX9目标水平的硬件。更多信息,请访问this MSDN overview page.

读你的第二个问题,然而,使我怀疑,如果你真的想使用的DirectX你的目的。 DirectX通常用于Direct3D图形和输入API。您可能会发现WPF或GDI +是可以接受的(事实上,WPF是由DirectX加速的,因此您可以获得一些性能优势。)

Qt和wxWidgets都是可移植的UI SDK /库。你当然可以使用这些,但是如果你的目标只是Windows平台,那么可移植性并没有多大用处。如果您坚持使用C++而不是C#,那么Qt对于UI库来说不是一个不错的选择。

编辑:如果Win8的唯一,可以考虑使用C++/XAML combo

+1

...但是请注意,WPF和GDI +需要C++/CLI(虽然GDI +可以从COM使用,但因为它是相当不太愉快的 - 好了,你必须处理COM)。 –

+0

根据您的答案和你之前利玛窦的答案,我做了一个错误的决定有关DirectX因为它是3D高速渲染导向(如游戏)。 我的目标是为Windows创建一个资源管理器替代品;我想在其中添加一些漂亮的图形效果并制作自定义可控制的控件。我不确定我需要3D,但是真棒效果也可以在2D中完成。 那么你建议我做什么? 编辑 是的,我读了很多关于COM的信息,我会尽量避免它。 – T3STY

+0

Qt当然适合这个任务(我曾经在基于Qt的商用Windows应用程序上工作过。)它支持主题/皮肤,并提供了一套很好的小部件和绘图基元。其中大部分内容都基于Win32 API,但如果需要,您可以创建OpenGL画布。这就是说 - 如果我今天正在编写一个新的C++,windows-only应用程序,我可能会研究使用C++/Metro作为我的第一选择。 WPF/XAML是一个比Win32更丰富,更快速的用户界面,提供了许多“好效果”,并利用GPU加速。 (仅限Windows 8) – holtavolt