我的新应用程序将具有丰富的界面,它应该可以即时调整大小,使用透明图标/图像等。对于这个应用程序,我正在尝试决定使用新的Direct2D API 来对抗旧的 GDI。缺点之一当然是它不能在 XP 上运行,尽管我发现了一些更棘手的问题需要决定:
我注意到在 Direct2D 环境中输出文本似乎有点模糊(尽管作为一项功能销售)。只需查看启用了硬件加速(或 IE9)的 Firefox 4 中的文本。这似乎是因为 Direct2D 中的文本不像 GDI 那样遵循(像素)网格。有没有办法强制 Direct2D 使其坚持像素网格,从而解决这个问题?
速度真的有这么大的提升吗?我试图理解这篇文章,我从中得到的是,在 Windows 7 和 XP(不是 Vista?)中,GDI 已经在可能的地方进行了硬件加速。例如,在我的应用程序中,我使用了很多内存 DC,它们刚刚被
BitBlt
编入到位,并且正在使用AlphaBlend
. 最后一个肯定是硬件加速的,因为我在测试例程时测量了速度。
那么你会把钱放在哪里呢?Direct2D 是否值得麻烦,还是您会坚持使用旧的 GDI?或者你会建议别的吗?
注意:顺便说一句,我正在用 C++ 编程,没有使用 MFC。