8

有没有人创建了一个GDI32.dll利用机器上可用的硬件加速的版本?gdiplus.dll?

从 Windows Vista 开始,GDI 不再是硬件加速的。(GDI+ 从来没有硬件加速)。如果没有 Microsoft 修复 GDI(和 GDI+)以便能够在计算机上正常运行:本机应用程序(C++ MFC、Delphi 等)和托管的 WinForms 应用程序将永远运行不佳。

虽然我可以将 Direct2D 用于商业应用程序,但我无法控制这样一个事实,即开发环境仍然创建控件,具有数十年的库支持代码,假设存在 GDI。


应用程序兼容性:图形设备接口 (GDI)

LineTo 和 Rectangle 等 GDI 原语现在以软件而非视频硬件呈现,这大大简化了显示驱动程序。

视窗和显存

在 XP 中,GDI 的 GPU 加速程度取决于操作系统的配置方式或设备驱动程序(有关详细信息,请参阅Hooking Versus Punting)。在 Vista 中,GDI 不是 GPU 加速的

比较 Direct2D 和 GDI

因此,在 Windows Vista 中,GDI DDI 显示驱动程序被更改为仅由 Microsoft 提供的驱动程序 Canonical Display Driver (CDD) 实现。GDI 呈现到系统内存位图。脏区用于更新窗口管理器用于合成桌面的视频内存纹理。

4

3 回答 3

3

在 GDI 性能发展史上,Vista 似乎是一个特例。以下两篇文章都表明,GDI 的前景再次一片光明。

http://msdn.microsoft.com/en-us/library/ff729480%28VS.85%29.aspx

GDI 在 Windows XP 上进行硬件加速,并在桌面窗口管理器运行且使用 WDDM 1.1 驱动程序时在 Windows 7 上进行加速。Direct2D 在几乎所有 WDDM 驱动程序上都经过硬件加速,无论是否使用 DWM。在 Vista 上,GDI 将始终在 CPU 上呈现。

http://blogs.msdn.com/b/e7/archive/2009/04/25/engineering-windows-7-for-graphics-performance.aspx

Based on real-world application statistics, ... we worked with our graphics IHV partners to provide support in their drivers to accelerate the most commonly used GDI operations.

于 2010-08-05T13:57:47.783 回答
1

嗯,是的,GDI 是用于渲染图形的“随时随地工作”的 API。它对视频驱动程序的要求非常低。很久以前每个人都做对了。过了一段时间,我对 ATI Mach 视频卡有了清晰的记忆,它给我带来了无穷无尽的麻烦。它让我有一段时间没有购买 ATI 产品。

很久以前,每个人都得到了 DirectX。它在 WPF 渲染模型中得到了利用,它完全依赖 DirectX 来完成工作。Milcore 是垫片名称。在您购买 WPF 编程模型之前,您不会得到它。

于 2010-04-14T22:07:53.340 回答
1

你说的硬件加速是什么意思?我的意思是,除了光栅 blits 之外,GDI 并没有做很多事情,但这些都是硬件加速的。而且,考虑到 Vista 和 Windows 7 的桌面应用程序并没有太慢,仍然如此。

GDI 仍然让视频驱动程序来完成所有繁重的工作,所以如果 GDI 没有硬件加速,那么它是驱动程序供应商的错,而不是 GDI 的错。

于 2010-04-15T09:16:35.357 回答