【发布时间】:2014-02-25 23:05:54
【问题描述】:
我有一个经过彻底优化的 GDI+ 程序(使用 GraphicsPath、DrawLines 等进行批处理调用),但它的渲染速度仍然很慢(需要几秒钟才能绘制具有抗锯齿的复杂地图)。
没有办法让我的 GDI+ 更快,所以我正在寻找替代方案。
如果:
- 我需要与 Windows XP 兼容吗?
- 我不需要与 Windows XP 兼容?
我现在正在研究 DirectDraw 和 Direct2D,但我什至还没有弄清楚如何用它们在屏幕上绘制基本形状。我也可能会考虑使用 OpenGL,但我不知道从哪里开始,因为我从未使用过它。
【问题讨论】:
-
DirectDraw 已被弃用,因此我建议不要使用它(它甚至不再在 DirectX 8+ 中)。 Direct2D 和 DirectWrite 在 XP 上不可用。如果您不关心 XP(例如 Chrome、Firefox 使用 Direct2D,Office 2013 使用 DirectDraw),那么 Direct2D 或 DirectDraw 似乎是可行的方法。如果您需要 XP 支持,请使用 Direct3D 或 OpenGL。
-
Downvote 不是我的,但这看起来很多像一个推荐问题,而且这些都是题外话,你知道的。也许问题可以重新集中在您当前使用的算法以及它们在不同环境下的表现如何?
-
@FrédéricHamidi:这不是算法问题,我的算法比 GDI+ 渲染快得多。真正的瓶颈是 GDI+。不确定是什么使它成为“推荐”问题...我在问有哪些 API 可用,我不是我应该购买什么软件或类似的东西。
-
@dtech:等等,DirectDraw 在 XP 上不可用?你确定吗?
-
@Mehrdad DirectDraw 是,但 DirectWrite 不是。 DirectDraw 虽然和 DirectX 7- 已经过时。 (我在最后两次提到 DirectDraw 时指的是 DirectWrite)
标签: winapi visual-c++ graphics gdi+