CN102810040B - 一种显示处理方法、装置及计算机系统 - Google Patents
一种显示处理方法、装置及计算机系统 Download PDFInfo
- Publication number
- CN102810040B CN102810040B CN201110145043.5A CN201110145043A CN102810040B CN 102810040 B CN102810040 B CN 102810040B CN 201110145043 A CN201110145043 A CN 201110145043A CN 102810040 B CN102810040 B CN 102810040B
- Authority
- CN
- China
- Prior art keywords
- window
- operating system
- display
- virtual machine
- client operating
- 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
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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明的目的在于提供一种显示处理方法、装置及计算机系统,该显示处理方法用于一计算机系统,包括:所述客户操作系统检测到需要产生窗口的第二事件时,生成第二窗口生成消息;所述虚拟机接收所述客户操作系统发送的所述第二窗口生成消息;所述虚拟机将所述第二窗口生成消息发送到所述主操作系统;所述主操作系统根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同,其中,所述第一窗口是所述主操作系统中显示的,与所述客户操作系统相关的窗口。本发明实现了客户操作系统的多个显示窗口在主操作系统中的同时显示。
Description
技术领域
本发明属于电子领域,特别涉及一种显示处理方法、装置及计算机系统。
背景技术
Android(安卓)是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。
上市时间不久的Android操作系统已经成为最受欢迎的智能手机平台之一,已经广泛应用于智能手机和平板电脑。
虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。对于用户而言,它只是运行在物理计算机上的一个应用程序,但是对于在虚拟机中运行的应用程序而言,它就是一台真正的计算机。
目前已经可以基于虚拟机来提供逻辑硬件,并基于虚拟机虚拟出来的逻辑硬件运行Android操作系统,从而使得用户可以在个人电脑中来体验Android操作系统,然而,发明人在实现本发明实施例的过程中发现,现有技术至少存在如下缺点:
目前Android运行在虚拟机上的时候,由于Android系统本身的限制,其只支持一个窗口,而无法支持多窗口的显示,导致用户即使在计算机中运行,也只能看到一个窗口。
当然,以上是以Android操作系统在虚拟机上的运行为例说明现有技术的缺点,但同样的问题也存在于其他类型的操作系统,如Symbian塞班操作系统,苹果公司为iPhone开发的操作系统iOS。
发明内容
本发明实施例的目的在于提供一种显示处理方法、装置及计算机系统,基于虚拟机来实现客户操作系统的多个显示窗口的同时显示。
为了实现上述目的,本发明实施例提供了一种显示处理方法,用于一计算机系统,所述计算机系统中包括:
基于物理硬件运行的主操作系统;
用于基于所述物理硬件模拟出逻辑硬件的虚拟机;
基于所述逻辑硬件运行的客户操作系统;
所述显示处理方法包括:
所述客户操作系统检测到需要产生窗口的第二事件时,生成第二窗口生成消息;
所述虚拟机接收所述客户操作系统发送的所述第二窗口生成消息;
所述虚拟机将所述第二窗口生成消息发送到所述主操作系统;
所述主操作系统根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同,其中,所述第一窗口是所述主操作系统中显示的,与所述客户操作系统相关的窗口。
上述的显示处理方法,其中,所述第一窗口为主操作系统根据第一窗口生成消息生成的窗口,且所述第一窗口生成消息为虚拟机接收到的由所述客户操作系统检测到需要产生窗口的第一事件时生成并发送的消息。。
上述的显示处理方法,其中,使所述第二显示位置与第一窗口的第一显示位置不同包括:
使所述第二窗口与所述第一窗口不重叠。
上述的显示处理方法,其中,所述主操作系统根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同具体包括:
所述主操作系统获取在生成所述第一窗口时保存的所述第一窗口的第一位置信息;
所述主操作系统根据所述第一位置信息确定与所述第一位置信息不同的第二位置信息;
所述主操作系统根据所述第二位置信息和所述第二窗口生成消息生成并显示所述第二窗口。
上述的显示处理方法,其中,所述第二窗口生成消息为客户操作系统中的应用调用客户操作系统内的第一图形应用程序编程接口的消息;
所述主操作系统根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同具体包括:
所述主操作系统根据所述第二窗口生成消息调用主操作系统内对应的第二图形应用程序编程接口进行处理;
所述第二图形应用程序编程接口封装显示数据和包括所述第一位置的显示参数,并转发封装后的显示参数和显示数据到显卡驱动,由显卡上的图形处理单元实现所述第二窗口的生成和显示。
上述的显示处理方法,其中,所述第一图形应用程序编程接口和第二图形应用程序编程接口为开放式图形处理库应用程序编程接口。
上述的显示处理方法,其中,还包括:
所述主操作系统将检测到的对所述第二窗口执行的输入操作发送到所述虚拟机;
所述虚拟机将所述输入操作发送到所述客户操作系统;
所述客户操作系统将所述输入操作对应的输入消息插入到所述第二窗口对应的消息队列中等待处理。
上述的显示处理方法,其中,还包括:
所述客户操作系统在检测到对第二窗口进行修改的窗口修改指令时,生成窗口修改消息;
所述虚拟机接收所述客户操作系统发送的所述窗口修改消息;
所述虚拟机将所述窗口修改消息发送到所述主操作系统;
所述主操作系统依据所述窗口修改消息对所述第二窗口进行修改操作。
为了实现上述目的,本发明实施例还提供了一种显示处理装置,用于一计算机系统,所述计算机系统中包括:
基于物理硬件运行的主操作系统;
用于基于所述物理硬件模拟出逻辑硬件的虚拟机;
基于所述逻辑硬件运行的客户操作系统;
所述显示处理装置具体包括:
设置于所述客户操作系统中的第一消息生成模块,用于检测到需要产生窗口的第二事件时,生成第二窗口生成消息;
设置于虚拟机中的第一接收模块,用于接收所述客户操作系统发送的所述第二窗口生成消息;
设置于虚拟机中的第一发送模块,用于将所述第二窗口生成消息发送到所述主操作系统;
设置于所述主操作系统中的窗口生成处理模块,用于根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同,其中,所述第一窗口是所述主操作系统中显示的,与所述客户操作系统相关的窗口。
上述的显示处理装置,其中,所述第一窗口为主操作系统根据第一窗口生成消息生成的窗口,且所述第一窗口为主操作系统根据第一窗口生成消息生成的窗口,且所述第一窗口生成消息为虚拟机接收到的由所述客户操作系统检测到需要产生窗口的第一事件时生成并发送的消息。。
上述的显示处理装置,其中,所述第二显示位置与第一窗口的第一显示位置不同具体为所述第二窗口与所述第一窗口不重叠。
上述的显示处理装置,其中,所述窗口生成处理模块具体包括:
获取单元,用于获取在生成所述第一窗口时保存的所述第一窗口的第一位置信息;
位置信息确定单元,用于根据所述第一位置信息确定与所述第一位置信息不同的第二位置信息;
窗口处理单元,用于根据所述第二位置信息和所述第二窗口生成消息生成并显示所述第二窗口。
上述的显示处理装置,其中,所述第二窗口生成消息为客户操作系统中的应用调用客户操作系统内的第一图形应用程序编程接口的消息;
所述窗口生成处理模块包括:
调用单元,用于根据所述第二窗口生成消息调用主操作系统内对应的第二图形应用程序编程接口进行处理,由所述第二图形应用程序编程接口封装显示数据和包括所述第一位置的显示参数,并转发封装后的显示参数和显示数据到显卡驱动,由显卡上的图形处理单元实现所述第二窗口的生成和显示。
上述的显示处理装置,其中,所述第一图形应用程序编程接口和第二图形应用程序编程接口为开放式图形处理库应用程序编程接口。
上述的显示处理装置,其中,还包括:
设置于所述主操作系统中的第二发送模块,用于将检测到的对所述第二窗口执行的输入操作发送到所述虚拟机;
设置于虚拟机中的第三发送模块,用于将所述输入操作发送到所述客户操作系统;
设置于所述客户操作系统中的插入单元,用于将所述输入操作对应的输入消息插入到所述第二窗口对应的消息队列中等待处理。
上述的显示处理装置,其中,还包括:
设置于所述客户操作系统中的第二消息生成模块,用于在检测到对第二窗口进行修改的窗口修改指令时,生成窗口修改消息;
设置于虚拟机中的第二接收模块,用于接收所述客户操作系统发送的所述窗口修改消息;
设置于虚拟机中的第四发送模块,用于将所述窗口修改消息发送到所述主操作系统;
设置于所述主操作系统中的窗口修改模块,用于依据所述窗口修改消息对所述第二窗口进行修改操作。
为了实现上述目的,本发明实施例还提供了计算机系统,包括:
基于物理硬件运行的主操作系统;
用于基于所述物理硬件模拟出逻辑硬件的虚拟机;
基于所述逻辑硬件运行的客户操作系统;
所述客户操作系统包括:
第一消息生成模块,用于检测到需要产生窗口的第二事件时,生成第二窗口生成消息;
所述虚拟机包括:
第一接收模块,用于接收所述客户操作系统发送的所述第二窗口生成消息;和
第一发送模块,用于将所述第二窗口生成消息发送到所述主操作系统;
所述主操作系统包括:
窗口生成处理模块,用于根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同,其中,所述第一窗口是所述主操作系统中显示的,与所述客户操作系统相关的窗口。
所述第一窗口为主操作系统根据第一窗口生成消息生成的窗口,且所述第一窗口生成消息为虚拟机接收到的由所述客户操作系统检测到需要产生窗口的第一事件时生成并发送的消息。
所述第二显示位置与第一窗口的第一显示位置不同具体为所述第二窗口与所述第一窗口不重叠。
本发明实施例具有以下有益效果:
在本发明的具体实施例中,在客户操作系统检测到需要产生窗口的事件时,生成一窗口生成消息,该窗口生成消息由虚拟机发送到主操作系统,而主操作系统接收到该窗口生成消息首先确定窗口的位置,保证该新窗口与已有的在所述主操作系统中显示的,与所述客户操作系统相关的窗口的显示位置不同即可,然后在确定的位置根据内容数据来生成并显示窗口,使得多个窗口可以同时在主操作系统中显示,实现了多任务同时在前台运行;
在本发明的具体实施例中,主操作系统是利用硬件直接完成窗口的显示,相对于模拟方式大大提高了显示速度。
附图说明
图1所示为本发明实施例的显示处理方法的流程示意图;
图2所示为本发明实施例的显示处理方法中窗口显示位置不同的一种情况的示意图;
图3所示为本发明实施例的显示处理方法中窗口显示位置不同的另一种情况的示意图;
图4所示为本发明实施例的显示处理装置的结构示意图。
具体实施方式
本发明实施例的显示处理方法和装置中,由主操作系统来实现客户操作系统的窗口统一生成和管理,保证客户操作系统对应的多个窗口在主操作系统中的显示位置不同,实现多窗口的同时显示。
本发明具体实施例中,是对虚拟机中运行的客户操作系统的窗口进行控制和管理,在此先对涉及到的一些概念进行说明如下。
目前存在两种类型的虚拟化技术,一种为Type1,其直接运行于硬件系统之上,Type1也经常被称为硬件虚拟化引擎,而Type2则是以现有操作系统之上的应用程序之一的方式运行。在本发明的具体实施例中涉及到的虚拟机为Type2虚拟机,如Oracle的VirtualBox、微软公司的VirtualPC、以及中国设计的VMlite等。
下面Type2虚拟机中的一些概念说明如下。
虚拟机,基于所述物理硬件模拟出逻辑硬件,是逻辑上的一台计算机;
主操作系统HOS,是指基于物理实体运行的计算机上运行的操作系统;
客户操作系统GOS,运行在虚拟机上的操作系统。
例如在一台安装了WindowsNT的计算机上安装了虚拟机,虚拟机上运行的是Linux,那么,HOS指的WindowsNT,而GOS为Linux。
同时,在本发明的具体实施例中,并不限定该主操作系统的类型,其可以是各种能够同时显示多个窗口的操作系统,如Linux操作系统、微软的窗口操作系统以及其他各种类型的操作系统,而客户操作系统可以是
如Android操作系统、Symbian操作系统、iOS等各种类型的操作系统。
本发明实施例的显示处理方法,用于一计算机系统,所述计算机系统中包括:
基于物理硬件运行的主操作系统;
用于基于所述物理硬件模拟出逻辑硬件的虚拟机;
基于所述逻辑硬件运行的客户操作系统;
所述显示处理方法如图1所示包括:
步骤11,所述客户操作系统检测到需要产生窗口的第二事件时,生成第二窗口生成消息;
步骤12,所述虚拟机接收所述客户操作系统发送的所述第二窗口生成消息;
步骤13,所述虚拟机将所述第二窗口生成消息发送到所述主操作系统;
步骤14,所述主操作系统根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同,其中,所述第一窗口是所述主操作系统中显示的,与所述客户操作系统相关的窗口。
在本发明的具体实施例中,在客户操作系统检测到需要产生窗口的事件时,会生成一窗口生成消息,该窗口生成消息由虚拟机发送到主操作系统,该窗口生成消息包括了所有需要生成该窗口的数据,而主操作系统接收到该窗口生成消息首先确定窗口的位置,保证该新窗口与已有的在所述主操作系统中显示的,与所述客户操作系统相关的窗口的显示位置不同即可,然后在确定的位置根据内容数据来生成并显示窗口,使得多个窗口可以同时在主操作系统中显示。
在本发明的具体实施例中,主操作系统是利用物理硬件运行的操作系统,因此可以利用物理硬件直接完成窗口的显示,相对于模拟方式大大提高了显示速度。
在本发明的具体实施例中,在客户操作系统检测到需要产生窗口的事件可以是如下的各类事件,如:
应用程序图标被点击;或
通过应用程序内部模块新建一个文档;或
通过应用程序内部模块新打开一个已有文档。
当然,以上仅仅是举例,客户操作系统中还包括很多需要产生窗口的事件,在此不一一列举。
在本发明的具体实施例中,在主操作系统接收到根据所述第二窗口生成消息后,需要控制第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与所述主操作系统中显示的,与所述客户操作系统相关的第一窗口的第一显示位置不同,其中,所述第一窗口可以是显示该客户操作系统的窗口,也可以是客户操作系统中运行的应用程序对应的窗口,在此以后一种情况具体说明如下。
在后一种情况下,所述第一窗口为主操作系统根据第一窗口生成消息生成的窗口,且所述第一窗口生成消息为虚拟机接收到的由所述客户操作系统检测到需要产生窗口的第一事件时生成并发送的消息。也就是说,该第一窗口的生成过程与第二窗口的生成过程相同,二者属于同一种类型的窗口。
后续的说明以第一窗口是客户操作系统中运行的应用程序对应的窗口的情况为例进行说明,但应当理解的是,其处理措施同样适用于第一窗口是显示该客户操作系统的窗口的情况。
本发明具体实施例中,主操作系统在生成所述第一窗口时保存的所述第一窗口的第一位置信息,进而通过该第一窗口的位置信息来确定当前待生成窗口(第二窗口)的位置信息,以保证新生成窗口与已生成窗口的显示位置不同,具体包括:
所述主操作系统获取在生成所述第一窗口时保存的所述第一窗口的第一位置信息;
所述主操作系统根据所述第一位置信息确定与所述第一位置信息不同的第二位置信息;
所述主操作系统根据所述第二位置信息和所述第二窗口生成消息生成并显示所述第二窗口。
说明如下。
在主操作系统生成第一个窗口(应当理解在此所述的窗口以及之后提到的窗口都是与GOS相关的窗口,而不是HOS中的应用程序的窗口)时,由于此时并没有其他窗口的存在,因此可以任意确定该窗口的位置,并在生成后保存第一个窗口的位置信息;
在主操作系统生成第二个窗口时,此时已经存在第一个窗口,此时主操作系统需要根据保存的第一个窗口的位置信息来确定第二个窗口的位置信息,以保证第一个窗口和第二个窗口的显示位置不同;
在主操作系统生成第n个窗口时,此时已经存在第一个、第二个、...、第n-1个窗口,此时主操作系统需要根据保存的n-1个窗口的位置信息来确定第n个窗口的位置信息,以保证第n个窗口和之前的所有窗口的显示位置不同。
上述说明是以所有窗口的显示位置不同进行的说明,但应当理解的是,本发明实施例也可以用于实现存在显示位置不同的窗口的情况,而不必保证所有的窗口的显示位置不同,如第一个窗口位于第一位置,而其他所有的窗口都位于与第一位置不同的第二位置,其也实现了多个窗口的同时显示,但在后续的说明中以所有窗口的位置都不同为例进行说明。
在本发明的具体实施例中,需要保证第二窗口的显示位置与第一窗口的显示位置不同,在此,该显示位置不同可以是:
第一窗口和第二窗口不重叠,即二者的显示区域没有重叠的部分;或者
第一窗口和第二窗口的显示区域既存在重叠的部分,又存在不重叠的部分,两种显示位置不同的情况分别如图2和图3所示。
这两种方式下,保证显示位置不同的处理手段不同,分别说明如下。
在保证第一窗口和第二窗口不重叠时,该位置信息的信息为显示区域信息,主操作系统确定第二显示区域,该第二显示区域与第一窗口的第一显示区域没有重叠的部分即可。
在第一窗口和第二窗口的显示区域既存在重叠的部分,又存在不重叠的部分时,该第一位置信息可以是窗口的一个顶点的坐标,主操作系统确定第二显示位置时,只要保证第二窗口的对应顶点的坐标与保存的第一窗口的顶点的坐标不同即可。
从目前来看,不论是哪一种类型的图形芯片,总会支持某个版本的DirectX或OpenGLAPI(OpenGraphicsLibraryApplicationProgrammingInterface,开放式图形处理库应用程序编程接口)。
API是连接应用程序、操作系统和底层硬件的纽带,是软件函数的集合,这些预先编写好的函数可以对硬件进行直接控制,具有通用性。
而所述的第二窗口生成消息正式客户操作系统中的应用调用客户操作系统内的第一图形应用程序编程接口的消息;
所述主操作系统根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同具体包括:
所述主操作系统根据所述第二窗口生成消息调用主操作系统内对应的第二图形应用程序编程接口进行处理;
所述第二图形应用程序编程接口封装显示数据和包括所述第一位置的显示参数,并转发封装后的显示参数和显示数据到显卡驱动,由显卡上的图形处理单元实现所述第二窗口的生成和显示。
在本发明的具体实施例中,当客户操作系统是Android操作系统时,由于在Android系统中,低层绘图合成工作是由OpenGL完成,用户所看到屏幕绘图用OpenGL完成,所以该第一图形应用程序编程接口和第二图形应用程序编程接口都是开放式图形处理库应用程序编程接口。
当然,应当理解的是,考虑到技术的不断发展以及厂商之间的不断协作,后续的Android操作系统也有可能支持DirectX,但具体支持何种图形API接口不应该成为本发明实施例的限定。
按照本发明实施例的方法在主操作系统生成并显示该窗口后,还需要将用户在主操作系统中对窗口的操作(如拖拉、在窗口中进行输入等)返回给Android中对应的应用程序,同时也需要将应用程序对窗口的修改返回到主操作系统,由主操作系统进行相应处理,以体现对应的变化。
主/客户操作系统都可以通过消息循环来管理窗口,输入设备(键盘、鼠标、触摸板等)的输入最终会转化成操作系统消息放入窗口对应的应用程序的消息队列中,等待应用程序的处理。
因此,可以通过拦截主操作系统中的窗口的消息,并发送到客户操作系统,实现输入的传输,在此,本发明实施例的显示处理方法通过如下步骤实现输入的传输:
所述主操作系统将检测到的对所述第二窗口执行的输入操作发送到所述虚拟机;
所述虚拟机将所述输入操作发送到所述客户操作系统;
所述客户操作系统将所述输入操作对应的输入消息插入到所述第二窗口对应的消息队列中等待处理。
而一旦客户操作系统中需要对窗口进行修改,这种修改可能是两种情况引起的:
1、由于用户在窗口的输入导致需要修改,如一个游戏窗口用户执行一定的输入操作后会引起窗口内容的变化,又如一个游戏窗口用户拖拉后会引起窗口位置的变化;
2、由于Android系统的修改导致窗口需要修改,如用户在Android操作系统中调节显示参数。
因此,这种修改有可能与之前提到的对所述第二窗口执行的输入操作有关,也有可能是与之无关,但实现这种修改的方式都相同,包括:
所述客户操作系统在检测到对第二窗口进行修改的窗口修改指令时,生成窗口修改消息;
所述虚拟机接收所述客户操作系统发送的所述窗口修改消息;
所述虚拟机将所述窗口修改消息发送到所述主操作系统;
所述主操作系统依据所述窗口修改消息对所述第二窗口进行修改操作。
在此,该窗口修改指令有可能是由用户在窗口的输入导致的,也有可能是客户操作系统本身所导致的。
下面以用户在窗口的输入导致窗口修改为例说明如下。
假定存在一个射击游戏,其对应一窗口X,用户输入某一个操作,进行射击,此时主操作系统将检测到的输入操作通过所述虚拟机传递到所述客户操作系统;客户操作系统将所述输入操作对应的输入消息A插入到射击游戏对应的消息队列中等待处理。
当该输入消息A被处理后,需要在屏幕上显示子弹射出的显示效果,此时,应用程序会生成对应的窗口修改指令,以实现子弹射出的显示效果,而客户操作系统在检测到应用程序产生了对第二窗口进行修改的窗口修改指令时,会生成一个窗口修改消息来进行处理,但该窗口修改消息由所述虚拟机接收后发送到所述主操作系统,由主操作系统依据所述窗口修改消息对所述第二窗口进行修改操作。
在此,不管是主操作系统,还是客户操作系统,都还是调用操作系统内的图形应用程序编程接口来进行处理,只不过客户操作系统的调用被拦截发送到主操作系统,而主操作系统会调用图形应用程序编程接口,由图形应用程序编程接口封装显示数据,并转发到显卡驱动,由显卡上的图形处理单元实现窗口显示内容的修改。
本发明实施例的一种显示处理装置,用于一计算机系统,所述计算机系统中包括:
基于物理硬件运行的主操作系统;
用于基于所述物理硬件模拟出逻辑硬件的虚拟机;
基于所述逻辑硬件运行的客户操作系统;
所述显示处理装置如图4所示,具体包括:
设置于所述客户操作系统中的第一消息生成模块,用于检测到需要产生窗口的第二事件时,生成第二窗口生成消息;
设置于虚拟机中的第一接收模块,用于接收客户操作系统发送的所述第二窗口生成消息;
设置于虚拟机中的第一发送模块,用于将所述第二窗口生成消息发送到所述主操作系统;
设置于所述主操作系统中的窗口生成处理模块,用于根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同,其中,所述第一窗口是所述主操作系统中显示的,与所述客户操作系统相关的窗口。
上述的显示处理装置,所述第一窗口为主操作系统根据第一窗口生成消息生成的窗口,且所述第一窗口生成消息为虚拟机接收到的由所述客户操作系统检测到需要产生窗口的第一事件时时生成并发送的消息。
上述的显示处理装置,所述第二显示位置与第一窗口的第一显示位置不同具体为所述第二窗口与所述第一窗口不重叠。
上述的显示处理装置,所述窗口生成处理模块具体包括:
获取单元,用于获取在生成所述第一窗口时保存的所述第一窗口的第一位置信息;
位置信息确定单元,用于根据所述第一位置信息确定与所述第一位置信息不同的第二位置信息;
窗口处理单元,用于根据所述第二位置信息和所述第二窗口生成消息生成并显示所述第二窗口。
上述的显示处理装置,所述第二窗口生成消息为客户操作系统中的应用调用客户操作系统内的第一图形应用程序编程接口的消息;
所述窗口生成处理模块包括:
调用单元,用于根据所述第二窗口生成消息调用主操作系统内对应的第二图形应用程序编程接口进行处理,由所述第二图形应用程序编程接口封装显示数据和包括所述第一位置的显示参数,并转发封装后的显示参数和显示数据到显卡驱动,由显卡上的图形处理单元实现所述第二窗口的生成和显示。
上述的显示处理装置,所述第一图形应用程序编程接口和第二图形应用程序编程接口为开放式图形处理库应用程序编程接口。
上述的显示处理装置,还包括:
设置于所述主操作系统中的第二发送模块,用于将检测到的对所述第二窗口执行的输入操作发送到所述虚拟机;
设置于虚拟机中的第三发送模块,用于将所述输入操作发送到所述客户操作系统;
设置于所述客户操作系统中的插入单元,用于将所述输入操作对应的输入消息插入到所述第二窗口对应的消息队列中等待处理。
上述的显示处理装置,还包括:
设置于所述客户操作系统中的第二消息生成模块,用于在检测到对第二窗口进行修改的窗口修改指令时,生成窗口修改消息;
设置于虚拟机中的第二接收模块,用于接收所述客户操作系统发送的所述窗口修改消息;
设置于虚拟机中的第四发送模块,用于将所述窗口修改消息发送到所述主操作系统;
设置于所述主操作系统中的窗口修改模块,用于依据所述窗口修改消息对所述第二窗口进行修改操作。
本发明实施例的计算机系统,包括:
基于物理硬件运行的主操作系统;
用于基于所述物理硬件模拟出逻辑硬件的虚拟机;
基于所述逻辑硬件运行的客户操作系统;
所述客户操作系统包括:
第一消息生成模块,用于检测到需要产生窗口的第二事件时,生成第二窗口生成消息;
所述虚拟机包括:
第一接收模块,用于接收所述客户操作系统发送的所述第二窗口生成消息;和
第一发送模块,用于将所述第二窗口生成消息发送到所述主操作系统;
所述主操作系统包括:
窗口生成处理模块,用于根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同,其中,所述第一窗口是所述主操作系统中显示的,与所述客户操作系统相关的窗口。
所述第一窗口为主操作系统根据第一窗口生成消息生成的窗口,且所述第一窗口生成消息为虚拟机接收到的由所述客户操作系统检测到需要产生窗口的第一事件时生成并发送的消息。
所述第二显示位置与第一窗口的第一显示位置不同具体为所述第二窗口与所述第一窗口不重叠。
本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。
实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。
在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (19)
1.一种显示处理方法,用于一计算机系统,其特征在于,所述计算机系统中包括:
基于物理硬件运行的主操作系统;
用于基于所述物理硬件模拟出逻辑硬件的虚拟机;
基于所述逻辑硬件运行的客户操作系统;所述客户操作系统为不支持多窗口同时显示的操作系统;
所述显示处理方法包括:
所述客户操作系统检测到需要产生窗口的第二事件时,生成第二窗口生成消息;
所述虚拟机接收所述客户操作系统发送的所述第二窗口生成消息;
所述虚拟机将所述第二窗口生成消息发送到所述主操作系统;
所述主操作系统根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同,其中,所述第一窗口是所述主操作系统中显示的,与所述客户操作系统相关的窗口。
2.根据权利要求1所述的显示处理方法,其特征在于,所述第一窗口为主操作系统根据第一窗口生成消息生成的窗口,且所述第一窗口生成消息为虚拟机接收到的由所述客户操作系统检测到需要产生窗口的第一事件时生成并发送的消息。
3.根据权利要求1所述的显示处理方法,其特征在于,使所述第二显示位置与第一窗口的第一显示位置不同包括:
使所述第二窗口与所述第一窗口不重叠。
4.根据权利要求1所述的显示处理方法,其特征在于,所述主操作系统根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同具体包括:
所述主操作系统获取在生成所述第一窗口时保存的所述第一窗口的第一位置信息;
所述主操作系统根据所述第一位置信息确定与所述第一位置信息不同的第二位置信息;
所述主操作系统根据所述第二位置信息和所述第二窗口生成消息生成并显示所述第二窗口。
5.根据权利要求1所述的显示处理方法,其特征在于,所述第二窗口生成消息为客户操作系统中的应用调用客户操作系统内的第一图形应用程序编程接口的消息;
所述主操作系统根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同具体包括:
所述主操作系统根据所述第二窗口生成消息调用主操作系统内对应的第二图形应用程序编程接口进行处理;
所述第二图形应用程序编程接口封装显示数据和包括所述第一显示位置的显示参数,并转发封装后的显示参数和显示数据到显卡驱动,由显卡上的图形处理单元实现所述第二窗口的生成和显示。
6.根据权利要求5所述的显示处理方法,其特征在于,所述第一图形应用程序编程接口和第二图形应用程序编程接口为开放式图形处理库应用程序编程接口。
7.根据权利要求1所述的显示处理方法,其特征在于,还包括:
所述主操作系统将检测到的对所述第二窗口执行的输入操作发送到所述虚拟机;
所述虚拟机将所述输入操作发送到所述客户操作系统;
所述客户操作系统将所述输入操作对应的输入消息插入到所述第二窗口对应的消息队列中等待处理。
8.根据权利要求1所述的显示处理方法,其特征在于,还包括:
所述客户操作系统在检测到对第二窗口进行修改的窗口修改指令时,生成窗口修改消息;
所述虚拟机接收所述客户操作系统发送的所述窗口修改消息;
所述虚拟机将所述窗口修改消息发送到所述主操作系统;
所述主操作系统依据所述窗口修改消息对所述第二窗口进行修改操作。
9.一种显示处理装置,用于一计算机系统,其特征在于,所述计算机系统中包括:
基于物理硬件运行的主操作系统;
用于基于所述物理硬件模拟出逻辑硬件的虚拟机;
基于所述逻辑硬件运行的客户操作系统;所述客户操作系统为不支持多窗口同时显示的操作系统;
所述显示处理装置具体包括:
设置于所述客户操作系统中的第一消息生成模块,用于检测到需要产生窗口的第二事件时,生成第二窗口生成消息;
设置于虚拟机中的第一接收模块,用于接收所述客户操作系统发送的所述第二窗口生成消息;
设置于虚拟机中的第一发送模块,用于将所述第二窗口生成消息发送到所述主操作系统;
设置于所述主操作系统中的窗口生成处理模块,用于根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同,其中,所述第一窗口是所述主操作系统中显示的,与所述客户操作系统相关的窗口。
10.根据权利要求9所述的显示处理装置,其特征在于,所述第一窗口为主操作系统根据第一窗口生成消息生成的窗口,且所述第一窗口为主操作系统根据第一窗口生成消息生成的窗口,且所述第一窗口生成消息为虚拟机接收到的由所述客户操作系统检测到需要产生窗口的第一事件时生成并发送的消息。
11.根据权利要求9所述的显示处理装置,其特征在于,所述第二显示位置与第一窗口的第一显示位置不同具体为所述第二窗口与所述第一窗口不重叠。
12.根据权利要求9所述的显示处理装置,其特征在于,所述窗口生成处理模块具体包括:
获取单元,用于获取在生成所述第一窗口时保存的所述第一窗口的第一位置信息;
位置信息确定单元,用于根据所述第一位置信息确定与所述第一位置信息不同的第二位置信息;
窗口处理单元,用于根据所述第二位置信息和所述第二窗口生成消息生成并显示所述第二窗口。
13.根据权利要求9所述的显示处理装置,其特征在于,所述第二窗口生成消息为客户操作系统中的应用调用客户操作系统内的第一图形应用程序编程接口的消息;
所述窗口生成处理模块包括:
调用单元,用于根据所述第二窗口生成消息调用主操作系统内对应的第二图形应用程序编程接口进行处理,由所述第二图形应用程序编程接口封装显示数据和包括所述第一显示位置的显示参数,并转发封装后的显示参数和显示数据到显卡驱动,由显卡上的图形处理单元实现所述第二窗口的生成和显示。
14.根据权利要求13所述的显示处理装置,其特征在于,所述第一图形应用程序编程接口和第二图形应用程序编程接口为开放式图形处理库应用程序编程接口。
15.根据权利要求9所述的显示处理装置,其特征在于,还包括:
设置于所述主操作系统中的第二发送模块,用于将检测到的对所述第二窗口执行的输入操作发送到所述虚拟机;
设置于虚拟机中的第三发送模块,用于将所述输入操作发送到所述客户操作系统;
设置于所述客户操作系统中的插入单元,用于将所述输入操作对应的输入消息插入到所述第二窗口对应的消息队列中等待处理。
16.根据权利要求9所述的显示处理装置,其特征在于,还包括:
设置于所述客户操作系统中的第二消息生成模块,用于在检测到对第二窗口进行修改的窗口修改指令时,生成窗口修改消息;
设置于虚拟机中的第二接收模块,用于接收所述客户操作系统发送的所述窗口修改消息;
设置于虚拟机中的第四发送模块,用于将所述窗口修改消息发送到所述主操作系统;
设置于所述主操作系统中的窗口修改模块,用于依据所述窗口修改消息对所述第二窗口进行修改操作。
17.一种计算机系统,其特征在于,包括:
基于物理硬件运行的主操作系统;
用于基于所述物理硬件模拟出逻辑硬件的虚拟机;
基于所述逻辑硬件运行的客户操作系统;所述客户操作系统为不支持多窗口同时显示的操作系统;
所述客户操作系统包括:
第一消息生成模块,用于检测到需要产生窗口的第二事件时,生成第二窗口生成消息;
所述虚拟机包括:
第一接收模块,用于接收所述客户操作系统发送的所述第二窗口生成消息;和
第一发送模块,用于将所述第二窗口生成消息发送到所述主操作系统;
所述主操作系统包括:
窗口生成处理模块,用于根据所述第二窗口生成消息生成第二窗口,并控制所述第二窗口显示于显示屏的第二显示位置,使所述第二显示位置与第一窗口的第一显示位置不同,其中,所述第一窗口是所述主操作系统中显示的,与所述客户操作系统相关的窗口。
18.根据权利要求17所述的计算机系统,其特征在于,所述第一窗口为主操作系统根据第一窗口生成消息生成的窗口,且所述第一窗口生成消息为虚拟机接收到的由所述客户操作系统检测到需要产生窗口的第一事件时生成并发送的消息。
19.根据权利要求17所述的计算机系统,其特征在于,所述第二显示位置与第一窗口的第一显示位置不同具体为所述第二窗口与所述第一窗口不重叠。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110145043.5A CN102810040B (zh) | 2011-05-31 | 2011-05-31 | 一种显示处理方法、装置及计算机系统 |
PCT/CN2012/075359 WO2012163221A1 (zh) | 2011-05-31 | 2012-05-11 | 显示处理方法、装置及计算机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110145043.5A CN102810040B (zh) | 2011-05-31 | 2011-05-31 | 一种显示处理方法、装置及计算机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102810040A CN102810040A (zh) | 2012-12-05 |
CN102810040B true CN102810040B (zh) | 2016-03-30 |
Family
ID=47233753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110145043.5A Active CN102810040B (zh) | 2011-05-31 | 2011-05-31 | 一种显示处理方法、装置及计算机系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102810040B (zh) |
WO (1) | WO2012163221A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414867B (zh) * | 2013-07-19 | 2016-08-24 | 华为技术有限公司 | 多媒体通话控制方法、终端及系统 |
CN103593185B (zh) * | 2013-11-04 | 2017-01-04 | 浙江大学 | 基于单Linux内核的多Android系统共享输入显示设备的方法 |
CN104765623A (zh) * | 2014-01-03 | 2015-07-08 | 中兴通讯股份有限公司 | 一种实现多操作系统的数据处理方法及终端设备 |
CN105005427A (zh) * | 2014-04-23 | 2015-10-28 | 中兴通讯股份有限公司 | 一种窗口管理方法及装置 |
CN105760038A (zh) * | 2014-12-16 | 2016-07-13 | 阿里巴巴集团控股有限公司 | 一种多窗口显示方法及装置 |
EP3387835A1 (en) | 2015-12-11 | 2018-10-17 | VID SCALE, Inc. | Scheduling multiple-layer video segments |
CN107291319A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种窗口显示方法、信息交互方法及系统 |
CN107292807B (zh) * | 2016-03-31 | 2020-12-04 | 阿里巴巴集团控股有限公司 | 一种图形合成方法、窗口设置方法及系统 |
CN105975238B (zh) * | 2016-07-22 | 2019-04-23 | 珠海市魅族科技有限公司 | 一种显示参数的调整方法及终端设备 |
CN106339211B (zh) * | 2016-08-12 | 2020-01-17 | 北京领通科技有限公司 | 一种智能终端远程服务中显示不一致的监控方法和装置 |
CN106354455B (zh) * | 2016-08-17 | 2019-09-13 | 青岛海信电器股份有限公司 | 人机界面显示处理装置及其方法 |
CN108401453B (zh) * | 2017-12-27 | 2020-01-07 | 深圳前海达闼云端智能科技有限公司 | 一种控制显示屏的方法、装置和智能终端 |
WO2019178754A1 (zh) | 2018-03-20 | 2019-09-26 | 深圳前海达闼云端智能科技有限公司 | 计算机设备中客户操作系统屏幕截图方法和装置 |
CN108549564B (zh) * | 2018-03-30 | 2021-11-09 | 武汉斗鱼网络科技有限公司 | 用户界面的显示处理方法及客户端 |
CN109828808B (zh) * | 2018-12-24 | 2023-01-31 | 珠海海鸟科技有限公司 | 一种防拦截方法及相关设备 |
CN112114916B (zh) * | 2020-08-31 | 2021-06-08 | 北京技德系统技术有限公司 | 一种在Linux操作系统上兼容运行Android应用的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398766A (zh) * | 2007-09-29 | 2009-04-01 | 联想(北京)有限公司 | 一种虚拟机系统中的显示处理方法及虚拟机系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620949B2 (en) * | 2004-03-31 | 2009-11-17 | Intel Corporation | Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment |
US8972977B2 (en) * | 2004-06-30 | 2015-03-03 | Microsoft Technology Licensing, Llc | Systems and methods for providing seamless software compatibility using virtual machines |
US7996785B2 (en) * | 2004-06-30 | 2011-08-09 | Microsoft Corporation | Systems and methods for integrating application windows in a virtual machine environment |
CN101221516B (zh) * | 2008-01-18 | 2011-06-29 | 清华大学 | 跨操作系统平台的界面无缝整合方法及系统 |
-
2011
- 2011-05-31 CN CN201110145043.5A patent/CN102810040B/zh active Active
-
2012
- 2012-05-11 WO PCT/CN2012/075359 patent/WO2012163221A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398766A (zh) * | 2007-09-29 | 2009-04-01 | 联想(北京)有限公司 | 一种虚拟机系统中的显示处理方法及虚拟机系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102810040A (zh) | 2012-12-05 |
WO2012163221A1 (zh) | 2012-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102810040B (zh) | 一种显示处理方法、装置及计算机系统 | |
US11036345B2 (en) | System and method for on-screen graphical user interface encapsulation and reproduction | |
CN107925749B (zh) | 用于调整电子设备的分辨率的方法和设备 | |
US9015672B2 (en) | Interface simulator for test rig in data distribution service | |
CN100511156C (zh) | 强制性地终止输入/输出操作阻止的线程的设备和方法 | |
US9411640B2 (en) | Method for efficiently managing application and electronic device implementing the method | |
CN103064796B (zh) | 虚拟机内存的共享方法与计算机系统 | |
US9164646B2 (en) | Method and apparatus for accommodating display migration among a plurality of physical displays | |
US20120236012A1 (en) | Method and Device for Displaying Application Image | |
CN107958365B (zh) | 物料信息变更方法、装置、存储介质及电子设备 | |
CN107608609A (zh) | 一种事件对象发送方法与装置 | |
CN104391581A (zh) | 移动终端及其应用程序的操作界面的投影方法 | |
CN103268620A (zh) | 图形处理方法、图形处理装置及终端设备 | |
CN103019900B (zh) | 终端性能的检测结果显示方法和装置 | |
CN105653133A (zh) | 应用程序的扩展方法及装置 | |
CN109976744B (zh) | 一种可视化编程方法、系统及终端设备 | |
CN104866335A (zh) | 一种移动终端基于Egret Runtime运行游戏的方法及装置 | |
CN107729010B (zh) | 视图显示方法、装置、计算设备以及存储介质 | |
EP3373250B1 (en) | Method and portable electronic device for changing graphics processing resolution based on scenario | |
CN110619102B (zh) | 一种页面元素的监听的方法及装置 | |
US9128613B2 (en) | Positioning clickable hotspots on a touchscreen display | |
US10162602B2 (en) | Method for handling user-level events for programming an application | |
CN115454870A (zh) | flutter应用程序智能调试的方法、装置、设备和存储介质 | |
CN113590221B (zh) | 着色器变体数量的检测方法、装置、电子设备及存储介质 | |
CN112116719B (zh) | 三维场景中对象的确定方法、装置、存储介质和电子设备 |
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 |