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 小时前
突发!!!GitLab停止为中国大陆、港澳地区提供服务,60天内需迁移账号否则将被删除
git·后端·gitlab·版本管理·源代码管理
ue星空4 小时前
Windbg常用命令
windows
追逐时光者4 小时前
免费、简单、直观的数据库设计工具和 SQL 生成器
后端·mysql
初晴~4 小时前
【Redis分布式锁】高并发场景下秒杀业务的实现思路(集群模式)
java·数据库·redis·分布式·后端·spring·
盖世英雄酱581365 小时前
InnoDB 的页分裂和页合并
数据库·后端
小_太_阳5 小时前
Scala_【2】变量和数据类型
开发语言·后端·scala·intellij-idea
直裾5 小时前
scala借阅图书保存记录(三)
开发语言·后端·scala
星就前端叭6 小时前
【开源】一款基于Vue3 + WebRTC + Node + SRS + FFmpeg搭建的直播间项目
前端·后端·开源·webrtc
小林coding7 小时前
阿里云 Java 后端一面,什么难度?
java·后端·mysql·spring·阿里云