一种屏幕刷新系统及方法与流程

文档序号:11133525阅读:394来源:国知局
一种屏幕刷新系统及方法与制造工艺

本申请涉及屏幕刷新技术领域,更具体地说,涉及一种屏幕刷新系统及方法。



背景技术:

终端的屏幕对应系统中一个帧缓冲区frame buffer,frame buffer为预先分配的一块缓冲内存,内存中存放要显示的像素内容。底层一般会提供一个接口,将frame buffer中的内容显示到终端屏幕上。

终端屏幕上可以同时存在多个窗口,多个窗口的刷新、绘图、上屏等操作由窗口管理系统统一管理。窗口管理系统对外提供统一的刷新接口,任何窗口都可以通过这个刷新接口通知窗口管理系统对指定区域(一般是窗口所占区域)进行刷新。对于窗口管理系统而言,区域均是矩形。窗口管理系统将一个周期内所接收的各待刷新区域进行合并,求取包围各刷新区域的最小矩形区域。进一步,确定窗口所占区域与该最小矩形区域存在交集的目标窗口。按照窗口层次由低至高的顺序,依次向各目标窗口发送绘图指令。各目标窗口在收到绘图指令时对frame buffer中对应区域进行内容绘制。窗口管理系统在确定所有目标窗口均绘图完毕之后,将frame buffer中的内容上屏显示。

本案发明人通过研究发现,在某些情况下现有技术会存在多余绘图的过程,参见图1所示例子:屏幕10中共包含三个窗口,分别为窗口11、窗口12和窗口13。假设在一个周期内窗口11和窗口13需要进行刷新,并向窗口管理系统发送了刷新请求,而窗口12并不需要进行刷新。按照现有技术,窗口管理系统会对窗口11及窗口13求并集,得到区域14。进而向与该区域14存在交集的各窗口发送绘图指令。由于窗口12与区域14存在交集,因此会收到绘图指令,并对缓冲内存中窗口12对应区域进行重复绘图。而显然,窗口12显示内容并未产生变化,重复绘图即浪费时间,也占用有限的绘图资源。



技术实现要素:

有鉴于此,本申请提供了一种屏幕刷新系统、方法及装置,以解决现有技术存在多余绘图过程,浪费时间且占用绘图资源的问题。

为了实现上述目的,现提出的方案如下:

一种屏幕刷新系统,包括窗口管理系统及至少一窗口应用,其中:

所述窗口管理系统用于,在每个时间周期开始时刻,在顺序编号的窗口应用组序列中确定当前编号对应的目标窗口应用组,所述窗口应用组序列中包括若干窗口应用组,每一窗口应用组中包含窗口区域符合设定近邻关系的若干窗口对应的窗口应用;向所述目标窗口应用组中各目标窗口应用发送时间片,所述时间片的长度与所述时间周期的长度相同;判断所述目标窗口应用组是否为所述窗口应用组序列中最后一个窗口应用组,若是,将所述当前编号更改为所述窗口应用组序列中首个窗口应用组的编号,若否,将所述当前编号更改为所述窗口应用组序列中与所述目标窗口应用组近邻的后一窗口应用组的编号;

所述目标窗口应用用于,在所述时间片的长度范围内,持续检测是否需要进行屏幕刷新,若确定需要进行屏幕刷新,则与所述窗口管理系统交互,实现对屏幕的刷新。

优选地,所述窗口管理系统还用于,对各窗口应用进行分组,将窗口区域符合设定近邻关系的窗口对应的窗口应用划分为同一窗口应用组,该过程包括:

步骤S1、将每一窗口初始化为一窗口组,得到窗口组序列;

步骤S2、在所述窗口组序列中取一窗口组,计算取出的窗口组与窗口组序列中其它各窗口组的密度差值,若取出的窗口组与目标窗口组的密度差值小于设定阈值,则将取出的窗口组中各窗口合并入所述目标窗口组;

重复步骤S2,直至所述窗口组序列中任意两个窗口组均不能合并为止,将所述窗口组序列中每一窗口组中的各窗口对应的窗口应用划分为同一窗口应用组,为各窗口应用组顺序编号。

优选地,所述步骤S2中计算取出的窗口组与目标窗口组的密度差值的过程,包括:

计算取出的窗口组的组区域与目标窗口组的组区域的面积和值,其中组区域为对应窗口组中各窗口的窗口区域合并后的合并区域,该合并区域为包围各窗口的窗口区域的最小区域;

计算取出的窗口组的组区域与目标窗口组的组区域的合并区域的面积值,作为目标面积值,该合并区域为包围取出的窗口组的组区域与目标窗口组的组区域的最小区域;

计算所述面积和值与所述目标面积值的比值,该比值与单位密度1的差值作为取出的窗口组与目标窗口组的密度差值。

优选地,所述目标窗口应用与所述窗口管理系统交互,实现对屏幕的刷新的过程,包括:

所述目标窗口应用向所述窗口管理系统发送刷新指令,刷新指令中包含刷新区域;

所述窗口管理系统用于,获取当前周期内接收的各刷新指令所包含的刷新区域,对各刷新区域进行合并,得到合并刷新区域;根据终端屏幕上的各窗口区域,确定窗口区域与所述合并刷新区域存在交集的待刷新窗口;按照窗口层次由低至高顺序,向确定的各所述待刷新窗口对应的待刷新窗口应用发送绘图指令;

所述待刷新窗口应用还用于,在收到所述窗口管理系统发送的绘图指令时,与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图;

所述窗口管理系统还用于,在确定各待刷新窗口应用均绘图完毕后,对帧缓冲区frame buffer中的内容进行上屏显示。

优选地,向待刷新窗口对应的待刷新窗口应用发送的绘图指令包含,待刷新窗口的窗口区域与所述合并刷新区域的交集区域;

所述待刷新窗口应用在收到所述窗口管理系统发送的绘图指令时,与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图的过程,具体包括:

在收到所述窗口管理系统发送的包含所述交集区域的绘图指令时,调用所述窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。

优选地,向待刷新窗口对应的待刷新窗口应用发送的绘图指令包含,所述合并刷新区域;

所述待刷新窗口应用在收到所述窗口管理系统发送的绘图指令时,与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图的过程,具体包括:

在收到所述窗口管理系统发送的包括所述刷新区域的绘图指令时,确定本窗口应用对应窗口的窗口区域与所述绘图指令包含的所述合并刷新区域的交集区域;

调用所述窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。

一种屏幕刷新方法,应用于窗口管理系统,该方法包括:

在当前时间周期开始时刻,在顺序编号的窗口应用组序列中确定当前编号对应的目标窗口应用组,所述窗口应用组序列中包括若干窗口应用组,每一窗口应用组中包含窗口区域符合设定近邻关系的若干窗口对应的窗口应用;

向所述目标窗口应用组中各目标窗口应用发送时间片,所述时间片的长度与所述时间周期的长度相同;

判断所述目标窗口应用组是否为所述窗口应用组序列中最后一个窗口应用组;若是,将所述当前编号更改为所述窗口应用组序列中首个窗口应用组的编号,若否,将所述当前编号更改为所述窗口应用组序列中与所述目标窗口应用组近邻的后一窗口应用组的编号;

获取当前周期内接收的各目标窗口应用发送的刷新指令所包含的刷新区域,对各刷新区域进行合并,得到合并刷新区域;

根据终端屏幕上的各窗口区域,确定窗口区域与所述合并刷新区域存在交集的待刷新窗口;

按照窗口层次由低至高顺序,向确定的各所述待刷新窗口对应的待刷新窗口应用发送绘图指令,以触发待刷新窗口应用与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图,及对绘图后的帧缓冲区frame buffer中的内容进行上屏显示。

优选地,还包括:

对各窗口应用进行分组,将窗口区域符合设定近邻关系的窗口对应的窗口应用划分为同一窗口应用组,该过程包括:

步骤S1、将每一窗口初始化为一窗口组,得到窗口组序列;

步骤S2、在所述窗口组序列中取一窗口组,计算取出的窗口组与窗口组序列中其它各窗口组的密度差值,若取出的窗口组与目标窗口组的密度差值小于设定阈值,则将取出的窗口组中各窗口合并入所述目标窗口组;

重复步骤S2,直至所述窗口组序列中任意两个窗口组均不能合并为止,将所述窗口组序列中每一窗口组中的各窗口对应的窗口应用划分为同一窗口应用组,为各窗口应用组顺序编号。

优选地,所述步骤S2中计算取出的窗口组与目标窗口组的密度差值的过程,包括:

计算取出的窗口组的组区域与目标窗口组的组区域的面积和值,其中组区域为对应窗口组中各窗口的窗口区域合并后的合并区域,该合并区域为包围各窗口的窗口区域的最小区域;

计算取出的窗口组的组区域与目标窗口组的组区域的合并区域的面积值,作为目标面积值,该合并区域为包围取出的窗口组的组区域与目标窗口组的组区域的最小区域;

计算所述面积和值与所述目标合并区域的比值,该比值与单位密度1的差值作为取出的窗口组与目标窗口组的密度差值。

优选地,向待刷新窗口对应的待刷新窗口应用发送的绘图指令中包含,待刷新窗口的窗口区域与所述合并刷新区域的交集区域;

所述窗口管理系统与待刷新窗口应用交互,实现对帧缓冲区frame buffer的绘图的过程,包括:

接收待刷新窗口应用对绘图接口的调用请求,所述调用请求包括所述交集区域;

调用所述绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。

从上述的技术方案可以看出,本申请实施例提供的屏幕刷新系统,包括窗口管理系统及至少一个窗口应用,其中:所述窗口管理系统用于,在每个时间周期开始时刻,在顺序编号的窗口应用组序列中确定当前编号对应的目标窗口应用组,所述窗口应用组序列中包括若干窗口应用组,每一窗口应用组中包含窗口区域符合设定近邻关系的若干窗口对应的窗口应用;向所述目标窗口应用组中各目标窗口应用发送时间片,所述时间片的长度与所述时间周期的长度相同;判断所述目标窗口应用组是否为所述窗口应用组序列中最后一个窗口应用组,若是,将所述当前编号更改为所述窗口应用组序列中首个窗口应用组的编号,若否,将所述当前编号更改为所述窗口应用组序列中与所述目标窗口应用组近邻的后一窗口应用组的编号;所述目标窗口应用用于,在所述时间片的长度范围内,持续检测是否需要进行屏幕刷新,若确定需要进行屏幕刷新,则与所述窗口管理系统交互,实现对屏幕的刷新。由此可见,本申请预先将多个窗口按照窗口区域近邻关系划分为多个组,每组内的窗口对应的窗口应用构成一窗口应用组,多个窗口应用组构成序列且顺序编号,窗口管理系统在每个时间周期内仅从多个窗口应用组中确定一个目标窗口应用组,向目标窗口应用组内各目标窗口应用发送时间片,而窗口应用只有在收到时间片后,在时间片长度范围内检测到需要刷新屏幕时才能够与窗口管理系统交互,实现屏幕刷新。也即,在一个时间周期内,最多只有一个窗口应用组内的窗口应用能够实现屏幕刷新,且同一窗口应用组内的各窗口应用对应的窗口区域比较靠近,即便区域合并也不会造成过多非必要绘图,避免了现有技术同一时间周期内各窗口应用均可发起刷新指令,导致窗口管理系统对各刷新区域求并集后,将不需要绘图的窗口也作为发送绘图指令的对象,导致多余的绘图操作。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例示例的一种多窗口示意图;

图2为本申请实施例公开的一种屏幕刷新系统结构示意图;

图3为本申请实施例从窗口管理系统角度公开的一种屏幕刷新方法流程图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在介绍方案之前首先对区域合并的过程进行介绍。

多个区域合并也可以看作多个区域求并集,多个区域合并后得到的合并区域为包围多个区域的最小区域。

由于对于视频终端而言,窗口区域一般都是矩形,因此多个矩形区域合并后的区域为包围该多个矩形区域的最小矩形区域。

为了解决现有技术每个时间周期内各窗口应用均可向窗口管理系统发起刷新指令,导致窗口管理系统对各刷新区域求并集后,将不需要绘图的窗口也作为发送绘图指令的对象,导致多余的绘图操作。本案发明人在研究过程首先发现一种解决方式,如下:

预先对多个窗口应用进行编号,窗口应用的编号也是对应窗口的编号。由窗口管理系统在每个时间周期开始时刻,在顺序编号的窗口应用序列中确定当前编号对应的目标窗口应用,向所述目标窗口应用发送时间片,所述时间片的长度与所述时间周期的长度相同;判断所述目标窗口应用是否为所述窗口应用序列中最后一个窗口应用,若是,将所述当前编号更改为所述窗口应用序列中首个窗口应用的编号,若否,将所述当前编号更改为所述窗口应用序列中与所述目标窗口应用近邻的后一窗口应用的编号。

目标窗口应用在所述时间片的长度范围内,持续检测是否需要进行屏幕刷新,若确定需要进行屏幕刷新,则与所述窗口管理系统交互,实现对屏幕的刷新。

通过这种处理方式,同一时间周期内只可能存在一个窗口应用进行刷新绘图,也即不会存在窗口区域合并的问题。

但是,在实际使用过程发明人发现,当终端屏幕上窗口存在多个时,如N个,所有N个窗口全部刷新需要经过N个时间周期。当N比较大时,导致窗口刷新一次时间较长,造成用户体验不佳。

为此,本申请发明人继续研究,并成功研发出本申请的屏幕刷新方案。接下来对本申请方案进行介绍。

本申请提供了一种屏幕刷新系统,参见图2,图2为本申请实施例公开的一种屏幕刷新系统结构示意图。

如图2所示,该系统包括:

窗口管理系统100及至少一窗口应用110,其中:

所述窗口管理系统100用于,在每个时间周期开始时刻,在顺序编号的窗口应用组序列中确定当前编号对应的目标窗口应用组,所述窗口应用组序列中包括若干窗口应用组,每一窗口应用组中包含窗口区域符合设定近邻关系的若干窗口对应的窗口应用110;向所述目标窗口应用组中各目标窗口应用110发送时间片,所述时间片的长度与所述时间周期的长度相同;判断所述目标窗口应用组是否为所述窗口应用组序列中最后一个窗口应用组,若是,将所述当前编号更改为所述窗口应用组序列中首个窗口应用组的编号,若否,将所述当前编号更改为所述窗口应用组序列中与所述目标窗口应用组近邻的后一窗口应用组的编号;

所述目标窗口应用110用于,在所述时间片的长度范围内,持续检测是否需要进行屏幕刷新,若确定需要进行屏幕刷新,则与所述窗口管理系统100交互,实现对屏幕的刷新。

本申请实施例提供的屏幕刷新系统可以预先将多个窗口按照窗口区域近邻关系划分为多个组,每组内的窗口对应的窗口应用构成一窗口应用组,多个窗口应用组构成序列且顺序编号,窗口管理系统在每个时间周期内仅从多个窗口应用组中确定一个目标窗口应用组,向目标窗口应用组内各目标窗口应用发送时间片,而窗口应用只有在收到时间片后,在时间片长度范围内检测到需要刷新屏幕时才能够与窗口管理系统交互,实现屏幕刷新。也即,在一个时间周期内,最多只有一个窗口应用组内的窗口应用能够实现屏幕刷新,且同一窗口应用组内的各窗口应用对应的窗口区域比较靠近,即便区域合并也不会造成过多非必要绘图,避免了现有技术同一时间周期内各窗口应用均可发起刷新指令,导致窗口管理系统对各刷新区域求并集后,将不需要绘图的窗口也作为发送绘图指令的对象,导致多余的绘图操作。

接下来,对窗口管理系统对各窗口应用进行分组,将窗口区域符合设定近邻关系的窗口对应的窗口应用划分为同一窗口应用组的过程进行介绍,其包括:

步骤S1、将每一窗口初始化为一窗口组,得到窗口组序列;

具体地,初始化时每一窗口均作为一窗口组,窗口组中仅包含一窗口。多个窗口组组成窗口组序列。

步骤S2、在所述窗口组序列中取一窗口组,计算取出的窗口组与窗口组序列中其它各窗口组的密度差值,若取出的窗口组与目标窗口组的密度差值小于设定阈值,则将取出的窗口组中各窗口合并入所述目标窗口组;

具体地,每个窗口组均存在一个密度属性。

为了解释窗口组密度概念,首先对区域密度进行解释:

假设两个区域a和b,合并后区域为c。

对单个区域a,b本身的区域,密度为单位密度1,质量等同于面积w*h,即a.w*a.h和b.w*b.h,其中a.w为区域a的宽度,a.h为区域a的高度。同理针对b.w和b.h。

对两个区域合并后区域c的密度,如下:

d=总质量/合并后面积=(a.w*a.h+b.w*b.h)/(c.w*c.h)。

在此基础上,合并前区域与合并后区域的密度差值的含义为:合并后区域的密度与单位密度1的差值。

在介绍了区域密度及密度差值概念之后,对窗口组密度进行介绍:

窗口组的密度为:窗口组中各窗口区域合并后区域的密度。

本申请可以设定一阀值,若取出的窗口组与窗口组序列中某一目标窗口组的密度差值小于设定阀值,则说明二两个窗口组中的窗口可以合并为一个窗口组。因此,可以将取出的窗口组中各窗口合并入目标窗口组。

可选的,计算取出的窗口组与目标窗口组的密度差值的过程,可以包括:

1、计算取出的窗口组的组区域与目标窗口组的组区域的面积和值,其中组区域为对应窗口组中各窗口的窗口区域合并后的合并区域,该合并区域为包围各窗口的窗口区域的最小区域;

2、计算取出的窗口组的组区域与目标窗口组的组区域的合并区域的面积值,作为目标面积值,该合并区域为包围取出的窗口组的组区域与目标窗口组的组区域的最小区域;

3、计算所述面积和值与所述目标面积值的比值,该比值与单位密度1的差值作为取出的窗口组与目标窗口组的密度差值。

重复步骤S2,直至所述窗口组序列中任意两个窗口组均不能合并为止,将所述窗口组序列中每一窗口组中的各窗口对应的窗口应用划分为同一窗口应用组,为各窗口应用组顺序编号。

具体地,通过不断重复步骤S2,最终得到的窗口组序列中任意两个窗口组均不满足合并条件。此时,将所述窗口组序列中每一窗口组中的各窗口对应的窗口应用划分为同一窗口应用组,为各窗口应用组顺序编号。

可选的,窗口应用组序列中各窗口应用组的编号可以是以1为单位递增的。举例如,序列中自首个窗口应用组至第n个窗口应用组的编号依次为:1、2……n。

基于此种编号方式,本申请可以设置初始化状态时当前编号为1。每当时间周期加1时,当前编号也加1,直至当前编号加1后超过最大窗口应用组的编号时,将其翻转为1。也即,当前编号从1至n循环变化。

参见图1示例的情况进行举例说明:

屏幕10中共包含三个窗口,分别为窗口11、窗口12和窗口13。定义三个窗口的编号为1、2和3,对应的窗口应用的编号相同。

经过窗口组合并,假设窗口11组成窗口组1,窗口12和窗口13组成窗口组2。

在第一个时间周期内,当前编号为1。窗口管理系统向编号为1的窗口应用组中的窗口应用11发送时间片,时间片长度为时间周期的长度。

窗口应用11收到时间片后,持续检测本窗口是否需要进行刷新。若在时间片范围内检测到需要刷新,则向窗口管理系统发送刷新指令,并在窗口管理系统的配合下实现对窗口应用11的窗口的刷新。

在第二个时间周期到来时,当前编号加1,变成2。窗口管理系统向编号为2的窗口应用组中的窗口应用12和13发送时间片,时间片长度为时间周期的长度。

窗口应用12和13在收到时间片后,持续检测本窗口是否需要进行刷新。若在时间片长度范围内检测到不需要进行刷新,则不发送任何信息。

在第三个时间周期到来时,当前编号加1,变成3。而3超过了最大窗口应用组编号,因此当前编号翻转变成1。重复上述过程。

可选的,上述实施例中目标窗口应用与所述窗口管理系统交互,实现对屏幕的刷新的过程,可以包括:

所述目标窗口应用向所述窗口管理系统发送刷新指令,刷新指令中包含刷新区域;

所述窗口管理系统用于,获取当前周期内接收的各刷新指令所包含的刷新区域,对各刷新区域进行合并,得到合并刷新区域;根据终端屏幕上的各窗口区域,确定窗口区域与所述合并刷新区域存在交集的待刷新窗口;按照窗口层次由低至高顺序,向确定的各所述待刷新窗口对应的待刷新窗口应用发送绘图指令;

所述待刷新窗口应用还用于,在收到所述窗口管理系统发送的绘图指令时,与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图;

所述窗口管理系统还用于,在确定各待刷新窗口应用均绘图完毕后,对帧缓冲区frame buffer中的内容进行上屏显示。

可选的,窗口管理系统向待刷新窗口对应的待刷新窗口应用发送的绘图指令可以包含,待刷新窗口的窗口区域与所述合并刷新区域的交集区域。该交集区域即为戴刷新窗口需要绘图的区域。

在此基础上,待刷新窗口应用在收到所述窗口管理系统发送的绘图指令时,与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图的过程,可以包括:

在收到所述窗口管理系统发送的包含所述交集区域的绘图指令时,调用所述窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。

具体地,窗口管理系统提供了绘图接口,以供窗口应用进行调用。窗口应用调用窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。

与上述实施例不同的是,窗口管理系统向待刷新窗口对应的待刷新窗口应用发送的绘图指令可以包含,所述合并刷新区域。也即,窗口管理系统直接将合并刷新区域携带在绘图指令中发送给待刷新窗口应用。

在此基础上,待刷新窗口应用在收到所述窗口管理系统发送的绘图指令时,与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图的过程,可以包括:

1、在收到所述窗口管理系统发送的包括区域组的绘图指令时,确定本窗口应用对应窗口的窗口区域与所述绘图指令包含的合并刷新区域的交集区域;

具体地,待刷新窗口应用收到绘图指令时,确定需要绘图的区域,该确定过程包括:确定本窗口应用对应窗口的窗口区域与所述绘图指令包含的合并刷新区域的交集区域。

2、调用所述窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。

具体地,窗口管理系统提供了绘图接口,以供窗口应用进行调用。窗口应用调用窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。

通过上述两个实施例可以看出,交集区域可以由窗口管理系统确定,也可以由待刷新窗口应用确定。在确定了待绘图的交集区域之后,调用所述窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。

可选的,区别于上述两个实施例,本申请中窗口管理系统向待刷新窗口应用发送的绘图指令中可以不携带任何信息。基于此,待刷新窗口应用调用绘图接口进行绘图时,向窗口管理系统提供整个窗口区域需要绘图的内容,由窗口管理系统计算当前调用绘图接口的待刷新窗口应用对应窗口的窗口区域,与所述合并刷新区域的交集区域,进而对提供的需要绘图的内容进行裁剪,保留交集区域对应的内容,进而对帧缓冲区frame buffer中所述交集区域进行绘图。

基于上述屏幕刷新系统,本申请从窗口管理系统的角度对屏幕刷新方法进行了介绍,参见图3,图3为本申请实施例从窗口管理系统角度公开的一种屏幕刷新方法流程图。

如图3所示,该方法包括:

步骤S300、在当前时间周期开始时刻,在顺序编号的窗口应用组序列中确定当前编号对应的目标窗口应用组;

所述窗口应用组序列中包括若干窗口应用组,每一窗口应用组中包含窗口区域符合设定近邻关系的若干窗口对应的窗口应用。

步骤S310、向所述目标窗口应用组中各目标窗口应用发送时间片,所述时间片的长度与所述时间周期的长度相同;

步骤S320、判断所述目标窗口应用组是否为所述窗口应用组序列中最后一个窗口应用组;若是,执行步骤S330,若否,执行步骤S340;

步骤S330、将所述当前编号更改为所述窗口应用组序列中首个窗口应用组的编号;

步骤S340、将所述当前编号更改为所述窗口应用组序列中与所述目标窗口应用组近邻的后一窗口应用组的编号;

步骤S350、获取当前周期内接收的各目标窗口应用发送的刷新指令所包含的刷新区域,对各刷新区域进行合并,得到合并刷新区域;

步骤S360、根据终端屏幕上的各窗口区域,确定窗口区域与所述合并刷新区域存在交集的待刷新窗口;

步骤S370、按照窗口层次由低至高顺序,向确定的各所述待刷新窗口对应的待刷新窗口应用发送绘图指令,以触发待刷新窗口应用与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图,及对绘图后的帧缓冲区frame buffer中的内容进行上屏显示。

具体地,窗口管理系统按照窗口层次由低至高顺序,向各待刷新窗口对应的待刷新窗口应用发送绘图指令,保证各待刷新窗口应用顺序绘图,不会存在窗口层次高的窗口应用先于窗口层次低的窗口应用绘图。

本申请实施例提供的屏幕刷新方法,窗口管理系统在每个时间周期内仅从多个窗口应用组中确定一个目标窗口应用组,向目标窗口应用组内各目标窗口应用发送时间片,而窗口应用只有在收到时间片后,在时间片长度范围内检测到需要刷新屏幕时才能够与窗口管理系统交互,实现屏幕刷新。也即,在一个时间周期内,最多只有一个窗口应用组内的窗口应用能够实现屏幕刷新,且同一窗口应用组内的各窗口应用对应的窗口区域比较靠近,即便区域合并也不会造成过多非必要绘图,避免了现有技术同一时间周期内各窗口应用均可发起刷新指令,导致窗口管理系统对各刷新区域求并集后,将不需要绘图的窗口也作为发送绘图指令的对象,导致多余的绘图操作。

可选的,在上述实施例的基础上,本申请的方法还可以包括:

对各窗口应用进行分组,将窗口区域符合设定近邻关系的窗口对应的窗口应用划分为同一窗口应用组,该过程可以包括:

步骤S1、将每一窗口初始化为一窗口组,得到窗口组序列;

步骤S2、在所述窗口组序列中取一窗口组,计算取出的窗口组与窗口组序列中其它各窗口组的密度差值,若取出的窗口组与目标窗口组的密度差值小于设定阈值,则将取出的窗口组中各窗口合并入所述目标窗口组;

重复步骤S2,直至所述窗口组序列中任意两个窗口组均不能合并为止,将所述窗口组序列中每一窗口组中的各窗口对应的窗口应用划分为同一窗口应用组,为各窗口应用组顺序编号。

可选的,上述步骤S2中计算取出的窗口组与目标窗口组的密度差值的过程,可以包括:

1、计算取出的窗口组的组区域与目标窗口组的组区域的面积和值,其中组区域为对应窗口组中各窗口的窗口区域合并后的合并区域,该合并区域为包围各窗口的窗口区域的最小区域;

2、计算取出的窗口组的组区域与目标窗口组的组区域的合并区域的面积值,作为目标面积值,该合并区域为包围取出的窗口组的组区域与目标窗口组的组区域的最小区域;

3、计算所述面积和值与所述目标合并区域的比值,该比值与单位密度1的差值作为取出的窗口组与目标窗口组的密度差值。

进一步可选的,上述窗口管理系统向待刷新窗口对应的待刷新窗口应用发送的绘图指令中可以包含,待刷新窗口的窗口区域与所述合并刷新区域的交集区域。

基于此,所述窗口管理系统与待刷新窗口应用交互,实现对帧缓冲区frame buffer的绘图的过程,可以包括:

窗口管理系统接收待刷新窗口应用对绘图接口的调用请求,所述调用请求包括所述交集区域;

窗口管理系统调用所述绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。

另一种可实施方式,窗口管理系统向待刷新窗口应用发送的绘图指令中可以包含所述合并刷新区域。由待刷新窗口应用确定本窗口应用对应窗口的窗口区域与所述绘图指令包含的合并刷新区域的交集区域,进而基于该交集区域调用绘图接口进行绘图。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1