屏幕刷新的方法 【技术领域】
本发明涉及一种屏幕刷新的方法,应用于显示电子数据的屏幕,特别涉及一种提高刷新速度、且可满足多个逻辑层需求的屏幕刷新方法。
背景技术
屏幕刷新(refresh)是指对屏幕的内容加以更新、刷新,一般说来,发生于两种状况:一种是屏幕设定定时的刷新,另一种则是当屏幕内的东西有所变动,或是执行程序时,所必然产生的刷新。
而现有的屏幕刷新的方式,多是采用“画家”算法,也就是说,无论屏幕内容有无发生变化,均需进行全部内容的重新绘制来进行屏幕的所有内容刷新,因此速度相当慢。同时,其它一些刷新的算法仅提供两个逻辑层次的刷新,无法满足多层逻辑架构的屏幕刷新需要,容易造成屏幕刷新后的错误。
【发明内容】
本发明为解决上述问题而提供一种屏幕刷新的方法,可增加屏幕刷新的速度,并可适用于多逻辑层的架构。
根据本发明所公开的屏幕刷新的方法,首先判断出屏幕出现有对象的变化,也就是把屏幕上地所有实体都当成是一个对象,且变化包括有放大、缩小、位移、扭曲或是文字内容等变化,然后根据变化转化成一变量,并将相邻的对象的变量相互合并,以减少刷新区域的个数,而其合并主要是计算相邻对象变化区域,取其较大值来加以储存,当所有对象计算完毕并储存后,将其一一取出,而对屏幕加以更新。另外,也可以设计将不同逻辑层的对象变化加以剪裁合并,更可提高刷新速度。
具体地讲,本发明公开了一种屏幕刷新的方法,用以刷新一屏幕的内容,该方法包括有下列步骤:
依据该屏幕对象出现的变化转化成一变量;
计算该对象的变量;
合并该对象的变量;
储存该合并后对象的变量数据;及
依序取出该变量数据并刷新该屏幕涉及变化的区域。
所述的屏幕刷新的方法,其中该对象的变化选自放大、缩小、位移、扭曲、文字内容所构成的组合中的其中之一。
所述的屏幕刷新的方法,其中该合并的对象变量的条件为将相邻或是重叠的对象变化加以合并。
所述的屏幕刷新的方法,其中该合并的方式以选取变化前后所占用较大区域面积的变化为基准。
所述的屏幕刷新的方法,其中该计算该对象的变量的步骤还包括有计算不同逻辑层的该对象的变化量。
本发明还公开了一种屏幕刷新的方法,可提高刷新一屏幕的内容的速度,并提供数个逻辑层的刷新,该方法包括有下列步骤:
计算该屏幕的对象的各逻辑层的变量;
合并相同逻辑层的相邻的该对象的变量;
储存该合并后对象的变量的数据;
依序取出该数据;及
刷新该屏幕涉及变化的区域。
为使对本发明的目的、构造特征及其功能有进一步的了解,配合附图详细说明如下。
【附图说明】
图1为本发明的步骤流程示意图;
图2为本发明位移涉及区域的示意图;
图3为本发明对象变形处理流程的示意图;
图4为本发明文字内容变化处理流程的示意图;
图5A~5C为本发明相邻区域合并的示意图;
图6为本发明多逻辑层架构的示意图;及
图6A~7C为本发明多层逻辑架构处理的示意图。
附图标记说明
1 对象
2 对象
21 区域
22 区域
61~64 对象
71~74 对象
【具体实施方式】
根据本发明所公开的屏幕刷新的方法,请参阅图1,用以刷新一屏幕的内容,首先当屏幕内的对象出现变化时,开始对其变化处理(步骤101),其中所谓的对象即是把屏幕中的所有实体、图像一律视为一个对象,当对象发生了变化,包括有放大、缩小、扭曲、对象关连图像的变更等,同时,处理变化时,选择变化前后对象所占用的最大区域为基准,处理完毕后,将相关数据转化成变量并记录于一备筛选表内。
接着处理对象的位移(步骤102),请同步参阅图2,当一个对象1位移至对象2的区域时,所需处理的部分包括了对象1所在的区域以及区域21、22,所共同构成的区域,同样将其转化成变量后加入备筛选表内。
而关于以上变化以及位移的部分,处理流程类似,详细流程请见图3,首先判断对象是否有变形(步骤301),当然如果对象没有变形,则不需要处理,如果有,则先计算变形前后所占的区域大小(步骤302、303),接着将其中较大值(或是最大值)加入备筛选表(步骤304),因为平面空间与三维度空间的变化处理方式不同,所以单独将其取出来计算,同样的,先判断对象是否有三度维度空间上的变化(步骤305),如果没有,则结束此部分处理,如果有,则直接计算涉及的区域(步骤306)转化为变量,然后同步加入备筛选表内(步骤307)。
接着处理文字内容的变化(步骤103),请同步参照图4,首先判断文字内容是否有变化(步骤401),其中变化的部分包括有文字内容、字体大小、符号、字体设置相关位置等,并且将文字内容单独视为一个特殊的逻辑层图像,关于逻辑层的部分,容后详述,然后计算文字内容涉及的区域(步骤402),并转化后加入备筛选表(步骤403)。其中,关于逻辑层,请参阅图6,每一个对象除了X、Y坐标外,还具有一个所谓的“Z序”值,其含意代表位于屏幕的先后关系,每一个“Z序”值都可以视为一个逻辑层单独处理,图中对象61、62、63、64依照其“Z序”值关系分别为对象64在最前方,而对象61在最底端,简单说就是,对象64遮蔽对象63,对象63遮蔽对象62,对象62遮蔽对象61,处理时,则仅抽离出对象变化所涉及的区域加以处理,以下再举一例子做说明。
如图6A所示,三个对象的“Z序”依照大小排列分别为73、72、71,当对象72向右滑动(见图6B),所需更新的部分为对象72、74的区域但两者的处理方式不同,原对象72所在的区域形成一空的区域74,处理时,仅针对涉及变化的区域处理,也就是图中所示的对象72、74所在的区域,也就是新的对象72所在的区域利用对象72的数据重绘,而对象74的区域利用对象71以及背景部分重绘,得到如图6C所得的图案,因为刷新的区域仅为涉及变化的区域,故能够提升刷新的速度。另一方面,如果说“Z序”较大的(如图中的对象73)具有透明的区域,而可透视到不同“Z序”的对象,则处理上必须同步更新。
接着做刷新处理(步骤104),此时,并不是直接将备筛选表内的数据取出来处理,而是先将其中的所有对象的刷新数据作一计算来合并,合并的条件大致上为相邻的区域(见图5A~5C)或是互相包括的区域,或甚至是不同逻辑层的数据互相交叠时,也可以重复,以得到最少的刷新区域,使得刷新速度大幅改善。
本发明为一种屏幕刷新的方法,用以刷新屏幕的内容,且具有下列功效:
本方法可进行任意逻辑层的扩展,并且可进行特殊处理。
文字内容可以视为一特殊的逻辑层,提供文字内容的逻辑层与其它逻辑层的剪裁、合并等操作。
提高屏幕刷新的速度。
可适用于移动对象重叠的刷新。
虽然本发明以前述的较佳实施例公开,然其并非用以限定本发明,任何本领域普通技术人员,在不脱离本发明精神和范围内,当可作一些更动与润饰,因此本发明的专利保护范围以权利要求为准。