Win32:是否有使用硬件加速的替代 GDI32.dll?
有没有人创建了一个利用计算机上可用的硬件加速的 GDI32.dll
版本? gdiplus.dll
?
从 Windows Vista 开始,GDI 不再是硬件加速的。 (GDI+ 从来都不是硬件加速的)。如果 Microsoft 不修复 GDI(和 GDI+)以便能够在计算机上良好运行:本机应用程序(C++ MFC、Delphi 等)和托管 WinForms 应用程序将永远运行不佳。
虽然我可以将 Direct2D 用于业务应用程序,但我无法控制这样一个事实:开发环境仍然使用数十年的库支持代码创建控件,并假定存在 GDI。
GDI 基元,例如 LineTo 和 矩形现在在软件中渲染 而不是视频硬件, 大大简化了显示驱动程序。
在 XP 中,GDI 经过 GPU 加速 不同程度取决于如何 操作系统或设备驱动程序已配置 (有关详细信息,请参阅挂钩与 弃踢)。 在 Vista 中,GDI 未进行 GPU 加速
因此,在 Windows Vista 中,GDI DDI 显示驱动程序更改为 仅由微软实施 提供的驱动程序,Canonical Display 司机(CDD)。 GDI 呈现给系统 内存位图。使用了脏区域 更新视频内存纹理 窗口管理器用来 合成桌面。
Has anyone out there created a version of GDI32.dll
that takes advantage of hardware acceleration available on the machine? gdiplus.dll
?
Starting with Windows Vista, GDI is no longer hardware accelerated. (GDI+ was never hardware accelerated). Without Microsoft fixing GDI (and GDI+) to be able to run well on the computer: native applications (C++ MFC, Delphi, etc), and managed WinForms applications, will continue to run poorly forever.
While i could use Direct2D for business applications, i cannot control the fact that the development environment still creates controls, with decades of library support code, that assumes the presence of GDI.
Application Compatibility: Graphical Device Interface (GDI):
GDI primitives such as LineTo and
Rectangle are now rendered in software
rather than video hardware, which
greatly simplify the display drivers.
In XP GDI is GPU accelerated to
various degrees depending on how the
OS is configured or the device driver
(for details see Hooking Versus
Punting).
In Vista, GDI is not GPU accelerated
As a result, in Windows Vista, the GDI
DDI display driver was changed to be
only implemented by a Microsoft
supplied driver, the Canonical Display
Driver (CDD). GDI rendered to a system
memory bitmap. Dirty regions were used
to update the video memory texture
which the window manager uses to
composite the desktop.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
看来Vista是GDI性能史上的一个特例。
下面的两篇文章都表明 GDI 的未来再次光明。
http://msdn.microsoft.com/en-我们/库/ff729480%28VS.85%29.aspx
链接
It seems that Vista was a special case in the history of GDI performance.
Both articles below show that the future for GDI looks bright again.
http://msdn.microsoft.com/en-us/library/ff729480%28VS.85%29.aspx
Link
嗯,是的,GDI 是“随时随地工作”的用于渲染图形的 API。它对视频驱动程序的要求非常低。每个人很久以前就明白了这一点。过了一段时间,我对 ATI Mach 显卡有了清晰的记忆,这给我带来了无穷无尽的麻烦。这让我有一段时间不再购买 ATI 产品了。
大家在不久之前也正确认识了 DirectX。它在 WPF 渲染模型中得到利用,它完全依赖 DirectX 来完成工作。 Milcore 是垫片名称。在您接受 WPF 编程模型之前,您不会得到它。
Well, yes, GDI is the "it works anywhere anytime" API for rendering graphics. It puts very low demands on the video driver. Everybody got that right a long time ago. Which took a while, I got a distinct memory of a ATI Mach video card that gave me no end of trouble. It stopped me from buying ATI products for quite a while.
Everybody got DirectX right a lesser long time ago too. It is being taking advantage of in the WPF rendering model, it completely relies on DirectX to get the job done. Milcore is the shim name. You won't get it until you buy into the WPF programming model.
硬件加速是什么意思?
我的意思是,GDI 除了光栅位块传输之外没有做太多事情,但这些都是硬件加速的。而且,考虑到 Vista 和 Windows 7 的桌面应用程序速度并没有特别慢,但情况仍然如此。
GDI 仍然让视频驱动程序来完成所有繁重的工作,因此如果 GDI 没有硬件加速,那么这是驱动程序供应商的错,而不是 GDI 的错。
What do you mean by hardware acceleration?
I mean, GDI doesn't do a lot other than raster blits, but those were hardware accelerated. And, given that Vista and Windows 7 arn't terribly slower with desktop apps, still are.
GDI still gets the video drivers to do all the heavy lifting, so if GDI isn't hardware accelerated, then its the driver vendors fault, not GDI's.