一种计算机图形内核窗口缓存技术的制作方法

文档序号:6486769阅读:341来源:国知局
一种计算机图形内核窗口缓存技术的制作方法
【专利摘要】一种计算机图形内核窗口缓存技术,在图形内核中,结合窗口缓存与非缓存技术,程序员可以根据目标计算机系统的内存资源状况,以及显示界面本身是否需要实现复杂的功能,灵活选择是否使用窗口缓冲区。使用窗口缓存时,由于重绘操作完全由内核执行,大大简化了编程工作量,提高运行效率;不使用窗口缓存,则可使窗口系统运行在内存非常贫乏的计算机系统上,有利于减小设备功耗、体积、成本。
【专利说明】 —种计算机图形内核窗口缓存技术
所属【技术领域】
[0001]本发明涉及一种计算机图形用户界面设计技术,提出一种新的、在图形内核中使用窗口缓冲区的方法。
【背景技术】
[0002]目前,公知的图形用户界面设计中,图形内核提供窗口管理,包括创建和删除窗口、窗口移动、窗口删除、改变窗口尺寸等操作。由用户程序负责窗口内的图形绘制,图形系统提供绘制函数,方便应用程序绘制,但图形系统并不管理窗口里面绘制的内容。在多窗口的软件设计中,由于窗口可能互相重叠,窗口可能部分或全部被其他窗口遮盖。应用程序在窗口绘制内容后,当发生创建窗口、移动窗口、改变重叠顺序等操作时,会使某些窗口的部分或全部区域由可见不可见,这些部分所显示的内容,也将丢失;当这些丢失了内容的窗口区域重新变得可见时,窗口管理系统将发送绘制消息给应用程序,由应用程序重绘这些区域。一个窗口呈现的内容,是所有历史绘制操作合并的结果,应用程序要重绘这些内容,有两种方法:一是记住合成被重绘区域当前内容的全部历史绘制操作,在重绘区域把这些绘制操作全部重新执行一遍;二是使用缓冲区把窗口所显示的内容全部备份起来,所有绘制操作,往窗口绘制的同时,还必须往缓冲区绘制,在需要重绘的时候,就从备份区域把重绘区域的内容绘制到窗口中。其中重绘区域可能是由许多小区域组成的复杂区域,应用程序判断哪些区域须重绘并重绘这些区域,也是一个比较复杂的过程。记住历史操作,是一个复杂、繁琐的过程;使用备份缓冲区,所有绘制操作都要执行两遍,效率很低。
[0003]公知的图形系统中,通常会使用帧缓冲技术,即把待显示的内容先写到帧缓存上,然后再从帧缓存转移到显示器中。帧缓存技术有利于实现复杂的图形功能,以及消除或减少显示刷新过程中的屏幕闪烁,不利的一面是,缓存需要使用大量的内存,例如一个640*480分辨率的TFT的彩色显示器,帧缓存需要超过600KB内存。因此,只有具有丰富内存的计算机系统(下称富内存系统)才可以使用这样的图形系统。而有些小型嵌入式系统的内存很少(下称贫内存系统),无法提供帧缓冲所需的内存,而无法使用这样的图形系统。

【发明内容】

[0004]本发明设计了窗口缓冲技术,可用于设计多窗口图形界面,对于任意一个窗口,内核允许用户选择是否使用缓存。
[0005]对于使用了缓存的窗口,应用程序的所有绘制操作,窗口的可见部分将直接绘制在显示器上。同时,该窗口的可见和不可见部分,均缓存在由图形内核管理的缓存中。当窗口的部分或全部由可见变为不可见时,因为窗口的全部内容已经被内核提供的缓存“记住”,所以被遮挡的部分并不会“丢失”。当这些区域重新变得可见时,图形内核直接从缓存中取出内容,并绘制到显示器上。重绘操作已经由图形内核完成,并不需要通知应用程序重绘,应用程序的设计方法将大大简化。[0006]对于没有使用缓存的窗口,应用程序针对某窗口的绘制操作,将直接将该窗口的可见部分绘制在显示器上,不再缓存。如果发生移动窗口、改变重叠顺序等操作,使窗口的不可见部分变为可见时,图形内核将给应用程序发消息,通知应用程序更新显示。
[0007]图形界面设计者,可以针对界面特点,可以对部分或全部窗口选择使用缓存,以实现复杂的图形功能;也可以对部分或全部窗口选择不使用缓存,以节省内存。
[0008]本发明的效果是:
[0009]同一个图形系统,将可以适合不同层次的产品开发。有些企业,产品多样化,有些产品由贫内存系统构成,另一些产品则用富内存系统构成。在贫内存系统上实现较为简单的图形功能,富内存系统上则实现复杂的图形功能。现有的图形系统,无法同时满足富内存和贫内存系统,将迫使企业使用和维护两个不同的图形系统,使用两种完全不同的方法开发产品,导致代码不能共享。开发两类产品的人员需要的技能完全不同,导致不能自由流动。djygui将破解这个问题,使得企业不同档次的产品,可以用相同的方法开发,维护同一套系统即可,代码可以共享,开发人员可以自由流动。
[0010]设计使用了窗口缓存的图形界面,将可以避免编写重绘代码。绘制操作一旦完成,窗口移动、更改重叠顺序等操作,引发的重绘操作,均由图形内核直接完成,大大简化了编程过程,提高了软件生产率。
【专利附图】

【附图说明】
[0011]下面结合附图和实施例对本发明进一步说明。
[0012]图1是创建窗口的过程。
[0013]图2是窗口绘制过程。
[0014]图3是窗口重绘过程。
【具体实施方式】
[0015]本发明已经被应用于都江堰操作系统(简称djyos)的图形系统中,用于构建djyos的图形环境。应用本发明,程序员可以根据目标计算机系统的内存资源状况,以及显示界面本身是否需要实现复杂的功能,灵活选择是否使用窗口缓冲区。使用窗口缓存时,由于重绘操作完全由内核执行,大大简化了编程工作量,提高运行效率;不使用窗口缓存,则可使窗口系统运行在内存非常贫乏的计算机系统上,有利于减小设备功耗、体积、成本。
[0016]如图1所示,应用程序需要创建窗口时,就调用操作系统提供的API函数,该函数向图形系统发出创建窗口的请求。应用程序发出请求时,通过函数的参数,设定待创建的窗口是带窗口缓存的,还是不带窗口缓存的。图形系统接收到这个请求后,执行创建窗口的过程。首先,图形内核会判断用户时要创建带缓存的窗口,还是无缓存的窗口。如果要创建带缓存的窗口,图形内核将分配一块与窗口大小相适应的内存作为缓存,否则,创建一个不带缓存的窗口。
[0017]窗口创建后,应用程序就可以在该窗口上执行各种绘图操作。如图2所示,应用程序需要在窗口上绘制图形时,就调用操作系统提供的相关绘图API函数,发出绘制命令,由图形内核执行绘制操作。如果绘制的目标窗口是带缓存的窗口,则除了将图形绘制在窗口的可视域外,还要将图形绘制在窗口缓存上;如果目标窗口是无缓存窗口,则只绘制在窗口可视域上。这样,在带缓存的窗口上,窗口内的所有显示内容均已经保存在缓存中,窗口移动或改变重叠顺序,导致新增可视域时,图形内核直接从缓存中取出新增可视域内的图象,绘制到显示器上即可,不需要通知应用程序执行重绘。
[0018]如图3所示,窗口移动、窗口间重叠关系改变、新建或删除窗口等操作,都会导致窗口可视域改变。有些窗口可能会出现新增可视域,即原来不可见的部分变成可见。djygui中,对于有缓存的窗口,由于需要绘制的内容已经保存在由内核提供的缓存中,图形内核直接从缓存中取出新增可视域对应的图像,绘制到新增可视域中;对于无缓存的窗口,则发出消息,通知应用程序执行重绘操作。
【权利要求】
1.一种计算机图形内核窗口缓存技术,其特征是:计算机图形内核中,每个窗口允许用户选择是否在内核中使用缓存。
2.如权利要求1所述的方法,其特征是:使用了缓存的窗口,当窗口可视区域发生变化而导致出现新增可视域时,由图形内核完成重绘窗口新增可视域的操作。
3.如权利要求1所述的方法,其特征是:未使用缓存的窗口,当窗口可视区域发生变化而导致出现新增可视域时,由图形内核发送消息,通知应用程序重新绘制新增可视域。
【文档编号】G06F9/44GK103530101SQ201210231805
【公开日】2014年1月22日 申请日期:2012年7月5日 优先权日:2012年7月5日
【发明者】罗侍田 申请人:罗侍田
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1