CN108469971A - 一种提升gui窗口切换和移动效率的方法 - Google Patents
一种提升gui窗口切换和移动效率的方法 Download PDFInfo
- Publication number
- CN108469971A CN108469971A CN201710089356.0A CN201710089356A CN108469971A CN 108469971 A CN108469971 A CN 108469971A CN 201710089356 A CN201710089356 A CN 201710089356A CN 108469971 A CN108469971 A CN 108469971A
- Authority
- CN
- China
- Prior art keywords
- window
- domain
- region
- clip
- paste
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Digital Computer Display Output (AREA)
Abstract
本发明涉及图形用户界面技术领域,提出了一种提高GUI窗口切换和移动效率的方法。在基于窗口系统与消息机制的GUI系统中,窗口的绘图操作会被限定在其剪贴域内进行,剪贴域是窗口正常显示的保障。在进行窗口切换和移动操作时,窗口的位置、大小或z序会发生变化,其剪贴域也需要重新计算。按传统的方法,计算某一窗口的剪贴域,要遍历zorder链上所有位于该窗口上层的窗口,用该窗口的原始区域减去上层窗口的区域,得到该窗口的剪贴域,整个过程完全由软件完成。采用本发明的方法,剪贴域计算中最复杂的算法由硬件来完成,软件只需要设置必要的参数给硬件,然后等待运算结果即可,等待过程中CPU可以执行其他任务。采用本发明的方法能大大提高窗口切换和移动的效率,同时也减轻了CPU的运算负担,提高了显示效率。
Description
技术领域
本发明涉及图形用户界面技术领域,特别涉及图形用户界面的窗口切换和移动效率。
背景技术
GUI即图形用户界面(Graphical User Interfaces),指以图形方式显示的计算机用户界面。PC和嵌入式领域广泛使用了一种基于窗口系统与消息机制的GUI,在这种GUI框架中,窗口系统负责用户界面的显示,消息机制负责用户输入事件的响应。窗口管理是其中一个重要部分,为了使多个窗口在一个显示屏上正确地显示,需要建立一套规则,为此GUI提供了剪贴域和zorder(z序)的概念。zorder描述窗口在z方向上的排列顺序,系统中所有窗口在z方向上形成一个单项链表,链表头是顶层窗口,链表尾是底层窗口,即桌面窗口。其余窗口则根据z方向上的先后位置,在链表上按序排列。若窗口之间区域有重叠,则在重叠区域内,靠近链表头的窗口会覆盖远离链表头的窗口。由于z序的存在,窗口可能有部分区域被别的窗口覆盖,未被覆盖的部分才能被显示。窗口的剪贴域指窗口内部未被覆盖区域的集合,它们平铺排布,不能相交,且剪贴域中处于水平方向同一排的所有矩形区域等高。所有窗口的剪贴域相加,刚好是整个屏幕区域。
图1中有三个窗口,102为顶层的“命令提示符属性”窗口(简称“属性”窗口),101为“管理员:命令提示符”窗口(简称“管理员”窗口),103为底层的桌面窗口。图2描述了三个窗口的剪贴域,“管理员”窗口的剪贴域为区域201、203和206,“属性”窗口的剪贴域为区域204,桌面窗口的剪贴域为区域202、205、207和208。窗口的绘制被限定在其剪贴域内进行,剪贴域是窗口正确显示的保障。
当用户进行窗口切换和移动时,窗口的位置、大小或z序会发生变化,其剪贴域也需要重新计算。图3是传统的计算窗口(记为窗口A)剪贴域的方法。首先获取窗口A的原始区域,记为region,然后遍历zorder链上的每个窗口,若它位于窗口A的上层(即覆盖窗口A),且与窗口A有重叠区域,则在region中去除重叠的区域。最后得到的region即为窗口A的剪贴域,它可能是由多个矩形区域组成的区域集合。
窗口管理中经常用到两个区域的合并、相减、取交集等操作,比如剪贴域的计算用到了区域相减。图4、图5、图6和图7以区域合并为例,描述了区域操作的一般流程。图4为两个待合并区域的初始状态,其中区域A包含五个子区域(A1、A2、A3、A4、A5),区域B包含三个子区域(B1、B2、B3),它们之间有重叠部分。 图5为第一轮的处理过程,首先将区域A和B划分为不相交区段(501)和相交区段(502),然后对不相交区段进行拆分,对相交区段进行合并。图6包含第一轮的处理结果,即新的区域A1'、A2'、A3'和AB’。 第二轮处理B1、B2的下半段,生成新区域B1'和B2'。第三轮的处理与第一轮类似。最终生成的目的区域如图7所示,它由11个子区域组成。
从上面的介绍来看,剪贴域的计算和区域操作的算法比较复杂,运算量大,且它们在GUI中又会频繁用到。传统的做法都是由软件来计算,这在CPU运算能力低的平台,容易成为性能瓶颈,导致显示帧率和效果受影响。
发明内容
为了解决传统方法对窗口剪贴域的计算和区域操作效率低的问题,本发明提出了一种利用硬件来计算窗口剪贴域的方法,能更快地计算窗口剪贴域,提升窗口切换和移动的效率。
本发明要求处理的目标系统满足以下条件:(1)系统使用了基于窗口系统和消息机制的图形用户界面;(2)硬件包含四个寄存器,输入寄存器用于存放输入信息的起始物理地址,输出寄存器用于存放输出信息的起始物理地址,控制寄存器用于开启运算,中断寄存器用于计算完成或出错时返回中断状态信息。
本发明解决其技术问题所采用的技术方案是:首先分配两块物理地址连续的内存,分别称为输入buffer和输出buffer。软件将所有窗口的大小、位置以及z序等必要信息按照一定的格式,填写到输入buffer;然后将输入buffer的起始地址设置给输入寄存器;最后操作控制寄存器,开启硬件运算。硬件从输入buffer获取到参数,调用运算模块进行计算,完成后将结果保存到输出buffer中,并触发中断。软件获取到中断后,从输出buffer中取走结果,得到窗口的剪贴域数据,然后继续窗口切换或移动的后续流程。
本发明的有益效果是:采用硬件来计算窗口剪贴域和进行底层区域操作,大大提升了窗口切换和移动的效率,同时也降低了CPU的负载率。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是基于窗口系统和消息机制GUI的窗口排布示意图。
图2是窗口的剪贴域分布示意图。
图3是传统方法计算窗口剪贴域的流程图。
图4是两个待合并的剪贴域的初始状态图。
图5是两个剪贴域合并的第一轮处理中,相交区段和不相交区段的示意图。
图6是两个剪贴域合并的第一轮处理结果示意图。
图7是两个剪贴域合并的最终结果示意图。
图8是存放窗口的大小、位置等信息的输入buffer的数据结构图。
图9是存放窗口的剪贴域信息的输出buffer的数据结构图。
图10是采用本发明的方法计算窗口剪贴域的流程图。
具体实施方式
本发明的实施方式如图10所示,流程图左边的一列为软件完成部分,右边的一列为硬件完成部分。首先分配输入buffer和输出buffer,然后执行流程。
1001,计算窗口个数,以及每个窗口的位置、大小和zorder信息;
1002,将1001计算的信息按照指定格式填写到输入buffer,并将输入buffer的起始地址写入输入寄存器;
1003,操作控制寄存器,开启硬件运算;
1004,等待硬件运算完成;
1005,硬件解析输入buffer,得到窗口位置、大小和zorder信息;
1006,硬件执行运算逻辑;
1007,若运算未完成,则继续运算;
1008,运算完成,硬件将结果写入输出buffer,并触发中断;
1009,软件获取到中断后,从输出buffer中取走输出信息;
1010,解析输出信息,得到窗口剪贴域数据,流程结束。
根据本发明的实施例,步骤1002的输入buffer格式如图8所示。
801,输入buffer的起始地址,记为memory_in_start。该地址存放着两个变量,窗口个数指系统中窗口的个数,待求窗口索引指待求剪贴域的窗口的z序索引,两个变量分别占两个字节;
802,memory_in_start向下偏移4字节的地址。该地址存放着两个变量,窗口一的x轴位置指z序上第一个窗口(顶层窗口)左上角的x轴坐标,窗口一的y轴位置指顶层窗口左上角的y轴坐标,两个变量分别占两个字节;
803,memory_in_start向下偏移8字节的地址。该地址存放着两个变量,窗口一宽度指顶层窗口的宽度,窗口一高度指顶层窗口的高度,分别占两个字节;
804,memory_in_start向下偏移12字节的地址。该地址存放着两个变量,窗口二的x轴位置指z序上第二个窗口左上角的x轴坐标,窗口二的y轴位置指z序上第二个窗口左上角的y轴坐标;
805,memory_in_start向下偏移16字节的地址。该地址存放着两个变量,窗口二宽度指z序上第二个窗口的宽度,窗口二高度指z序上第二个窗口的高度。
根据本发明的实施例,步骤1008的输出buffer格式如图9所示。
901,输出buffer的起始地址,记为memory_out_start。该地址存放着一个变量,剪贴域包含的区域个数指待求窗口的剪贴域中区域的个数,占用四个字节;
902,memory_out_start向下偏移4字节的地址。该地址存放着两个变量,区域一的x轴位置指第一个区域左上角的x轴坐标,区域一的y轴位置指第一个区域左上角的y轴坐标,两个变量分别占两个字节;
903,memory_out_start向下偏移8字节的地址。该地址存放着两个变量,区域一的宽度指第一个区域的宽度,区域一的高度指第一个区域的高度,分别占两个字节;
904,memory_out_start向下偏移12字节的地址。该地址存放着两个变量,区域二的x轴位置指第二个区域左上角的x轴坐标,区域二的y轴位置指第二个区域左上角的y轴坐标,分别占两个字节;
905,memory_out_start向下偏移16字节的地址。该地址存放着两个变量,区域二宽度指第二个区域的宽度,区域二高度指第二个区域的高度,分别占两个字节。
Claims (4)
1.一种提升GUI窗口切换和移动效率的方法,其特征在于,将剪贴域计算的算法部分由硬件来完成,软件只需要配置输入buffer,操作硬件寄存器,从输出buffer获取运算结果。
2.根据权利要求1所述的方法,其特征在于,需要四个寄存器,输入寄存器存放输入信息的起始物理地址,输出寄存器存放输出信息的起始物理地址,控制寄存器用于开启运算,中断寄存器用于计算完成或出错时返回中断状态信息。
3.根据权利要求1所述的方法,其特征在于,输入buffer内容包含窗口个数,待求剪贴域的窗口的索引,所有窗口的大小、位置以及zorder信息;输出buffer内容包含窗口剪贴域中区域的个数,每个区域的位置、大小信息。
4.根据权利要求1所述的方法,其特征在于,输入buffer和输出buffer都是物理连续的内存空间,由软件在系统初始化时分配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710089356.0A CN108469971A (zh) | 2017-02-20 | 2017-02-20 | 一种提升gui窗口切换和移动效率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710089356.0A CN108469971A (zh) | 2017-02-20 | 2017-02-20 | 一种提升gui窗口切换和移动效率的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108469971A true CN108469971A (zh) | 2018-08-31 |
Family
ID=63266606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710089356.0A Pending CN108469971A (zh) | 2017-02-20 | 2017-02-20 | 一种提升gui窗口切换和移动效率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108469971A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667123A (zh) * | 2009-09-24 | 2010-03-10 | 中兴通讯股份有限公司 | 一种不规则窗口实现方法及移动手持设备 |
CN104142758A (zh) * | 2014-08-13 | 2014-11-12 | 福建星网视易信息系统有限公司 | 一种嵌入式窗口管理方法及装置 |
-
2017
- 2017-02-20 CN CN201710089356.0A patent/CN108469971A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667123A (zh) * | 2009-09-24 | 2010-03-10 | 中兴通讯股份有限公司 | 一种不规则窗口实现方法及移动手持设备 |
CN104142758A (zh) * | 2014-08-13 | 2014-11-12 | 福建星网视易信息系统有限公司 | 一种嵌入式窗口管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2584462B1 (en) | Method of rendering a user interface | |
US8756044B2 (en) | Graphical partitioning for parallel execution of executable block diagram models | |
US20110252426A1 (en) | Processing batch transactions | |
TWI592860B (zh) | 基於觸控的圖形化元件之選擇 | |
CN112558841B (zh) | 一种应用图标管理方法、计算设备及可读存储介质 | |
WO2019019702A1 (zh) | 算法的生成方法、装置、终端设备及存储介质 | |
US12039361B1 (en) | Methods and apparatuses for executing tasks, storage mediums, and electronic devices | |
CN115079916B (zh) | 可视化集成编排画布绘制方法、系统、终端设备及介质 | |
JP2005050208A (ja) | マルチタスクシステムにおけるメモリ管理方式およびタスク制御装置 | |
CN109254770A (zh) | 图形化编程平台下的自定义按钮样式的方法及电子设备 | |
WO2024198748A1 (zh) | 数据处理方法、系统、芯片及终端 | |
CN107391283A (zh) | 一种消息处理方法及装置 | |
CN108469971A (zh) | 一种提升gui窗口切换和移动效率的方法 | |
JPS62192820A (ja) | マン・マシン・インタフェイス管理方式 | |
CN113448582A (zh) | 一种窗口显示方法、计算设备及存储介质 | |
JPS60225943A (ja) | 例外割込み処理方式 | |
WO2013160963A1 (ja) | 文字描画装置および文字描画方法 | |
WO2019019757A1 (zh) | 视图展示方法及装置、存储器及用户终端 | |
CN114492819A (zh) | 量子计算云平台中模拟机和真机分流实验任务的实现方法 | |
CN107621970A (zh) | 一种异构cpu的虚拟机迁移方法和装置 | |
US10176548B2 (en) | Graphics context scheduling based on flip queue management | |
JP2003122410A (ja) | コントローラの演算実行方法 | |
JPS63120331A (ja) | ウインドウ開設制御方式 | |
JPH01283640A (ja) | データ駆動型制御方法 | |
JPS62295147A (ja) | 仮想計算機システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180831 |
|
RJ01 | Rejection of invention patent application after publication |