Wayland协议解析 一 什么是Wayland

学习Wayland协议已经好几个月了,期间也查阅了不少资料,奈何目前对于它的资料并不是很多,对他原理以及解析更是寥寥无几,其中有一篇非常不错,给个链接: https://blog.csdn.net/jinzhuojun/article/details/40264449, 需要的可以去查看查看.本文的目的是更加通俗详细的解释wayland协议.好了,废话不多说,下面开始讲述wayland协议.

什么是wayland

关于什么是wayland网上有很多解释,我这里就不在赘述,而是以我自己的理解来浅显易懂的给大家解释一下.

Wayland协议,是一个定义怎么来进行窗口管理的协议. 什么叫窗口管理呢? 我们知道在windows操作系统上有很多很多的应用程序,在启动该应用程序之后,一般会弹出一个该应用程序的窗口.这个窗口是怎么产生的? 太深入理解没必要,我们只需要知道,我们在创建窗口的时候都是必须调用指定的接口才可以创建,是吧? 这个接口就相当于窗口管理的协议提供的接口. 各种形形色色的接口在不同的操作系统上是不一样的,因此如果我们要创建窗口,在不同的操作系统上就需要不同的代码,因此,跨平台就是件很麻烦的事情. 然而,在这种情况下,涌现出了大量跨平台的框架,他们把和操作系统相关的创建窗口的接口封装了起来,然后通过提供统一的接口给用户,这样,用户就可以使用相同的代码在不同的操作系统上创建出窗口, 比如Qt, 因为作者本身也是在使用Qt的,因此,此处只列出Qt.

上面说了,窗口在不同操作系统上调用不同的接口去创建窗口,其实是不准确的,因为,其实窗口管理理论上是和操作系统不强绑定的关系.只是有些操作系统把窗口管理给绑定到内核了,比如windows(这里我也是看资料了解的,至于正确性,我不做保证,但是现象还是很明确的).但是也有明确的例子证明,窗口管理和操作系统是不绑定的,比如高版本的ubuntu(18.04),该系统提供了两种窗口管理的方式,一种就是本文的wayland,另一种是原有的x11,但由于支持wayland协议的软件比较少,现在还比较难以流行起来。

 

为什么需要窗口管理呢? 我们都知道,那个窗口什么的都是通过显示器显示给我们看的,然后通过鼠标键盘等外设来操作的,但这些东西都只有一份(当然,你有多个显示器多个鼠标键盘什么的,也是可以的,但是总不能同时操作吧,显示屏多个的问题自己想想怎么反驳吧),如果现在有两个进程都需要显示出来,他们都去争夺这个显示屏去绘制,最终出来的不就花屏了?因为这两个进程是不知道对方的存在,不知道对方现在占用了哪里,因此,需要一个东西来协调才能让多个进程完美的同时显示出来,这个就是窗口管理的作用。

 

说实话,就上面讲的这些东西,都是在我理解wayland是什么之后才彻底明白的,因此,也希望读者能够通过本文对wayland有所了解,并且开始理解窗口管理的本质。

 

好了,开始说说wayland。

上面我说了wayland是一种窗口管理的协议,它和x11协议是同等的。那么,是什么样的协议呢?看下面

<interface name="wl_buffer" version="1">

    <description summary="content for a wl_surface">

      A buffer provides the content for a wl_surface. Buffers are

      created through factory interfaces such as wl_drm, wl_shm or

      similar. It has a width and a height and can be attached to a

      wl_surface, but the mechanism by which a client provides and

      updates the contents is defined by the buffer factory interface.

    </description>

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值