Wayland合成器制造技术

技术编号:36912645 阅读:8 留言:0更新日期:2023-03-18 09:30
Wayland合成器,包括图形合成模块及特效实现模块,图形合成模块包括特效框架,合成器通过特效实现模块与图形合成模块中特效框架的配合实现在合成显示帧过程中的图形合成功能;特效框架内定义有一套特效抽象函数接口,特效抽象函数接口中提供了七个能够干预图形合成以实现相应特效的手段。本发明专利技术依据Wayland合成器窗口的树形结构,将窗口转换器直接运用到窗口节点,实现对单个窗口渲染的调整,本发明专利技术实现的特效框架和Wayland合成器使用同一套图形标准接口,实现效果明显、可扩展性更好,支持在pixman、OpenGL ES、Vulkan三种渲染后端下运行。渲染后端下运行。渲染后端下运行。

【技术实现步骤摘要】
Wayland合成器


[0001]本专利技术涉及窗口合成渲染
,具体涉及一种实现有特效框架的Wayland合成器。

技术介绍

[0002]目前国际上主流的Wayland合成器有Kwin、Mutter等。其中Kwin和Mutter都是由X显示系统下的窗口管理器发展成为Wayland合成器,实现未使用wlroots,图形合成和特效都是使用一个一维数组管理窗口,并且直接使用的图形标准接口,特效和图形合成的数据结构与国产操作系统Wayland合成器的树形结构不一致,合成过程的实现截然不同,所以特效框架的实现也与本专利技术设计完全不一样。
[0003]该专利技术设计的特效框架是基于新一代Wayland图形显示系统,通过函数注入的方式,改变系统合成输出的显示内容,让不同类型的特效便捷地深入地参与到图形合成过程的方法。
[0004]中国专利技术专利(申请号201910878092.6,基于wayland协议的图形合成方法、装置和系统)本申请提出一种基于Wayland协议的图形合成方法、装置和系统,一种基于Wayland协议的图形合成方法应用于图形显示合成端,包括:获取内核输入事件,根据内核输入事件计算窗口焦点,并通过输入管理通道将内核输入事件发送到窗口焦点对应的图形应用客户端;通过窗口管理通道接收至少一个图形应用客户端发送的窗口管理请求;通过图形管理通道接收至少一个图形应用客户端绘制的图形缓存,将至少一个图形应用客户端绘制的图形缓存应用至少一个图形应用客户端发送的窗口管理请求,得到合成后的图形窗口;将合成的图形窗口输出到至少一个显示设备。该专利技术只是实现了一个简单的Wayland合成器,并不涉及任何特效,不包含特效实现框架。
[0005]当前国际知名和主流的Wayland合成器特效框架的实现都深度的绑定了OpenGL ES,在不支持OpenGL ES的设备上很多特效无法使用,当然也就不支持新一代图形标准Vulkan。在具体的特效实现时,需要特效的实现者直接使用图形标准接口,使得特效开发难度加大,而且当特效使用的图形标准接口和合成器本身使用的图形接口不一致时容易出现兼容问题,不以利于对不同图形标准接口支持的扩展。

技术实现思路

[0006]为解决已有技术存在的不足,本专利技术提供了一种Wayland合成器,包括图形合成模块及特效实现模块,图形合成模块包括特效框架,Wayland合成器通过特效实现模块与图形合成模块中特效框架的配合实现在合成显示帧过程中的图形合成功能;其中,特效框架内定义有一套特效抽象函数接口,特效抽象函数接口中提供了七个能够干预图形合成以实现相应特效的手段,Wayland合成器在合成最终的显示帧前,由图形合成模块从一套特效抽象函数接口中调用所需要的一个或多个特效抽象函数接口,使Wayland合成器合成的窗口具备相应的特效,从而使输出的显示帧具备相应的特效,相应的
特效涉及窗口自身的特效或者窗口以外指定内容的特效。
[0007]其中,所述特效框架中还实现有窗口的抽象,窗口的抽象作为Wayland合成器中窗口对象的代理,特效实现模块通过访问和操作窗口的抽象实现对Wayland合成器中窗口的访问和操作,实现特效实现模块仅依赖特效框架即可访问窗口数据。
[0008]其中,特效框架还包括支持单个窗口特效渲染的结构体——窗口转换器,窗口转换器同时与特效实现模块连接,在窗口需要特效时,窗口转换器赋值给窗口的抽象,在单个窗口进行渲染时,特效实现模块首先判断相应窗口是否有特效,如果有则采用窗口转换器的数据对窗口进行渲染。
[0009]其中,所述特效框架中还实现有特效渲染接口,特效实现模块通过特效渲染接口间接与渲染抽象接口连接,渲染抽象接口对不同图形标准接口进行了统一的接口封装并经兼容设计使其可以兼容同一套图形标准接口的不同版本。
[0010]其中,特效抽象函数接口中能够干预图形合成以实现相应特效的实现手段涉及通过第一特效抽象函数接口在图形合成流程最开始,damage调整阶段之前的特效数据预处理阶段,计算特效覆盖的区域范围。
[0011]其中,特效抽象函数接口中能够干预图形合成以实现相应特效的实现手段还涉及通过第二特效抽象函数接口在特效数据预处理阶段之后,图形合成绑定缓冲区之前统计所有特效产生的damage范围。
[0012]其中,特效抽象函数接口中能够干预图形合成以实现相应特效的实现手段还涉及通过第三特效抽象函数接口,使得特效实现模块中的渲染部分在窗口循环渲染之前,进行背景渲染。
[0013]其中,特效抽象函数接口中能够干预图形合成以实现相应特效的实现手段还涉及通过第四特效抽象函数接口使得特效实现模块中的渲染部分代替窗口循环渲染。
[0014]其中,特效抽象函数接口中能够干预图形合成以实现相应特效的实现手段还涉及通过第五特效抽象函数接口使得特效实现模块的渲染部分实现以单个窗口特效渲染。
[0015]其中,特效抽象函数接口中能够干预图形合成以实现相应特效的实现手段还涉及通过第六特效抽象函数接口实现覆盖阶段的特效,以及通过第七特效抽象函数接口实现消息传递阶段的特效。
[0016]本专利技术依据Wayland合成器窗口的树形结构,将窗口转换器直接运用到窗口节点,从而实现对单个窗口合成的调整,本专利技术实现的特效框架和Wayland合成器使用同一套图形标准接口,实现效果明显可扩展性更好,已验证最大化、最小化、以及水印特效的实现,支持在pixman、OpenGL ES、Vulkan三种渲染后端下运行。
附图说明
[0017]图1为本专利技术的Wayland合成器的逻辑框架图。
[0018]图2为基于本专利技术的Wayland合成器所能够实现的一个完整的图形合成流程图。
[0019]图3为基于本专利技术的Wayland合成器所能够实现的单个窗口特效渲染流程图。
具体实施方式
[0020]为了对本专利技术的技术方案及有益效果有更进一步的了解,下面结合附图详细说明
本专利技术的技术方案及其产生的有益效果。
[0021]本专利技术技术方案中涉及到的一些专业术语解释如下:特效:特效是指图形显示系统中增强可操作性、可交互性提升用户使用体验的窗口管理功能,比如最大化、最小化的渐变过程,应用切换时的缩略图显示,窗口关闭时窗口隐藏的方式等。
[0022]Wayland:Wayland是一个通信协议,规定了显示服务与其客户端之间的通信方式,而使用这个协议的显示服务称为Wayland合成器。在以Linux为内核的图形显示操作系统中,Wayland合成器与X显示服务属于同一级的事物,用于取代老旧的X显示服务。
[0023]wlroots:wlroots是一个 Wayland 合成器的工具集。可以基于 wlroots 实现一个完整的 wayland 合成器,并且它已经设计了一个 Wayland 合成器的框架,提供了需要的工具,只需要将这些工具组合到 wlroots 的框架下,就能实现一个基本的 Wayland 的合成器。同时wlroots也是目本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Wayland合成器,包括图形合成模块及特效实现模块,其特征在于:图形合成模块包括特效框架,Wayland合成器通过特效实现模块与图形合成模块中特效框架的配合实现在合成显示帧过程中的图形合成功能;其中,特效框架内定义有一套特效抽象函数接口,特效抽象函数接口中提供了七个能够干预图形合成以实现相应特效的手段,Wayland合成器在合成最终的显示帧前,由图形合成模块从一套特效抽象函数接口中调用所需要的一个或多个特效抽象函数接口,使Wayland合成器合成的窗口具备相应的特效,从而使输出的显示帧具备相应的特效,相应的特效涉及窗口自身的特效或者窗口以外指定内容的特效。2.如权利要求1所述的Wayland合成器,其特征在于:所述特效框架中还实现有窗口的抽象,窗口的抽象作为Wayland合成器中窗口对象的代理,特效实现模块通过访问和操作窗口的抽象实现对Wayland合成器中窗口的访问和操作,实现特效实现模块仅依赖特效框架即可访问窗口数据。3.如权利要求2所述的Wayland合成器,其特征在于:特效框架还包括窗口转换器,作为支持单个窗口特效渲染的结构体,窗口转换器同时与特效实现模块连接,在窗口需要特效时,窗口转换器赋值给窗口的抽象,在单个窗口进行渲染时,特效实现模块首先判断相应窗口是否有特效,如果有则采用窗口转换器的数据对窗口进行渲染。4.如权利要求1所述的Wayland合成器,其特征在于:所述特效框架中还实现有特效渲染接口,特效实现模块通过特效渲染接口间接与渲染抽象接口连接,渲染抽象接口对不同图形标准接口进行了统一的接口封装...

【专利技术属性】
技术研发人员:易强夏接建张铎周磊王勇军
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1