Windows桌面应用程序(1-2-4-2nd) 桌面窗口管理器

在Windows Vista之前,Windows程序会直接画到屏幕上。换句话说,程序会直接写入显卡所显示的内存缓冲区。如果窗口没有正确重绘,这种方法会导致视觉失真。例如,如果用户在另一个窗口上拖动了一个窗口,并且下面的窗口没有足够快地重新绘制自己,那么最顶层的窗口可能会留下一个痕迹:

显示重绘工件的截图。

由于两个窗口都绘制到相同的内存区域,因此导致了这种情况。当最上面的窗口被拖拽时,窗口下面的窗口必须重新绘制。如果重新绘制速度太慢,则会导致上一张图像中显示的伪像。
通过引入桌面窗口管理器(DWM),Windows Vista从根本上改变了Windows的绘制方式。当启用DWM时,窗口不再直接绘制到显示缓冲区。相反,每个窗口绘制到一个离屏的内存缓冲区,也称为离屏表面。DWM然后将这些表面组合到屏幕上。

显示DWM如何合成桌面的图表。

与旧的图形体系结构相比,DWM提供了几个优点。

  • 减少重新绘制的消息。当窗户被另一个窗户阻挡时,被遮挡的窗户不需要重新绘制。
  • 减少文物。以前,拖动一个窗口可能会产生视觉工件,如上所述。
  • 视觉效果。由于DWM负责合成屏幕,因此可以渲染窗口的半透明和模糊的区域。
  • 自动缩放高DPI。虽然缩放并不是处理高DPI的理想方式,但对于不适用于高DPI设置的旧应用程序来说,这是一个可行的回退。(稍后我们将在DPI和设备无关的像素部分回到这个话题。)
  • 替代视图。DWM可以以各种有趣的方式使用离屏表面。例如,DWM是Windows Flip 3D,缩略图和动画过渡的技术。

但请注意,DWM不能保证启用。显卡可能不支持DWM系统要求,用户可以通过“系统属性”控制面板禁用DWM。这意味着您的程序不应该依赖DWM的重新绘制行为。测试您的程序与DWM禁用,以确保它重新正确。
下一个
保留模式与立即模式


原文链接:The Desktop Window Manager

你可能感兴趣的:(Windows桌面)