CN103530101A - 一种计算机图形内核窗口缓存技术 - Google Patents
一种计算机图形内核窗口缓存技术 Download PDFInfo
- Publication number
- CN103530101A CN103530101A CN201210231805.8A CN201210231805A CN103530101A CN 103530101 A CN103530101 A CN 103530101A CN 201210231805 A CN201210231805 A CN 201210231805A CN 103530101 A CN103530101 A CN 103530101A
- Authority
- CN
- China
- Prior art keywords
- window
- kernel
- buffer memory
- caching
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
一种计算机图形内核窗口缓存技术,在图形内核中,结合窗口缓存与非缓存技术,程序员可以根据目标计算机系统的内存资源状况,以及显示界面本身是否需要实现复杂的功能,灵活选择是否使用窗口缓冲区。使用窗口缓存时,由于重绘操作完全由内核执行,大大简化了编程工作量,提高运行效率;不使用窗口缓存,则可使窗口系统运行在内存非常贫乏的计算机系统上,有利于减小设备功耗、体积、成本。
Description
所属技术领域
本发明涉及一种计算机图形用户界面设计技术,提出一种新的、在图形内核中使用窗口缓冲区的方法。
背景技术
目前,公知的图形用户界面设计中,图形内核提供窗口管理,包括创建和删除窗口、窗口移动、窗口删除、改变窗口尺寸等操作。由用户程序负责窗口内的图形绘制,图形系统提供绘制函数,方便应用程序绘制,但图形系统并不管理窗口里面绘制的内容。在多窗口的软件设计中,由于窗口可能互相重叠,窗口可能部分或全部被其他窗口遮盖。应用程序在窗口绘制内容后,当发生创建窗口、移动窗口、改变重叠顺序等操作时,会使某些窗口的部分或全部区域由可见不可见,这些部分所显示的内容,也将丢失;当这些丢失了内容的窗口区域重新变得可见时,窗口管理系统将发送绘制消息给应用程序,由应用程序重绘这些区域。一个窗口呈现的内容,是所有历史绘制操作合并的结果,应用程序要重绘这些内容,有两种方法:一是记住合成被重绘区域当前内容的全部历史绘制操作,在重绘区域把这些绘制操作全部重新执行一遍;二是使用缓冲区把窗口所显示的内容全部备份起来,所有绘制操作,往窗口绘制的同时,还必须往缓冲区绘制,在需要重绘的时候,就从备份区域把重绘区域的内容绘制到窗口中。其中重绘区域可能是由许多小区域组成的复杂区域,应用程序判断哪些区域须重绘并重绘这些区域,也是一个比较复杂的过程。记住历史操作,是一个复杂、繁琐的过程;使用备份缓冲区,所有绘制操作都要执行两遍,效率很低。
公知的图形系统中,通常会使用帧缓冲技术,即把待显示的内容先写到帧缓存上,然后再从帧缓存转移到显示器中。帧缓存技术有利于实现复杂的图形功能,以及消除或减少显示刷新过程中的屏幕闪烁,不利的一面是,缓存需要使用大量的内存,例如一个640*480分辨率的TFT的彩色显示器,帧缓存需要超过600KB内存。因此,只有具有丰富内存的计算机系统(下称富内存系统)才可以使用这样的图形系统。而有些小型嵌入式系统的内存很少(下称贫内存系统),无法提供帧缓冲所需的内存,而无法使用这样的图形系统。
发明内容
本发明设计了窗口缓冲技术,可用于设计多窗口图形界面,对于任意一个窗口,内核允许用户选择是否使用缓存。
对于使用了缓存的窗口,应用程序的所有绘制操作,窗口的可见部分将直接绘制在显示器上。同时,该窗口的可见和不可见部分,均缓存在由图形内核管理的缓存中。当窗口的部分或全部由可见变为不可见时,因为窗口的全部内容已经被内核提供的缓存“记住”,所以被遮挡的部分并不会“丢失”。当这些区域重新变得可见时,图形内核直接从缓存中取出内容,并绘制到显示器上。重绘操作已经由图形内核完成,并不需要通知应用程序重绘,应用程序的设计方法将大大简化。
对于没有使用缓存的窗口,应用程序针对某窗口的绘制操作,将直接将该窗口的可见部分绘制在显示器上,不再缓存。如果发生移动窗口、改变重叠顺序等操作,使窗口的不可见部分变为可见时,图形内核将给应用程序发消息,通知应用程序更新显示。
图形界面设计者,可以针对界面特点,可以对部分或全部窗口选择使用缓存,以实现复杂的图形功能;也可以对部分或全部窗口选择不使用缓存,以节省内存。
本发明的效果是:
同一个图形系统,将可以适合不同层次的产品开发。有些企业,产品多样化,有些产品由贫内存系统构成,另一些产品则用富内存系统构成。在贫内存系统上实现较为简单的图形功能,富内存系统上则实现复杂的图形功能。现有的图形系统,无法同时满足富内存和贫内存系统,将迫使企业使用和维护两个不同的图形系统,使用两种完全不同的方法开发产品,导致代码不能共享。开发两类产品的人员需要的技能完全不同,导致不能自由流动。djygui将破解这个问题,使得企业不同档次的产品,可以用相同的方法开发,维护同一套系统即可,代码可以共享,开发人员可以自由流动。
设计使用了窗口缓存的图形界面,将可以避免编写重绘代码。绘制操作一旦完成,窗口移动、更改重叠顺序等操作,引发的重绘操作,均由图形内核直接完成,大大简化了编程过程,提高了软件生产率。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是创建窗口的过程。
图2是窗口绘制过程。
图3是窗口重绘过程。
具体实施方式
本发明已经被应用于都江堰操作系统(简称djyos)的图形系统中,用于构建djyos的图形环境。应用本发明,程序员可以根据目标计算机系统的内存资源状况,以及显示界面本身是否需要实现复杂的功能,灵活选择是否使用窗口缓冲区。使用窗口缓存时,由于重绘操作完全由内核执行,大大简化了编程工作量,提高运行效率;不使用窗口缓存,则可使窗口系统运行在内存非常贫乏的计算机系统上,有利于减小设备功耗、体积、成本。
如图1所示,应用程序需要创建窗口时,就调用操作系统提供的API函数,该函数向图形系统发出创建窗口的请求。应用程序发出请求时,通过函数的参数,设定待创建的窗口是带窗口缓存的,还是不带窗口缓存的。图形系统接收到这个请求后,执行创建窗口的过程。首先,图形内核会判断用户时要创建带缓存的窗口,还是无缓存的窗口。如果要创建带缓存的窗口,图形内核将分配一块与窗口大小相适应的内存作为缓存,否则,创建一个不带缓存的窗口。
窗口创建后,应用程序就可以在该窗口上执行各种绘图操作。如图2所示,应用程序需要在窗口上绘制图形时,就调用操作系统提供的相关绘图API函数,发出绘制命令,由图形内核执行绘制操作。如果绘制的目标窗口是带缓存的窗口,则除了将图形绘制在窗口的可视域外,还要将图形绘制在窗口缓存上;如果目标窗口是无缓存窗口,则只绘制在窗口可视域上。这样,在带缓存的窗口上,窗口内的所有显示内容均已经保存在缓存中,窗口移动或改变重叠顺序,导致新增可视域时,图形内核直接从缓存中取出新增可视域内的图象,绘制到显示器上即可,不需要通知应用程序执行重绘。
如图3所示,窗口移动、窗口间重叠关系改变、新建或删除窗口等操作,都会导致窗口可视域改变。有些窗口可能会出现新增可视域,即原来不可见的部分变成可见。djygui中,对于有缓存的窗口,由于需要绘制的内容已经保存在由内核提供的缓存中,图形内核直接从缓存中取出新增可视域对应的图像,绘制到新增可视域中;对于无缓存的窗口,则发出消息,通知应用程序执行重绘操作。
Claims (3)
1.一种计算机图形内核窗口缓存技术,其特征是:计算机图形内核中,每个窗口允许用户选择是否在内核中使用缓存。
2.如权利要求1所述的方法,其特征是:使用了缓存的窗口,当窗口可视区域发生变化而导致出现新增可视域时,由图形内核完成重绘窗口新增可视域的操作。
3.如权利要求1所述的方法,其特征是:未使用缓存的窗口,当窗口可视区域发生变化而导致出现新增可视域时,由图形内核发送消息,通知应用程序重新绘制新增可视域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210231805.8A CN103530101A (zh) | 2012-07-05 | 2012-07-05 | 一种计算机图形内核窗口缓存技术 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210231805.8A CN103530101A (zh) | 2012-07-05 | 2012-07-05 | 一种计算机图形内核窗口缓存技术 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103530101A true CN103530101A (zh) | 2014-01-22 |
Family
ID=49932147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210231805.8A Pending CN103530101A (zh) | 2012-07-05 | 2012-07-05 | 一种计算机图形内核窗口缓存技术 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103530101A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101344849A (zh) * | 2008-08-22 | 2009-01-14 | 四川长虹电器股份有限公司 | 嵌入式gui环境下实现输入法叠加的方法 |
CN101667123A (zh) * | 2009-09-24 | 2010-03-10 | 中兴通讯股份有限公司 | 一种不规则窗口实现方法及移动手持设备 |
CN101937317A (zh) * | 2010-09-26 | 2011-01-05 | 北京握奇数据系统有限公司 | 一种窗口管理方法及终端 |
CN102196034A (zh) * | 2010-03-09 | 2011-09-21 | 微软公司 | 移除遮挡的应用共享 |
-
2012
- 2012-07-05 CN CN201210231805.8A patent/CN103530101A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101344849A (zh) * | 2008-08-22 | 2009-01-14 | 四川长虹电器股份有限公司 | 嵌入式gui环境下实现输入法叠加的方法 |
CN101667123A (zh) * | 2009-09-24 | 2010-03-10 | 中兴通讯股份有限公司 | 一种不规则窗口实现方法及移动手持设备 |
CN102196034A (zh) * | 2010-03-09 | 2011-09-21 | 微软公司 | 移除遮挡的应用共享 |
CN101937317A (zh) * | 2010-09-26 | 2011-01-05 | 北京握奇数据系统有限公司 | 一种窗口管理方法及终端 |
Non-Patent Citations (2)
Title |
---|
伪君: "在刷新窗口时经常要调用重绘函数", 《HTTP://WWW.CNBLOGS.COM/MYSUNNYDAY/ARCHIVE/2011/08/04/2127209.HTML》 * |
匿名: "HTML5缓存:cache manifest", 《HTTP://KB.CNBLOGS.COM/PAGE/76808/》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112269604B (zh) | 在Linux上兼容运行Android应用的窗口交互方法及装置 | |
US20130024812A1 (en) | Foreground/background assortment of hidden windows | |
JP6273354B2 (ja) | 複数のディスプレイ用のユーザインタフェース要素 | |
US9436385B2 (en) | Invocation control over keyboard user interface | |
US9049213B2 (en) | Cross-environment user interface mirroring using remote rendering | |
EP2622463B1 (en) | Instant remote rendering | |
AU2014296339B2 (en) | Multi-monitor full screen mode in a windowing environment | |
US7577918B2 (en) | Visual expression of a state of an application window | |
US9977683B2 (en) | De-coupling user interface software object input from output | |
US9141264B2 (en) | Variable refresh rates for portions of shared screens | |
US20130111396A1 (en) | Exposing inertial snap points | |
CN104123110A (zh) | 一种Android双屏异像显示方法 | |
US10453236B1 (en) | Dynamic mesh generation to minimize fillrate utilization | |
WO1996013026A1 (en) | Object-oriented system for servicing windows | |
WO2016095728A1 (zh) | 一种多窗口显示方法及装置 | |
CA2870298A1 (en) | Remoting graphical components through a tiered remote access architecture | |
CN111651079A (zh) | 书写笔迹显示方法、装置、设备及计算机存储介质 | |
CN105528217A (zh) | 一种基于显示列表的局部刷新方法及装置 | |
US20140344729A1 (en) | Primitive-based composition | |
CN102541554A (zh) | 一种输入框动态透明显示特效实现方法 | |
CN106325657A (zh) | 屏幕投影显示的控制方法、装置及移动终端 | |
EP2833260A1 (en) | Method and system for graphical user interface layout generation, computer program product | |
CN105653246A (zh) | 一种在Android系统中横向列表的实现方法及装置 | |
US20190080667A1 (en) | Android platform based display device and image display method thereof | |
US8819568B1 (en) | Electronic paper display updates |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
DD01 | Delivery of document by public notice | ||
DD01 | Delivery of document by public notice |
Addressee: Luo Shitian Document name: the First Notification of an Office Action |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140122 |