专利名称:幕后缓冲管理设备和方法
技术领域:
本发明涉及幕后缓沖管理装置和方法,尤其涉及在后緩冲器上设置显示 窗口的幕后数据的区域,以便可以减少后緩冲器中绘制窗口之前生成的幕后 数据的复制次数和可以提高缓沖速度的幕后緩冲管理装置和方法。
背景技术:
由于近年来有关多媒体的功能需要不断增加,人们现在正在开发利用Java应用程序提供图像的幕后緩沖管理设备(off-screen buffering management device )。在利用Java应用程序的情况下,幕后緩冲管理设备向显示设备提供 通过Java应用程序创建的图形用户界面(GUI)。一般说来,GUI用窗框表达。因此,在通过Java应用程序绘制在显示设 备上的情况下,幕后緩冲管理设备为Java应用程序使用的窗口创建幕后緩冲 区,生成Java应用程序本身使用的幕后数据和图形图像,并且将它们存储在 视频随机访问存储器(VRAM)中。随后,将通过幕后缓沖管理设备创建的窗口的幕后緩沖区、通过Java应 用程序生成的幕后数据、和存储在VARM中的图形图像复制到对VRAM指 定的后緩沖器中。当创建GUI的所有必要工作都已完成和所有数据都存储在后緩沖器中 时,幕后緩冲管理设备立刻将存储在后緩冲器中的所有数据复制到帧緩沖器 中,并且在显示设备上显示复制到帧緩冲器中的数据。这样将需要通过Java 应用程序输出的数据存储在后緩冲器中,然后将它们传送到帧緩冲器的技术 被叫做双緩冲。通过双緩沖再次将已经存储在幕后緩冲区中的数据显示在屏幕上的理由 是为了防止在屏幕上显示GUI创建过程时或只改变一部分GUI时发生闪烁现 象。这里,现有技术的幕后緩冲管理设备对与操作系统有关的主存储器或 VRAM指定幕后緩沖区,以便临时存储通过Java应用程序完成的绘制工作的 结果。
但是,在利用对主存储器或VRAM指定的幕后缓沖区的情况下,每当创 建或毁灭窗口时,现有技术的幕后緩冲管理设备必须重复地生成或删除幕后 緩沖区。另外,在同时显示许多个窗口的情况下,现有技术的幕后緩沖管理 设备需要个数与窗口 一样多的幕后緩冲区,从而增加了存储器的使用量。作为解决这些问题的一种尝试,另一种传统幕后緩冲管理设备为第一次 创建的窗口指定足够的幕后緩沖区。然后,如果另外创建的新窗口较大,备 份当前存储的数据,删除旧的幕后緩冲区,以便生成新的幕后緩冲区来备份 数据,并且重新装入以前备份的数据。但是,在这种情况下,每当创建较大 尺寸窗口时,现有技术的幕后緩冲管理设备必须重复上述过程。这样的工作 对整个系统性能产生相当大的影响。发明内容因此,本发明的一个方面是提供在后緩冲器上设置显示窗口的幕后数据 的区域,以便可以减少后緩冲器中绘制窗口之前生成的幕后数据的复制次数 和可以提高緩冲速度的幕后緩冲管理设备。为了实现这个方面,本发明提供了包含如下的幕后缓沖管理设备创建 要显示在屏幕上的窗口、和作出绘制创建窗口的请求的应用单元;设置存储 与窗口相对应的幕后数据的幕后緩冲区的后緩冲器;和如果作出绘制创建窗 口的请求,在后緩冲器中的设置幕后緩冲区中绘制窗口和存储窗口的緩冲管 理器。该设备可以进一步包含备份存储在后緩沖器中的幕后数据的主存储器, 其中,如果作出隐藏存储在后緩冲器中的幕后数据的请求,緩冲管理器将幕 后数据备份在主存储器中。在一个示范性实施例中,如果在后緩冲器中未指定请求绘制的窗口的幕 后緩沖区,緩冲管理器检验窗口的幕后数据是否已备份在主存储器中。如果 窗口的幕后数据已备份在主存储器中,緩沖管理器对后緩冲器更新备份幕后 数据。详细地说,如果窗口的幕后数据未备份在主存储器中,緩冲管理器在后 緩冲器中设置幕后緩冲区,并且在设置幕后緩冲区中绘制窗口的幕后凄^据。另外,緩冲管理器通过窗口存储设置在后緩沖器中的幕后缓冲区"位置 和大小信息。 在一个示范性实施例中,如果作出显示已按请求隐藏的窗口的请求,緩 冲管理器读取主存储器当中的幕后数据,利用存储的位置和大小信息重置后 緩冲器中的幕后緩沖区,并且将读出的幕后lt据复制到重置区中。在 一 个示范性实施例中,如果作出删除存储在后缓沖器中的幕后数据的 请求,緩沖管理器删除存储在对后緩冲器指定的幕后緩冲区中的幕后数据和 存储在主存储器中的幕后数据。在一个示范性实施例中,如果作出删除存储在后緩沖器中的幕后数据的 请求,緩冲管理器删除存储在后緩冲器和主存储器中的幕后数据。在一个示范性实施例中,应用单元利用Java语言创建窗口 ,并且对VRAM 指定后缓冲器。本发明的另一个方面提供了包含如下的幕后緩冲管理方法创建要显示 在屏幕上的窗口,和作出绘制创建窗口的请求。如果请求绘制,该方法包括 在后缓沖器中设置存储与窗口相对应的幕后数据的幕后緩冲区,和在设置幕 后緩冲区中绘制窗口和存储窗口。如果窗口的绘制已完成,该方法包括将已 经存储在幕后緩沖区中的幕后数据复制到帧緩冲器中,并且将窗口显示在屏幕上。在一个示范性实施例中,该方法进一步包含接收隐藏已经绘制在幕后 緩冲区中的窗口的请求,和删除对緩冲器指定的幕后緩冲区。在一个示范性实施例中,该方法进一步包含作出隐藏已经存储在幕后 緩冲区中的幕后数据的请求,和将幕后数据备份在分立存储器中。在一个示范性实施例中,该方法进一步包含如果作出绘制窗口的请求, 检验是否未对后緩冲器指定幕后緩冲区。如果未指定,该方法包括检验窗口 的幕后数据是否已备份在后緩冲器中,如果已备份,重置后缓冲器中的幕后 緩冲区,并且将备份幕后数据从存储器存储到重置幕后緩冲区中。在一个示范性实施例中,如果幕后数据未备份在存储器中,在后緩冲器 中设置幕后緩沖区,从而在设置幕后缓冲区中绘制请求绘制的窗口的幕后数 据。在一个示范性实施例中,该方法进一步包含在作出绘制窗口的请求之 后,通过窗口存储设置在后緩冲器中的幕后緩冲区的位置和大小信,4。在一个示范性实施例中,该方法进一步包含作出显示已按请求隐藏的 窗口的请求,读取主存储器当中的幕后数据,和利用存储的位置和大小信息
将读出的幕后数据复制到对后缓沖器指定的幕后緩冲区中。在一个示范性实施例中,该方法进一步包含如果作出删除存储在后緩冲器中的幕后数据的请求,删除存储在后緩沖器和主存储器中的幕后数据。本发明的另外和/或其它方面部分在如下的描述中给出和部分可从如下的描述中明显看出,或可以通过实施本发明获知。
通过参照附图描述本发明的某些优选实施例,本发明的上述方面和特征将更加清楚,在附图中图1是根据本发明示范性实施例的幕后緩冲管理设备的方块图;图2是描述对图1中的示范性实施例实现的幕后緩冲管理方法的流程图;图3是依次描述在GUI中绘制了第一窗口之后根据请求隐藏或删除第一窗口的过程的流程图;和图4是粗略说明通过图1和2绘制窗口的逐步过程的图形。
具体实施方式
下文参照附图描述本发明的示范性实施例。图1是根据本发明示范性实施例的幕后緩沖管理设备的方块图。参照图1,幕后緩沖管理设备100包括应用单元110、请求单元120、响 应单元130、主存储器140、 Java虚拟机(JVM) 150、和视频控制单元160。 本发明的幕后緩冲管理设备100是与输出图像的显示设备连接的仪器的一部 分,并因此创建像GUI那样的屏幕。应用单元110利用编程语言创建要显示在显示设备上的GUI,绘制创建 的GUI,和请求隐藏或删除以前创建的GUI。 GUI主要由窗框和显示在窗口 中的图像组成。在下文的描述中,将不对认为使本发明埋没在不必要详细中 的图像作任何描述。应用单元110利用例如Java语言创建GUI。在这样的情况下,通过Java 编译器将基于java的程序编i奪成Java字节码。此时,取决于绘制方法,可以将创建的GUI窗口分类成臺量级 (heavy-wight)窗口和轻量级窗口 ( light-wight )。重量级窗口是平台相关的, 因为它是基于平台提供的模式的窗口 ,而轻量级窗口是开发者以所需模式创 建的GUI窗口,因此可以将它提供给另一个平台。请求单元120将请求从应用单元110传送到JVM 150,和响应单元130 将从JVM 150返回的响应传送到应用单元110。主存储器140是非易失性存储器,并且与JVM150连接,在緩冲管理器 152 (待述)的控制下备份窗口的幕后数据。JVM 150起在应用单元110中编译的Java字节码的解释器作用。也就是 说,在JVM 150中解释Java字节码以便加以执行。JVM 150包括緩沖管理器 152和倾倒管理器(flush manager) 154。緩冲管理器152管理来自应用单元IIO的请求。首先,当应用单元110请求绘制GUI时,緩冲管理器152创建与GUI 窗口相联系的窗口管理区。窗口管理区152-1和152-2是针对每个GUI创建 的。也就是说,如果存在绘制另一个GUI的请求,则緩冲管理器152创建第 二窗口管理区152-2。在本发明一个示范性实施例的如下描述中,将请求绘制的GUI窗口称为 第一窗口。第一窗口管理区152-1通过Java对象存储第一窗口的幕后信息,第一窗 口的幕后信息包括窗口的ID信息、大小信息、和有关设置在视频存储器162 的后缓冲器163中的第一窗口幕后緩冲区(下文称为"第一窗口区")163-1的 信息等。并且,当作出绘制请求时,緩冲管理器152显示视频存储器162的后緩 沖器163上存储第一窗口的幕后数据的第一窗口区163-1。也就是说,緩冲管 理器152不对后緩沖器163实际指定用于绘制第一窗口的幕后数据的第一窗 口幕后緩冲区,而是如虚线所示在后緩冲器163中设置与第一窗口一样大的 区域163-1。当第一窗口区163-1设置已完成时,緩冲管理器152在第一窗口区163-1 中绘制第一窗口的幕后数据。详细地说,当应用单元IIO作出绘制请求时,緩冲管理器152检验在緩 沖管理器152中是否生成要绘制的第一窗口的幕后信息。这里,如果存在第 一窗口的Java对象,緩沖管理器152确定第一窗口的幕后信息已生成。如果第一窗口的Java对象不存在,则緩沖管理器152在緩冲管理器152 中创建第一窗口管理区152-1。然后,緩冲管理器152在视频存储器162中设
置用于存储第一窗口的幕后数据的第一窗口区163-1。另一方面,如果在緩冲管理器152中已经生成第一窗口的幕后信息,緩 沖管理器152检验第一窗口的幕后数据是否已备份在主存储器140中。如果 数据已经备份,则緩沖管理器152读取主存储器140当中的第一窗口。接着, 緩冲管理器152重新创建第一窗口区163-1,并且在第一窗口区163-1中绘制 和存储已经读出的第一窗口。另一方面,如果第一窗口的幕后数据未备份在主存储器140中,緩冲管 理器152确定与相应窗口相联系的第一窗口区163-1已存在,并且在第一窗 口区163-1中绘制第一窗口。同时,如果应用单元110作出删除以前创建的第一窗口的请求,则緩冲 管理器152将存储在第一窗口区163-1中的第一窗口备份到主存储器140中。 然后,緩沖管理器152删除第一窗口区163-1。另外,如果应用单元110作出隐藏以前创建的第一窗口的请求,緩沖管 理器152删除与第一窗口有关的所有数据。并且,緩冲管理器152删除已经 存储在JVM150的第一窗口管理区152-1中的数据、已经存储在后緩沖器163 的第一窗口区163-1中的第一窗口的幕后数据、和已经备份在主存储器140 中的第一窗口的幕后数据。视频控制单元160将视频信号处理成可显示在屏幕上的信号,并且将它 提供给显示设备(未示出)。视频控制单元160包括视频存储器162和帧緩冲 器164。视频存储器162是VRAM,并且对它指定后緩冲器163。后緩沖器163存储用于创建GUI的所有必要数据,并且根据緩冲管理器 152请求,立刻将所有数据输出到帧緩冲器164。后緩冲器163立刻输出所有 数据是因为要不然在显示设备(未示出)上可能发生闪烁现象。如果緩沖管理器152发出请求,则倾倒处理器154进行倾倒(flush),即, 将当前存储在后緩冲器163中的内容复制到帧緩沖器164。也就是说,只有 当缓冲管理器152请求时,倾倒处理器154才进行倾倒。与此一起,在显示 设备(未示出)上以GUI格式显示复制到帧緩冲器164中的数据。根据本发明的示范性实施例,緩冲管理器152不緩沖在主存储器140或 视频存储器162中存储请求绘制窗口的幕后数据的区域,即,幕后緩冲的区 域,而是在已经对视频存储器162指定的后緩冲器163的部分区域中直接绘 制幕后数据。这样,可以缩短幕后数据复制过程,从而提高Java应用程序的 绘制性能。图2是描述对图1中的示范性实施例实施的幕后緩冲管理方法的流程图。 参照图1和2,当应用单元110作出绘制GUI的请求时(S205 ),緩冲管理器152检验请求绘制GUI的第一窗口的幕后数据,或第一窗口的对象是否已生成(S210)。在S210中,如果第一窗口的对象已存在,也就是说,如果设置第一窗口 的幕后信息的第一窗口管理区152-1已存在,那么,緩冲管理器152检验第 一窗口的幕后数据是否存储在主存储器140中(S215 )。如果结果是数据未存储在主存储器140中,则緩沖管理器152确定请求 绘制的第一窗口当前正显示在显示设备(未示出)上,并且在预定第一窗口 区163-1中绘制第一窗口 (S220)。在确定了第一窗口的绘制已完成之后(S225 ),如果緩冲管理器152请求 倾倒(S230),则倾倒管理器154将当前绘制在后緩沖器163的第一窗口区 163-1中的第一窗口的幕后数据倾倒在帧緩冲器164中(S235 )。这样,在显 示设备(未示出)上同时显示由移动到帧緩沖器164的第一窗口组成的最后 GUI。另一方面,如果在S210中结果是第一窗口管理区152-1不存在,则緩冲 管理器152在其中创建第一窗口管理区152-1,从Java对象中生成幕后信息, 并且存储如此生成的信息(S240)。这里,第一窗口的幕后信息包括第一窗口 的ID信息、大小信息、和设置在后緩冲器163中的第一窗口区163-1的位置等。緩冲管理器152在后緩冲器163中设置用在绘制第一窗口中的第一窗口 区163-1 (S245 ),并且进入S220。图3是依次描述在GUI中绘制了第一窗口之后根据请求隐藏或删除第一 窗口的过程的流程图。参照图1到3,当应用单元110作出管理第一窗口的请求时,缓冲管理 器152检验第一窗口的对象是否存在(S310和S320 )。如果在緩冲管理器152中存在第一窗口的对象,也就是说,3-杲第一窗 口管理区152-1已存在,则緩冲管理器152检验在S310中作出的请求是否是 隐藏第一窗口的请求(S330 )。
如果的确请求了隐藏第一窗口,则缓冲管理器152将已经绘制在第一窗口区163-1中的第一窗口的幕后数据移动到主存储器140以备份数据(S340 )。 然后,緩冲管理器152删除第一窗口区163-1 (S350 )。 如果在S330中未请求隐藏第一窗口 ,则緩冲管理器152检验是否请求了删除第一窗口 (S360)。如果的确请求了删除第一窗口,则緩冲管理器152删除已经绘制在第一窗口区163-1中的第一窗口的幕后数据,并且删除第一窗口区163-1 (S370 )。另外,如果第一窗口的幕后数据存储在主存储器140中,则緩冲管理器152还删除主存储器140中第一窗口的幕后数据。相反,如果在S320中结果是第一窗口的对象不存在,则緩冲管理器152进入S205。此外,如果在S360中作出的请求不是第一窗口的删除请求,则緩冲管理器152进入S250。图4是粗略说明通过图1和2绘制窗口的逐步过程的图形。参照图1到4,当应用单元IIO作出绘制由第一窗口组成的GUI的请求时,在后緩冲器163的第一窗口区163-1中绘制第一窗口的幕后数据。当缓冲管理器152请求倾倒时,将由第一窗口组成的整个GUI复制到帧緩冲器164中,同时显示在显示设备(未示出)上。也就是说,根据本发明的示范性实施例,由于第一窗口无须经历VRAM或主存储器中的緩冲过程而迅速绘制在后緩沖器的指定区中,所以第一窗口也迅速地显示在显示设备(未示出)上。总而言之,通过不在视频存储器中指定创建GUI所需的幕后緩冲区,而 是在后緩冲器的一部分中设置一个区域,本发明的幕后緩冲管理设备和方法 可以用于缩短幕后数据复制步骤和进一步提高Java应用程序的绘制性能。此外,根据本发明的示范性实施例,不对视频存储器实际指定幕后缓沖 区,因此,即使对于视频存储器容量有限的设备,也可以增加视频存储器的 使用量。并且,根据本发明,由于不对视频存储器实际指定幕后緩冲区,所以不 会进行在创建和删除幕后緩冲区期间可能影响系统性能的像指定和,'j除存储 器緩冲区那样的操作。这样,无论有多频繁地重复创建和毁灭窗口,系统性 能都未必受到影响。尽管已经描述了本发明的示范性实施例,但本领域的普通技术人员应该 _____明白,本发明不局限于所述示范性实施例,而是可以在所附权利要求书限定 的本发明的精神和范围内作出各种各样的改变和修改。
权利要求
1.一种幕后缓冲管理设备,包含创建要显示在屏幕上的窗口、和作出绘制创建窗口的请求的应用单元;设置存储与窗口相对应的幕后数据的幕后缓冲区的后缓冲器;和如果作出绘制窗口的请求,在后缓冲器中的设置幕后缓冲区中绘制窗口和存储窗口的缓冲管理器。
2. 根据权利要求1所述的设备,进一步包含备份存储在后緩沖器中的幕后数据的主存储器,其中,如果作出用于隐 藏存储在后缓沖器中的幕后数据的请求,则緩冲管理器将幕后数据备份在主 存储器中。
3. 根据权利要求2所述的设备,其中,如果在后緩冲器中未指定幕后緩 冲区,则緩冲管理器检验窗口的幕后数据是否已备份在主存储器中;和如果 窗口的幕后数据已备份在主存储器中,则緩冲管理器对后緩沖器更新备份幕 后数据。
4. 根据权利要求2所述的设备,其中,如果窗口的幕后数据未备份在主 存储器中,则緩冲管理器在后緩冲器中设置幕后緩冲区,和在设置的幕后緩 冲区中绘制窗口的幕后数据。
5. 根据权利要求2所述的设备,其中,缓冲管理器通过窗口存储设置在 后緩冲器中的幕后缓冲区的位置和大小信息。
6. 根据权利要求5所述的设备,其中,如果作出显示已按请求隐藏的窗 口的请求,则緩冲管理器读取主存储器当中的幕后数据,利用存储的位置和 大小信息重置后緩冲器中的幕后緩冲区,和将读出的幕后数据复制到重置区 中。
7. 根据权利要求2所述的设备,其中,如果作出删除存储在后緩冲器中 的幕后数据的请求,则緩冲管理器删除存储在对后緩冲器指定的幕后緩冲区 中的幕后数据和存储在主存储器中的幕后数据。
8. 根据权利要求1所述的设备,其中,如果作出删除存储在后緩冲器中 的幕后数据的请求,则緩沖管理器删除存储在后緩冲器的幕后数据。
9. 根据权利要求1所述的设备,其中,应用单元利用Java语言创建窗
10. 根据权利要求1所述的设备,其中,对视频随机访问存储器指定后 緩冲器。
11. 一种幕后缓冲管理方法,包含创建要显示在屏幕上的窗口 ,和作出绘制创建窗口的请求;如果请求绘制,则在后緩冲器中设置用于存储与窗口相对应的幕后数据 的幕后緩沖区;在设置的幕后緩冲区中绘制窗口和存储窗口;和如果窗口的绘制已完成,则将存储在幕后援冲区中的幕后数据复制到帧 緩冲器中和将窗口显示在屏幕上。
12. 根据权利要求11所述的方法,进一步包含 接收隐藏绘制在幕后緩冲区中的窗口的请求;和 删除对緩冲器指定的幕后緩冲区。
13. 根据权利要求11所述的方法,进一步包含作出隐藏存储在幕后缓冲区中的幕后数据的请求;和 将幕后数据备份在存储器中。
14. 根据权利要求13所述的方法,进一步包含如果作出绘制窗口的请求,则检验是否已对后緩冲器指定了幕后緩冲区; 如果未对后緩冲器指定幕后緩沖区,则检验窗口的幕后数据是否已备份在后緩冲器中;和如果窗口的幕后数据已备份,则重置后緩冲器中的幕后緩冲区,和将备份幕后数据从存储器存储到重置幕后緩沖区中。
15. 根据权利要求14所述的方法,其中,如果幕后数据未备份在存储器 中,在后緩冲器中设置幕后緩冲区,从而在设置的幕后緩冲区中绘制幕后数 据。
16. 根据权利要求13所述的方法,进一步包含如果作出绘制窗口的请求,则通过窗口存储设置在后緩冲器中的幕后緩 沖区的位置和大小信息。
17. 根据权利要求16所述的方法,进一步包含 作出显示已按请求隐藏的窗口的请求;和读取主存储器当中的幕后数据,和利用存储的位置和大小信息将读出的 幕后数据复制到对后缓冲器指定的幕后緩沖区中。
18. 根据权利要求13所述的方法,进一步包含如果作出删除存储在后缓冲器中的幕后数据的请求,则删除存储在后緩 冲器和存储器中的幕后数据。
19. 根据权利要求11所述的方法,其中,应用单元利用Java语言创建 窗口。
20. 根据权利要求11所述的方法,其中,对视频随机访问存储器指定后 緩沖器。
全文摘要
本发明公开了幕后缓冲管理设备和方法。在该设备中,应用单元创建要显示在屏幕上的窗口,和作出绘制创建窗口的请求。在后缓冲器中设置存储与窗口相对应的幕后数据的幕后缓冲区,和如果作出绘制创建窗口的请求,缓冲管理器在后缓冲器中的设置幕后缓冲区中绘制窗口和存储窗口。
文档编号G09G5/00GK101159127SQ20071013738
公开日2008年4月9日 申请日期2007年7月25日 优先权日2006年10月4日
发明者朴相丁 申请人:三星电子株式会社