本申请涉及屏幕刷新技术领域,更具体地说,涉及一种屏幕刷新系统、方法及装置。
背景技术:
终端的屏幕对应系统中一个帧缓冲区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显示内容并未产生变化,重复绘图即浪费时间,也占用有限的绘图资源。
技术实现要素:
有鉴于此,本申请提供了一种屏幕刷新系统、方法及装置,以解决现有技术存在多余绘图过程,浪费时间且占用绘图资源的问题。
为了实现上述目的,现提出的方案如下:
一种屏幕刷新系统,包括窗口管理系统及至少一窗口应用,其中:
所述窗口应用用于,在确定需要进行刷新时,向所述窗口管理系统发送刷新指令,刷新指令中包含刷新区域;
所述窗口管理系统用于,获取当前周期内接收的各刷新指令所包含的刷新区域,组成区域组;根据终端屏幕上的各窗口区域,确定窗口区域与所述区域组中任意一刷新区域存在交集的目标窗口;按照窗口层次由低至高顺序,向确定的各所述目标窗口对应的目标窗口应用发送绘图指令;
所述窗口应用还用于,在收到所述窗口管理系统发送的绘图指令时,与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图;
所述窗口管理系统还用于,在确定各目标窗口应用均绘图完毕后,对帧缓冲区frame buffer中的内容进行上屏显示。
优选地,向目标窗口对应的目标窗口应用发送的绘图指令包含,目标窗口的窗口区域与所述区域组中各刷新区域的交集区域;
所述窗口应用在收到所述窗口管理系统发送的绘图指令时,与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图的过程,具体包括:
在收到所述窗口管理系统发送的包含所述交集区域的绘图指令时,调用所述窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。
优选地,向目标窗口对应的目标窗口应用发送的绘图指令包含,所述区域组中的各刷新区域;
所述窗口应用在收到所述窗口管理系统发送的绘图指令时,与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图的过程,具体包括:
在收到所述窗口管理系统发送的包括区域组的绘图指令时,确定本窗口应用对应窗口的窗口区域与所述绘图指令包含的区域组中各刷新区域的交集区域;
调用所述窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。
一种屏幕刷新方法,应用于窗口管理系统,该方法包括:
获取当前周期内接收的各刷新指令所包含的刷新区域,组成区域组;
根据终端屏幕上的各窗口区域,确定窗口区域与所述区域组中任意一刷新区域存在交集的目标窗口;
按照窗口层次由低至高顺序,向确定的各所述目标窗口对应的目标窗口应用发送绘图指令,以触发目标窗口应用与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图,及对绘图后的帧缓冲区frame buffer中的内容进行上屏显示。
优选地,向目标窗口对应的目标窗口应用发送的绘图指令中包含,目标窗口的窗口区域与所述区域组中各刷新区域的交集区域;
所述窗口管理系统与目标窗口应用交互,实现对帧缓冲区frame buffer的绘图的过程,包括:
接收目标窗口应用对绘图接口的调用请求,所述调用请求包括所述交集区域;
调用所述绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。
优选地,向目标窗口对应的目标窗口应用发送的绘图指令中包含,所述区域组中的各刷新区域,以便目标窗口应用确定本窗口应用对应窗口的窗口区域与所述绘图指令包含的区域组中各刷新区域的交集区域。
一种屏幕刷新装置,应用于窗口管理系统,该装置包括:
区域组获取单元,用于获取当前周期内接收的各刷新指令所包含的刷新区域,组成区域组;
目标窗口确定单元,用于根据终端屏幕上的各窗口区域,确定窗口区域与所述区域组中任意一刷新区域存在交集的目标窗口;
绘图指令发送单元,用于按照窗口层次由低至高顺序,向确定的各所述目标窗口对应的目标窗口应用发送绘图指令,以触发目标窗口应用与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图,及对绘图后的帧缓冲区frame buffer中的内容进行上屏显示。
优选地,所述绘图指令发送单元向目标窗口对应的目标窗口应用发送的绘图指令中包含,目标窗口的窗口区域与所述区域组中各刷新区域的交集区域;
该装置还包括:
调用请求接收单元,用于接收目标窗口应用对绘图接口的调用请求,所述调用请求包括所述交集区域;
绘图接口调用单元,用于调用所述绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。
优选地,所述绘图指令发送单元向目标窗口对应的目标窗口应用发送的绘图指令中包含,所述区域组中的各刷新区域,以便目标窗口应用确定本窗口应用对应窗口的窗口区域与所述绘图指令包含的区域组中各刷新区域的交集区域。
从上述的技术方案可以看出,本申请实施例提供的屏幕刷新系统,包括窗口管理系统及至少一个窗口应用,其中:所述窗口应用用于,在确定需要进行刷新时,向所述窗口管理系统发送刷新指令,刷新指令中包含刷新区域;所述窗口管理系统用于,获取当前周期内接收的各刷新指令所包含的刷新区域,组成区域组;根据终端屏幕上的各窗口区域,确定窗口区域与所述区域组中任意一刷新区域存在交集的目标窗口;按照窗口层次由低至高顺序,向确定的各所述目标窗口对应的目标窗口应用发送绘图指令;所述窗口应用还用于,在收到所述窗口管理系统发送的绘图指令时,与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图;所述窗口管理系统还用于,在确定各目标窗口应用均绘图完毕后,对帧缓冲区frame buffer中的内容进行上屏显示。由此可见,本申请窗口管理系统确定窗口区域与所述区域组中任意一刷新区域存在交集的目标窗口,作为发送绘图指令的对象,避免了现有技术对各刷新区域求并集后,将不需要绘图的窗口也作为发送绘图指令的对象,避免了不必要的绘图操作。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例示例的一种多窗口示意图;
图2为本申请实施例公开的一种屏幕刷新系统结构示意图;
图3为本申请实施例从窗口管理系统角度公开的一种屏幕刷新方法流程图;
图4为本申请实施例从窗口管理系统角度公开的另一种屏幕刷新方法流程图;
图5为本申请实施例公开的一种屏幕刷新装置结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供了一种屏幕刷新系统,参见图2,图2为本申请实施例公开的一种屏幕刷新系统结构示意图。
如图2所示,该系统包括:
窗口管理系统100及至少一窗口应用110,其中:
所述窗口应用110用于,在确定需要进行刷新时,向所述窗口管理系统发送刷新指令,刷新指令中包含刷新区域;
具体地,窗口应用根据应用需要确定是否需要进行刷新,以刷新窗口展示的内容。窗口应用如字幕窗口应用等。窗口应用在确定需要刷新时,向窗口管理系统发送刷新指令,刷新指令中包含刷新区域,该刷新区域为窗口应用确定的需要进行刷新的区域。一般性的,刷新区域为整个窗口区域,当然刷新区域也可以是窗口区域中的某一部分区域。
所述窗口管理系统100用于,获取当前周期内接收的各刷新指令所包含的刷新区域,组成区域组;根据终端屏幕上的各窗口区域,确定窗口区域与所述区域组中任意一刷新区域存在交集的目标窗口;按照窗口层次由低至高顺序,向确定的各所述目标窗口对应的目标窗口应用发送绘图指令;
具体地,窗口管理系统设置有一个周期,各窗口应用在周期内均可向窗口管理系统发送刷新指令。窗口管理系统统计一个周期内接收到的刷新指令,从各刷新指令中获取刷新区域,得到多个刷新区域,组成区域组。窗口管理系统根据终端屏幕上的各窗口区域,确定窗口区域与区域组中任意一刷新区域存在交集的窗口,作为目标窗口。进一步,按照窗口层次由低至高顺序,向确定的各目标窗口对应的目标窗口应用发送绘图指令。通过按照窗口层次由低至高顺序发送绘图指令,保证各目标窗口应用按层次由低至高顺序进行绘图,不会出现低层次窗口压盖高层次窗口的情况。
所述窗口应用110还用于,在收到所述窗口管理系统100发送的绘图指令时,与所述窗口管理系统100交互,实现对帧缓冲区frame buffer的绘图;
具体地,帧缓冲区frame buffer为内存中一块预分配的区域,对应终端屏幕,frame buffer的存在,相当于在内存中提供终端屏幕的一个所见即所得的表示。
窗口应用在收到窗口管理系统发送的绘图指令时,通过与窗口管理系统进行交互,可以实现对frame buffer的绘图。
所述窗口管理系统100还用于,在确定各目标窗口应用均绘图完毕后,对帧缓冲区frame buffer中的内容进行上屏显示。
具体地,在确定各目标窗口应用均绘图完毕时,将帧缓冲区frame buffer中的内容上屏显示。
本申请实施例提供的屏幕刷新系统,包括窗口管理系统及至少一个窗口应用,其中:所述窗口应用用于,在确定需要进行刷新时,向所述窗口管理系统发送刷新指令,刷新指令中包含刷新区域;所述窗口管理系统用于,获取当前周期内接收的各刷新指令所包含的刷新区域,组成区域组;根据终端屏幕上的各窗口区域,确定窗口区域与所述区域组中任意一刷新区域存在交集的目标窗口;按照窗口层次由低至高顺序,向确定的各所述目标窗口对应的目标窗口应用发送绘图指令;所述窗口应用还用于,在收到所述窗口管理系统发送的绘图指令时,与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图;所述窗口管理系统还用于,在确定各目标窗口应用均绘图完毕后,对帧缓冲区frame buffer中的内容进行上屏显示。由此可见,本申请窗口管理系统确定窗口区域与所述区域组中任意一刷新区域存在交集的目标窗口,作为发送绘图指令的对象,避免了现有技术对各刷新区域求并集后,将不需要绘图的窗口也作为发送绘图指令的对象,避免了不必要的绘图操作。
参见图1示例的情况进行举例说明:
屏幕10中共包含三个窗口,分别为窗口11、窗口12和窗口13。假设在一个周期内窗口11和窗口13需要进行刷新,并向窗口管理系统发送了刷新请求,而窗口12并不需要进行刷新。
按照本申请方案,窗口管理系统获取窗口11和窗口13组成区域组。由于屏幕上的三个窗口分别与区域组内各刷新区域求交集后,确定只有窗口11和窗口13存在交集,因此将窗口11和窗口13作为目标窗口。
窗口管理系统向窗口11的窗口应用发送绘图指令,由窗口11的窗口应用与所述窗口管理系统交互,实现对帧缓冲区frame buffer内窗口11对应的区域的绘图;窗口管理系统向窗口13的窗口应用发送绘图指令,由窗口13的窗口应用与所述窗口管理系统交互,实现对帧缓冲区frame buffer内窗口13对应的区域的绘图。
最后,由窗口管理系统对绘图后的帧缓冲区frame buffer内的内容进行上屏显示。
与现有技术相比,按照本申请方案执行后窗口12不需要进行绘图,节省了绘图时间及资源占用。
可选的,窗口管理系统向目标窗口对应的目标窗口应用发送的绘图指令可以包含,目标窗口的窗口区域与所述区域组中各刷新区域的交集区域。该交集区域即为目标窗口需要绘图的区域。
在此基础上,窗口应用在收到所述窗口管理系统发送的绘图指令时,与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图的过程,可以包括:
在收到所述窗口管理系统发送的包含所述交集区域的绘图指令时,调用所述窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。
具体地,窗口管理系统提供了绘图接口,以供窗口应用进行调用。窗口应用调用窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。
与上述实施例不同的是,窗口管理系统向目标窗口对应的目标窗口应用发送的绘图指令可以包含,所述区域组中的各刷新区域。也即,窗口管理系统直接将区域组携带在绘图指令中发送给目标窗口应用。
在此基础上,窗口应用在收到所述窗口管理系统发送的绘图指令时,与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图的过程,可以包括:
1、在收到所述窗口管理系统发送的包括区域组的绘图指令时,确定本窗口应用对应窗口的窗口区域与所述绘图指令包含的区域组中各刷新区域的交集区域;
具体地,窗口应用收到绘图指令时,确定需要绘图的区域,该确定过程包括:确定本窗口应用对应窗口的窗口区域与所述绘图指令包含的区域组中各刷新区域的交集区域。
2、调用所述窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。
具体地,窗口管理系统提供了绘图接口,以供窗口应用进行调用。窗口应用调用窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。
通过上述两个实施例可以看出,交集区域可以由窗口管理系统确定,也可以由窗口应用确定。在确定了待绘图的交集区域之后,调用所述窗口管理系统提供的绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。
可选的,区别于上述两个实施例,本申请中窗口管理系统向窗口应用发送的绘图指令中可以不携带任何信息。基于此,窗口应用调用绘图接口进行绘图时,向窗口管理系统提供整个窗口区域需要绘图的内容,由窗口管理系统计算当前调用绘图接口的窗口应用对应窗口的窗口区域,与区域组中各刷新区域的交集区域,进而对提供的需要绘图的内容进行裁剪,保留交集区域对应的内容,进而对帧缓冲区frame buffer中所述交集区域进行绘图。
基于上述屏幕刷新系统,本申请从窗口管理系统的角度对屏幕刷新方法进行了介绍,参见图3,图3为本申请实施例从窗口管理系统角度公开的一种屏幕刷新方法流程图。
如图3所示,该方法包括:
步骤S300、获取当前周期内接收的各刷新指令所包含的刷新区域,组成区域组;
具体地,窗口管理系统设置有固定周期,每个周期结束时刻统计本周期内接收到的各个刷新指令,获取各刷新指令携带的刷新区域,由各刷新区域组成区域组。
步骤S310、根据终端屏幕上的各窗口区域,确定窗口区域与所述区域组中任意一刷新区域存在交集的目标窗口;
具体地,窗口管理系统根据终端屏幕上的各个窗口区域,确定窗口区域与区域组中任意一刷新区域存在交集的目标窗口。
其中,区域组中的各刷新区域均为需要进行绘图的区域。且,如果某个窗口区域与任意一刷新区域存在交集,则该窗口区域在交集区域也需要进行绘图。
步骤S320、按照窗口层次由低至高顺序,向确定的各所述目标窗口对应的目标窗口应用发送绘图指令,以触发目标窗口应用与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图,及对绘图后的帧缓冲区frame buffer中的内容进行上屏显示。
具体地,窗口管理系统按照窗口层次由低至高顺序,向各目标窗口对应的目标窗口应用发送绘图指令,保证各目标窗口应用顺序绘图,不会存在窗口层次高的窗口应用先于窗口层次低的窗口应用绘图。
绘图时针对内存中帧缓冲区frame buffer进行绘图,各目标窗口应用绘图完毕后,由窗口管理系统对绘图后的帧缓冲区frame buffer中的内容进行上屏显示。
本申请窗口管理系统确定窗口区域与所述区域组中任意一刷新区域存在交集的目标窗口,作为发送绘图指令的对象,避免了现有技术对各刷新区域求并集后,将不需要绘图的窗口也作为发送绘图指令的对象,避免了不必要的绘图操作。
参见图4,图4为本申请实施例从窗口管理系统角度公开的另一种屏幕刷新方法流程图。
如图4所示,该方法包括:
步骤S400、获取当前周期内接收的各刷新指令所包含的刷新区域,组成区域组;
具体地,窗口管理系统设置有固定周期,每个周期结束时刻统计本周期内接收到的各个刷新指令,获取各刷新指令携带的刷新区域,由各刷新区域组成区域组。
步骤S410、根据终端屏幕上的各窗口区域,确定窗口区域与所述区域组中任意一刷新区域存在交集的目标窗口;
具体地,窗口管理系统根据终端屏幕上的各个窗口区域,确定窗口区域与区域组中任意一刷新区域存在交集的目标窗口。
其中,区域组中的各刷新区域均为需要进行绘图的区域。且,如果某个窗口区域与任意一刷新区域存在交集,则该窗口区域在交集区域也需要进行绘图。
步骤S420、按照窗口层次由低至高顺序,向确定的各所述目标窗口对应的目标窗口应用发送绘图指令,绘图指令中包含目标窗口的窗口区域与所述区域组中各刷新区域的交集区域;
具体地,本实施例中由窗口管理系统确定各目标窗口的窗口区域与区域组中各刷新区域的交集区域,该交集区域即为目标窗口需要绘图的区域。将交集区域随绘图指令发送给目标窗口。
步骤S430、接收目标窗口应用对绘图接口的调用请求,所述调用请求包括所述交集区域;
具体地,目标窗口应用根据需要确定交集区域所要绘图内容,并调用绘图接口请求进行绘图。
步骤S440、调用所述绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。
窗口管理系统接收到调用请求之后,利用绘图接口对帧缓冲区frame buffer中所述交集区域进行绘图。
本实施例中,窗口管理系统向目标窗口应用发送的绘图指令中包含目标窗口的窗口区域与所述区域组中各刷新区域的交集区域,该交集区域即为目标窗口需要绘图的区域。基于此,目标窗口应用调用绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。
区别于上述实施例的,本申请中窗口管理系统向目标窗口应用发送的绘图指令中可以包含区域组中的各刷新区域。由目标窗口应用确定本窗口应用对应窗口的窗口区域与所述绘图指令包含的区域组中各刷新区域的交集区域,进而基于该交集区域调用绘图接口进行绘图。
下面对本申请实施例提供的屏幕刷新装置进行描述,下文描述的屏幕刷新装置与上文描述的屏幕刷新方法可相互对应参照。
其中,装置项未公开的细节可以参照方法项实施例的介绍。
参见图5,图5为本申请实施例公开的一种屏幕刷新装置结构示意图。
如图5所示,该装置包括:
区域组获取单元51,用于获取当前周期内接收的各刷新指令所包含的刷新区域,组成区域组;
目标窗口确定单元52,用于根据终端屏幕上的各窗口区域,确定窗口区域与所述区域组中任意一刷新区域存在交集的目标窗口;
绘图指令发送单元53,用于按照窗口层次由低至高顺序,向确定的各所述目标窗口对应的目标窗口应用发送绘图指令,以触发目标窗口应用与所述窗口管理系统交互,实现对帧缓冲区frame buffer的绘图,及对绘图后的帧缓冲区frame buffer中的内容进行上屏显示。
本申请窗口管理系统确定窗口区域与所述区域组中任意一刷新区域存在交集的目标窗口,作为发送绘图指令的对象,避免了现有技术对各刷新区域求并集后,将不需要绘图的窗口也作为发送绘图指令的对象,避免了不必要的绘图操作。
可选的,所述绘图指令发送单元向目标窗口对应的目标窗口应用发送的绘图指令中可以包含,目标窗口的窗口区域与所述区域组中各刷新区域的交集区域。
基于此,该装置还可以包括:
调用请求接收单元,用于接收目标窗口应用对绘图接口的调用请求,所述调用请求包括所述交集区域;
绘图接口调用单元,用于调用所述绘图接口,对帧缓冲区frame buffer中所述交集区域进行绘图。
可选的,所述绘图指令发送单元向目标窗口对应的目标窗口应用发送的绘图指令中可以包含,所述区域组中的各刷新区域,以便目标窗口应用确定本窗口应用对应窗口的窗口区域与所述绘图指令包含的区域组中各刷新区域的交集区域。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。