Windows XP上的DirectX,GDI +或SDI?

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

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

  • 我在哪里可以找到在DirectX 9.0c中进行缩放和合成2D图像的文档? (我发现了DirectDraw的文档,但是读到它在DirectX 7之后不推荐使用。但是直到DirectX 10才能使用Direct2D。)

  • 我可以合理地期望在中低规格个人电脑(即集成显卡)上Windows XP上的缩放和合成硬件加速吗? 如果不是,那么我是否使用GDI +或DirectX 9.0c也无关紧要?


  • 不要使用GDI +。 它在软件中完成所有工作,并且它具有不利于软件性能的渲染模型。 你会更喜欢与其他任何东西。

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

    我相信SDL在Windows上使用DirectDraw来实现其非OpenGL绘图。 不知何故,我得到了一个印象,即DirectDraw在现代Windows版本的软件中执行所有操作(并且给出了DirectDraw的用途,因为它从win9x时代开始并不重要),但我无法验证。

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


    我刚刚发现:在DirectX 8中进行2D渲染。

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

    这篇文章看起来很有希望。

    另一个是:3D世界中的2D编程

    链接地址: http://www.djcxy.com/p/50349.html

    上一篇: DirectX, GDI+ or SDI on Windows XP?

    下一篇: c#