Winapi GDI函数BitBlt和StretchBlt硬件在Win32中加速了吗?

Winapi GDI函数BitBlt和StretchBlt硬件在Win32中加速了吗?,winapi,bitmap,hardware,gdi,bitblt,Winapi,Bitmap,Hardware,Gdi,Bitblt,我似乎无法通过搜索得到一个明确的答案。Win32 blitting操作是硬件加速的(GDI,而不是GDI+)。我不知道这些函数如何与图形驱动程序接口。是否有任何函数调用来验证此功能,如?GetCaps?要让特定的图形设备(win32图形设备)查看这些功能是否正在接收硬件加速?根据,GDI仅在windows 7以后的版本上进行硬件加速。 列出如何指定要硬件加速的操作。列表中包括BitBlt和StretchBlt,因此它们是硬件加速的,但您需要有一个支持它的系统,并且需要启用它。如果GDI操作是硬件

我似乎无法通过搜索得到一个明确的答案。Win32 blitting操作是硬件加速的(GDI,而不是GDI+)。我不知道这些函数如何与图形驱动程序接口。是否有任何函数调用来验证此功能,如?GetCaps?要让特定的图形设备(win32图形设备)查看这些功能是否正在接收硬件加速?

根据,GDI仅在windows 7以后的版本上进行硬件加速。
列出如何指定要硬件加速的操作。列表中包括
BitBlt
StretchBlt
,因此它们是硬件加速的,但您需要有一个支持它的系统,并且需要启用它。

如果GDI操作是硬件加速的,则取决于驱动程序,但除Vista*外的所有Windows版本都支持它

  • Vista添加了名为Windows显示驱动程序模型(WDDM)的新驱动程序模型
  • WDDM v1.1是在Windows 7中添加的,其中包括返回
*:可以在Vista上使用XP驱动程序,但我不知道在该设置中GDI会发生什么。(也许你可以通过检查来检测?编辑:根据,它与XPDM一起工作


有些内核可以在Win7上检查,但我不知道是否可以在用户模式下检查。

基本正确。GDI在硬件加速方面已经有很长一段时间了。WindowsVista对GDI来说只是一个黑暗的时代;它失去了硬件加速功能,用户抱怨不断。结果(或者可能是一直以来的计划),Windows 7将硬件加速带回到GDI,一切又恢复正常。注意:根据我的测试,有一件事似乎阻止了Win7上的加速,那就是使用SetStretchBltMode(dc,半色调)在拉伸期间启用线性滤波(我不确定这是否是在XP上加速的)。@Suma是的,我想知道为什么硬件做得很好。事实上,它在那里的收益将是巨大的。