CN100394473C - 显示数据映射的方法及其系统 - Google Patents

显示数据映射的方法及其系统 Download PDF

Info

Publication number
CN100394473C
CN100394473C CNB2004800121617A CN200480012161A CN100394473C CN 100394473 C CN100394473 C CN 100394473C CN B2004800121617 A CNB2004800121617 A CN B2004800121617A CN 200480012161 A CN200480012161 A CN 200480012161A CN 100394473 C CN100394473 C CN 100394473C
Authority
CN
China
Prior art keywords
node
window
data
pixel
video data
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.)
Active
Application number
CNB2004800121617A
Other languages
English (en)
Other versions
CN1784714A (zh
Inventor
约瑟夫·M·克利什顿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1784714A publication Critical patent/CN1784714A/zh
Application granted granted Critical
Publication of CN100394473C publication Critical patent/CN100394473C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Abstract

提供了一种方法,其中将包括至少一个窗口(64A-H)的显示区域(60)的显示数据映射成共享格式。显示区域中每个窗口的属性信息被确定并存储在为每个窗口所创建(S2)的唯一的结点(66A-H)中。利用该属性信息生成(S3)结点层次结构(62)。利用结点中的属性信息,将显示数据映射为共享格式。然后,所映射的显示数据能够由一个或多个其他系统所共享。

Description

显示数据映射的方法及其系统
技术领域
本发明总体上涉及映射显示数据,特别是将显示数据从一种或多种格式映射到一种共享的格式。
背景技术
通过面对面、电话和电子邮件等多种形式进行合作已成为最普遍的现象,随着科技的发展,人们已经开始通过共享视频、语音、白板标记、聊天、计算机应用程序等方式寻求进一步的合作。Lotus公司的SAMETIME
Figure C20048001216100051
和Microsoft公司的NETMEETING
Figure C20048001216100052
正是提供这种共享的两种常用的合作软件产品。但许多现有的合作软件产品所存在的一个问题是它们与其平台相关,例如,Microsoft公司的NETMEETING
Figure C20048001216100053
只能在使用WINDOWS
Figure C20048001216100054
操作系统版本的系统中运行。不同的平台在显示数据管理上有很大的差异,这给开发跨平台使用的合作软件带来了的巨大的障碍。
例如,在显示中显示数据包含每个像素的像素数据。像素数据包含关于像素位置、像素颜色和像素深度的信息。在像素数据中可以用不同格式来表示颜色信息,因此,为了实现跨平台显示数据的共享,像素数据可以被转换成共享格式。但是,一些因素阻碍了有效地将像素数据转换成共享格式。其中一个因素是需要确定被转换的窗口,该位于显示区域的窗口“拥有”每一像素。当窗口为像素提供像素数据时,一个窗口拥有一个像素。
在一个典型的窗口显示环境中,窗口可能具有层次关系。例如,可以创建一个母窗口,在它的显示区域内包含一个或多个子窗口。子窗口也可包含一个或多个自己的子窗口。每一个窗口占据了任一祖先窗口(即母窗口、祖窗口等等)显示区域的一部分。兄弟窗口或者共同共享同一个母窗口,或者没有母窗口(即它们显示在桌面上)。兄弟窗口被分配一个叠加顺序(stacking order),叠加顺序用来决定兄弟窗口被绘制的顺序。因此,当两个兄弟窗口的显示区域重叠时,确定哪个兄弟窗口在“上面”。用户经常改变窗口的尺寸、叠加顺序和窗口数量,例如,一个母窗口可能被“最大化”而占据整个显示区域。另外,用户能选择一个部分地隐藏在兄弟窗口后面的窗口,结果使得被选择的窗口出现在该兄弟窗口的上面。
决定像素的归属是很重要的,因为例如在一个X Windows系统中,针对每个窗口像素数据能被不同形式地格式化。X Windows系统是一个客户机-服务器视窗系统,其中一个“X客户机程序”(应用程序)执行一些包含改变显示命令的处理,然后这些命令提供给一个“X服务器程序”,来实现显示的改变(也就是为用户提供图像“服务”)。X服务器程序可以位于一台带有显示器的计算机上,而X客户机程序可以位于计算机网络中任何一台带有显示器的计算机上。
典型的显示格式因为“深度”和“视觉”而不同,“深度”即用于表示每个像素的像素数据的比特数,“视觉”表明像素数据是如何被解释的。深度决定着同一时刻窗口中像素显示可能颜色的数量,例如,8比特深度的像素数据可以同时显示256(28)种颜色。通常,视觉决定着像素数据是否被解释为包含色值,或者是否包含一个或多个包括色值的颜色表中的索引。X Windows系统环境下有六个标准视觉类型:TureColor像素数据包含编码为像素数据的红绿蓝(RGB)色值,StaticColor和StaticGray像素数据包含色值不能改变的颜色表中的索引,DirectColor像素数据包含三个独立索引值,以此在三个独立的可修正颜色表中查询RGB色值。GrayScale和PseudoColor像素数据包含一可修正色值的颜色表中的索引。最后三个视觉允许改变一个或多个颜色表中的色值,因此允许改变为一特定值显示的实际颜色。24比特TrueColor格式是显示数据时常用的格式,通过这种格式,每种颜色(即红,绿,蓝)的实际色值由24比特数值中唯一的8位来表示。许多系统和应用程序都支持这一格式,例如由Sun Microsystems开发的JAVA
Figure C20048001216100061
程序语言就支持24比特TureColor格式,并且已应用于很多系统和平台。
决定何时一个显示区域改变是另一阻碍有效转换显示数据的因素。例如,一个X服务器提供基于显示的事件流和查询机制来通知应用程序由用户所发起的事件,由此可以在该应用程序与用户之间进行交互。一个应用程序能指定对哪些事件进行通知,并针对这一事件采取合适的行动。普通的事件包括创建/撤销窗口、调整窗口大小、改变窗口叠加顺序等等。但是,X服务器不提供一个显示区域改变后发信号的事件。因此,为了与另一系统共享一个显示区域,整个显示区域的显示数据必须不断地被复制和监视。
在实现应用程序共享方面已取得了一些成果,包括在X WindowsSystem系统中共享显示数据,例如能够执行一个独立的浏览程序。AT&T实验室将这一成果用于Virtual Network Computing(VNC)方案中。此外,多个X客户机和X服务器之间的通信能够被多路复用,这一技术被Brown University应用于其开发的XMX方案中。但是为了共享应用程序,这些技术都需要应用程序在X服务器中启动。这意味着用户必须在应用程序启动之前,确定需要共享或远端访问该应用程序。当应用程序不能很容易地重启时,这一限制会降低生产率。另一应用程序共享的技术是向X服务器添加功能性扩展名。但是,扩展名的使用严重限制了能够便于执行该技术的平台数量。对于基于XWindows系统的共享技术,每个像素的归类和映射是另一个实施问题。当共享显示区域内的不同窗口使用不同显示格式来表示显示数据时,X Windows系统试图通过外部功能(即没有代理,只是标准X11协议)来共享该显示数据。但试图解决使用不同的显示格式的外部技术不能为利用窗口间层次关系对像素数据进行映射提供有效的解决方案。
因此,必须有一个有效的方案来映射显示数据,在显示区域内有多个窗口并且有一种以上的显示格式被用来表示显示数据。
发明内容
本发明涉及一种显示数据映射方法、系统和程序产品。产生一个结点层次结构,代表不同的窗口和它们各自关于被映射的显示区域的属性信息。通过结点层次结构得到显示区域的显示数据,并有效地映射。然后被映射的显示数据例如可以被用于在不同系统的用户间实现合作。例如,X服务器软件能被共享,或者X Windows应用程序不用改变运行位置即能被共享。另外,本发明允许一个系统与其他不同类型的系统共享显示数据(即X Windows和Microsoft WINDOWS
Figure C20048001216100081
)。
本发明的第一方面涉及一种为包括至少一个窗口的显示区域映射显示数据的方法,该方法包括:为每个窗口创建一个结点,每个结点包括层次关系数据以及为所述每个窗口显示数据的格式数据;基于该层次关系数据生成一个结点层次结构;将显示区域划分成多个部分,在显示区域每个所述部分包括一个单独定义至少一个窗口的区域;利用结点层次结构为每个部分创建一个结点列表,其中显示在该每个部分中的至少一部分中的所述每个窗口的结点包含在该结点列表中;存储所述节点列表;并且利用该结点层次结构,将该显示数据从第一格式映射为共享格式,其中所述映射是基于结点的所述显示数据和格式数据。
本发明的第二方面涉及一种为包括至少一个窗口的显示区域映射显示数据的系统,该系统包括:为每个窗口创建一个结点的装置,其中每个结点包括层次关系数据以及为所述每个窗口显示数据的格式数据;基于该层次关系数据生成一个结点层次结构的装置;将显示区域划分成多个部分并在显示区域每个所述部分包括一个单独定义至少一个窗口的区域的装置;利用结点层次结构为每个部分创建一个结点列表的装置,其中显示在该每个部分中的至少一部分中的所述每个窗口的结点包含在该结点列表中;存储所述节点列表的装置;以及利用该结点层次结构,将该显示数据从第一格式映射为共享格式的装置,其中所述映射是基于结点的所述显示数据和格式数据。
本发明的第三方面涉及为包含至少一个窗口的显示区域映射显示数据的系统,该系统包括:为每个窗口创建一个结点的装置;管理包含每个结点的结点层次结构的装置;以及使用结点层次结构将显示数据映射至共享格式的装置。
本发明的第四方面涉及一种包括计算机可用介质的计算机程序产品,该计算机可用介质具有包含在其中的计算机可读程序代码,用于为包含至少一个窗口的显示区域映射显示数据,该计算机程序产品包括:被配置成为每个窗口创建一个结点的程序代码,该结点包含属性信息;被配置成用于管理包含每个结点的结点层次结构的程序代码;以及被配置成使用结点层次结构将显示数据映射至共享格式的程序代码。
本发明第五方面涉及一种计算机可读存储介质,其中存储有执行方法的指令,该方法包括的步骤有:为每个窗口创建一个结点,每个结点包含层次关系数据;基于层次关系数据产生结点的层次结构;和使用结点层次结构将显示数据从第一格式映射至共享格式。
本发明的作为解释性的各个方面是为了解决这里讨论的和其他没有讨论的问题而设计的,这对于本领域技术人员是可以发现的。
附图说明
根据下列本发明不同方面的详细说明并参考附图,本发明的这些特征和其他特征将会更易于理解。
图1示出了说明性的共享显示的视图;
图2示出了在多个计算机之间进行合作的说明性系统的方框图;
图3示出了图2所示系统的具体方框图;
图4示出了按照本发明一个实施例的方法;
图5示出了图4所示映射步骤的一个实施例;
图6示出了基于图1所示共享显示的结点层次结构的概要表示;
图7示出了图6所示说明性的结点层次结构的另一概要表示;以及
图8示出了多个结点列表和二维阵列的实施例的概要表示。
需要说明的是,本发明的附图并非按比例显示,附图只是为了描述本发明的典型方面,因而不应当认为附图限制了本发明的范围。在附图中,相应的附图标记表示相应的单元。
具体实施方式
本发明提供了一种显示数据映射方法、系统和程序产品。产生一个结点的层次结构,代表不同的窗口和窗口各自关于被映射显示区域的属性信息。利用结点层次结构得到显示区域的显示数据,并有效地映射。例如,被映射的显示数据可以被用于在作为合作系统一部分的多系统的用户之间共享显示数据。虽然下面的说明描述了本发明作为合作系统的一部分来实现,但应该理解,本发明也能在其他不同系统中实现,合作系统仅仅是作为说明。
只是为了方便起见,下面的说明包含三部分,并用以下小标题标出:I.环境,II.合作系统概述,和III.映射方法。
I.环境
图1示出了说明性的显示区域60。显示区域60能使用任何现在已知或将要开发的方法加以限定,例如显示区域60能通过应用程序、一个或多个窗口限定的区域、包含显示屏的一部分或整个显示区域(即监视器的屏幕)的区域、和/或显示屏的多个不连贯的区域来限定。
显示区域60中的窗口64A-H彼此之间相互关联或者没有关系,例如,窗口64A-H中的每个窗口可以为一个唯一的应用程序显示数据,因此与窗口64A-H中的其他任何窗口都无关。但是窗口64A-H中的一些窗口或者所有窗口彼此间具有层次关系。在一个窗口层次结构中,限定在另一个窗口的显示区域中的窗口是另一个“母窗口”的“子窗口”。窗口层次结构可以有任意层数,因此一个“孙窗口”会有一个“祖窗口”,一个“曾孙窗口”会有一个“曾祖窗口”,依此类推。共有同一个母窗口或没有母窗口的窗口(即它们显示在桌面上)的窗口称为“兄弟窗口”。应该理解,窗口64A-H之间的关系是从应用程序的角度来讨论的。因此,任何由操作系统造成的层次结构的变更或修改将不在此讨论。例如,在X Windows系统中,窗口管理器可以使顶层应用程序窗口成为母窗口,通过提供窗口管理器修饰以便调整窗口大小、移动窗口等等。
为了便于说明,假设窗口64A-H中的任一窗口被完全显示在窗口64A-H中的另一窗口内,它是另一窗口的子窗口或者孙窗口。因此,窗口64B-D是窗口64A的子窗口;窗口64E-G是窗口64B的子窗口,是窗口64A的孙窗口;而窗口64H是窗口64D的子窗口,是窗口64A的孙窗口。因此,窗口64A、窗口64B-D、窗口64E-G和窗口64H组成了四个不同的兄弟窗口组。应该理解,在窗口64A-H之间也可能存在其他关系,并且本发明的原理也同样适合于这些关系。
为窗口64A-H分配了叠加顺序,以确定窗口64A-H的重叠区域是如何显示的。叠加顺序一部分是由窗口的层次关系所确定的。例如,子窗口显示在母窗口的上面。因此,窗口64B-D分别显示在它们的母窗口64A的上面。在一组兄弟窗口中,叠加顺序还进一步由创建窗口的顺序、用户选择的顺序、更新的顺序等来确定。如图所示,在一组兄弟窗口64B-D中,窗口64B显示在窗口64C的上面,而窗口64C则显示在窗口64D的上面。因此,窗口64B排列在这组兄弟窗口的叠加顺序的最上面,紧跟着是窗口64C,然后是窗口64D。同样,在一组兄弟窗口64E-G中,窗口64E排在叠加顺序的最上面,紧跟着是窗口64F,然后是窗口64G。
II.合作系统概述
如前所述,为了能共享显示数据,映射显示数据通常作为合作系统的一部分来实现。图2示出了说明性的系统10的方框图,其通过多个计算机12、16进行合作。系统10包括具有源显示器14的源计算机12和具有目标显示器18的目标计算机16。应当明确,虽然只示出和讨论了两个计算机12、16,但本发明的指导可以应用于包含任何数量计算机的合作系统。典型地,用户20通过一个或多个I/O设备与包括源显示器14的源计算机12进行交互。源计算机12可包括基于窗口的显示系统,该系统将窗口22A-D中的一个或多个应用程序的数据显示在源显示器14上。另外,源计算机12和/或目标计算机16包含用于使源显示器14和目标显示器18共享显示数据的一个或多个系统。
源显示器14包括一个显示区域23,共享显示区域25可使用任意方法限定在显示区域23内,例如在源计算机12上执行的应用程序、显示在源显示器14上的一个或多个窗口22A-D、和/或源显示器14中包含一部分或全部显示区域25的区域。在这个例子中,共享显示区域25被限定为具有窗口22A-C的显示区域23的一部分。共享显示区域25由目标计算机16共享,以显示在目标显示器18上,作为目标显示区域125。窗口22D不由目标计算机16共享。用户24能够在目标显示器18的目标显示区域125中看到窗口122A-C。用户24同样也可与目标计算机16进行交互,去改变共享显示区域25的显示数据,该显示数据随后显示在目标显示区域125中。
图3示出了系统10的更详细的方框图。所示的源计算机12包括一个中央处理单元(CPU)30,存储器32,输出/输出(I/O)接口34,总线36和一个可选的数据库38。图中的目标计算机16和源计算机12进行通信。源计算机12和目标计算机16之间的通信可以是任何已知或者将要开发的机制,例如通过一个或多个直接硬线连接(如串行端口),或者通过客户机-服务器(或者服务器-服务器)环境下可寻址的连接,该环境可以利用任何有线和/或无线传输方法的组合。在客户机-服务器的环境下,服务器和客户机可以通过互联网、广域网(WAN)、局域网(LAN)、虚拟个人网络(VPN)或者其他个人网络实现连接。服务器和客户机可使用常规的网络连通,如令牌环、以太网、WiFi或者其他常规通信标准。客户机通过互联网与服务器通信时,由常规的TCP/IP基于套接字的协议提供连接。在本例中,客户机利用互联网业务提供商与服务器建立连接。
源计算机12和目标计算机16包括任意通用或专用的系统,该系统利用标准操作系统软件,以驱动特定硬件的操作,并和其他系统组件和I/O控制器相兼容。CPU 30可包括一个单个的处理单元、能够并行操作的多个处理单元、或者在一个或者多个位置处(例如在客户机和服务器上)的一个或多个处理单元之间分布。存储器32可包括任意已知类型的数据存储和/或传输介质,包括磁介质、光介质、随机访问存储器(RAM)、只读存储器(ROM)、数据高速缓存、数据对象等。而且,与CPU 30相类似,存储器32可位于单一的物理位置,包括一种或多种数据存储类型,或者分布在多种不同形式的物理系统上。
如图所示,用户20、源显示器14和目标计算机16通过I/O接口34与源计算机12进行交互。I/O接口34可包括任意与用户20、源显示器14和/或目标计算机16交换信息的系统,例如包括I/O端口(串行、并行、以太网、键盘、鼠标等),通用串行总线(USB)端口,扩展总线,集成式驱动器电子设备接口(IDE),网络系统,调制解调器,扬声器,监视器(阴极射线管(CRT),液晶显示器(LCD)等),手控设备,键盘,鼠标,语音识别系统,语音输出系统,扫描仪,打印机,传真机,寻呼机,存储设备等。总线36为源计算机12中的各个组件之间提供通信连接,类似地,可包括电的、光的、无线等已知的任意类型的传输链接。此外,尽管图中没有示出,其他组件,如高速缓冲存储器、通信系统、系统软件等也可以组合到源计算机12中。
数据库38可对这里所描述的实施本发明所需的信息进行存储,同样地,数据库38可包括一个或多个存储设备,如磁盘驱动器或者光盘驱动器。另外,数据库38可包括例如跨LAN、WAN或者存储区域网络(SAN)(未显示)分布的数据。数据库38可以通过以下方式来设置:本领域普通技术人员能够将其解释为包括一个或多个存储设备。应当明确,目标计算机16也包含与源计算机12一起示出和讨论的不同的硬件组件。为了简便起见,这些组件没有示出或者讨论。
为了实现合作系统10的不同功能,源计算机12包括作为计算机代码存储在存储器32中的合作程序40A,而目标计算机16包括作为计算机代码存储的合作程序40B。合作程序40A包含一个映射系统41和一个共享系统54。在随后的进一步讨论中,映射系统41将共享显示区域25(图2)的显示数据从第一格式映射为共享格式。共享系统54将被映射的显示数据作为共享显示数据进行存储,随后将共享显示数据提供给目标计算机16中的合作程序40B。映射系统41可以更新共享显示数据,共享系统54可以共享该共享显示数据,上述更新和共享可以定期地、根据需要、或者以一些组合的方式进行。
合作程序40B包含显示系统56,该系统被配置为在目标显示器18的目标显示区域125(图2)中显示共享显示数据。当显示共享显示数据时,显示系统56可以判断共享显示数据中是否已经有数据被修改,并更新目标显示区域125中已改变的部分。这一判断步骤例如可以通过将显示区域分成若干部分、一次比较一个部分的方法来实现。共享系统54监控目标计算机16使用共享显示数据的频率,并根据所监测到的频率来调整映射系统41映射显示数据的速率。在这种情况下,可以设置一个最大时间期间,一旦超过这一期间,就用新映射的显示数据来刷新共享显示数据。合作程序40B还包含远程系统58,其允许用户24使用目标计算机16来改变共享显示区域25的显示数据。为了实现由用户24进行的改变,远程系统58收集在目标计算机16中产生的输入设备事件(例如键盘,鼠标等),然后将这些事件转发给位于源计算机12上的共享系统54。共享系统54将事件放入源计算机12的事件流中,只要这些事件是由位于源计算机12中的输入设备所产生的,则处理这些事件。
映射系统41将共享显示区域25(图2)中的显示数据映射为由共享系统54所使用的共享显示数据。特别地,映射系统41将显示区域25中每个像素的显示数据所包含的像素数据从第一种格式映射为一种共享格式。映射系统41包括定义系统42,结点系统44,管理系统46,监视系统48,检索系统50和转换系统52。下面与本发明所述的映射方法相关地对这些系统的操作进行描述。
应当理解,合作系统10可能会包含更多的/更少的功能,例如远程系统58允许用户24使用目标计算机16、合作系统10的一种可选特性来改变共享显示区域25的显示数据。另外,能够允许用户20和/或用户24选择系统间所实现的合作范围。一定的击键顺序可用来表明没有合作、仅仅共享显示,共享显示和音频、远程控制等情况将要发生。更进一步,显示器中(源显示器14和/或目标显示器18)鼠标指针的位置通过共享系统54和/或远程系统58在源计算机12和目标计算机16之间共享。
III.映射方法
本发明将显示区域的显示数据映射成共享格式,在一个实施例中,在显示区域中,显示数据包括每个像素的像素数据。像素数据包含关于像素位置、像素颜色和像素深度的信息。像素数据从第一格式映射成共享格式,本发明的方法参照图3,4进行讨论,它们分别示出了说明性的根据本发明的一个实施例执行映射的映射系统41和方法步骤的概要。在步骤S1(图4)中,要映射的显示区域25(图2)由定义系统42(图3)所限定。
在步骤S2(图4)中,通过结点系统44(图3)为每个与显示区域25相关联的窗口创建一个结点。在一个实施例中,为显示在源显示器14上的每个窗口(即图2所示的窗口22A-D)创建一个结点。包括所有的窗口,允许对未共享的窗口(即窗口22D)的位置进行监控,以判断它是否随后被移动到一个共享区域中或者与一个共享窗口重叠。但是,应当理解,结点只为窗口中的一部分窗口(例如源显示器14中一个特定区域内的所有窗口,或者被指定为共享的所有窗口)而创建。图6描述了图1的显示区域中60中结点层次结构62的概要表示,其中包括结点66A-H。结点66A-H中的每个结点是一个数据集,其中包含了与之相应的窗口64A-H(图1)的属性信息,该“属性信息”包括层次关系数据(即关于一个母窗口和/或子窗口的数据)和相应窗口的大小、位置、和/或形状。此外,窗口像素数据的格式数据作为属性信息被存储。在该说明性的实施例中,格式数据包括如图6所示的像素数据的深度和视觉。另外,可创建一个颜色映射图,并将其作为结点的属性信息进行存储,该结点通过索引像素值与一个窗口相对应。通常,一个应用程序中的窗口共用一个颜色映射图。因此,能够创建一个颜色映射图,并由对应于共享这个颜色映射图的窗口的所有结点所共享。对于动态视觉类型,颜色映射图需要根据窗口事件的发生进行更新,这些窗口事件表示颜色映射图示例已经改变,和/或在周期性的基础上判断在颜色映射图中是否任何值已经被修改。例如,对于一个动态颜色映射图,当每次显示区域被重新映射后,颜色映射图中的数值被重新读取。应当理解,可以将更多或者更少的信息存储为属性信息,例如,对于每个窗口可以包括叠加顺序数据、剪取信息(即一个窗口在其母窗口中的可视部分)、和/或边界大小。
在图4的步骤S3中,结点层次结构62(图6)通过使用层次关系数据和/或利用叠加顺序数据由管理系统46(图3)所产生,上述数据作为每个结点66A/H的一部分属性信息而被存储。图7示出了结点层次结构62的一个说明性实施例,其中每个结点66A-H包括相应窗口64A-H(图1)的属性信息,以及至母结点的指针、前一个兄弟窗口结点、下一个兄弟窗口结点和实现层次结构的子结点。使用指针可以对结点层次结构62进行有效的导航和管理,包含重新排序、插入和删除结点,如现有技术中所知的那样。为了管理数据而使用和设置指针是现有技术中已知的,因此在此不再讨论。应当理解,可以使用更多或者更少的指针,同样也可以用指针或不用指针来管理数据方式。
最初,结点66A-H根据层次关系数据被放置在结点层次结构62中。参考图1、6和7,由于窗口64A没有母窗口,它的相应结点66A被放置在结点层次结构62的顶端。窗口A中子窗口64B-D的结点66B-D被放置在结点66A的下一层,窗口64B中子窗口64E-G的结点66E-G被放置在结点66B的下一层,并且窗口64D中子窗口64H的结点66H被放置在结点66D的下一层。在该实施例中,一组兄弟结点(即一组兄弟窗口的结点组)根据该组兄弟窗口的叠加顺序数据被放置在结点层次结构62中。该组兄弟结点被设置为首先放置叠加顺序中最优先的结点,接着按递减顺序排列其余的兄弟结点。因此,对于窗口64B-D,结点66B首先被放置,紧跟着是结点66C,然后是结点66D。同样地,对于窗口64E-G,66E首先被放置,紧跟着是结点66F,然后是结点66G。
一旦创建完成,结点层次结构62和结点66A-H各自的属性信息很快就过时了,因此图4包含了步骤S4和S5。在步骤S4,不同窗口事件类型由监视系统48(图3)来监控。在步骤S5,结点层次结构根据由管理系统46(图3)所监控的窗口事件类型之一的发生来更新。例如,参考图1,用户可以选择窗口64H,从而在该组兄弟窗口64B-D内将它的母窗口64D移动到叠加顺序的前面。另外,可以对一个或多个窗口进行创建、撤销、移动、调整大小等。通常,窗口显示系统当上述一个或多个行为发生时生成窗口事件。因此这些事件的发生能被异步地监控,结点层次结构62和/或一个或多个结点66A-H的属性信息能够根据被监控的窗口事件的发生而被更新。
图4的步骤S6,S7与步骤S4,S5并行进行。在步骤S6,通过检索系统50(图2)得到显示数据。在步骤S7,利用结点层次结构,通过转换系统52(图2)将显示数据映射为共享格式。每组步骤S4-S5和S6-S7重复进行,直到分别在步骤S8和S9中判断为不再需要映射显示数据。应当理解,尽管图中用并行的方式示出,步骤组S4-S5和S6-S7也可以以并行、串行或其他结合的方式实现。
参考步骤S6和图1、6、7,利用结点层次结构62使得对于祖先窗口而获得的显示数据能够被用于映射一个或多个子窗口、孙窗口等。为了获得显示数据,由最顶层的窗口(即图1中的窗口64A)所限定的显示区域的显示数据从一个显示存储器中被复制。由于每个窗口位于其母窗口的显示区域内,因此也可以得到子窗口、孙窗口等(即窗口6B-H)中的一些或所有窗口的显示数据。
当在X Windows系统中实现时,在获得祖先结点显示数据的单一操作中,能得到与一个祖先结点和每个中间介入的祖先结点共享一个共同深度的结点的显示数据。例如,图6示出了具有8比特伪彩色(PC)像素数据的结点66A、66B、66E,具有24比特PC像素数据的结点66C、66H,具有24比特真彩色(TC)像素数据的结点66D、66G,以及具有8比特TC像素数据的结点66F。只要像素数据的深度是相同的,在一个单一操作中能得到多结点的显示数据,而不需考虑所采用的视觉。因此,当得到结点66A的显示数据时,结点66B、66E、66F的显示数据也能得到。可以获得结点66F的显示数据,即使结点66F使用TC像素数据,而它的祖先结点66A、66B使用PC像素数据。
但是,在X Windows系统中,当一个窗口或者一个中间介入的祖先窗口使用与该祖先窗口不同的深度时,一旦重新获得其祖先窗口的显示数据,该窗口的显示数据将变得不确定。在这种情况下,需要进行多次操作来得到所有结点66A-H的显示数据。例如,结点66G使用24比特的像素数据。同样,结点66C、66D也使用24比特的像素数据。由于结点66C、66D都不是其他结点的祖先结点,结点66C,66D分别需要额外的操作去获得它的显示数据。但是,当得到结点66D的显示数据时,由于使用了相同的深度,结点66H的结点显示数据也可以被获得。
一旦已经得到了显示数据,步骤S7(图4)将显示数据中的像素数据从它现在的格式映射到共享的格式,图5示出了映射步骤的说明性实施例,其中步骤S7A确定对应于每个像素的结点,步骤S7B确定使用该结点的像素的当前像素数据格式,步骤S7C根据当前格式的像素数据生成共享格式的像素数据。步骤S7D为显示数据中的每个像素重复执行上述步骤。生成包含结点66A-H的结点层次结构62(图6和7),并在每个结点66A-H中存储与窗口64A-H相对应的属性信息,从而允许在步骤S7A中有效地放置正确的结点。为了放置合适的结点,结点层次结构62按照前缀顺序被遍历。也就是说,包含一个像素、并且但该像素不属于它的任何一个子结点、孙结点等之内的第一个结点是用于映射该像素的像素数据的正确结点。
图1所示像素68提供了步骤S6和S7(图4)的说明性的例子。虽然像素68位于由窗口64A-H中的每个窗口所限定的区域内,但是当前窗口64E拥有像素68。因此,将像素68的像素数据从一种格式映射成共享格式需要利用结点66E中属性信息。为了确定结点66E是否与像素68相对应,首先需要考虑层次结构最顶层的结点。结点66A的属性信息用来判断像素68是否处于窗口64A的区域内。由于结点66B是结点66A的第一子结点,因此下一个要考虑结点66B。由于像素68位于窗口64B的区域内,因此要考虑结点66B的第一子结点,即结点66E。然后判断像素68处于窗口64E的区域内,而结点66E没有任何子结点。因此结点66E是与像素68相关联的结点。
既然像素数据及其相应的结点是可用的,使用该结点的属性信息来确定像素数据的当前格式(如图5所示的步骤S7B),并生成共享格式的像素数据(如图5所示的步骤S7C)。在一个实施例中,结点的深度、视觉、和/或颜色映射图信息被用来将像素数据映射为共享格式。所述共享格式例如可包括能被其他应用程序和/或系统所解释的24比特真彩色格式。在这种情况下,当像素数据在数据本身中包含RGB数值时,映射数据可包括对像素数据进行移位,使每个RGB值由8个比特来表示。对于使用索引的像素数据来说,像素数据可用来在颜色映射图中查找RGB数值,随后将RGB数值进行移位,使得每个数值有个8比特。
为了进一步提高放置合适结点的速度,显示区域可以被划分为多个部分。例如,图1示出了显示区域60被划分为一个二维网格的情况,其中每个部分70A-C包括多个像素宽度和长度。在一个实施例中,每个部分70A-C是一个由像素构成的方块,其大小是2的次方,例如64个像素长乘以64个像素宽。与显示屏中的像素一样,每个部分70A-C都分配一个地址(即x,y坐标)。采用2的次方的长度和宽度可以通过将代表像素位置的数值进行右移,很快地确定某一像素所处部分的地址。但是应当理解,任何大小或形状的部分70A-C都可以采用。
参考图1和6-8,利用结点层次结构62和部分70A-C,可以为每个部分70A-C创建一个结点列表76A-C。每个结点列表76A-C包括当前在部分70A-C中可见的每个窗口的结点。在一个实施例中,创建一个二维阵列74,其中每个阵列元素72A-C与一个唯一的部分70A-C相关联。每个阵列元素72A-C对于它的部分70A-C包含一个结点列表76A-C。对于元素72A-C,每个结点列表76A-C包括拥有部分70A-C中至少一个像素的每个结点。例如,元素72A的结点列表76A包含了在部分70A中可视的每个结点。对每个结点列表76A-C进行排序,从而将对应于其所属部分70A-C中最顶层窗口的结点放置在结点列表76A-C的起始位置,其余的结点按照递减的顺序排列。或者作为替代,在其所属部分70A-C中与当前拥有最多像素的窗口相对应的结点被放置在每个结点列表76A-C的起始位置。
由于结点列表76A-C需要额外的数据维护,它们减少了必须要搜索的结点的平均数目,以对于一个给定的像素确定合适的结点。例如,部分70B是显示区域60的一个部分,窗口64B、64C、64E和64G占据了部分70中的至少一部分显示区域。因此,阵列元素72B具有包含结点66B、66C、66E、66G的结点列表76B。如上所述,对结点列表76B进行排序,以首先放置叠加顺序中位于前面的结点。在这种情况下,结点66E是第一个结点,然后是结点66G、66B和66C。为了放置与像素68相对应的结点,判断像素68位于部分70B之内。使用元素72B的结点列表76B,在仅考虑一个结点之后,判断结点66E是合适的结点。
利用部分70A-C和结点列表76A-C可以一部分一部分地得到显示数据,而不是逐个窗口地获得。当逐个部分地获得数据时,每个结点66A-H的属性信息可进一步包括识别最高祖先结点的数据。最高祖先结点对应于最远的祖先窗口,利用单一的操作就可以得到对应于该结点的窗口的显示数据。如上所述,在X Windows系统中,当一个窗口的显示数据采用与其母窗口不同的深度保存时,需要进行两次操作以得到每个窗口的显示数据。因此,结点66A会成为结点66A、66B、66E、66F的最高祖先结点,结点66C、66D、66G把自己作为它们的最高祖先结点,结点66H把66D作为它的最高祖先结点。在逐个部分的基础上,包含最高祖先结点能够发挥结点层次结构62的优势。例如,当得到部分70A的显示数据时,考虑结点列表76A。结点66E是第一个结点,并具有最高祖先结点66A。因此,得到位于部分70A中的窗口64A的一部分的显示数据。得到的显示数据被用于映射窗口64E、64F和64B的显示数据。需要进行第二次操作来获取窗口64C的显示数据,需要进行第三次操作来获取窗口64H的显示数据,因为这些窗口使用与窗口64A不同的深度。
通过为每个阵列元素72A-C包含第二个二维阵列78A,可以进一步提高映射显示数据的效率。对于位于相应部分70A中的每个像素,阵列78A包含一个阵列元素80。每个阵列元素80包含一个标识符,这个标识符标识出了与包含像素的窗口相对应的结点。当一个未共享的窗口显示在部分70A-C中时,与该窗口所拥有的像素相对应的阵列78A中的元素80可以被标记为无效。使用阵列78A确保了在一次单一操作中就能够发现共享显示区域中与任一像素相对应的结点。
当检测到被监控的窗口事件发生,并影响到一个或者多个结点列表76A-C和/或阵列78A时,结点列表76A-C和/或部分70A-C的阵列78A可以和结点层次结构62一起被更新。在一个实施例中,将被监控的窗口事件进行排队,直到重新开始更新共享的显示数据,此时如果需要的话,结点层次结构62、结点列表76A-C和阵列78A也将根据所有已排队的窗口事件进行更新。结点列表76A-C和阵列78A可通过已知或将要开发的任意方法得以实现,例如,每个结点列表76A-C可包含一个被链接的指针列表,其中的指针指向存储在存储器中的相应结点,而每个阵列78A可包含一个具有元素的二维阵列,其中的元素包含一个对于每个像素指向存储在存储器中的相应结点的指针,如现有技术所知的那样。
虽然讨论限于为显示区域中每个要映射的窗口而创建的结点,但应当理解,在显示屏中,可以为所有的窗口创建和管理结点,而不管它们是否位于要映射的区域内。另外,虽然本发明的方法参照像素数据进行了描述,但应当理解,本发明的原理能应用于任意类型的显示数据。此外还应当理解,可以为显示屏的显示桌面(即背景)创建结点,以得到没有被任何窗口所遮盖的显示屏部分的显示数据。
产业应用
当需要映射数据时,本发明可应用于通用计算机/服务器系统。应当理解,本发明可以在硬件、软件或者软硬件结合的环境中实现。一个典型的软硬件的结合可以是一个带有计算机程序的通用计算机系统,当加载和执行程序时,该计算机程序控制源计算机12(图2)和/或目标计算机16,以使其执行这里所描述的各自的方法。或者,也可以使用一个专用计算机,其包含特定的硬件,用于执行一个或者多个本发明的功能任务。
本发明也能嵌入到计算机程序产品中,它包括所有能够实现这里所描述的方法的相应特性。当加载计算机系统时,所述计算机程序产品能够执行这些方法。在本文中,计算机程序、软件程序、程序或者软件是指一组指令的任意语言的表达、代码或标记,用于使具有处理信息能力的系统直接地、或者在下述的一个或两个步骤之后完成一个特定的功能:(a)转换成另一种语言、代码或者标记;和/或(b)以不同材料的形式重新生成。
虽然已按照一定发生次序对不同的方法进行了描述,但应当理解,独立的步骤能够同时或者以与此处所描述的不同顺序实现。此外,虽然已描述和讨论了实现不同功能的多种系统,但应当理解,也可以用更少和/或更多的系统来实现此处不同的功能。
前面对于本发明不同方面的描述是为了说明和阐明的目的,并不是排他性的描述,或者将本发明限制在精确的范围。很明显,很多修改和改变都是可能的。这样的修改和改变对于本领域普通技术人员是很明显的,且包含于本发明的保护范围中,如随后权利要求所限定的。

Claims (20)

1.一种为包括至少一个窗口(64A-H)的显示区域(60)映射显示数据的方法,该方法包括:
为每个窗口创建(S2)一个结点(66A-H),每个结点包括层次关系数据以及为所述每个窗口显示数据的格式数据;
基于该层次关系数据生成(S3)一个结点层次结构(62);
将显示区域(60)划分成多个部分(70A-C),在显示区域(60)每个所述部分(70A-C)包括一个单独定义至少一个窗口的区域;
利用结点层次结构(62)为每个部分创建一个结点列表(76A-C),其中显示在该每个部分中的至少一部分中的所述每个窗口的结点包含在该结点列表中;
存储所述节点列表;并且
利用该结点层次结构,将该显示数据从第一格式映射(S7)为共享格式,其中所述映射是基于结点的所述显示数据和格式数据.
2.根据权利要求1所述的方法,还包括:
监控(S4)窗口事件的发生;并且
基于窗口事件的发生来更新(S5)结点层次结构(62).
3.根据权利要求2所述的方法,还包括基于窗口事件的发生来更新层次结构关系数据.
4.根据权利要求1所述的方法,其中一组兄弟窗口(64B-D)的一组兄弟结点(66B-D)基于该兄弟窗口的叠加顺序被放置到结点层次结构(62)中.
5.根据权利要求1所述的方法,还包括创建一个对于每个部分具有一个元素(72A-C)的阵列(74),其中每个元素包含该相应的部分的结点列表.
6.根据权利要求1所述的方法,还包括:
监控(S4)窗口事件的发生;并且
基于窗口事件的发生来更新(S5)至少一个结点列表.
7.根据权利要求1所述的方法,还包括在一个单一操作中获得(S6)具有第一像素深度的多个窗口的显示数据.
8.根据权利要求7所述的方法,还包括为具有第二像素深度的至少一个窗口重复进行上述获得和映射的步骤(S6,S7).
9.根据权利要求1所述的方法,其中映射步骤(S7)包括:
确定(S7A)对应于显示数据中每个像素的结点;
利用所述结点为每个像素确定(S7B)的像素数据的第一格式;并且
对于每个像素,由第一格式的像素数据生成(S7C)共享格式的像素数据.
10.根据权利要求1所述的方法,还包括与目标计算机(16)共享所映射的显示数据.
11.一种为包括至少一个窗口(64A-H)的显示区域(60)映射显示数据的系统,该系统包括:
为每个窗口创建(S2)一个结点(66A-H)的装置,其中每个结点包括层次关系数据以及为所述每个窗口显示数据的格式数据;
基于该层次关系数据生成(S3)一个结点层次结构(62)的装置;
将显示区域(60)划分成多个部分(70A-C)并在显示区域(60)每个所述部分(70A-C)包括一个单独定义至少一个窗口的区域的装置;
利用结点层次结构(62)为每个部分创建一个结点列表(76A-C)的装置,其中显示在该每个部分中的至少一部分中的所述每个窗口的结点包含在该结点列表中;
存储所述节点列表的装置;以及
利用该结点层次结构,将该显示数据从第一格式映射(S7)为共享格式的装置,其中所述映射是基于结点的所述显示数据和格式数据.
12.根据权利要求11所述的系统,还包括:
监控(S4)窗口事件的发生的装置;并且
基于窗口事件的发生来更新(S5)结点层次结构(62)的装置.
13.根据权利要求12所述的系统,还包括基于窗口事件的发生来更新层次结构关系数据的装置.
14.根据权利要求11所述的系统,其中一组兄弟窗口(64B-D)的一组兄弟结点(66B-D)基于该兄弟窗口的叠加顺序被放置到结点层次结构(62)中.
15.根据权利要求11所述的系统,还包括创建一个对于每个部分具有一个元素(72A-C)的阵列(74),其中每个元素包含该相应的部分的结点列表.
16.根据权利要求11所述的系统,还包括:
监控(S4)窗口事件的发生的装置;并且
基于窗口事件的发生来更新(S5)至少一个结点列表的装置.
17.根据权利要求11所述的系统,还包括在一个单一操作中获得(S6)具有第一像素深度的多个窗口的显示数据的装置.
18.根据权利要求17所述的系统,还包括为具有第二像素深度的至少一个窗口重复进行上述获得和映射的步骤(S6,S7)的装置.
19.根据权利要求11所述的系统,其中映射步骤(S7)包括:
确定(S7A)对应于显示数据中每个像素的结点的装置;
利用所述结点为每个像素确定(S7B)的像素数据的第一格式的装置;并且
对于每个像素,由第一格式的像素数据生成(S7C)共享格式的像素数据的装置.
20.根据权利要求11所述的系统,还包括与目标计算机(16)共享所映射的显示数据的装置.
CNB2004800121617A 2003-05-07 2004-05-07 显示数据映射的方法及其系统 Active CN100394473C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/249,781 US7260784B2 (en) 2003-05-07 2003-05-07 Display data mapping method, system, and program product
US10/249,781 2003-05-07

Publications (2)

Publication Number Publication Date
CN1784714A CN1784714A (zh) 2006-06-07
CN100394473C true CN100394473C (zh) 2008-06-11

Family

ID=33449387

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800121617A Active CN100394473C (zh) 2003-05-07 2004-05-07 显示数据映射的方法及其系统

Country Status (9)

Country Link
US (1) US7260784B2 (zh)
EP (1) EP1623408A4 (zh)
JP (1) JP4398466B2 (zh)
KR (1) KR100818976B1 (zh)
CN (1) CN100394473C (zh)
BR (1) BRPI0410112B1 (zh)
CA (1) CA2523478C (zh)
TW (1) TWI291113B (zh)
WO (1) WO2004100644A2 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7948448B2 (en) * 2004-04-01 2011-05-24 Polyvision Corporation Portable presentation system and methods for use therewith
US7483880B2 (en) * 2004-09-30 2009-01-27 Microsoft Corporation User interface for database display
JP4900889B2 (ja) * 2005-01-21 2012-03-21 キヤノン株式会社 情報処理装置及びその制御方法とプログラム
DE102005017313A1 (de) * 2005-04-14 2006-10-19 Volkswagen Ag Verfahren zur Darstellung von Informationen in einem Verkehrsmittel und Kombiinstrument für ein Kraftfahrzeug
US20080086700A1 (en) * 2006-10-06 2008-04-10 Rodriguez Robert A Systems and Methods for Isolating On-Screen Textual Data
CN101202036B (zh) * 2006-12-11 2013-04-03 上海奇码数字信息有限公司 图像处理中的地址映射方法及采用该方法的图像处理装置
US8166165B1 (en) 2007-03-13 2012-04-24 Adobe Systems Incorporated Securing event flow in a user interface hierarchy
US8984446B1 (en) * 2007-03-13 2015-03-17 Adobe Systems Incorporated Sharing display spaces
JP4342578B2 (ja) * 2007-07-24 2009-10-14 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置およびプログラム
US8315362B2 (en) * 2007-08-22 2012-11-20 Citrix Systems, Inc. Systems and methods for voicemail avoidance
US8750490B2 (en) * 2007-08-22 2014-06-10 Citrix Systems, Inc. Systems and methods for establishing a communication session among end-points
US9137377B2 (en) 2007-08-22 2015-09-15 Citrix Systems, Inc. Systems and methods for at least partially releasing an appliance from a private branch exchange
US8407605B2 (en) * 2009-04-03 2013-03-26 Social Communications Company Application sharing
US8397168B2 (en) 2008-04-05 2013-03-12 Social Communications Company Interfacing with a spatial virtual communication environment
US8095865B2 (en) * 2007-11-21 2012-01-10 Microsoft Corporation Layout manager
US20090187848A1 (en) * 2007-12-21 2009-07-23 Richard Leo Murtagh Methods and systems for identifying a process for analyzing data displayed by a window to a user of a computing device
US8612614B2 (en) * 2008-07-17 2013-12-17 Citrix Systems, Inc. Method and system for establishing a dedicated session for a member of a common frame buffer group
US8115778B2 (en) * 2008-09-26 2012-02-14 Nvidia Corporation System and method for selecting a pixel output format
TWI420384B (zh) * 2009-05-15 2013-12-21 Chi Mei Comm Systems Inc 電子裝置及調整該電子裝置顯示畫面位置的方法
US8356256B2 (en) * 2009-06-17 2013-01-15 Brigham Young University Presentation scratch spaces
US20110119454A1 (en) * 2009-11-17 2011-05-19 Hsiang-Tsung Kung Display system for simultaneous displaying of windows generated by multiple window systems belonging to the same computer platform
TWI467481B (zh) * 2010-05-31 2015-01-01 Ibm 層級式程式源碼管理方法、系統及電腦程式產品
CN102447814B (zh) * 2010-09-30 2015-11-25 无锡中星微电子有限公司 间接颜色图像的存储方法和装置、图像显示方法和装置
US20120304077A1 (en) 2011-05-23 2012-11-29 International Business Machines Corporation Accessing window pixel data for application sharing
US8750911B2 (en) * 2011-09-23 2014-06-10 Jianchong Yang Content source, content sink, and method for natively managing and delivering active content from one or more content sources to one or more content sinks wirelessly
US9207094B2 (en) * 2012-06-10 2015-12-08 Apple Inc. Road height generation for a road network
US9208601B2 (en) 2012-06-10 2015-12-08 Apple Inc. Computing plausible road surfaces in 3D from 2D geometry
KR101509869B1 (ko) * 2012-12-31 2015-04-07 현대자동차주식회사 디스플레이 연동 시스템 및 방법
CN105637472B (zh) * 2013-10-11 2019-03-19 华为技术有限公司 具有广义屏幕描述的屏幕内容共享系统的框架
US9830056B1 (en) * 2014-01-22 2017-11-28 Google Llc Indicating relationships between windows on a computing device
WO2016141131A1 (en) 2015-03-03 2016-09-09 Software Robotics Corporation Limited Software robots for programmatically controlling computer programs to perform tasks
US9786071B2 (en) * 2015-03-25 2017-10-10 International Business Machines Corporation Geometric shape hierarchy determination to provide visualization context
US10264213B1 (en) 2016-12-15 2019-04-16 Steelcase Inc. Content amplification system and method
TWI636450B (zh) * 2017-01-09 2018-09-21 禾聯碩股份有限公司 映射系統及其映射方法
CN110213265B (zh) * 2019-05-29 2021-05-28 腾讯科技(深圳)有限公司 图像获取方法、装置、服务器及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5844553A (en) * 1993-08-30 1998-12-01 Hewlett-Packard Company Mechanism to control and use window events among applications in concurrent computing
US6151020A (en) * 1997-10-24 2000-11-21 Compaq Computer Corporation Real time bit map capture and sharing for collaborative tools
CN1388453A (zh) * 2001-05-28 2003-01-01 谷电机工业株式会社 信息配送系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5008853A (en) * 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US5596702A (en) * 1993-04-16 1997-01-21 International Business Machines Corporation Method and system for dynamically sharing user interface displays among a plurality of application program
US5877762A (en) * 1995-02-27 1999-03-02 Apple Computer, Inc. System and method for capturing images of screens which display multiple windows
US5874960A (en) 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US6911987B1 (en) * 1995-07-05 2005-06-28 Microsoft Corporation Method and system for transmitting data for a shared application
US6204847B1 (en) * 1995-07-17 2001-03-20 Daniel W. Wright Shared virtual desktop collaborative application system
US6119104A (en) * 1997-11-24 2000-09-12 Keycorp Composite banking desktop system
US6389437B2 (en) * 1998-01-07 2002-05-14 Ion Systems, Inc. System for converting scrolling display to non-scrolling columnar display
US6151622A (en) * 1998-02-02 2000-11-21 International Business Machines Corp. Method and system for portably enabling view synchronization over the world-wide web using frame hierarchies
US20020138624A1 (en) * 2001-03-21 2002-09-26 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Collaborative web browsing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5844553A (en) * 1993-08-30 1998-12-01 Hewlett-Packard Company Mechanism to control and use window events among applications in concurrent computing
US6151020A (en) * 1997-10-24 2000-11-21 Compaq Computer Corporation Real time bit map capture and sharing for collaborative tools
CN1388453A (zh) * 2001-05-28 2003-01-01 谷电机工业株式会社 信息配送系统

Also Published As

Publication number Publication date
CA2523478A1 (en) 2004-11-25
CN1784714A (zh) 2006-06-07
BRPI0410112B1 (pt) 2017-01-17
US7260784B2 (en) 2007-08-21
BRPI0410112A (pt) 2006-05-09
CA2523478C (en) 2012-01-17
TW200513908A (en) 2005-04-16
WO2004100644A3 (en) 2005-03-24
JP2007503624A (ja) 2007-02-22
KR100818976B1 (ko) 2008-04-04
TWI291113B (en) 2007-12-11
EP1623408A2 (en) 2006-02-08
WO2004100644A2 (en) 2004-11-25
JP4398466B2 (ja) 2010-01-13
KR20060009834A (ko) 2006-02-01
EP1623408A4 (en) 2009-12-02
US20040239701A1 (en) 2004-12-02

Similar Documents

Publication Publication Date Title
CN100394473C (zh) 显示数据映射的方法及其系统
US5448696A (en) Map information system capable of displaying layout information
KR101741038B1 (ko) HTML5-WebGL 기반의 BIM 모델 활용을 위한 BIM 데이터 경량화 방법 및 장치
CA2303725A1 (en) Systems, methods and computer program products for building and displaying dynamic graphical user interfaces
US20110040531A1 (en) Method and System for Identification of Grouping Characteristics
Franz A critical framework for methodological research in architecture
JP2000507731A (ja) 視覚表示オブジェクト・ファイルを変換するシステムおよびその動作方法
US20140249779A1 (en) Method and apparatus for determining and presenting differences between 3d models
Rosenman et al. Multidisciplinary design in virtual worlds
WO2013106802A1 (en) Method and apparatus for determining and presenting differences between 3d models
WO2014070138A2 (en) Managing inferred data
US10140387B2 (en) Model for managing variations in a product structure for a product
GB2354683A (en) Method for indicating changes of constituent components in heterogeneous assembies
EP1215628A2 (en) Three-dimensional graph display apparatus
Densham et al. Supporting visual interactive locational analysis using multiple abstracted topological structures
Sabo et al. Toward Self-Generalizing objects and On-the-Fly map generalization
CN1291339C (zh) 专利自动分类与展示系统及方法
Brown et al. The architecture and implementation of a distributed computer integrated construction environment
Saad et al. A computational model for synchronous collaborative design
Kotulski et al. Synchronisation methods in graph-based knowledge representation for large-scale design process
US20240054145A1 (en) Object Lineage Analysis For Package Transport
Zhang Design of Visual Information Model of Blockchain Intelligent Interactive Data
Needham et al. An analysis of a corba-based approach to accessing geospatial information via the internet
Brekotkina et al. Intellectual Analysis of Spatial Data for Information Support in Management of Technical Component of Complex Distributed Information Systems
Cochran Control Room User Interface Technology in the Year 2000: Evolution or Revolution?

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant