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...

相关推荐
重庆小透明28 分钟前
力扣刷题记录【1】146.LRU缓存
java·后端·学习·算法·leetcode·缓存
博观而约取1 小时前
Django 数据迁移全解析:makemigrations & migrate 常见错误与解决方案
后端·python·django
寻月隐君2 小时前
Rust 异步编程实践:从 Tokio 基础到阻塞任务处理模式
后端·rust·github
GO兔2 小时前
开篇:GORM入门——Go语言的ORM王者
开发语言·后端·golang·go
Sincerelyplz2 小时前
【Temproal】快速了解Temproal的核心概念以及使用
笔记·后端·开源
爱上语文2 小时前
Redis基础(6):SpringDataRedis
数据库·redis·后端
Lemon程序馆2 小时前
速通 GO 垃圾回收机制
后端·go
Aurora_NeAr2 小时前
Spark SQL架构及高级用法
大数据·后端·spark
杰尼橙子2 小时前
DPDK BPF:将eBPF虚拟机的灵活性带入到了DPDK的高性能用户态
后端·性能优化
fzyz1232 小时前
Windows系统下WSL从C盘迁移方案
人工智能·windows·深度学习·wsl