专利名称:图形用户接口中生成全局命中测试数据结构的方法和系统的制作方法
技术领域:
本发明一般涉及数据处理系统的图形用户接口中的方法和系统,具体地涉及在数据处理系统的图形用户接口中生成不规则形状窗口的全局命中测试数据结构的方法和系统。再具体一点说,本发明涉及在数据处理系统图形用户接口中使用不规则形状窗口的压缩扫描线生成全局命中测试数据结构以便对不规则形状窗口进行增强的定位命中测试和区域限位的方法和系统。
个人计算机的用户接口规定了用户如何与计算机通信。此通信链路规定了如何使用应用程序,任务如何切换,及如何进行选择。许多现代计算机提供一个图形用户接口(GUI)以向用户提供此通信链路。图形用户接口是一类显示格式,允许用户通过指向屏幕上的图形表示和菜单项目表以选择命令、启动程序及观看文件和其它选项的列表。通常可用键盘或鼠标激活选择操作。用户使用鼠标指向显示器上的一个由小图像(图标)所代表的物体,即可控制计算机而不必知道任何复杂的命令。图形用户接口控制的鼠标允许用户指向代表程序和数据的图标及将这些图标组合至窗口帧中。
窗口环境是一种向用户提供称为窗口的屏幕的特别勾划的区域的操作系统或核心。每个窗口可独立操作,犹如它是一个虚拟显示装置。窗口环境通常允许将窗口重新定尺寸和将窗口沿显示器移动。MacintoshFinder,MS Windows和OS/2 Presentation Manager都是窗口环境的例子。在基于窗口的程序中,屏幕可划分为数个窗口,每个窗口具有它自己的边界及可以包含不同文件。每个窗口也可包含它自己的菜单或其它控制命令,及用户可以随意将个别窗口放大或缩小。在有些程序中,窗口在屏幕上一个挨着一个开放着;在其它程序中,开放窗口可彼此重叠。
生成和控制窗口环境的窗口子系统传统上将窗口作为矩形存储和显示。现有显示器中具体窗口的位置由屏幕上一个起始点和窗口矩形的尺寸所规定。因此,在每一个已知的窗口子系统中窗口必须规定为矩形。
当用户将一个定位器或指示器在通常称为“台面”的显示器上移动时,它由一个窗口移至下一个窗口。在大多数计算机中,操作系统提供一个定位命中测试机制,用于确定该指针当前位于哪个窗口上。此定位命中测试是连续地完成的。当窗口被命中时,如定位命中测试所标志的,窗口系统向该窗口发送一个定位信号或鼠标事件信号以标志鼠标当前正指向该窗口。拥有所标志窗口的应用程序即有机会向用户提供反馈。这类反馈的例子是图形应用程序将指示器显示为十字线,编辑程序将它变为文本指示器,而还有一些应用程序显示一块文字以描述用户在当前位置按下鼠标键后会发生的操作。当用户在此窗口具体区域上按下鼠标键后,鼠标事件也被送至当前被鼠标命中的窗口以允许拥有该窗口的应用程序完成所要求的功能。
由于窗口可能重叠,窗口子系统生成一个深度表,用于标志每个显示的窗口在所谓窗口Z顺序中的相对“Z位置”。深度表为窗口提供第三维数以标志哪个窗口可在其它窗口之上和之下显示,从而允许所显示窗口重叠和限位。由于位于其它窗口之上的应用程序和/或窗口遮盖(限住)位于其下的窗口的一部或全部,定位命中测试就复杂得多。现在在显示器的具体区域内可以放置不止一个窗口,所以命中测试代码必须对深度表进行自上而下的Z顺序搜索以寻找在此区域中第一个被命中的窗口。当台面由大量窗口遮盖时,此缓慢线性搜索显著地增加了完成定位命中测试所需时间。
当应用程序在它自己窗口内画图时出现非常相似的问题。图形一定被位于其上的窗口所限位。操作系统的图形子系统使用限位区域表以完成此任务。限位区域在每个显示的窗口内规定必须限位以容纳重叠窗口的矩形区域。
虽然有些接口可以显示不规则形状窗口,但这些窗口仍在显示器上规定在矩形形状内。该不规则形状窗口“拥有”当前显示器上此一矩形区域。因此,当指示由不规则形状窗口覆盖的窗口的点位于由不规则形状窗口所拥有的矩形区域内而又实际上不在不规则形状窗口内时,将出现问题。由于定位命中测试通过矩形区域规定不规则形状窗口,该不规则形状窗口而不是位于其下本应选择的窗口被命中。
结果是,由于台面的和显示应用程序过程的演变特征,使用常规技术来正确地和准确地进行命中测试和区域限位而实施不规则形状窗口时,将占用大量处理器时间。因此希望提供一个窗口环境,用于对不规则形状窗口进行高速命中测试和区域限位。此窗口环境能为不规则形状窗口提供一种执行命中测试和窗口限位的方法和系统而没有与成千上百次矩形限位相关连的使人厌倦的开销,也不必迫使拥有不规则形状窗口的应用程序自己去解决区域限位的问题。
根据本发明,提供了一种在数据处理系统的窗口环境中对窗口实行增强定位命中测试和区域限位的方法和系统。为执行命中测试和区域限位,生成一个全局命中测试数据结构,该数据结构具有在数据处理系统中代表窗口环境显示器的众多扫描线的众多压缩扫描线数据集,其中众多压缩扫描线数据集中的每套压缩扫描线数据集包含显示器的一条相关连扫描线中一个或更多个向量及与用于描述在一个或更多个跨长的窗口拥有权的每个向量相关连的一个窗口标识符,其中一个向量标志相关连扫描线的一个跨长,及每个窗口标识符标志拥有由与跨长相关连的向量所标志的跨长的窗口,及其中一个跨长是扫描线的一个或更多个象元。窗口的增强定位命中测试通过存取用于规定所选象元的窗口拥有权的全局命中测试数据结构中的压缩扫描线数据集,确定包含所选象元的所存取压缩扫描线数据集的向量,及检索与所确定向量相关连的窗口标识符来标志拥有显示的所选象元的窗口,其中所检索窗口标识符是所选象元的增强定位命中测试的结果。窗口的增强区域限位方法通过下法完成区域限位生成一个具有众多象元的位映象图像,其中每个象元对应于显示器中一个象元;为位映象图像中的每个象元存取具有包含其相应象元的向量的扫描线数据集;及确定与包含相应象元的向量相关连的窗口标识符是否为所选窗口标识符。然后当确定窗口标识符不是所选窗口标识符时为位映象图像的每个象元将显示器的每个相应象元设置至位映象图像的象元,从而完成区域限位。
在下面详细的书面描述中本发明的上述及附加目的、特征及优点将更为明显。
在所附权利要求书中提出本发明的新特征和可信特性。当结合附图参照阅读下面阐述性实施例的详细叙述后,能很好地理解本发明和最佳使用模式及它们的进一步目的和优点,附图中
图1阐述可用于实现本发明的数据处理系统的最佳实施例;图2描述根据本发明最佳实施例的数据处理系统中系统单元主要部件的框图;图3描述根据本发明最佳实施例的数据处理系统的操作系统所用标准图形用户接口;图4显示根据本发明最佳实施例的数据处理系统的窗口环境中用于显示不规则形状窗口的台面;图5显示根据本发明最佳实施例的窗口环境中不规则形状窗口的增强定位命中测试方法的流程图;图6显示根据本发明最佳实施例的窗口环境中不规则形状窗口的增强区域限位方法的流程图;以及图7显示根据本发明最佳实施例用于生成全局命中测试数据结构的过程的流程图。
现参照附图,具体地参照图1,其中阐述了可用于实现本发明的数据处理系统最佳实施例。如所阐述的,数据处理系统10包括系统单元12、显示装置14、键盘16、鼠标18和打印机20。如技术中所熟知的,系统单元12自诸如键盘16、鼠标18或网络/通信接口(未示出)那样的输入装置接收数据。鼠标18最好与图形用户接口(GUI)一起使用,其中通过选择和移动显示装置14中显示的相关图形物体,可用鼠标18操纵包括数据处理系统部件和应用程序在内的系统对象。为支持数据的存储和检索,系统单元12进一步包括软盘驱动器22、硬盘驱动器23和CD-ROM驱动器24,它们全都以大家熟知的方式连至系统单元12。熟悉技术的人知道其它常规部件也可连至系统单元以便与其交互作用。
现参照图2,其中描述了数据处理系统10中系统单元12主要部件的框图。如所阐述的,系统单元12包括一个执行软件指令的中央处理单元(CPU)26。虽然任何合适的微处理器都可用作CPU 26,但CPU 26最好是可自IBM Microelectronics得到的Power PC微处理器产品之一。另一方案是将可自不少供应商得到的80×86微处理器产品之一用作CPU 26。
在CPU 26之外,一个可选数学协处理器27、高速缓存控制器28和高速缓存30连至一个高速CPU本地总线25。与CPU 26不同,数学协处理器27是一个以较CPU 26更高效率完成数字计算的可选用处理器。高速缓存30包括一个用于存储经常存取的数据和指令的小型高速存储器。高速缓存30的操作由高速缓存控制器28控制,后者保持一分高速缓存30内容目录并执行所选高速缓存相干性协议。
CPU本地总线25连至缓存32以提供CPU本地总线25与系统总线34之间的通信,系统总线34伸展于缓存32与另一缓存36之间。系统总线34连至总线控制和定时单元38和直接存取存储器(DMA)单元40,后者包括中央仲裁器48和DMA控制器41。DMA控制器41支持不涉及CPU 26的存储器存取。直接存取存储器通常用于在RAM 58与一个“智能”的外设例如盘适配器82之间直接传送数据。中央仲裁器48对来自多个外设的DMA请求进行仲裁。如以下将描述的,依靠通过仲裁控制总线42传送的控制信号,中央仲裁器48也可调整对连至微通道总线44的装置的存取。
CPU 26通过存储控制器50自易失性随机存取存储器(RAM)58取出数据和指令及向RAM 58存储数据,该存储控制器50包括存储控制单元52,地址多路转换器54和数据缓存56。存储控制单元52生成便于存储和检索数据的使读和使写信号并包括用于将由CPU 26使用的虚拟地址映射为RAM 58中的物理地址的地址映射装置。如熟悉技术的人所知道的,RAM 58包括众多的当向数据处理系统10供电时用于存储操作系统和应用程序的段块的单个易失性存储模块。软件段块划分为一个或更多个每个包含相同数量虚拟存储地址的虚拟存储页面。当执行软件过程中需要在RAM 58中存储更多虚拟面时,可在盘适配器82控制下将当前不需要的面与存放在例如硬盘驱动器23那样的辅助存储器中的所需面进行交换。
存储控制器50还包括用于选择RAM 58中特定地址的地址多路转换器54及用于将自RAM 58中读出的和要存入RAM 58的数据暂存起来的数据缓存56。存储控制器50另外所提供的存储保护功能将分配给系统过程和用户过程的虚拟地址空间内的每个过程隔离开。因此在用户态下运行的程序只能访问分配给其虚拟地址空间的存储器;除非在不同过程之间的存储器共享得到支持及用户态程序具有合适的存取特权,该用户态程序无权访问其它过程的虚拟地址空间内的存储器。
仍参照图2,缓冲36提供一个系统总线34与诸如微通道总线44之类的可选特征的总线之间的接口。若干I/O槽46连至微通道总线44,用于接纳微通道适配卡,后者可再连至一个I/O装置或存储器。仲裁控制总线42将DMA控制器41和中央仲裁器48连至I/O槽46和盘适配器82。实施微通道体系结构总线仲裁协议后,中央仲裁器48利用扩展卡、控制器和CPU 26调整对微通道总线44的存取。此外,中央仲裁器44在连至微通道总线44的总线主人间仲裁对微通道总线44的拥有权。对总线主人的支持允许在附加一些包含处理器及其支持芯片的总线主人适配器后建立微通道总线44的多处理器配置。
系统总线34通过缓存66连至平面I/O总线68。连至平面I/O总线68的是不同的I/O适配器和其它外设部件,包括显示适配器70、盘适配器82、非易失性RAM 74、时钟72、串行适配器78、定时器80、只读存储器(ROM)86,CD-ROM适配器88、网络适配器85、键盘/鼠标控制器84、调制解调器87和并行适配器76。显示适配器70将来自CPU 26的图形数据译为用于驱动显示装置14的RGB视频信号。决定于运行中的操作系统和应用软件。视频输出信号可包括文本、图形、动画和多媒体视频、盘适配器82控制向硬盘驱动器23和软盘驱动器22的数据存储和自它们中的数据检索。盘适配器82管理诸如将读/写头定位和在驱动器与CPU 26之间进行传送等任务。非易失性RAM 74存储用于描述数据处理系统10的当前配置的系统配置数据。例如,非易失性RAM74包含描述硬盘驱动器23或位于软盘驱动器内的软盘的容量、显示装置14类型、空闲RAM 58数量和当前系统配置的信息。当数据处理系统10断电时这些数据存储在非易失性RAM中。
由CPU 26所执行的应用程序利用时钟72计算时间和日期。串行适配器76通过一个串行端口(未示出)提供一个接至外设的同步或异步串行接口,这有助于数据处理系统10向/自一个串行通信装置传送信息。定时器80所包含的多个周期定时器可用于为数据处理系统10内一系列事件定时。如以上所描述,定时器80是那些直接由一些应用程序尤其是为单线索操作系统环境编写的游戏程序所直接控制的装置中的一个。
ROM 86通常存放当CPU 26在DOS操作系统下运行时用于提供对用户透明的I/O操作的基本输入/输出系统(BIOS)。BIOS还包括通电自检(POST)诊断程序,用于在通电时完成系统设置。例如,POST查询硬件,分配一个BIOS数据区(BDA),构造一个指向ROM 86内中断处理程序的中断向量表,及将系统单元12内的定时器80、时钟72和其它装置初始化。CD-ROM适配器88控制对来自CD-ROM驱动器24和CD-ROM 24A中的数据的检索。
并行适配器76允许系统单元12通过并行端口向例如打印机20那样的外设并行地输出数据。键盘/鼠标控制器84将系统单元12与键盘16和例如鼠标18那样的指示进行接口。这类指示装置通常用于控制一个屏上元件,例如当用户按下鼠标按钮时用于规定指针位置的图形指针。其它指示装置包括图形输入板、触笔、光笔、操纵杆、圆盘、轨迹球、轨迹垫和由IBM以“Track Point”商标出售的指示装置。
最后,系统单元12包括便于在数据处理系统10与其它包括计算机网络的数据处理系统之间进行通信的网络适配器85和调制解调器87。网络适配器85用于将数据处理系统10连至计算机网络,例如连至网络端口的局域网(LAN)。计算机网络支持网络连接上的数据的电子传送。网络也支持分布式处理,它允许数据处理系统10与其它连至网络上的数据处理系统分担任务。调制解调器87对通信线上通信的模拟数据提供由数字形式进行调制和解调为数字形式。例如,调制解调器可用于将数据处理系统10连至一个在线信息服务,例如由Prodigy Services Corporation在服务商标“PRODIGY”下提供的信息服务。这类在线服务提供者所提供的软件和数据可通过调制解调器下载入数据处理系统10。此外,通过调制解调器87的电话通信提供了一种对其它软件源的连接,这些软件源例如服务器、电子记事本、互联网或“环球网”。
如下面所详细描述的,本发明的各方面与可在计算机系统上实施的特定方法或功能有关。本发明的这些方面可实施为用于计算机系统的计算机软件产品。熟悉技术的人容易理解规定本发明功能的计算机程序可用多种形式送至计算机,其中包括以下三种形式,但并不受它们所限(a)永久地存储于不可写存储媒体上的信息(例如计算机内的只读存储装置,如ROM 86或可由诸如CD-ROM驱动器24那样的计算机I/O设备读取的CD-ROM盘);(b)可修改地存储在可写存储媒体上的信息(例如软盘驱动器22内的软盘或硬盘驱动器23);或(c)通过通信媒体传送的信息,例如通过连至网络适配器85的计算机网络或连至调制解调器87的通信线。应该理解,当这类媒体携带体现本发明方法的功能的计算机可读指令时,它们代表本发明的另一类实施例。
现参照图3,其中描述了数据处理系统的操作系统所采用的标准GUI。向用户显示的在显示装置14内显示的背景台面100包括众多用户可选图标102-116。每个图标102-116代表一个应用程序、功能或文件存储区,用户可双击鼠标18的左按钮以方便地选择利用图形指针101。当用户选择图标102-116中的一个时,对应于所选图标的功能被激活及所选图标被增亮。图标102-116中很多图标具有一个相关连的窗口或一串窗口,当图标被选时即显示这些窗口。例如,如图3所示,当选择Windows Programs图标114时,向用户显示窗口118以提供进一步可能的选择(即图标121-130)。
现参照图4,其中显示了根据本发明的一个最佳实施例的在数据处理系统的窗口环境中显示不规则形状窗口的台面150、台面窗口(dsk)150包括一个标准窗口(sw)155和两个不规则形状窗口时钟(clk)160和物体(obj)165。
如图4所示,台面150由众多扫描线生成于显示器上,这些扫描线在图形存储器中由众多扫描线数据集所代表。此例中台面150具有1000条扫描线,其中三条在图4中图形地显示为sl0、sl500和sl900。根据本发明,操作系统在存储器中生成一个全局命中测试数据结构,后者具有代表如本例中台面150的窗口环境的当前显示器上扫描线的众多压缩扫描线数据集。数据结构的每套压缩扫描线数据集包含一个或更多个向量和与每个向量相关连的窗口标识符,后者描述当前显示相关连的扫描线中一个或更多个跨长的窗口拥有权。一个向量标志相关连扫描线的一个跨长及每个窗口标识符标志拥有由其相关连向量所标志的跨长的窗口环境内的窗口。熟悉技术的人知道,跨长是图形图像内所显示象素的长度,通常是水平的。此外,如此处所用的,跨长是扫描线的一个或更多个“象元”,其中一个象元是可由图形指示装置分辨以供选择用的最小数量的象素。
图4中所示当前显示的全局命中测试数据结构包含一千套压缩扫描线数据集。每条扫描线有一套数据集。当前显示的全局命中测试数据结构的三套压缩扫描线数据集的一个例子是sl0=(0,…639,dsk)。
sl500=(0,119,dsk),(120,127,obj),(128,146,dsk),(147,154,obj),(155,380,sw),(381,639,dsk)。
sl900=(0,124,dsk),(125,165,clk),(166,380,sw),(381,639,dsk)。
每套压缩扫描线数据集包含至少一个向量和一个与每个向量相关连的窗口标识符。例如,sl0通过指向自象元0至象元639的整条扫描线的向量<0,639>及用于标志正由台面窗口150所拥有的规定的向量内每个象元的一个窗口标识符(此例中为“ dsk”)描述一个单个跨长。
扫描线sl500的压缩扫描线数据集规定组成扫描线的六个跨长的窗口拥有权。扫描线中第一跨长由向量<0,119>规定(即自象元0至象元119)并由窗口标识符显示为由台面所拥有。扫描线sl500的第二跨长由向量<120,127>规定(即自象元120至象元127)并由窗口标识符显示为由物体165所拥有。扫描线中第三跨长由向量<128,146>规定(即自象元128至象元146)并由窗口标识符显示为由台面窗口150所拥有。扫描线sl500内下一个跨长由向量<147,154>规定(即自象元147至象元154)并由窗口标识符标志为由物体165所拥有。扫描线中第五跨长由向量<155,380>规定(即自象元155至象元380)并由窗口标识符显示为由标准窗口155所拥有。扫描线sl500内最后一个跨长由向量<381,639>规定(即自象元381至象元639)并由窗口标识符标志为由台面150所拥有。
扫描线sl900的压缩扫描线数据集规定组成扫描线的四条跨长的拥有权。扫描线中第一跨长由向量<0,124>规定(即自象元0至象元124)并由窗口标识符显示为由台面的拥有。扫描线sl900的第二跨长由向量<125,165>规定(即自象元125至象元165)并由窗口标识符显示由时钟160所拥有。扫描线中第三跨长由向量<166,380>规定(即自象元166至象元380)并由窗口标识符显示为由标准窗口155所拥有。扫描线sl900中最后一个跨长由向量<381,639>规定(即自象元381至象元639)并由窗口标识符标志为由台面150所拥有。当前显示的每条扫描线以类似方式被压缩和存储于存储器中以形成全局命中测试数据结构。
如将要描述的,本发明的全局命中测试数据结构允许一种方法和系统能用于在数据处理系统的窗口环境中为不规则形状窗口进行增强定位命中测试和区域限位。如所知道的,为生成全局命中测试数据结构,使用运行长度编码压缩技术将显示器的每个窗口的扫描线都存储在缓存中。然后这些缓存为台面按Z顺序分类和分解。接着窗口管理子系统有能力进行增强定位命中测试及视频装置驱动子系统有能力对不规则形状窗口进行增强区域限位测试。因此能知道,任何形状和尺寸的重叠窗口的显示都可由窗口环境在台面上提供而不限于如其它平台中的方边窗口。本发明提供这种可以完成高性能定位命中测试和高性能区域限位测试的独将能力而没有现有技术所带来的性能损失。
现参照图5,其中显示了根据本发明最佳实施例的用于在窗口环境中对不规则形状窗口进行增强定位命中测试的方法的流程图。该方法于步200开始及进入步205以便为数据处理系统中窗口环境的当前显示生成全局命中测试数据结构。该全局命中测试数据结构包括众多生成以代表当前显示的扫描线的压缩扫描线数据集。每套压缩扫描线数据集代表当前显示的一条扫描线并包括扫描线的每个跨长的一个向量和一个与该向量相关连的窗口标识符。该向量标志相关连扫描线的跨长内第一和最后象元,从而标志该跨长。该窗口标识符标志拥有该跨长的窗口。
过程接着进入判断块210以确定用户是否利用一个图形指示装置指向当前显示内一个特定象元或象元区。当用户利用图形指针选择当前显示的一个象元时,过程进入步215以存取规定所选象元拥有权的全局命中测试数据结构内的压缩扫描线数据集。过程进入步220以确定所标志的压缩扫描线数据集中哪一个向量包含所选象元。然后过程进入步225以检索与所确定向量相关连的窗口标识符。所检索的窗口标识符是为所选象元进行增强定位命中测试的结果。然后过程回至判断块210以等待用户将图形指针移至新象元。
将能知道本发明提供一个用于高性能定位命中测试的过程。使用此过程存取全局命中测试数据结构,存取相应的压缩扫描线数据集,将所选象元与扫描线数据集向量比较并将和与所选象元相匹配的向量相关连的窗口柄装载,从而能将一定位置(例如图4中(125x,500y))处的鼠标按键进行分解操作。将能知道此过程比现有技术中按Z顺序将命中测试送至每个窗口直至它们之中的一个接受该命中测试的过程有效得多。在立即显示20或30个窗口的窗口环境中,现有技术定位命中测试所需时间可能比本发明所需时间长20至30倍。
现参照图6,其中显示了根据本发明最佳实施例的用于数据处理系统的窗口环境中不规则形状窗口的增强区域限位的方法的流程图。该过程起始于步230并进入步235以生成用于当前显示的全局命中测试数据结构。
该过程接着进入判断块240并在拥有当前显示内窗口的应用程序生成位映象图像之前一直被保持着。此位映象图像具有众多象元,及这些象元具有一个屏幕位置以使它们对应于当前显示的象元。因此如欲显示整个位映象图像,则位映象图像的每个象元将被输出至当前显示器中相应象元处。在生成位映象图像之后,过程进入判断块245以确定全局命中测试数据结构中位映象图像第一个象元的窗口标识符是否为正显示的应用程序所拥有的窗口。对于位映象图像的每个象元,存取包含该象元的窗口拥有权数据的扫描线数据集。扫描线数据集具有包含当前显示中该象元位置的向量。接着确定与该向量相关连的窗口标识符是否标志正显示该位映象图像的窗口。
如确定结果为否,则过程回至判断块240以等待另一位映象图像的生成。如应用程序的窗口拥有该象元,则显示该象元及过程进入步250以便将显示中相应象元设置至位映象图像象元。判断块252确定是否在步245中测试过位映象的最后象元。如没有,则过程进入步243以选择位映象图像的下一个象元,接着回至步245。如已测试过位映象的最后象元,则过程回至块240以等待应用程序生成另一位映象图像。以此方式,对于位映象图像的每个象元,当已确定应用程序拥有当前显示上的该象元后,该象元即被存储至图形存储器中当前显示的相应象元处。
现参照图7,其中显示了根据本发明最佳实施例的用于生成全局命中测试数据结构的过程的流程图。该过程起始于步255并进入步260为窗口环境中每个窗口生成命中测试数据结构。每个命中测试数据结构只代表相关连窗口的扫描线的每个象元的窗口拥有权。因此,只当显示相关连窗口时,每个命中测试数据结构才代表显示的窗口拥有权。过程接着进入步265以便为命中测试数据结构按Z顺序编辑深度表。如众所周知,在具有重叠窗口的窗口环境中,当前显示器上每个窗口具有一个相对于其它窗口的对应于窗口环境中所有窗口的Z顺序的Z位置。此Z位置为每个窗口提供一个第三维数,从而标志重叠多窗口之间的层次。
接着过程进入步270以确定当前显示每个象元的窗口拥有权。这用下法完成在深度表中按Z顺序存取每个命中测试数据结构以确定每个窗口的位置和当前的Z顺序,当前位于一个象元的具有最高Z顺序的窗口拥有该象元。在步275中过程规定当前显示中所有扫描线的每一个跨长,其中同一个窗口所拥有的一个或更多个象元形成一个跨长。
过程接着进入步280以将所规定的显示扫描线的跨长都压缩为代表窗口环境中当前显示的众多扫描线的众多压缩扫描线数据集。每套压缩扫描线数据集描述当前显示的相关连扫描线中一个或更多个所规定跨长的窗口拥有权。压缩扫描线数据集中的数据包括相关连扫描线每个跨长的一个向量和一个窗口标识符。该向量包括扫描线的跨长中的第一和最后象元,从而标志该跨长。与该向量相关连的窗口标识符标志拥有所标志跨长的窗口。接着过程于步285处结束。
因此众多压缩扫描线数据集形成当前显示的全局命中测试数据结构。该全局命中测试数据结构使用一个包含台面的每条线上每一点的拥有跨长的窗口柄的扫描线数据结构以提供压缩扫描线。对于简单矩形,所存储数据代表扫描线0至窗口高度和列0至窗口宽度。对于更复杂形状窗口,确定整个形状的边界盒以提供窗口的初始点和范围。其次,包含此窗口实际图形每一条扫描线的象元的表被生成。可如现有复杂区域限位码中所做一样地生成此表。使用当前扫描线上自跨长第一象元指向跨长最后象元的简单向量代表该表,从而将命中测试数据结构压缩。如一条或更多条相邻的扫描线具有同一“命中表”,则扫描线可在Y维内压缩以更进一步压缩命中测试数据结构。
作为本发明的例子,可考虑在图4中台面上画出时钟160的过程。应用程序的设备驱动程序存取全局命中测试数据结构以在规定时钟的圆外面的区域上进行限位,扫描线逐条进行限位,并只将窗口位送至图形存储器。如熟悉技术的人所知道的,这种方法比在窗口所不拥有的现有位中进行“异”运算并接着填入边界矩形的方法快得多。当边界矩形大和特定扫描线上命中数量小时,这类过程将更慢。
熟悉技术的人知道,在当前显示的窗口环境中的窗口被移动、相加或删除时,必须生成一个新的全局命中测试数据结构。这是因为窗口的Z顺序可能改变和当前显示内个别象元的拥有权也可能改变。此外,如人所知道的,步205与步235完全相同,如图5和图6的过程同时执行,则它们不必重复。类似地,当作为窗口环境改变的结果而生成新的全局命中测试数据结构时,图5和图6的过程在步200和步230处重新起动。
如人们知道的,本发明是一种分解由定位器或指示器标志的窗口的特别快和有效的方法,即使台面具有多个重叠不规则形状窗口时亦如此。此外,将能知道,不规则形状窗口,即使在某些或全部窗口中存在孔洞,也不会影响使用本发明的命中测试和区域限位的性能。不需用边界矩形,因此对台面上窗口的形状或尺寸并无限制。例如,可以建立一个包含实线条网的单个窗口,将此窗口放置于台面上所有窗口之上,但仍能选择位于此窗口之下而仍在网状窗口的条之间显示出来的窗口。这种功能在现有技术中哪里也没有,并对用户和图形用户接口设计者有重要用途。此外,本发明提供一个特别快和有效的方法,用于完成送至在通过扫描线信息接收其数据的显示装置或打印机上的不规则形状窗口图形的窗口限位。显示驱动程序的具体实施可使用该数据将屏幕上必须更新的象元数减至最小,从而在显示非矩形窗口时使传送率最大及提高性能。
虽然本发明是参照最佳实施例具体地显示和描述的,但熟悉技术的人知道可在不背离本发明的实质和范围的情况下在形式和细节上做出不同改变。
权利要求
1.一种用于在数据处理系统的窗口环境中为窗口存储窗口拥有权数据结构的存储器,包括一个存储在存储器中的数据结构,包括代表数据处理系统中窗口环境的显示器众多扫描线的众多压缩扫描线数据集,其中众多压缩扫描线数据集中的每套压缩扫描线数据集包含显示器的相关连扫描线中一个或更多个向量和与每个向量相关连的用于描述一个或更多个跨长的窗口拥有权的一个窗口标识符,其中一个向量标志相关连扫描线的一个跨长,每个窗口标识符标志拥有由其相关连向量标志的跨长的一个窗口,及其中一个跨长是一条扫描线的一个或更多个象元。
2.一种用于为数据处理系统的窗口环境中的窗口进行增强定位命中测试的方法,该方法包括以下步骤生成具有代表数据处理系统中窗口环境的显示器众多扫描线的众多压缩扫描线数据集的一个全局命中测试数据结构,其中众多压缩扫描线数据集中的每套压缩扫描线数据集包含显示器的相关连扫描线中一个或更多个向量和与每个向量相关连的用于描述一个或更多个跨长的窗口拥有权的一个窗口标识符,其中一个向量标志相关连扫描线的一个跨长和每个窗口标识符标志拥有由其相关连向量标志的跨长的窗口,及其中一个跨长是一条扫描线的一个或更多个象元;以及标志拥有显示器的一个所选象元的窗口,包括以下步骤存取用于规定所选象元的窗口拥有权的全局命中测试数据结构中的压缩扫描线数据集;确定包含所选象元的所存取压缩扫描线数据集的向量;以及检索与所确定向量相关连的窗口标识符,其中所检索窗口标识符是为所选象元进行增强定位命中测试的结果。
3.根据权利要求2的用于为数据处理系统的窗口环境中的窗口进行增强定位命中测试的方法,其特征在于众多窗口处于窗口环境中,及生成全局命中测试数据结构的步骤包括以下步骤生成具有用于代表数据处理系统中窗口环境的显示器众多扫描线的众多压缩扫描线数据集的一个全局命中测试数据结构,其中众多压缩扫描线数据集中的每套压缩扫描线数据集包含显示器的一条相关连扫描线中一个或更多个向量和与每个向量相关连的描述一个或更多个跨长的窗口拥有权的一个窗口标识符,其中一个向量标志相关连扫描线的一个跨长,及每个窗口标识符标志拥有由其相关连向量标志的跨长的一个窗口,及其中一个跨长是一条扫描线的一个或更多个象元;生成一个具有众多象元的位映象图像,其中每个象元对应于显示器中一个象元;对于位映象图像的每个象元,存取具有包含其相应象元的向量的扫描线数据集,及确定与包含相应象元的该向量相关连的窗口标识符是否为所选窗口标识符;以及当确定该窗口标识符不是所选窗口标识符时,对于位映象图像的每个象元,将显示器的每个相应象元设置至位映象图像的象元。
4.根据权利要求2的用于为数据处理系统的窗口环境中的窗口进行增强定位命中测试的方法,其特征在于进一步包括以下步骤当窗口环境中一个窗口在显示中被移动、相加或删除时生成一个新的全局命中测试数据结构。
5.根据权利要求2的用于为数据处理系统的窗口环境中的窗口进行增强定位命中测试的方法,其特征在于窗口环境中的窗口并非矩形形状窗口而是一个不规则形状窗口,及全局命中测试数据结构具有用于代表显示不规则形状窗口的众多扫描线的众多压缩扫描线数据集。
6.一种用于为数据处理系统的窗口环境中的窗口进行增强区域限位的方法,该方法包括以下步骤生成具有用于代表数据处理系统中窗口环境的显示器众多扫描线的众多压缩扫描线数据集的一个全局命中测试数据结构,其中众多压缩扫描线数据集中的每套压缩扫描线数据集包含显示器的相关连扫描线中一个或更多个向量和一个与每个向量相关连的用于描述一个或更多个跨长的窗口拥有权的窗口标识符,其中一个向量标志相关连扫描线的一个跨长和每个窗口标识符标志拥有由其相关连向量标志的跨长的一个窗口,及其中一个跨长是一条扫描线的一个或更多个象元;生成一个具有众多象元的位映象图像,其中每个象元对应于显示器中一个象元;对于位映象图像的每一个象元,存取具有包含其相应象元的向量的扫描线数据集,及确定与该包含相应象元的向量相关连的窗口标识符是否为所选窗口标识符;以及当确定该窗口标识符不是所选窗口标识符时,对于位映象图像的每个象元,将显示器的每个相应象元设置至位映象图像的象元。
7.根据权利要求6的用于为数据处理系统的窗口环境中的窗口进行增强区域限位的方法,其特征在于众多窗口处于窗口环境中,及生成全局命中测试数据结构的步骤包括以下步骤为窗口环境中每个窗口生成一个命中测试数据结构,其中每个命中测试数据结构只代表扫描线的每个象元的相关连窗口的窗口拥有权;为命中测试数据结构按Z顺序编辑一个深度表,其中每个窗口具有一个在显示器上相对于其它窗口的对应于窗口环境中所有窗口的Z顺序的Z位置;按深度表的Z顺序存取每个命中测试数据结构从而确定显示器每个象元的窗口拥有权,其中具有最高Z位置同时具有一个有于标志一个象元拥有权的命中测试数据结构的窗口拥有该象元;规定显示器所有扫描线的每个跨长,其中同一窗口所拥有的一个或更多个象元形成一个跨长;以及将所规定跨长压缩为代表窗口环境中显示器众多扫描线的众多压缩扫描线数据集,其中众多压缩扫描线数据集中的每套压缩扫描线数据集描述显示器的相关连扫描线中一个或多个所规定跨长的窗口拥有权并包含一个或更多个向量和与每个向量相关连的一个窗口标识符,其中一个向量标志相关连扫描线的一个跨长及每个窗口标识符标志一个拥有其相关连向量的所标志跨长的窗口。
8.根据权利要求6的用于为数据处理系统的窗口环境中的窗口进行增强区域限位的方法,其特征在于进一步包括当窗口环境中一个窗口在显示内被移动、相加或删除时生成一个新的全局命中测试数据结构的步骤。
9.根据权利要求6的用于为数据处理系统的窗口环境中的窗口进行增强区域限位的方法,其特征在于窗口环境中的窗口并非矩形形状窗口而是一个不规则形状窗口,及全局命中测试数据结构具有代表用于显示不规则形状窗口的众多扫描线的众多压缩扫描线数据集。
10.一种用于为窗口环境中的窗口进行增强定位命中测试的数据处理系统,包括用于生成具有能代表数据处理系统中窗口环境的显示器众多扫描线的众多压缩扫描线数据集的一个全局命中测试数据结构的装置,其中众多压缩扫描线数据集中的每套压缩扫描线数据集包含显示器的一条相关连扫描线中一个或更多个向量和与每个向量相关连的描述一个或更多个跨长的窗口拥有权的一个窗口标识符,其中一个向量标志相关连扫描线的一个跨长,和每个窗口标识符标志一个拥有由其相关连向量标志的跨长的窗口,及其中一个跨长是一条扫描线的一个或更多个象元;以及用于标志拥有显示器的所选象元的窗口的装置,包括以下步骤用于存取全局中测试数据结构中用于规定所选象元的窗口拥有权的压缩扫描线数据集用于确定包含所选象元的所存取压缩扫描线数据集的向量;以及用于检索与所确定向量相关连的窗口标识符,其中所检索窗口标识符是为所选象元进行增强定位命中测试的结果。
11.根据权利要求10的用于为窗口环境中的窗口进行增强定位命中测试的数据处理系统,其特征在于众多窗口处于窗口环境中,及用于生成全局命中测试数据结构的装置包括用于生成具有代表数据处理系统中窗口环境的显示器众多扫描线的众多压缩扫描线数据集的一个全局命中测试数据结构的装置,其中众多压缩扫描线数据集的每套压缩扫描线数据集包含显示器的一条相关连扫描线中一个或更多个向量和与每个向量相关连的用于描述一个或更多个跨长的窗口拥有权的一个窗口标识符,其中一个向量标志相关连扫描线的一个跨长,和每个窗口标识符标志一个拥有由其相关连向量标志的跨长的窗口,及其中一个跨长是一条扫描线的一个或更多个跨长;用于生成具有众多象元的位映象图像的装置,其中每个象元对应于显示器中一个象元;用于为位映象图像的每个象元存取具有包含其相应象元的向量的扫描线数据集和用于确定与包含相应象元的该向量相关连的窗口标识符是否为所选窗口标识符的装置;以及当确定该窗口标识符不是所选窗口标识符时用于为位映象图像每个象元将显示器的每个相应象元设置至位映象图像的象元的装置。
12.根据权利要求10的用于为窗口环境中的窗口进行增强定位命中测试的数据处理系统,其特征在于进一步包括当窗口环境中一个窗口在显示中被移动、相加或删除时用于生成一个新的全局命中测试数据结构的装置。
13.根据权利要求10的用于为窗口环境中的窗口进行增强定位命中测试的数据处理系统,其特征在于窗口环境中的窗口并非矩形形状窗口而是一个不规则形状窗口,及全局命中测试数据结构具有代表用于显示不规则形状窗口的众多扫描线的众多压缩扫描线数据集。
14.一种用于为窗口环境中窗口进行增强区域限位的数据处理系统,包括用于生成一个具有代表数据处理系统中窗口环境的显示器众多扫描线的众多压缩扫描线数据集的一个全局命中测试数据结构的装置,其中众多压缩扫描线数据集中的每套压缩扫描线数据集包含显示器的一条相关连扫描线中一个或更多个向量和与每个向量相关连的用于描述一个或更多个跨长的窗口拥有权的一个窗口标识符,其中一个向量标志相关连扫描线的一个跨长,和一个窗口标识符标志拥有由其相关连向量标志的跨长的一个窗口,及其中一个跨长是一条扫描线的一个或更多个象元;用于生成具有众多象元的一个位映象图像的装置,其中每个象元对应于显示器中一个象元;用于为位映象图像的每个象元存取具有包含其相应象元的向量的扫描线数据集和用于确定与包含相应象元的该向量相关连的窗口标识符是否为所选窗口标识符的装置;以及当确定该窗口标识符不是所选窗口标识符时用于为位映象图像每个象元将显示器的每个相应象元设置至位映象图像的象元的装置。
15.根据权利要求14的用于为窗口环境中的窗口进行增强区域限位的数据处理系统,其特征在于众多窗口处于窗口环境中,及用于生成全局命中测试数据结构的装置包括用于为窗口环境中每个窗口生成命中测试数据结构的装置,其中每个命中测试数据结构只代表扫描线每个象元的相关连窗口的窗口拥有权;用于为命中测试数据结构按Z顺序编辑一个深度表的装置,其中每个窗口具有一个相对于显示器上其它窗口的对应于窗口环境中所有窗口的Z顺序的Z位置。用于按深度表的Z顺序存取每个命中测试数据结构从而确定显示器每个象元的窗口拥有权的装置,其中具有最高Z位置和同时标志一个象元拥有权的命中测试数据结构的窗口拥有该象元;用于规定显示器所有扫描线的每个跨长的装置,其中由同一窗口拥有的一个或更多个象元形成一个跨长;以及用于将所规定跨长压缩为代表窗口环境中显示器众多扫描线的众多压缩扫描线数据集的装置,其中众多压缩扫描线数据集中的每套压缩扫描线数据集描述显示器的相关连扫描线中一个或更多个所规定跨长的窗口拥有权,并包含一个或更多个向量和一个与每个向量相关连的窗口标识符,其中一个向量标志相关连扫描线的一个跨长及一个窗口标识符标志一个拥有由其相关连向量标志的跨长的窗口。
16.根据权利要求14的用于为窗口环境中的窗口进行增强区域限位的数据处理系统,其特征在于进一步包括当窗口环境中窗口在显示中被移动、相加或删除时生成一个新的全局命中测试数据结构的装置。
17.根据权利要求14的用于为窗口环境中的窗口进行增强区域限位的数据处理系统,其特征在于窗口环境中的窗口并非矩形形状窗口而是一个不规则形状窗口,及全局命中测试数据结构具有代表用于显示不规则形状窗口的众多扫描线的众多压缩扫描线数据集。
18.一种用于为数据处理系统的窗口环境中的窗口进行增强定位命中测试的计算机软件产品,包括一个具有计算机可读程序码装置的计算机可用媒体,该程序码包含于媒体内并用于为图形用户接口改写任何用户所选颜色位映象图像,该计算机软件产品具有用于生成具有用于代表数据处理系统中窗口环境显示器众多扫描线的众多压缩扫描线数据集的一个全局命中测试数据结构的计算机可读程序码装置,其中众多压缩扫描线数据集中的每套压缩扫描线数据集包含显示器的一条相关连扫描线中一个或更多个向量和与每个向量相关连的用于描述一个或更多个跨长的窗口拥有权的一个窗口标识符,其中一个向量标志相关连扫描线的一个跨长,和一个窗口标识符标志一个拥有由其相关连向量标志的跨长的窗口,及其中一个跨长是一条扫描线的一个或更多个象元;以及用于标志拥有显示器所选象元的窗口的计算机可读程序码装置,包括用于以下功能的装置在规定所选象元窗口拥有权的全局命中测试数据结构中存取压缩扫描线数据集;确定包含所选象元的所存取的压缩扫描线数据集的向量;以及检索与所确定向量相关连的窗口标识符,其中所检索窗口标识符是为所选象元进行增强定位命中测试的结果。
19.根据权利要求18的用于为数据处理系统的窗口环境中的窗口进行增强定位命中测试的计算机软件产品,其特征在于众多窗口处于窗口环境中,及用于生成全局命中测试数据结构的计算机可读程序码装置包括用于以下功能的装置生成一个具有用于代表数据处理系统的窗口环境中显示器众多扫描线的众多压缩扫描线数据集的一个全局命中测试数据结构,其中众多压缩扫描线结构集中的每套压缩扫描线数据集包含显示器的一条相关连扫描线中一个或更多个向量和与每个向量相关连的描述一个或更多个跨长的窗口拥有权的一个窗口标识符,其中每个向量标志相关连扫描线的一个跨长和每个窗口标识符标志一个拥有由其相关连向量标志的跨长的窗口,及其中一个跨长是一条扫描线的一个或更多个象元;生成一个具有众多象元的位映象图像,其中每个象元对应于显示器中一个象元;为位映象图像的每个象元存取具有包含其相应象元的向量的扫描线数据集,同时确定与包含相应象元的向量相关连的窗口标识符是否为所选窗口标识符;以及当确定该窗口标识符不是所选窗口标识符时为位映象图像的每个象元将显示器的每个相应象元设置至位映象图像的象元。
20.根据权利要求18的用于为数据处理系统的窗口环境中的窗口进行增强定位命中测试的计算机软件产品,其特征在于进一步包括当窗口环境中的窗口在显示中被移动、相加或删除时用于生成一个新的全局命中测试数据结构的计算机。可读程序码装置。
21.根据权利要求18的用于为数据处理系统的窗口环境中的窗口进行增强定位命中测试的计算机软件产品,其特征在于窗口环境中的窗口并非矩形形状窗口而是一个不规则形状窗口,及全局命中测试数据结构具有代表用于显示不规则形状窗口的众多扫描线的众多压缩扫描线数据集。
22.一种用于为数据处理系统的窗口环境中窗口进行增强区域限位的计算机软件产品,包括一个具有计算机可读程序码装置的计算机可由媒体,该程序码装置包含在媒体中并用于为图形用户接口改写任何用户所选的颜色位映象图像,该计算机软件产品具有用于生成具有代表数据处理系统中窗口环境的显示器众多扫描线的众多压缩扫描线数据集的一个全局命中测试数据结构的计算机可读程序码装置,其中众多压缩扫描线数据集中的每套压缩扫描线数据集包含显示器的一条相关连扫描线中的一个或更多个向量和与每个向量相关连用于描述一个或更多个跨长的窗口拥有权的一个窗口标识符,其中一个向量标志相关连扫描线的一个跨长和每个窗口标识符标志一个拥有由其相关连向量标志的跨长的窗口,及其中一个跨长是一条扫描线的一个或更多个象元;用于生成一个具有众多象元的位映象图像的计算机可读程序码装置;其中每个象元对应于显示器中一个象元;用于为位映象图像的每个象元存取具有包含其相应象元的向量的扫描线数据集并用于确定与包含相应象元的向量相关连的窗口标识符是否为所选窗口标识符的计算机可读程序码装置;以及当确定该窗口标识符不是所选窗口标识符时用于为位映象图像的每个象元将显示器的每个相应象元设置至位映象图像的象元的计算机可读程序码装置。
23.根据权利要求22的用于为数据处理系统的窗口环境中的窗口进行增强区域限位的计算机软件产品,其特征在于众多窗口处于窗口环境中,及用于生成全局命中测试数据结构的计算机可读程序码包括具有以下功能的计算机可读程序码装置为窗口环境中每个窗口生成一个命中测试数据结构,其中每个命中测试数据结构只代表扫描线每个象元的相关连窗口的窗口拥有权;为命中测试数据结构按Z程序编辑一个深度表,其中每个窗口具有在显示器上相对于其它窗口并对应于窗口环境中所有窗口的Z顺序的Z位置;通过按深度表的Z顺序存取每个命中测试数据结构确定显示器每个象元的窗口拥有权,其中具有最高Z位置并具有一个标志一个象元的拥有权的命中测试数据结构的窗口拥有该象元;规定显示器所有扫描线的每个跨长,其中同一窗口所拥有的一个或更多个象元形成一个跨长;以及将所规定跨长压缩为代表窗口环境中显示器众多扫描线的众多压缩扫描线数据集,其中众多压缩扫描线数据集中每套压缩扫描线数据集描述显示器的一条相关连扫描线中一个或更多个所规定跨长的窗口拥有权并包含一个或更多个向量和与每个向量相关连的一个窗口标识符,其中一个向量标志相关连扫描线的一个跨长,和每个窗口标识符标志一个拥有其相关连向量的所标志跨长的窗口。
24.根据权利要求22的用于为数据处理系统的窗口环境中的窗口进行增强区域限位的计算机软件产品,其特征在于进一步包括当窗口环境中窗口在显示中被移动、相加或删除时用于生成一个新的全局命中测试数据结构的计算机可读程序码装置。
25.根据权利要求22的用于为数据处理系统的窗口环境中的窗口进行增强区域限位的计算机软件产品,其特征在于窗口环境中的窗口并非矩形形状窗口而是一个不规则形状窗口,及全局命中测试数据结构具有代表用于显示不规则形状窗口的众多扫描线的众多压缩扫描线数据集。
全文摘要
提供了一种用于对数据处理系统的窗口环境中的窗口进行增强的定位命中测试和区域限位的方法和系统。生成具有用于代表显示器扫描线的众多压缩扫描线数据集的一个全局命中测试数据结构。每套压缩扫描线数据集包含显示器的一条相关连扫描线中一个或更多个向量和与每个向量相关连的描述一个或更多个跨长的窗口拥有权的一个窗口标识符。一个向量标志相关连扫描线的一个跨长,和一个窗口标识符标志拥有由其相关连向量标志的跨长的窗口。
文档编号G09G5/14GK1177136SQ9710246
公开日1998年3月25日 申请日期1997年2月19日 优先权日1996年2月20日
发明者米切尔·W·布朗, 卡尔文·罗德里克·劳伦斯, 马克·A·瑟豪那 申请人:国际商业机器公司