Bootstrap

Windows内核--GUI显示原理(6.1)

传统的Windows图形处理

        在Vista之前,图形子系统内核部分win32k.sys 通过DDI接口操作显示驱动, 显示驱动通过ENG接口调用win32k.sys.

        

                                                From: Windows 2000 显示体系结构

显示驱动程序的作用

        不同显示驱动程序负责对于不同显示设备的优化。GDI仅负责标准位图格式的绘制操作,当显示硬件支援高效绘制时,可以挂钩并优先于内核GDI完成绘制,由此达到加速。

        From: Windows 2000 显示驱动程序的责任  挂钩与转移

从NT4开始, 图形管理和GDI移至内核

        为了提高图形显示效率,移至内核并没有增加内核不稳定性。

        参考: MS Windows NT Kernel-mode User and GDI White Paper

Linux发行版的图形界面

        Linux生态太注重内核和开源,没有商业公司愿意花钱专心优化桌面,做出来的系统不能明目张胆收费。这造成了看着如此"伟大"的技术无法让普通用户感受桌面的"亲近"。无解又无奈!不是对手太强大,是对手在内耗...

        对于Linux, 它有其优势,如何平衡优秀的用户体验和太过钻牛角尖的"技术/版权"争端将决定Linux未来的桌面是否真的能有所建树。

DirectX/Direct3D

        为了更高效操作显示器硬件,可以不透过GDI API接口,通过DirectXX接口直接操作显示器硬件,达到更流畅。

        

Vista开始增加DWM进程

        DWM(Desktop Window Manager)和以往的绘制最大的差异是屏幕绘制不再是各个App单独决定的,而是在额外的"后台视频存储区缓冲区"绘制之后再渲染。Aero效果、立体和翻转效果等都得益于DWM.        

         From: 桌面窗口管理器

 DWM的优势如下:     

  • 重新绘制消息更少。 当窗口被另一个窗口阻塞时,阻塞的窗口不需要重新绘制自身。
  • 减少了拖拽。 (没采用DWM时,拖动窗口可能会产生视觉停留)
  • 视觉效果。 由于 DWM 负责组合屏幕,因此它可以呈现窗口的半透明和模糊区域。
  • 高 DPI 的自动缩放。 尽管缩放不是处理高 DPI 的理想方法,但对于未针对高 DPI 设置设计的较旧应用程序,这是一种可行的回退。
  • 备用视图。 DWM 可以通过各种有趣的方式使用屏幕外表面。 例如,DWM 是Windows翻转 3D、缩略图和动画转换背后的技术。

 

;