当前位置:首页 > Windows程序 > 正文

desktop window manager

2021-03-27 Windows程序

#######################################################################################################

桌面组合
到目前位置Vista最大的改变就是引进桌面组合。这成为一切都由DWM执行的基础。桌面组合的主要特点是:应用程序取得屏幕上像素的方法已经本质的改变。

在Windows的哥哥版本,直到XP,程序通过窗口来paint他们的可见区域,并且它们直接paint到buffer,然后现实到显卡。有了Vista,程序通过窗口来paint它们的整个表面到一个离屏(offscreen)的表面(可能叫做位图,缓冲区或纹理),并且DWM处理所有这些offscreen表面,并且组合在一起放到onscreen缓冲区。
再次阅读前面一段。从Windows系统显示远景来看,这根据实现的特性的深奥的提示,并且也能获得质量。一些例子:
访问窗口
现在程序是render到offscreen,这些offscreen表示能用在其他地方。这就是Flip,Flip3D和小图片特性怎么样工作的,并且其他的特性也能利用这个点。
不要在窗口操作中将背景程序牵涉进来
当窗口移动通过XP或以前的屏幕时,背景窗口部分仅仅在背景窗口苏醒并且开始paint的时候可见(相应WM_PAINT消息,其收到顶级窗口的移动消息)。对于非响应背景程序,或即使是响应的程序但正好是page out的,也会导致很差的用户体验。
考虑移动paint程序窗口通过一个IE窗口。在XP或之前的OS中,下面的症状是不幸的但也是非常普通的:两个case中下面的IE程序不能足够快的repaint它自己来避免由移动Paint窗口留下的尾巴。
在Vista下,就不是这样的情况了,下面的窗口不会收到WM_PAINT消息,并且不会被请求要render,由于它们的内容已经在DWM中,并且用来组合这个screen的。

Tear free体验:
假定,DWMrender到screen,DirextX提供的典型地用在游戏上最新技术能用来整个桌面体验。特别低,图形卡flip前缓冲区能力在屏幕上移动,增加了用户体验的平滑行和质量。

高分辨率的支持:
主要的程序输出都是对监视器分辨率(DPI)不可知的。随着高分辨率监视器的增加(120 DPI,144DPI),程序出现在非常小的物理空间会带来比较坏的体验。因为DWM有访问程序窗口的offscreen,DWM是唯一缩放这个DPI无知程序的地方,将其最终展现给用户,提高高分辨率监视器上的体验。

将来可能的topic
桌面组合是DWM提供的最基础的方面,但我们已经仅仅简单说了一下表面的主题,那里仍然有许多关于探索和完全理解我们在Vista中正在做什么的topic。这里错略列了几个topic:
1.DWM使用 DirextX, GPU和硬件加速
2.Vista显示驱动模型对DWM的重要性和影响
3.重定向GDI和DirextX程序
4.怎么样揭示正在使用的WPF概念和技术
5.DWM怎么样paint窗口边界和其他非客户区
6.DWM远程,显著和访问性
7.高DPI支持
8.公共的探索DWM API
9.rener和可视性的优化
10.DWM的内存使用

其他DWM相关的源信息 
最技术的理解讨论关于DWM的WEB是可能的,确实有其他地方那个有相关的信息和新闻:
1.Kam VedBrat维护的log,常常给DWM内部的描述,特别是DWM的特性和Vista Aero。
2.microsoft.public.windows.developer.winfx.aero新组讨论所有Aero相关的东西

#######################################################################################################

 

原理

  当窗口管理器开始运作时,X服务器和客户端之间的互动,会重新导向到窗口管理器。每当要显示一个新窗口时,这个请求便会被重新导向到窗口管理器,它会决定窗口的初始位置。此外,大部分较新的窗口管理器会改变窗口的亲属关系,通常会在窗口顶部加上标题列,并在窗口周围加上装饰性的框架。这两个部分皆由窗口管理器来控制,而不是其它程式。因此,当使用者点击或拖曳那些元件时,,窗口管理器会进行适当的动作(如移动或改变窗口的大小)。

 

  窗口管理器也负责处理图示,图示并不存在于X Window核心协议的层次中。当使用者将窗口图示化时,窗口管理器会取消窗口的映射(使其不可见),并完成适当的动作,将窗口改显示成图示。某些窗口管理器并不支援图示功能。

 

  窗口管理器主要的目标,就如同其名,是用来管理窗口的。许多窗口管理器提供附加的功能,如处理鼠标在根窗口上的点击,呈现出窗格以及其它的视觉化元件,处理按键(例如 Alt-F4 可关闭窗口),判定哪一个应用程式在启动时执行等等。

#######################################################################################################

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/68398.html