Windows XP上的DirectX,GDI +或SDI?

时间:2012-11-14 15:59:12

标签: directx 2d gdi+ directx-9

  1. 如果我想在Windows XP和更高版本的Windows上实时缩放和合成2D抗锯齿矢量和位图图像,充分利用可用的硬件加速,我应该使用GDI +吗?还是DirectX 9.0c? (实际上,Windows XP和Windows 7很重要,但我们并不担心Vista的性能。)

  2. 使用SDL是否有任何优点,因为应用程序不是跨平台的(并且永远不会)?我想知道SDL是否可以更容易切换到任何底层绘图API提供更好的性能...

  3. 在哪里可以找到在DirectX 9.0c中进行2D图像缩放和合成的文档? (我找到了DirectDraw的文档但是读到它在DirectX 7之后被弃用了。但DirectXD在DirectX 10之前不可用。)

  4. 我是否可以合理地期望在中低规格的PC(即集成显卡)上在Windows XP上进行硬件加速缩放和合成?如果没有,那么我是否使用GDI +或DirectX 9.0c甚至无关紧要?

2 个答案:

答案 0 :(得分:1)

不要使用GDI +。它在软件中完成所有工作,并且它具有不利于软件性能的渲染模型。几乎任何事情都会让你感觉更好。

Direct3D或OpenGL(如果您想要更完整的跨平台API,可以通过SDL访问)将在支持它的硬件上提供最佳性能。 Direct2D在同一条船上,但在Windows XP上不可用。我的理解是,至少在英特尔集成GPU的情况下,硬件能够执行简单的操作,如转换和编写,并且这些GPU的大多数问题都是对功能和性能有很高要求的游戏,以及针对ATI / Nvidia显卡进行了优化。如果你以某种方式找到了一台机器,其中视频卡不支持Direct3D并且正在回退到软件,那么你可能会遇到问题。

我相信SDL在Windows上使用DirectDraw进行非OpenGL绘图。不知怎的,我得到的印象是DirectDraw在Windows的现代版本中完成了软件中的所有操作(并且考虑到自从win9x时代以来从未真正重要的DirectDraw),但我无法验证。

理想的是可以使用Direct3D或OpenGL进行渲染的跨平台矢量图形库,但是AFAICT没有这样的东西可用。开罗图形库在Windows上缺乏加速,Mozilla已经启动了一个名为Azure的项目,显然有这个项目,但似乎不是为了在项目之外使用而设计的。

答案 1 :(得分:0)

我刚发现:2D Rendering in DirectX 8

看来,由于微软在DirectX 7之后删除了DirectDraw,他们预计所有2D绘图都是使用3D API完成的。这可以解释为什么我完全找不到我想要的文档。

到目前为止,这篇文章看起来很有希望。

这是另一个:2D Programming in a 3D World