一种窗口显示方法和系统与流程

文档序号:19164736发布日期:2019-11-19 20:15阅读:200来源:国知局
一种窗口显示方法和系统与流程

本申请涉及计算机应用技术领域,特别涉及一种窗口显示方法和系统。



背景技术:

随着互联网技术的不断发展,人们越来越多的使用终端来观看各种电视直播或者网络直播等多媒体资源。

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

终端屏幕上可以同时存在两个窗口,通常包括有一个用于显示主界面的主窗口以及另一个用于显示各种提示信息如音量、台标等信息的信息窗口。主窗口和信息窗口的刷新、绘图、上屏等操作由窗口管理系统统一管理。

窗口管理系统对外提供统一的刷新接口,任何窗口都可以在周期内通过刷新接口向窗口管理系统发送刷新指令,使得窗口管理系统对窗口进行刷新。窗口管理系统在一个周期结束后,根据接收到的刷新通知,计算需要刷新的区域,若需要刷新的区域中存在多个目标窗口,则按照从低至高的层次顺序依次向目标窗口发送绘图指令,各目标窗口在收到绘图指令时调用窗口管理系统的绘图接口,依次对framebuffer中对应区域进行内容绘制,窗口管理系统在确定所有目标窗口均绘图完毕之后,将framebuffer中的内容上屏显示。

但是,上述过程较为繁琐,一系列的操作占用了较多的系统资源,降低了系统性能。



技术实现要素:

本申请所要解决的技术问题是提供一种窗口显示方法及系统,用以使得系统不进行非必要的计算,提高系统性能。

本申请提供了一种一种窗口显示方法,应用于窗口管理系统,所述显示方法包括:

接收终端系统的主窗口发送的刷新请求;

判断所述终端系统的信息窗口是否为透明状态;

若所述信息窗口为透明状态,则仅向所述主窗口发送绘图指令,以使所述主窗口执行绘图操作。

优选的,所述判断所述终端系统的信息窗口是否为透明状态包括:

按照预设顺序依次选择所述信息窗口中预设数量的点作为检测点,并依次检测所述检测点是否透明;

有且仅当所有检测点均透明时,确定所述终端系统的信息窗口为透明状态。

优选的,所述按照预设顺序选择所述信息窗口中预设数量的点作为检测点,并依次检测所述检测点是否透明包括:

从预设位置开始按照从左到右从上到下的顺序依次选择两两间隔为预设阈值的点作为检测点;

依次检测所述检测点是否为透明。

优选的,所述按照预设顺序选择所述信息窗口中预设数量的点作为检测点,并依次检测所述检测点是否透明包括:

将所述信息窗口中预设位置的点所在行作为检测行;

判断所述检测行是否透明;

当所述检测行透明时,依次判断所述信息窗口中除所述检测行外的其它行是否透明;

有且仅当所述信息窗口中的所有行均透明时,确定所有检测点均透明。

优选的,其特征在于,所述检测所述检测点是否为透明包括:

判断所述检测点的透明度是否等于预设值;

如果是,则确定所述检测点透明。

本申请另一方面提供了一种窗口显示系统,包括:

接收模块,用于接收终端系统的主窗口发送的刷新请求;

判断模块,用于判断所述终端系统的信息窗口是否为透明状态;

执行模块,用于若所述信息窗口为透明状态,则仅向所述主窗口发送绘图指令,以使所述主窗口执行绘图操作。

优选的,所述判断模块包括:

选择单元,用于按照预设顺序依次选择所述信息窗口中预设数量的点作为检测点,并依次检测所述检测点是否透明;

检测单元,用于有且仅当所有检测点均透明时,确定所述终端系统的信息窗口为透明状态。

优选的,所述选择单元包括:

第一选择子单元,用于从预设位置开始按照从左到右从上到下的顺序依次选择两两间隔为预设阈值的点作为检测点;

第一检测子单元,用于依次检测所述检测点是否为透明。

优选的,所述选择单元包括:

第二选择子单元,将所述信息窗口中预设位置的点所在行作为检测行;

第二检测子单元,判断所述检测行是否透明;

第三检测子单元,当所述检测行透明时,依次判断所述信息窗口中除所述检测行外的其它行是否透明;

第四检测子单元,有且仅当所述信息窗口中的所有行均透明时,确定所有检测点均透明。

优选的,所述检测所述检测点是否为透明包括:

判断所述检测点的透明度是否等于预设值;

如果是,则确定所述检测点透明。

由上述方案可知,本申请实施例提供了一种窗口显示方法,应用于窗口管理系统,所述显示方法包括:接收终端系统的主窗口发送的刷新请求;判断所述终端系统的信息窗口是否为透明状态;若所述信息窗口为透明状态,则仅向所述主窗口发送绘图指令,以使所述主窗口执行绘图操作。可以看出,由于本申请中在判断出信息窗口为透明状态时,则不向信息窗口发送绘图指令,仅向主窗口发送绘图指令,避免系统进行像素融合计算,因此,使得系统避免了不必要的计算,提高了系统性能。

附图说明

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

图1为本申请实施例提供的一种窗口显示方法的流程图;

图2为本申请实施例提供的一种窗口显示方法的另一种流程图;

图3为本申请实施例中一种检测点示意图;

图4为本申请实施例中另一种检测点示意图;

图5提供的一种窗口显示系统的结构示意图。

具体实施方式

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

需要说明的是,发明人在研究中发现,重叠窗口的绘图过程中后一窗口在执行绘图过程时,系统对重叠的窗口会进行像素融合计算,以便于达到绘图的目的。而由于信息窗口通常设置为全屏的,因此,不管主窗口中哪些区域需要刷新,信息窗口也都需要执行绘图过程。

但是,通常情况下,信息窗口在不显示任何信息时,是透明的,并不影响终端屏幕的显示效果。因此,如果透明状态的信息窗口也执行绘图操作,则使得系统需要进行不必要的计算,造成系统资源的浪费。

有鉴于此,本申请提供了一种窗口显示的方法及系统。

图1,为本申请提供的一种窗口显示方法的流程图。

参考图1,本申请提供的一种窗口显示方法,应用于窗口管理系统,所述显示方法包括:

s101、接收终端系统的主窗口发送的刷新请求;

本申请实施例中,终端系统中包括有主窗口和信息窗口,主窗口通常用于显示应用程序的界面,而信息窗口通常是来显示其它属性信息,例如,台标、音量、清晰度等等信息。

主窗口需要刷新时,会对窗口管理系统发出刷新请求,窗口管理系统接收刷新请求。

s102、判断所述终端系统的信息窗口是否为透明状态;

通常,信息窗口是全屏的,因此,不管主窗口中是否有那本申请实施例中,在接收到刷新请求时,判断信息窗口是否为透明状态,如果信息窗口不是透明的中存在有信息,则信息窗口必然中存在有信息,相反,如果信息窗口是透明的,则信息窗口没有信息需要显示,此时如果也向信息窗口发送绘图指令,使得透明状态的信息窗口也执行绘图过程,,会给系统造成不必要的计算和负担,系统性能也会随之而降低。

本申请实施例中,对信息窗口的状态会进行判断,判断信息窗口处于哪一种状态。

s103、若所述信息窗口为透明状态,则仅向所述主窗口发送绘图指令,以使所述主窗口执行绘图操作。

当判断出信息窗口是透明状态时,则认定信息窗口中没有信息需要显示,因此,信息窗口不需要执行绘图过程,此时,仅通知所述主窗口执行绘图操作即可。

需要说明的是,在刷新操作后,还会执行绘图、上屏等操作,本申请并不涉及后续步骤,且与现有技术相同,因此,不进行赘述。

由上述方案可知,本申请实施例提供了一种窗口显示方法,在判断出信息窗口为透明状态时,则不进行像素融合计算,则仅通知所述主窗口执行绘图操作,因此,使得系统避免了不必要的计算,提高了系统性能。

其中,步骤s102可以按照下列流程操作。

s1021、按照预设顺序依次选择所述信息窗口中预设数量的点作为检测点,并依次检测所述检测点是否透明;

s1022、有且仅当所有检测点均透明时,确定所述终端系统的信息窗口为透明状态。

本申请实施例中,信息窗口若是非透明状态,其窗口中的像素点必然不是透明的,因此,本申请实施例中,在信息窗口中选择预设数量的点作为检验点,并且需要按照预设顺序选取,当选择其中某一个点后,会对选中的点进行检测,检测其是否透明,如果是非透明,则证明信息窗口中有信息需要显示,则执行原有的像素融合计算。

如果作为检测点的所有点都是透明的,则基本上可以肯定信息窗口中没有信息需要显示,因此,确定信息窗口为透明状态。

需要说明的是,预设数量越多也就是选择点的数量越多,结果就越准确,而选择点数越少,结果有可能会有误差。但是,选择点的数量越多,系统计算的过程就会越长,系统的压力会越大,降低系统性能,反之,选择的点数量越少,则系统计算的过程减少,而系统的压力会较小,系统性能不会收到影响。

当然,除了按照预设顺序依次选择的方式之外,还可以由技术人员根据信息窗口通常出现信息的位置,直接将这些位置对应的点作为检测点,还可以是使用特定的算法得出检测点的位置,然后依次选择这写点作为检测点等等方式,只要能确定出检测点均可。

因此,本申请实施例中,针对信息窗口实际显示的大小,对预设数量可以进行有针对性的设置。无论如何设置预设数量,步骤s1021的执行流程可以分为两种,一种为抽样检测,一种是全屏检测。

其中,抽样检测执行过程可以具体参见下列步骤。

所述按照预设顺序选择所述信息窗口中预设数量的点作为检测点,并依次检测所述检测点是否透明包括:

从预设位置开始按照从左到右从上到下的顺序依次选择两两间隔为预设阈值的点作为检测点;

依次检测所述检测点是否为透明。

本申请实施例中,从左到右从上到下的顺序依次选择具体可以包括,抽样检测行的过程,选择预设位置的点作为检测点,然后判断其是否透明,如果是透明,则继续从预设位置向右增加预设阈值选择第二个点作为检测点,在进行判断其是否透明,以此类推,直到这个预设位置所在行中从预设位置开始所有两两间隔为预设阈值的点都被选中并检测完成为止。即抽样检测行的过程执行完成。

然后继续选择预设位置向下间隔为预设阈值的第三点作为检测点,对其进行检测,若是透明,则继续选择与第三点间隔为预设阈值的点,依次类推,直到第三点所在行中也全部检测完成为止。

之后,继续选择与第三点间隔为预设阈值的点作为检测点,继续执行上述抽样检测行的过程,直到将预设位置所在列中两两间隔为预设阈值的点都被选中并检测为止。也就完成了对信息窗口的抽样检测。

其中,两两之间间隔为预设阈值是指两个点之间的间隔为一个预设的像素值,例如像素值g。而上述预设数量与预设阈值的关系为预设数量=1/g*g。

下面举一个具体实例来说明抽样检测的执行过程。如图3所示。其中g表示左上角第一个点与同一行和同一列的间隔为g像素值。

1、选择信息窗口左上角第一个点,即第一行,第一个点,检测是否为透明。如果否,则结束检查,并输出结果为假。

2、向右偏移g,即检查第一行,第g个点,是否为透明。如果否,则结束检查,并输出结果为假。

3、重复第2步,直到超出第一行。

4、向下偏移g,即重复1~3步,检查第g行。

5、重复第4步,以g为间隔,检查各行,直到超出屏幕高度。

当所有检测点都透明,则输出结果为真。

抽样检查的过程中,任何一个点为不透明,则可以确认信息窗口上是有内容的。

另一方面,所有抽样检查的像素点都是透明,并不能说明信息窗口是全屏透明的,仅表示信息窗口有可能是全屏透明。所以为了检测结果更加精确,还需要进行全屏检测。

其中,全屏检测执行过程可以具体参见下列步骤。

将所述信息窗口中预设位置的点所在行作为检测行;

判断所述检测行是否透明;

当所述检测行透明时,依次判断所述信息窗口中除所述检测行外的其它行是否透明;

有且仅当所述信息窗口中的所有行均透明时,确定所有检测点均透明。

其中,判断所述检测行是否透明包括从所述预设的点开始,依次选择所述检测行中的所有点作为检测点,并依次检测所述检测点是否为透明,有且仅当所有检测点都透明时,则确定所述检测行透明。

本申请实施例中,先确定检测行是否透明,如果检测行透明,则依次判断其它行中的数据是否与检测行相同,如果相同,则确定其它行也透明。当然,也可以逐个点依次进行检测,直到信息窗口中的所有点均检测完成为止。

优选的,本申请实施例中,预设位置的点优选采用信息窗口左上角第一个点。当然,还可以选择任意一点,只要能确定出检测行即可。

需要说明的是,本申请实施例中,全屏检测的过程还可以不是一个像素点紧接着另一个像素点进行检测的方式,而是从左上角第一个点开始,检测第一行,如果第一点做在行透明,然后分别判断其它行中的内容是否与第一行相同,若其它行中的内容与第一行均相同,则表面信息窗口为透明,反之,则不透明。

需要说明的是,判断行与行之间的内容是否相同,在终端系统中通常都会有基于汇编的加速接口,这样在运行上述过程时,速度可以得到保证。

示例性的,下面举一个具体实例来说明全屏检测的执行过程。参见图4,图4是本申请实施例的另一个检测点示意图。

1、对信息窗口第一行像素点,进行逐个像素的检查。

2、在保证第一行像素点全为透明的前提下,对其它行进行比对。

3、其它行分别与第一行进行比较,看是否相等。

只要有任何一行,与第一行内容不相等,则表示该行不是全透明,进一步表示整个信息窗口的内容不是全透明。

当且仅当所有行,都与第一行内容相等,才能确认整个信息窗口的内容是全透明的。

优选的,所述检测所述检测点是否为透明包括:

判断所述检测点的透明度是否等于预设值;

如果是,则确定所述检测点透明。

在窗口显示的技术领域中,通常使用的是argb888颜色格式,因此,在判断检测点是否透明时,获取检测点的透明度color,也就是判断检测点的a位是否透明。当判断出(color>>24)==0时,则确定所述检测点透明。如果(color>>24)==0xff则表示完全不透明。其他值为半透明。通常,argb8888中,a位为0表示透明,a位为0xff表示不透明。可以理解的是,还可以是a位的透明意义相反的颜色格式。

当然,如果平台采用的是argb1555,argb4444,abgr8888等颜色格式,alpha通道的位数是不同的,因此,会将上述颜色模型统一处理成argb888后在执行后面的判断步骤。

需要说明的是,本申请实施例中,信息窗口还可以为多个,当信息窗口为多个时,按照本申请的上述技术方案执行即可,则只需要更改为所有信息窗口都为透明状态时,则仅控制主窗口进行像素融合操作。如果其中某一信息窗口不透明,则继续执行原有的主窗口和多个信息窗口的像素融合计算即可。

因此,本申请实施例可以按照预设顺序依次选择所述信息窗口中预设数量的点作为检测点,并依次检测所述检测点是否透明;有且仅当所有检测点均透明时,确定所述终端系统的信息窗口为透明状态。当信息窗口透明时,则不执行像素融合的计算。大大节省了系统开销,提高了系统的性能。

本申请另一方面提供了一种窗口显示系统,参见图5,图5是本申请实施例体统的一种窗口显示系统的结构示意图。

本申请提供的一种窗口显示系统包括:

接收模块501,用于接收终端系统的主窗口发送的刷新请求;

判断模块502,用于判断所述终端系统的信息窗口是否为透明状态;

执行模块503,用于若所述信息窗口为透明状态,则仅向所述主窗口发送绘图指令,以使所述主窗口执行绘图操作。

优选的,所述判断模块包括:

选择单元,用于按照预设顺序依次选择所述信息窗口中预设数量的点作为检测点,并依次检测所述检测点是否透明;

检测单元,用于有且仅当所有检测点均透明时,确定所述终端系统的信息窗口为透明状态。

优选的,所述选择单元包括:

第一选择子单元,用于从预设位置开始按照从左到右从上到下的顺序依次选择两两间隔为预设阈值的点作为检测点;

第一检测子单元,用于依次检测所述检测点是否为透明。

优选的,所述选择单元包括:

第二选择子单元,将所述信息窗口中预设位置的点所在行作为检测行;

第二检测子单元,判断所述检测行是否透明;

第三检测子单元,当所述检测行透明时,依次判断所述信息窗口中除所述检测行外的其它行是否透明;

第四检测子单元,有且仅当所述信息窗口中的所有行均透明时,确定所有检测点均透明。

优选的,所述检测所述检测点是否为透明包括:

判断所述检测点的透明度是否等于预设值;

如果是,则确定所述检测点透明。

需要说明的是,本实施例的一种窗口显示系统可以采用上述方法实施例中的一种窗口显示方法,用于实现上述方法实施例中的全部技术方案,其各个模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述实施例中的相关描述,此处不再赘述。

由上述方案可知,本申请实施例提供了一种窗口显示系统,所述系统接收终端系统的主窗口发送的刷新请求;判断所述终端系统的信息窗口是否为透明状态;若所述信息窗口为透明状态,则只控制所述主窗口执行刷新操作。可以看出,由于本申请中在判断出信息窗口为透明状态时,则不进行像素融合计算,仅控制主窗口执行刷新操作,因此,使得系统避免了不必要的计算,提高了系统性能。

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

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

以上对本发明所提供的一种试剂检测信息的获取方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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