一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

窗口模糊透明显示方法、装置、电子设备与存储介质与流程

2021-12-14 22:41:00 来源:中国专利 TAG:


1.本发明涉及计算机显示技术领域,尤其涉及一种窗口模糊透明显示方法、装置、电子设备与存储介质。


背景技术:

2.窗口模糊透明显示,是指在操作系统的显示界面中、通过重叠的两个窗口中的位置在上窗口看到位置在下窗口的显示方式。由于其表现为透明的毛玻璃效果,因此该显示方式也被称为毛玻璃显示方式。
3.在现有技术中,只能对整个窗口进行窗口模糊透明显示。但在实际应用中,存在只对窗口的部分区域进行模糊透明显示的需求。现有技术无法满足这一需求。


技术实现要素:

4.针对现有技术存在的问题,本发明提供一种窗口模糊透明显示方法、装置、电子设备与存储介质。
5.本发明提供一种窗口模糊透明显示方法,包括:在绘制第一窗口的帧的过程中,确定所述第一窗口存在模糊透明区域;根据预先接收到的模糊透明区域信息,确定所述第一窗口中的模糊透明区域的数据;其中,所述模糊透明区域信息用于描述所述第一窗口中的模糊透明区域的范围;根据所述模糊透明区域的数据绘制所述第一窗口的帧。
6.根据本发明提供的一种窗口模糊透明显示方法,所述根据预先接收到的模糊透明区域信息,确定所述第一窗口中的模糊透明区域的数据,包括:根据预先接收到的模糊透明区域信息,判断所述第一窗口中的模糊透明区域的数据是否发生变化;在发生变化的情况下,根据所述模糊透明区域信息,获取第一窗口待处理数据与第二窗口待处理数据;其中,所述第一窗口待处理数据是第一窗口中的模糊透明区域的原始数据,所述第二窗口待处理数据是第二窗口中的与所述模糊透明区域相对应区域的数据;所述第二窗口是与所述第一窗口具有重叠关系的窗口,且所述第一窗口为位置在上的窗口、所述第二窗口为位置在下的窗口;根据所述第一窗口待处理数据与第二窗口待处理数据,计算所述第一窗口中的模糊透明区域的数据。
7.根据本发明提供的一种窗口模糊透明显示方法,所述判断所述第一窗口中的模糊透明区域的数据是否发生变化,包括:当所述第一窗口待处理数据发生变化,和/或,所述第二窗口待处理数据发生变化时,确定所述第一窗口中的模糊透明区域的数据发生变化。
8.根据本发明提供的一种窗口模糊透明显示方法,所述根据预先接收到的模糊透明区域信息,确定所述第一窗口中的模糊透明区域的数据,包括:
根据预先接收到的模糊透明区域信息,判断所述第一窗口中的模糊透明区域的数据是否发生变化;在未发生变化的情况下,将在先存储的第一窗口中的模糊透明区域的数据作为当前的第一窗口中的模糊透明区域的数据。
9.根据本发明提供的一种窗口模糊透明显示方法,方法还包括:在绘制第一窗口的帧之前,接收包含有模糊透明区域信息的命令。
10.根据本发明提供的一种窗口模糊透明显示方法,所述包含有模糊透明区域信息的命令是通过扩展wayland协议实现的。
11.根据本发明提供的一种窗口模糊透明显示方法,在所述确定所述第一窗口中的模糊透明区域的数据之后,方法还包括:存储所述第一窗口中的模糊透明区域的数据。
12.根据本发明提供的一种窗口模糊透明显示方法,在所述存储所述第一窗口中的模糊透明区域的数据之后,方法还包括:根据接收到的所述第一窗口的关闭命令,删除已存储的所述第一窗口中的模糊透明区域的数据。
13.根据本发明提供的一种窗口模糊透明显示方法,在所述存储所述第一窗口中的模糊透明区域的数据之后,方法还包括:根据接收到的所述第一窗口中的指定模糊透明区域的清空命令,删除已存储的所述第一窗口中的所述指定模糊透明区域的数据。
14.本发明还提供了一种窗口模糊透明显示装置,包括:模糊透明区域确定模块,用于在绘制第一窗口的帧的过程中,确定所述第一窗口存在模糊透明区域;模糊透明区域数据确定模块,用于根据预先接收到的模糊透明区域信息,确定所述第一窗口中的模糊透明区域的数据;其中,所述模糊透明区域信息用于描述所述第一窗口中的模糊透明区域的范围;帧绘制模块,用于根据所述模糊透明区域的数据绘制所述第一窗口的帧。
15.本发明还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如所述窗口模糊透明显示方法的步骤。
16.本发明还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如所述窗口模糊透明显示方法的步骤。
17.本发明提供的窗口模糊透明显示方法、装置、电子设备与存储介质,通过在待绘制的窗口中设置模糊透明区域的范围,进而得到模糊透明区域的数据,最终在绘制窗口的过程中实现了对模糊透明区域的绘制。本发明能够对窗口的部分区域进行模糊透明显示,克服了具有窗口间局部模糊需求的应用无法实现局部模糊的问题。
附图说明
18.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一
些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是本发明提供的窗口模糊透明显示方法的流程示意图;图2是本发明提供的窗口模糊透明显示装置的结构示意图;图3是本发明提供的电子设备的结构示意图。
具体实施方式
20.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.在诸如windows、linux的计算机操作系统的显示界面中,或在诸如ios、安卓(android)的智能终端操作系统的显示界面中,当两个窗口存在位置重叠时,可以透过位置在上窗口看到位置在下窗口,这种显示方式被称为透明窗口(或半透明窗口)。在这一透明显示方式的基础上可以实现模糊透明。由于模糊透明的窗口在显示过程中表现为毛玻璃的效果,因此模糊透明显示窗口模糊透明显示的方式也被称为毛玻璃显示方式。
22.窗口模糊透明显示的原理是:将重叠窗口中的位置在上窗口所对应的前景图与位置在下窗口所对应的背景图中的每一个像素,根据模糊范围取该像素周边像素的值并计算平均值,将计算得到的平均值作为该像素的值,最后将前景图与背景图中的对应位置的像素进行融合,将融合后的结果替换前景图上对应位置像素的值。
23.例如,重叠窗口中位置在上窗口所对应前景图中的某一像素点a,模糊范围包括其周边的8个像素点a1、a2、a3、a4、a5、a6、a7、a8。根据像素点a和周边8个像素点各自的像素值,可计算出平均值;类似的,可计算出重叠窗口中位置在下窗口所对应的背景图中同一位置像素点b的平均值。然后对平均值和平均值做融合(如计算两者的平均值),将所得到的结果替换像素点a。对位置在上窗口中的多个像素点重复执行上述操作,即可实现窗口模式显示。
24.在现有技术中,只能对整个窗口进行窗口间模糊透明显示。但在实际应用中,存在只对窗口的部分区域进行模糊透明显示的需求。现有技术无法满足这一需求。
25.此外,在实现窗口模糊透明显示时,需要计算模糊透明区域的数据。这一计算过程需要消耗大量的计算机算力,这会导致操作系统的流畅度下降。
26.下面结合图1

图3描述本发明的窗口模糊透明显示方法、装置、电子设备与存储介质。
27.图1为本发明提供的窗口模糊透明显示方法的流程图,如图1所示,方法包括:步骤101、在绘制所述第一窗口的帧的过程中,确定所述第一窗口存在模糊透明区域。
28.本发明提供的窗口模糊透明显示方法应用于窗口管理器。窗口管理器是对操作系统中的窗口进行管理的程序,它能够实现窗口的绘制,确定窗口在操作系统主界面中的位
置,还能够向用户提供操作窗口程序的接口。
29.在本实施例中,第一窗口是任意一个待绘制的窗口。第一窗口的大小、位置、所对应的应用的类型在本实施例中均不受限制。
30.模糊透明区域是指第一窗口中以前述模糊透明显示方式显示的区域。模糊透明区域的形状与大小在本实施例中不做限定。一般而言,模糊透明区域成矩形,但在其他实施例中,也可以是圆形、半圆形、三角形、六边形、星形等其他形状。模糊透明区域可以是整个窗口,也可以是窗口的部分区域。
31.窗口管理器在绘制第一窗口所对应的帧时,需要判断第一窗口中是否存在模糊透明区域。如果存在模糊透明区域,则说明该第一窗口至少有一部分区域在显示时会呈现毛玻璃的状态,如果不存在模糊透明区域,则说明第一窗口可正常显示。
32.在判断第一窗口是否存在模糊透明区域时,可基于两个条件。条件一是待绘制的第一窗口是否与已绘制的其他窗口存在位置重叠;条件二是第一窗口的属性信息中是否设置了模糊透明显示方式。只有两个条件均满足,才能确定第一窗口存在模糊透明区域。
33.从窗口模糊透明显示的原理可以知道,窗口模糊透明显示能够发生的前提条件是存在两个位置重叠的窗口,因此需要对第一窗口是否与其他已绘制的窗口存在位置重叠进行判断。但第一窗口与其他已绘制的窗口存在位置重叠并不意味着第一窗口必然会发生窗口模糊透明显示的现象。例如,当第一窗口与其他窗口存在位置重叠时,第一窗口也可以是覆盖已绘制的其他窗口的位置重叠部分。因此,需要在第一窗口的属性信息中设置模糊透明显示方式。只有开启模糊透明显示方式,第一窗口才有可能以模糊透明显示方式绘制。
34.需要说明的是,在本步骤中只需要确定第一窗口是否存在模糊透明区域即可,无需确定模糊透明区域的具体位置。
35.步骤102、根据预先接收到的模糊透明区域信息,确定所述第一窗口中的模糊透明区域的数据。
36.在本实施例中,模糊透明区域信息用于描述所述第一窗口中的模糊透明区域的范围。所述范围既包含模糊透明区域的形状,也包含模糊透明区域的大小。
37.模糊透明区域信息的具体表达方式与模糊透明区域的形状有关。以最为常见的矩形为例,当模糊透明区域为矩形时,模糊透明区域信息可包含矩形左上角的坐标值(x,y)以及矩形的宽度值width、矩形的高度值height。其中的坐标值可以是操作系统主界面坐标系中的坐标值,如操作系统主界面坐标系是以操作系统主界面左下角的点为原点的坐标系;也可以是待绘制的第一窗口坐标系中的坐标值,如第一窗口坐标系是以待绘制的第一窗口左下角的点为原点的坐标系。在本实施例中,不对坐标值所属的坐标系进行限定。本领域技术人员通过坐标转换可实现不同坐标系中坐标值的变换。
38.模糊透明区域信息可预先从外部获取,如通过命令的方式从外部获取。在本实施例中,不对模糊透明区域信息的获取方式进行限定。
39.根据模糊透明区域信息,可确定第一窗口中的模糊透明区域的范围。根据前述模糊透明显示的原理,可得到第一窗口中的模糊透明区域的数据。模糊透明区域的数据描述了模糊透明区域范围内各个像素的值,因此在后续步骤中可根据模糊透明区域的数据绘制模糊透明区域。
40.需要说明的是,第一窗口中的模糊透明区域的数量不限于一个。在模糊透明区域
的数量多于一个的情况下,可获取各个模糊透明区域各自对应的模糊透明区域信息,进而确定各个模糊透明区域各自对应的模糊透明区域的数据。
41.步骤103、根据所述模糊透明区域的数据绘制所述第一窗口的帧。
42.在之前的步骤中,已经获得了第一窗口中模糊透明区域的数据,在本步骤中,可根据这些数据绘制第一窗口的帧。
43.具体的说,当第一窗口全部为模糊透明区域时,可根据模糊透明区域的数据绘制整个第一窗口;当第一窗口的一部分为模糊透明区域,其余部分为正常显示区域时,可根据模糊透明区域的数据绘制第一窗口中的模糊透明区域,根据第一窗口所对应的原有数据绘制第一窗口的正常显示区域(即非模糊透明显示部分)。
44.如何根据数据绘制第一窗口的帧是本领域技术人员的公知常识,因此不在此处重复说明。
45.本发明提供的窗口模糊透明显示方法通过在待绘制的窗口中设置模糊透明区域的范围,进而得到模糊透明区域的数据,最终在绘制窗口的过程中实现了对模糊透明区域的绘制。本发明提供的窗口模糊透明显示方法能够对窗口的部分区域进行模糊透明显示,克服了具有窗口间局部模糊需求的应用无法实现局部模糊的问题。
46.基于上述任一实施例,在本实施例中,所述根据预先接收到的模糊透明区域信息,确定所述第一窗口中的模糊透明区域的数据,包括:根据预先接收到的模糊透明区域信息,判断所述第一窗口中的模糊透明区域的数据是否发生变化;在发生变化的情况下,根据所述模糊透明区域信息,获取第一窗口待处理数据与第二窗口待处理数据;其中,所述第一窗口待处理数据是第一窗口中的模糊透明区域的原始数据,所述第二窗口待处理数据是第二窗口中的与所述模糊透明区域相对应区域的数据;所述第二窗口是与所述第一窗口具有重叠关系的窗口,且所述第一窗口为位置在上的窗口、所述第二窗口为位置在下的窗口;根据所述第一窗口待处理数据与第二窗口待处理数据,计算所述第一窗口中的模糊透明区域的数据。
47.在本实施例中,对如何根据模糊透明区域信息,生成模糊透明区域的数据的过程进行说明。
48.根据模糊透明显示方式的原理可以知道,计算模糊透明区域的数据需要做大量的计算,因此会耗费大量的计算资源。实际上,窗口的内容未必是每时每刻都发生变化的,因此,如果在每次绘制第一窗口的帧的过程中,先对模糊透明区域的数据做一次是否发生变化的判断,然后只在发生变化的情况下,才进行模糊透明区域的数据计算,将有助于降低计算量,节约计算资源。
49.为此,在本实施例中,首先基于所接收到的模糊透明区域信息,确定模糊透明区域在第一窗口中的范围。例如,根据模糊透明区域的坐标信息,确定模糊透明区域在第一窗口中的范围。
50.接着,在确定模糊透明区域在第一窗口中的范围之后,可得到第一窗口待处理数据与对应的第二窗口待处理数据。
51.第一窗口待处理数据是第一窗口中的模糊透明区域的原始数据。此处所述的原始
数据是指未经过模糊透明显示处理的数据。
52.第二窗口是与第一窗口具有位置重叠关系的窗口,且第二窗口的位置在第一窗口之下。在模糊透明显示时,背景图中的数据来自于第二窗口。基于模糊透明区域在第一窗口中的位置,以及第一窗口、第二窗口之间的相对位置关系,可以得到模糊透明区域在第二窗口中的对应区域。模糊透明区域在操作系统主界面坐标系下的坐标范围值应当与该对应区域在操作系统主界面坐标系下的坐标范围值相同。该对应区域的数据,如对应区域中各像素点的像素值,即为所述的第二窗口待处理数据。
53.然后,基于已得到的第一窗口待处理数据与第二窗口待处理数据,判断第一窗口中的模糊透明区域的数据是否发生变化。
54.由于在本步骤被执行时,第一窗口中的模糊透明区域的数据并未真正得到,因此无法直接将其与之前时刻的模糊透明区域的数据进行比较,从而判断其是否发生变化。在本实施例中,借助之前得到的第一窗口待处理数据与第二窗口待处理数据来做判断。
55.具体的说,第一窗口待处理数据与第二窗口待处理数据都具有时间性。例如,随着第一窗口中所要展示的内容的变化,第一时刻的第一窗口待处理数据与第二时刻的第一窗口待处理数据有可能是不一样的。因此,可通过当前时刻第一窗口待处理数据与前一时刻第一窗口待处理数据之间的比较,判断第一窗口待处理数据是否发生变化。类似的,可通过当前时刻第二窗口待处理数据与前一时刻第二窗口待处理数据之间的比较,判断第二窗口待处理数据是否发生变化。其中,当前时刻是指绘制第一窗口的当前帧的时刻;前一时刻是绘制第一窗口的前一帧的时刻。例如,假设每隔0.02秒绘制一次窗口的帧,比当前时刻早0.02秒的时刻即为前一时刻。
56.除了因为第一窗口所展示内容发生变化导致第一窗口待处理数据发生变化,以及第二窗口所展示内容发生变化导致第二窗口待处理数据发生变化的情形之外,还可能会因为模糊透明区域范围的变化,而导致第一窗口待处理数据与第二窗口待处理数据发生变化。
57.例如,第一窗口所显示的内容从内容a变化为内容b,此类情况会造成第一窗口待处理数据发生变化。又例如,第二窗口所显示的内容从内容c变化为内容d,此类情况会造成第二窗口待处理数据发生变化。再例如,成正方形的模糊透明区域的边长从5厘米扩大到10厘米,在此类情况下,即使第一窗口所显示内容与第二窗口所显示内容未发生变化,第一窗口待处理数据与第二窗口待处理数据依然会发生变化。
58.由于绘制窗口所需要的数据通常会在缓存中保存一段时间,因此可以方便地得到前后不同时刻的第一窗口待处理数据以及前后不同时刻的第二窗口待处理数据。对前后不同时刻的第一窗口待处理数据的比较以及对前后不同时刻的第二窗口待处理数据的比较只需要通过简单的运算即可实现,如减法运算,因此判断第一窗口待处理数据是否发生变化的操作以及判断第二窗口待处理数据是否发生变化的操作只需要少量的计算资源即可实现。
59.在得到第一窗口待处理数据是否发生变化与第二窗口待处理数据是否发生变化的判断结果之后,就可以进一步判断第一窗口中的模糊透明区域的数据是否发生变化。
60.根据模糊透明显示的原理,模糊透明区域的数据同时与第一窗口待处理数据、第二窗口待处理数据相关。因此,只要第一窗口待处理数据与第二窗口待处理数据中的至少
一个发生变化,那么模糊透明区域的数据就发生了变化。
61.特别需要指出的是,若当前所绘制的第一窗口的帧是第一窗口的第一帧,则意味着之前并未生成过第一窗口中的模糊透明区域的数据。在此情况下,模糊透明区域的数据必然发生了变化。
62.在发生变化的情况下,可基于当前的第一窗口待处理数据与第二窗口待处理数据,计算第一窗口中的模糊透明区域的数据。具体的计算方式可参见前述窗口模糊透明显示的原理,因此不在此处做重复说明。
63.本发明提供的窗口模糊透明显示方法通过预先判断模糊透明区域中的数据是否会发生变化,来确定是否需要对模糊透明区域的数据做实时计算,有助于减少不必要的计算量,减少对计算资源的无谓占用。
64.基于上述任一实施例,在本实施例中,所述根据预先接收到的模糊透明区域信息,确定所述第一窗口中的模糊透明区域的数据,包括:根据预先接收到的模糊透明区域信息,判断所述第一窗口中的模糊透明区域的数据与在先存储的第一窗口中的模糊透明区域的数据相比是否发生变化;在未发生变化的情况下,将在先存储的第一窗口中的模糊透明区域的数据作为当前的第一窗口中的模糊透明区域的数据。
65.在前一实施例中,已经对第一窗口中的模糊透明区域的数据是否发生变化的判断过程以及在发生变化情况下的相应操作做了说明。在本实施例中,主要对模糊透明区域的数据未发生变化情况下的操作进行说明。
66.模糊透明区域的数据未发生变化,也就意味着若已经存储了前一时刻的模糊透明区域的数据,那么在先存储的第一窗口中的模糊透明区域的数据与当前时刻的第一窗口中的模糊透明区域的数据相同。因此,无需实时计算第一窗口中的模糊透明区域的数据,可直接从存储器中读取,能够有效减少数据计算量。
67.本实施例中所述的在先存储的第一窗口中的模糊透明区域的数据,是指已保存的最新版本的第一窗口中的模糊透明区域的数据。在之后的实施例中,将对模糊透明区域的数据的存储过程进行说明。
68.本发明提供的窗口模糊透明显示方法通过预先判断模糊透明区域中的数据是否会发生变化,来确定是否需要对模糊透明区域的数据做实时计算,在数据未发生变化的情况下,可利用已存储的数据得到模糊透明区域的数据,有助于减少不必要的计算量,减少对计算资源的无谓占用。
69.基于上述任一实施例,在本实施例中,方法还包括:在绘制第一窗口的帧之前,接收包含有模糊透明区域信息的命令。
70.在之前的实施例中,均假定窗口管理器已经事先得到了模糊透明区域信息。在本实施例中,对窗口管理器是如何得到模糊透明区域信息的过程进行说明。
71.作为一种可选的实现方式,窗口管理器接收包含有模糊透明区域信息的命令,从而得到模糊透明区域信息。在本实施例中,所述包含有模糊透明区域信息的命令是通过扩展wayland协议实现的。
72.例如,对包含有模糊透明区域信息的命令做如下定义:wl_surface_blur(surface, id, x, y,width, height);
其中,id是模糊透明区域的标识号,该标识号应当具有唯一性;x、y是模糊透明区域的左上角坐标值;width是模糊透明区域的宽度值,height是模糊区域的高度值。
73.上述命令可基于wayland协议进行传输。
74.包含有模糊透明区域信息的命令并不局限于上述的wayland协议,还可以基于已有的其他类型的协议实现,如protocol buffer协议或者基于xml、json等格式的协议。
75.本发明提供的窗口模糊透明显示方法通过对已有的wayland协议的扩展,可将包含有模糊透明区域信息的命令传输到窗口管理器,使得窗口管理器可基于模糊透明区域信息实现窗口的模糊透明显示。
76.基于上述任一实施例,在本实施例中,在所述确定所述第一窗口中的模糊透明区域的数据之后,方法还包括:存储所述第一窗口中的模糊透明区域的数据。
77.在之前的实施例中已经提到,若第一窗口中的模糊透明区域的数据与之前相比未发生变化,那么可基于在先存储的第一窗口中的模糊透明区域的数据,得到绘制第一窗口的当前帧时所需要的模糊透明区域的数据。
78.前述实施例实现的一个前提是已经预先将第一窗口中的模糊透明区域的数据做了存储。在本实施例中,对该存储过程进行说明。
79.在实时计算得到第一窗口中的模糊透明区域的数据之后,为了在之后的帧绘制过程中得到重复利用,可对模糊透明区域的数据进行存储。
80.在本实施例中,可将模糊透明区域的数据保存在缓存中。在缓存中存储模糊透明区域的数据可采用如下数据结构:blur_cache {
ꢀꢀꢀꢀꢀꢀ
region _region;
ꢀꢀꢀꢀꢀꢀ
char *_buffer;}其中,_region为缓存的区域,_buffer为缓存中所存储的数据。
81.为了提高查询效率,可通过哈希的方式存储缓存的标识信息。例如,对于所有保存模糊透明区域的数据的缓存,以缓存的id为key存储在一个hash中:hash<int, blur_cache> _blurcache;对模糊透明区域的数据的存储,并不局限于本实施例中所描述的缓存存储这一方式,也可采用其他存储方式,不对其进行限定。
82.本发明提供的窗口模糊透明显示方法通过存储已确定的模糊透明区域的数据,可实现数据的重复利用,有助于减少模糊透明区域数据的计算次数,降低对计算资源的占用。
83.基于上述任一实施例,在本实施例中,在所述存储所述第一窗口中的模糊透明区域的数据之后,方法还包括:根据接收到的所述第一窗口的关闭命令,删除已存储的所述第一窗口中的模糊透明区域的数据。
84.模糊透明区域是第一窗口的一部分,因此,若第一窗口被关闭,则模糊透明区域也必然不再被显示。此时已存储的模糊透明区域的数据将不再具有使用价值。为了减少存储空间的浪费,可在接收到第一窗口的关闭命令后,删除已存储的所述第一窗口中的模糊透
明区域的数据。
85.本发明提供的窗口模糊透明显示方法根据接收到的所述第一窗口的关闭命令,删除已存储的第一窗口中的模糊透明区域的数据,有助于减少存储空间的浪费。
86.基于上述任一实施例,在本实施例中,在所述存储所述第一窗口中的模糊透明区域的数据之后,方法还包括:根据接收到的所述第一窗口中的指定模糊透明区域的清空命令,删除已存储的所述第一窗口中的所述指定模糊透明区域的数据。
87.模糊透明区域除了通过关闭第一窗口的方式被关闭之外,也可通过清空命令的方式被关闭。
88.与关闭第一窗口的方式不同的是,清空命令的方式可以对第一窗口中的指定模糊透明区域进行清空。例如,第一窗口中有3个不同的模糊透明区域,通过清空命令,可对其中的第2个模糊透明区域进行清空。
89.在本实施例中,可通过前述实施例中所描述的wl_surface_blur命令来实现清空命令。
90.即清空命令的定义依然是:wl_surface_blur(surface, id, x, y,width, height);但其中的宽度值width与高度值height均设置为0;id值是待清空的模糊透明区域的标识号。
91.在其他实施例中,也可采用其他方式实现对指定模糊透明区域的清空。
92.一旦指定模糊透明区域被清空,此时已存储的该指定模糊透明区域的数据将不再具有使用价值。为了减少存储空间的浪费,可在接收到第一窗口中的指定模糊透明区域的清空命令后,删除已存储的所述第一窗口中的所述指定模糊透明区域的数据。
93.本发明提供的窗口模糊透明显示方法根据接收到的第一窗口中的指定模糊透明区域的清空命令,删除已存储的所述第一窗口中的所述指定模糊透明区域的数据,有助于减少存储空间的浪费。
94.下面对本发明提供的窗口模糊透明显示装置进行描述,下文描述的窗口模糊透明显示装置与上文描述的窗口模糊透明显示方法可相互对应参照。
95.图2为本发明提供的窗口模糊透明显示装置的示意图,如图2所示,本发明提供的窗口模糊透明显示装置,包括:模糊透明区域确定模块201,用于在绘制所述第一窗口的帧的过程中,确定所述第一窗口存在模糊透明区域;模糊透明区域数据确定模块202,用于根据预先接收到的模糊透明区域信息,确定所述第一窗口中的模糊透明区域的数据;其中,所述模糊透明区域信息用于描述所述第一窗口中的模糊透明区域的范围;帧绘制模块203,用于根据所述模糊透明区域的数据绘制所述第一窗口的帧。
96.本发明提供的窗口模糊透明显示装置通过在待绘制的窗口中设置模糊透明区域的范围,进而得到模糊透明区域的数据,最终在绘制窗口的过程中实现了对模糊透明区域的绘制。本发明提供的窗口模糊透明显示装置能够对窗口的部分区域进行模糊透明显示,克服了具有窗口间局部模糊需求的应用无法实现局部模糊的问题。
97.基于上述任一实施例,在本实施例中,所述模糊透明区域数据确定模块202,包括:数据变化判断单元,用于根据预先接收到的模糊透明区域信息,判断所述第一窗口中的模糊透明区域的数据是否发生变化;数据获取单元,用于在发生变化的情况下,根据所述模糊透明区域信息,获取第一窗口待处理数据与第二窗口待处理数据;其中,所述第一窗口待处理数据是第一窗口中的模糊透明区域的原始数据,所述第二窗口待处理数据是第二窗口中的与所述模糊透明区域相对应区域的数据;所述第二窗口是与所述第一窗口具有重叠关系的窗口,且所述第一窗口为位置在上的窗口、所述第二窗口为位置在下的窗口;模糊透明区域数据计算单元,用于根据所述第一窗口待处理数据与第二窗口待处理数据,计算所述第一窗口中的模糊透明区域的数据。
98.本发明提供的窗口模糊透明显示装置通过预先判断模糊透明区域中的数据是否会发生变化,来确定是否需要对模糊透明区域的数据做实时计算,有助于减少不必要的计算量,减少对计算资源的无谓占用。
99.基于上述任一实施例,在本实施例中,所述模糊透明区域数据确定模块202,包括:数据变化判断单元,用于根据预先接收到的模糊透明区域信息,判断所述第一窗口中的模糊透明区域的数据与在先存储的第一窗口中的模糊透明区域的数据相比是否发生变化;数据读取单元,用于在未发生变化的情况下,将在先存储的第一窗口中的模糊透明区域的数据作为当前的第一窗口中的模糊透明区域的数据。
100.本发明提供的窗口模糊透明显示装置通过预先判断模糊透明区域中的数据是否会发生变化,来确定是否需要对模糊透明区域的数据做实时计算,在数据未发生变化的情况下,可利用已存储的数据得到模糊透明区域的数据,有助于减少不必要的计算量,减少对计算资源的无谓占用。
101.基于上述任一实施例,在本实施例中,装置还包括:命令接收模块,用于在绘制第一窗口的帧之前,接收包含有模糊透明区域信息的命令。
102.本发明提供的窗口模糊透明显示装置通过对已有的wayland协议的扩展,可将包含有模糊透明区域信息的命令传输到窗口管理器,使得窗口管理器可基于模糊透明区域信息实现窗口的模糊透明显示。
103.基于上述任一实施例,在本实施例中,装置还包括:存储模块,用于存储所述第一窗口中的模糊透明区域的数据。
104.本发明提供的窗口模糊透明显示装置通过存储已确定的模糊透明区域的数据,可实现数据的重复利用,有助于减少模糊透明区域数据的计算次数,降低对计算资源的占用。
105.基于上述任一实施例,在本实施例中,装置还包括:第一删除模块,用于根据接收到的所述第一窗口的关闭命令,删除已存储的所述第一窗口中的模糊透明区域的数据。
106.本发明提供的窗口模糊透明显示装置根据接收到的所述第一窗口的关闭命令,删除已存储的第一窗口中的模糊透明区域的数据,有助于减少存储空间的浪费。
107.基于上述任一实施例,在本实施例中,装置还包括:
第二删除模块,用于根据接收到的所述第一窗口中的指定模糊透明区域的清空命令,删除已存储的所述第一窗口中的所述指定模糊透明区域的数据。
108.本发明提供的窗口模糊透明显示装置根据接收到的第一窗口中的指定模糊透明区域的清空命令,删除已存储的所述第一窗口中的所述指定模糊透明区域的数据,有助于减少存储空间的浪费。
109.图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(communications interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行窗口模糊透明显示方法,该方法包括:在绘制所述第一窗口的帧的过程中,确定所述第一窗口存在模糊透明区域;根据预先接收到的模糊透明区域信息,确定所述第一窗口中的模糊透明区域的数据;其中,所述模糊透明区域信息用于描述所述第一窗口中的模糊透明区域的范围;根据所述模糊透明区域的数据绘制所述第一窗口的帧。
110.此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
111.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的窗口模糊透明显示方法,该方法包括:在绘制所述第一窗口的帧的过程中,确定所述第一窗口存在模糊透明区域;根据预先接收到的模糊透明区域信息,确定所述第一窗口中的模糊透明区域的数据;其中,所述模糊透明区域信息用于描述所述第一窗口中的模糊透明区域的范围;根据所述模糊透明区域的数据绘制所述第一窗口的帧。
112.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的窗口模糊透明显示方法,该方法包括:在绘制所述第一窗口的帧的过程中,确定所述第一窗口存在模糊透明区域;根据预先接收到的模糊透明区域信息,确定所述第一窗口中的模糊透明区域的数据;其中,所述模糊透明区域信息用于描述所述第一窗口中的模糊透明区域的范围;根据所述模糊透明区域的数据绘制所述第一窗口的帧。
113.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单
元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
114.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
115.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献