一种基于显示列表的局部刷新方法及装置的制造方法

文档序号:9765820阅读:426来源:国知局
一种基于显示列表的局部刷新方法及装置的制造方法
【技术领域】
[0001]本发明涉及屏幕刷新技术,特别涉及一种基于显示列表的局部刷新方法及装置。
【背景技术】
[0002]无论在应用软件还是游戏程序中,屏幕呈现一直是至关重要的一个环节,它允许计算机呈现图像给用户,以此作为交互操作的基础。与视频播放过程不同,视频播放通常只是一系列静态图片的顺序轮播,而软件或游戏中呈现的图像界面,通常是由计算机根据大量显示元素排列组合实时生成的。通常情况下,管理大量显示元素,并按正确顺序和位置显示这些显示元素,会消耗计算机大量的性能。
[0003]目前,大量编程语言都提供了各种管理显示元素的方法,其中AdobeFlashPlayer中的Act1n Script 3.0语言,提出了一种叫做“显示列表”的数据结构用于管理显示元素,基于显示列表的树状结构来操作显示元素,非常符合自然使用习惯,能够高效地组织大量显示元素。开发人员只需要编程让显示元素按照显示列表方式组织起来,AdobeFlash Player就能将其表示的界面呈现出来。开发者不停修改显示列表的元素位置或层次,屏幕呈现结果也会立即随之刷新。
[0004]以近年兴起的HTML5游戏和应用领域为例,HTML5游戏或应用框架都采用了AdobeFlash Player里的这种显示列表的屏幕呈现方式,并且都只是简单使用了“全屏刷新”的显示列表呈现方式。“全屏刷新”的显示列表呈现方式是按照每秒固定频率(例如60次)去清空整个屏幕,重新读取整个显示列表,按顺序将每个显示元素绘制到屏幕上。
[0005]通常情况下,整个显示列表中只有部分显示元素会发生改变,每次都刷新整个屏幕,会带来不必要的开销,直接导致游戏或应用的画面不流畅,同时也增加了设备耗电量。

【发明内容】

[0006]本发明的目的在于提供一种基于显示列表的局部刷新方法及装置,能更好地解决“全屏刷新”方式性能开销大的问题。
[0007]根据本发明的一个方面,提供了一种基于显示列表的局部刷新方法,包括:
[0008]根据显示列表中的显示对象及父级显示对象的属性,确定每个显示对象在屏幕上的屏幕矩形,作为第一重绘区;
[0009]检测屏幕上的每个显示对象是否发生变化;
[0010]当检测到显示对象发生变化时,根据所述已发生变化的显示对象及其父级显示对象的属性,重新确定所述显示对象在屏幕上对应的屏幕矩形,作为第二重绘区;
[0011]将所述第一重绘区和所述第二重绘区清空,并将所述已发生变化的显示对象重绘至所述第二重绘区。
[0012]优选地,每个显示对象的属性包括自身变换信息和自身形状信息。
[0013]优选地,所述根据显示列表中的显示对象及父级显示对象的属性,确定每个显示对象在屏幕上的屏幕矩形,作为第一重绘区的步骤包括:
[0014]根据每个显示对象的自身变换信息及其所有父级显示对象的自身变换信息,得到每个显示对象对应于屏幕的屏幕变换信息;
[0015]根据所述每个显示对象对应于屏幕的屏幕变换信息和自身形状信息,确定所述每个显示对象在屏幕上的屏幕矩形。
[0016]优选地,所述根据所述已发生变化的显示对象及其父级显示对象的属性,重新确定所述显示对象在屏幕上对应的屏幕矩形,作为第二重绘区的步骤包括:
[0017]根据所述已发生变化的显示对象的自身变换信息及其所有父级显示对象的自身变换信息,得到所述已发生变化的显示对象对应于屏幕的屏幕变换信息;
[0018]根据所述已发生变化的显示对象对应于屏幕的屏幕变换信息和自身形状信息,确定所述已发生变化的显示对象在屏幕上的屏幕矩形。
[0019]优选地,在将所述第一重绘区和所述第二重绘区清空,并将所述已发生变化的显示对象重绘至所述第二重绘区的步骤之后,还包括:
[0020]利用每个显示对象的属性,分别查找其屏幕矩形与所述第一重绘区和/或所述第二重绘区相交的显示对象,并重新绘制所找到的显示对象。
[0021]优选地,还包括:
[0022]在屏幕上的已发生变化的显示对象的第一重绘区和第二重绘区中,若两个重绘区合并后的面积小于合并前两个重绘区的面积之和,则将所述两个重绘区合并,形成合并重绘区;
[0023]对屏幕上的合并处理后得到的各个重绘区进行清空,并在所述合并重绘区中,重绘相应的显示对象。
[0024]优选地,还包括:
[0025]若在屏幕上的已发生变化的显示对象的第一重绘区和第二重绘区中,若两个重绘区合并后的面积不小于合并前两个重绘区的面积之和,且重绘区的数量大于预设数量,则按照预设策略,将屏幕上的重绘区进行合并处理,直至合并处理后的重绘区数量不大于所述预设数量;
[0026]对屏幕上的合并处理后得到的各个重绘区进行清空,并在所述合并重绘区中,重绘相应的显示对象。
[0027]优选地,还包括:
[0028]判断未发生改变的显示对象的矩形区域是否与合并处理后得到的各个重绘区相交,若相交,则重绘所述相交的矩形区域对应的显示对象。
[0029]根据本发明的另一方面,提供了一种基于显示列表的局部刷新装置,包括:
[0030]检测模块,用于检测屏幕上的每个显示对象是否发生变化;
[0031]重绘区计算模块,用于根据显示列表中的显示对象及父级显示对象的属性,确定每个显示对象在屏幕上的屏幕矩形,作为第一重绘区,并当检测到显示对象发生变化时,根据所述已发生变化的显示对象及其父级显示对象的属性,重新确定所述显示对象在屏幕上对应的屏幕矩形,作为第二重绘区;
[0032]重绘模块,用于将所述第一重绘区和所述第二重绘区清空,并将所述已发生变化的显示对象重绘至所述第二重绘区。
[0033]优选地,所述重绘区计算模块还用于在屏幕上包括第一重绘区和第二重绘区的重绘区中查找相交的重绘区,并将所找到的相交的重绘区进行合并处理,形成合并重绘区,以供所述重绘模块对屏幕上的合并处理后得到的各个重绘区进行清空,并在所述合并重绘区中,重绘相应的显示对象。
[0034]优选地,所述重绘区计算模块还用于在屏幕上的重绘区中未找到相交的重绘区,且重绘区的数量大于预设数量时,按照预设策略,将屏幕上的重绘区进行合并处理,直至合并处理后的重绘区数量不大于所述预设数量,以便所述重绘模块对屏幕上的合并处理后得到的各个重绘区进行清空,并在所述合并重绘区中,重绘相应的显示对象。
[0035]与现有技术相比较,本发明的有益效果在于:
[0036]本发明通过对屏幕进行局部刷新,能够显著提高设备的计算性能,降低设备的耗电量。
【附图说明】
[0037]图1是本发明实施例
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1