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

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

当我 可以 使用 Direct2D 进行业务应用程序时,我无法控制这样一个事实:开发环境仍然创建控件,并具有数十年的库支持代码,假设存在 GDI。


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

GDI原语(例如Lineto和Rectangle)现在用软件而不是视频硬件渲染,从而大大简化了显示驱动程序。

Windows 和视频内存

在XP中,GPU根据OS的配置或设备驱动程序的方式将GPU加速到各个程度(有关详细信息,请参见 钩与刺)。在 Vista 中,GDI 不是 GPU 加速的

比较 Direct2D 和 GDI

结果,在Windows Vista中,更改了GDI DDI显示器驱动程序,仅由Microsoft提供的驱动程序(Canonical Display驱动程序(CDD))实现。GDI渲染到系统内存位图。肮脏的区域用于更新窗口管理器用来复合桌面的视频内存纹理。

有帮助吗?

解决方案

看来Vista是GDI性能史上的一个特例。下面的两篇文章都表明 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

基于现实世界应用统计信息...我们与图形IHV合作伙伴合作,为他们的驱动程序提供支持,以加速最常用的GDI操作。

其他提示

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

大家在不久之前也正确认识了 DirectX。它在 WPF 渲染模型中得到利用,它完全依赖 DirectX 来完成工作。Milcore 是垫片名称。在您接受 WPF 编程模型之前,您不会得到它。

硬件加速是什么意思?我的意思是,GDI 除了光栅位块传输之外没有做太多事情,但这些都是硬件加速的。而且,鉴于 Vista 和 Windows 7 的桌面应用程序速度并没有特别慢,但情况仍然如此。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top