Microsoft推荐使用什么原生API来渲染2D图形?

Jos*_*osh 5 c++ windows winapi image

根据MSDN的列表,GDI和GDI +都是遗产.因此,在使用Windows API编写应用程序时,您应该使用什么来渲染2D图形?

Direct2D,WIC,DirectComposition(这对我来说是新手),GDI +,GDI?

注意:不是2d游戏 - 只是2d图像.

Cod*_*ray 5

GDI 或 GDI+ 都是满足基本需求的不错选择。

操作系统仍然在各处使用 GDI,所以我不太确定“遗留”是什么意思。类似的词通常没有任何意义,所以忽略它们也不用感到太难过。将这些 API 标记为“遗留”的人可能是那些告诉您所有 Win32 都是遗留的人,却没有意识到他们如此喜爱的这些“现代”GUI 框架是构建在 Win32 之上的,并且无法使用它们。没有它也能正常工作。

如果您需要 GDI+ 提供的额外功能(例如透明度等)和/或如果您使用 C++ 进行编程并且更喜欢其基于类的 API 而不是 GDI 的平面 C 风格 API,请使用 GDI+。但请注意,如果您的应用程序使用 GDI+,则必须将Gdiplus.dll库重新分发给运行 Windows 2000 及更早版本的用户。基于 GDI 的应用程序始终可以开箱即用。

这并不是说您不应该调查新的竞争者。据推测,Direct2D 旨在与 GDI 和 GDI+ 良好地互操作。唯一的问题是,许多开发人员无法要求所有客户升级到 Windows Vista 或更高版本。支持 XP 似乎仍然是一个值得实现的目标(至少为这些用户提供最小的功能子集),但如果您使用 Direct2D 或新的精美框架之一编写整个 UI,则这实际上是不可能的。我还没有真正看到针对标准业务线应用程序切换到 Direct2D 的优势(我确信游戏和其他需要 3D 效果的程序有优势)。您可能对以下Direct2D 和 GDI 之间的比较感兴趣,它们都是二维硬件加速图形 API。

  • 那么,我是否应该更清楚地说,那个特定的 MSDN 条目是错误的?或者至少是由营销部门的某个有点过分热心的人写的? (2认同)