Windows 桌面窗口管理器

前言

Windows 桌面窗口管理器(Desktop Window Manager,简称DWM)。桌面窗口管理器是Windows桌面环境的核心组件,主要负责处理窗口的显示和管理。它通过利用图形硬件加速技术,将窗口的处理转移到显卡上,提供流畅的图形体验和高效的窗口管理。

正文

在 Windows Vista 之前,Windows 程序将直接绘制到屏幕上。 换句话说,程序将直接写入视频卡显示的内存缓冲区。 如果窗口无法正确重新绘制自身,此方法可能会导致视觉对象。 例如,如果用户将一个窗口拖动到另一个窗口上,而下面的窗口无法足够快地重新绘制自身,则最顶部的窗口可能会留下一条线索:

导致跟踪的原因是两个窗口都绘制到同一个内存区域。 拖动最顶部的窗口时,必须重新绘制其下方的窗口。 如果重新绘制速度太慢,会导致上图中显示的项目。

Windows Vista 通过引入桌面窗口管理器 (DWM) 从根本上改变了窗口的绘制方式。 启用 DWM 后,窗口不再直接绘制到显示缓冲区。 相反,每个窗口绘制到屏幕外内存缓冲区,也称为 屏幕外表面。 然后,DWM 将这些表面组合到屏幕上。

与旧图形体系结构比,DWM 具有几个优势。

  • 重新绘制的消息更少。 当一个窗口被另一个窗口阻止时,受阻的窗口不需要重新绘制自身。
  • 减少了项目。 以前,拖动窗口可能会创建可视项目,如前所述。
  • 视觉效果。 由于 DWM 负责组合屏幕,因此它可以呈现窗口的半透明和模糊区域。
  • 自动缩放,实现高 DPI。 虽然缩放不是处理高 DPI 的理想方法,但它是一种可行的回退方式,适用于不针对高 DPI 设置设计的旧应用程序。
  • 备用视图。 DWM 可以以各种有趣的方式使用屏幕外表面。 例如,DWM 是 Windows Flip 3D、缩略图和动画过渡背后的技术。

但请注意,不保证会启用 DWM。 图形卡可能不支持 DWM 系统要求,用户可以通过**"系统属性"**控制面板禁用 DWM。 这意味着程序不应依赖于 DWM 的重新绘制行为。 在禁用 DWM 的情况下测试程序,确保它重新绘制正确。

总结

DWM的核心功能是窗口的渲染和合成。当一个窗口被打开或改变尺寸时,DWM会将窗口的内容绘制到图形缓冲区中,并通过显卡将缓冲区的内容显示在屏幕上。DWM还支持硬件加速,利用显卡的计算能力来加速窗口的渲染和合成过程,提供更快速的窗口响应和更平滑的界面动画。

learn.microsoft.com/zh-cn/windo...

相关推荐
追逐时光者2 小时前
推荐 12 款开源美观、简单易用的 WPF UI 控件库,让 WPF 应用界面焕然一新!
后端·.net
Jagger_2 小时前
敏捷开发流程-精简版
前端·后端
苏打水com3 小时前
数据库进阶实战:从性能优化到分布式架构的核心突破
数据库·后端
间彧4 小时前
Spring Cloud Gateway与Kong或Nginx等API网关相比有哪些优劣势?
后端
间彧4 小时前
如何基于Spring Cloud Gateway实现灰度发布的具体配置示例?
后端
间彧4 小时前
在实际项目中如何设计一个高可用的Spring Cloud Gateway集群?
后端
间彧4 小时前
如何为Spring Cloud Gateway配置具体的负载均衡策略?
后端
间彧4 小时前
Spring Cloud Gateway详解与应用实战
后端
EnCi Zheng6 小时前
SpringBoot 配置文件完全指南-从入门到精通
java·spring boot·后端
烙印6016 小时前
Spring容器的心脏:深度解析refresh()方法(上)
java·后端·spring