用于提供对硬件图形层的透明接入的系统的制作方法

文档序号:6639343阅读:186来源:国知局
专利名称:用于提供对硬件图形层的透明接入的系统的制作方法
技术领域
本发明通常涉及计算机图形学,更具体地涉及用于配置、控制和接入用来组成一个视频显示的多个硬件图形层的方法和系统。
背景技术
视窗型操作系统允许用户和开发者通过相容的图形用户接口(GUI)与软件应用程序进行交互,同时为他们提供同时与多个软件应用程序相交互的能力。理想地,当操作系统保持相容的应用程序接口(API)时,操作系统应该提供尽可能多的到达底层图形硬件功能的接入。操作系统API是组成操作系统与接入它的软件应用程序之间的接口的例程、协议、和工具的集合。软件应用程序与操作环境(即,视频显示器、硬盘驱动器、键盘等等)之间的任何交互作用都是通过操作系统API完成的。
此外,操作系统应该支持一定程度的特征透明度。也就是说,软件应用程序应该能够受益于系统特征,而不要求软件应用程序得知系统特征的每个细节。例如,在16位色彩深度显示系统上设计的软件应用程序应该如预期的那样在32位色彩深度显示系统上运行。软件应用程序应该不需知道它正在其上运行的视频显示器所支持的色彩深度。操作系统提供的特征透明度程度越高,能够在多种环境下运行的软件应用程序的开发就越容易,并且可以在任何给定平台上使用的软件应用程序的选择也就越多。
视频存储器、视频面和多层(layers)个人计算机和其它计算设备通常包括被称为图形卡、视频卡或视频板的电路板,它允许个人计算机驱动物理显示器,例如LCD(液晶显示器)或CRT(阴极射线管)监视器。这些图形卡典型地包含它们自己的视频存储器,这样就不需要计算机的RAM(随机存取存储器)来保存视频显示数据。很多图形卡还有它们自己的板上微处理器,这样呈现图像所需的处理能够被快速完成而不会成为计算机的主微处理器的负担。
图形卡典型地拥有比保存单个显示屏的内容所需要的多得多的视频存储空间。视频存储器的内容被分为能够被动态地定义和重新定义的块,每个块有特定的宽度、高度和其它性质。每个块被称做一个视频“面”,这些视频面之一被作为主显示。对关于主显示的视频面进行绘制将在物理显示器上产生可视图形。对除主显示外的视频面进行绘制将是不可见的,除非那些面的内容是“被位图传送(blitted)”到主显示的视频面。
“多层”硬件允许图形卡把一个或多个视频面作为主显示的组成部分。结合和/或混合多个视频面以创建主显示的方式可以通过图形卡上的多层硬件来配置。多层硬件将所有指向主显示的面无破坏地结合起来。也就是说,这多个视频面的内容不受分层硬件的影响——只有显示设备上看到的最后结果受到影响。这使得具有分层硬件的图形卡成为对低性能平台理想的图形卡,低性能平台需要例如自动的远程信息处理系统(telematics)的精细图形组成,其中,例如,可能期望显示道路图上的通风系统的设置或者正在连续播放的视频程序的设置。
“自动的远程信息处理系统”指的是管理汽车里的环境和娱乐系统的计算机化控制系统的技术。这些系统还被称作汽车“信息娱乐”或“信息电子(infotronic)”系统,或者其它类似的名字。这种系统能管理的一些功能包括1.支持例如无线广播、视频游戏和播放电影的娱乐应用。可以将这些娱乐应用有选择性地针对汽车中的不同显示器、扬声器和头戴受话器系统;2.管理车辆气候控制系统;3.提供互联网接入、电子邮件和即时消息服务(instant messagingservice);4.提供例如反盗窃和自动拨号的安全系统;5.与例如个人数字助理(PDA)、膝上型电脑和笔记本式机算机的便携式计算设备的连接和同步;6.显示电子道路图,使用GPS(全球定位系统)技术来选择正确的地图并识别车辆在地图上的实际位置。这项技术还可以用于通知用户附近的服务站、饭店和其它服务,提供交通信息、导航建议和停车场利用率;以及7.与加油站的销售点和相关的自动化银行服务进行无线交互;例如,允许用户购买汽油、洗车和下载电影,而不必非要与服务员进行交互(参见例如,Sun Microsystems,Inc.在2001的“The eGasStationArchitecture-JavaTMTechnology Based Managed Services for RetailService Stations”(太阳微系统有限公司在2001年发表的“电子加油站构架——用于零售服务站的基于JavaTM技术的受控服务”))。
这个列表只是汽车远程信息处理系统能被设计来支持的所有功能中的小部分示例。随着时间的推移其它服务也必将得到远程信息处理系统的支持。
现有的视频系统在本技术领域中有两种视频系统的通用配置。
在一种系统中,软件应用程序使用直接操作图形卡的存储器和寄存器的操作系统的API来绘制图像、向量和字符来影响显示。软件应用程序使用操作系统API,但是软件应用程序本身用作对硬件进行直接操作的图形驱动程序。在这种系统中,由于硬件争用问题一次只有一种软件应用程序可以接入图形卡。
在其它系统中,软件应用程序使用打包并发送出绘制请求的操作系统的API进行绘制。如果打包的绘制请求被传送给正在使用操作系统的API来操作图形卡的存储器和寄存器以影响显示的软件应用程序,则那些绘制请求被交给图形卡并可能对可视显示产生影响。在这种配置中,绘图应用程序和图形驱动程序是分离的允许多个应用程序使用单个图形卡绘图的软件进程。用于传送封装的绘制请求的机构在本领域内已知的窗口系统范围内变化。
图1示出了如现有技术已知的具有多层支持的图形卡的典型配置框图10。当软件应用程序12希望在显示屏14上绘制图像、字符或者向量时,它向操作系统18的API 16发出“绘制”请求。操作系统18处理该绘制请求并向图形卡20发送合适的指令。这些指令是通过操作系统API 16和图形卡20的API 22传送的。因为操作系统18不知道图形卡20中的硬件层24,所有的绘制请求仅仅会被传给同一层,主层26。接着主层26中的视频图像被传到显示屏14上。
如果软件应用程序12对图形卡20的API 22有特定的了解,并且系统的其余部分许可,则软件应用程序12能够直接向图形卡20传递消息或者从其传出消息以操纵图形卡20的存储器和寄存器(这是上文所述的第一种方法)。可替代地,如果操作系统18具有对图形卡20的API 22有特定的了解的图形驱动程序并且系统的其余部分许可,则操作系统18中的图形驱动程序可以操纵图形卡20的多层性能(这是上文所述的第二种方法)。
用来接入和控制视频硬件层的API首先是由生产多层支持的图形卡的图形卡制造商提供的。但是,这些早期的API至少存在两个主要问题1.不同制造商的API彼此之间几乎没有共性,这意味着需要接入和控制图形卡的多层特征的软件应用程序只能在一个制造商生产的图形卡上工作;以及2.视窗型操作系统对视频硬件层的存在一无所知,因此这些层不能通过操作系统API接入。
近期,可以使用一种操作系统API,其与硬件分层性能相容但是接口受限,尽管软件应用程序仍需要使用该特定的操作系统API才能够传到硬件所支持的层。这个限制导致不可能将第三方软件集成到能够分层的系统。换句话说,这个新操作系统API仍然需要第三方软件应用程序知道该新操作系统API接入了硬件层,并知道如何使用它。典型地,第三方软件应用程序不具有该知识,因此这不是“透明的”方案。
这种API是“DirectFB”——以有限的方式提供对视频多层性能的一般接入的API。DirectFB被限制为只能使用面,具有以一定程度共享主显示面的能力。
现有的允许软件应用程序直接接入图形硬件层的操作系统API,由于硬件争用问题通常会阻止该层被多个软件应用程序共享。
在汽车、医疗仪器、消费品、及工业自动化市场中,对允许使用第三方软件应用程序、传统应用程序、及指向多于一个对象的新软件应用程序以便能够影响选定的图形硬件的分层能力的图形解决方案的要求增长。
因此需要一种集成的方案来配置、控制、并接入(传送)解决上文列出的问题的图形硬件层。选择的方案必须考虑目标市场的需要汽车适当的尺寸和性能敏感性(performance sensitive)消费品适当的尺寸和性能敏感性医疗适当的性能敏感性工业自动化适当的性能敏感性这种设计还必须考虑到执行速度、可靠性、复杂度和可扩展性。

发明内容
因此,本发明的目标是提供一种能排除或者减轻现有技术的至少一种缺点的计算机文件管理的新颖方法和系统。
本发明的一个方面被广义地定义为,在包括软件应用程序和正在计算机上运行的操作系统的计算机环境中,所述计算机包括图形卡和视频显示器,所述图形卡可操作用来将图像传给所述视频显示器,改进包括所述操作系统包括支持图形卡上的硬件层的通用的应用程序接口(API);所述操作系统可操作用来通过所述通用的API接收绘制事件;确定所述图形卡上的可用硬件层,及它们的参数;以及通过将所述绘制请求有选择地传给在所述图形卡上所述可用的硬件层中的任意一个来响应来自所述软件应用程序的绘制请求;由此,所述计算机环境允许软件应用程序使用所述图形卡上的可用硬件层。
在本发明的优选实施方式中,提供了允许窗口环境和多层硬件被配置的机构,以使不了解视频层的软件应用程序能够在实际上传送到多层。也就是说,软件应用程序根本不需使用视频层API,也不需使用任何特定的绘制命令就能够传到多层。这个机构允许在分层环境中使用未修改的传统应用程序。


本发明的这些和其它性质将从参考附图的下面的说明中变得更容易理解
图1示出了本领域中已知的支持视频层的计算机系统的框图;图2示出了本发明的一个实施方式中支持视频层的计算机系统的框图;图3示出了本发明的一个实施方式中PhotoTM事件空间和QNXTM操作系统环境的符号可视化;图4示出了本发明的一个实施方式中支持视频硬件层管理的修改的Photon事件空间的符号可视化;图5示出了在本发明的一个实施方式中的配置视频层支持的方法的流程图;图6示出了在本发明的一个实施方式中的默认的视窗管理程序控制台的布置图;以及图7示出了本发明的一个实施方式中的处理绘制事件的方法的流程图。
具体实施例方式
一般地说,本发明通过提供以下操作系统来解决本领域中的问题,该操作系统1.具有支持图形卡上的硬件层的通用API;2.确定使用中的图形卡上的可用层,和那些层的参数;以及3.通过使用这些可用的视频层对来自软件应用程序的绘制请求做出反应。
该系统为传送到图形硬件层提供了特征透明度。本文中描述了本发明的多个实施方式,但是显然本发明能够以很多不同的方法来实现。图2的框图示出了使用本发明的典型系统的概况。
可以将图2的框图与图1的框图作对比。在图2的情况中,当软件应用程序32希望向显示屏14上绘制图像、字符或者向量时,它可能了解也可能不了解可用的多层支持。因此,系统30支持两种不同类型的发到操作系统36的API 34的绘制请求包括硬件层信息的请求38和不包括它的请求40。
本发明的操作系统36具有不仅支持将绘制请求指向视频面(它能够与多层联系起来)(38),而且支持无指向的绘制API 34。为了支持传统的第三方软件应用程序,操作系统36必须以传统的方式处理无分层类型的请求40。可替代地,可以将绘图API定义为两类将提供无指向的从而不能分层的API的传统的API,和能够提供对视频面从而对多层的直接接入的面或层的绘图API。
操作系统36还有确定图形卡20上的可用的层的一些装置。该知识可以以不同的方法从图形卡20传递给操作系统36,例如在每次启动时、作为系统安装的一部分、或者通过硬编码(hard-coding)。操作系统36典型地被设计为包括特定用于例如图形卡的输出设备的软件“驱动器”。当用户安装新的图形卡时,部分安装进程将包括将图形卡驱动程序下载到系统上。这些驱动程序通常是特定用于具体的操作系统,和具体的款号和型号的图形卡。驱动程序通常是在CD-Rom上分配给图形卡,但通常也可以在线获取。
注意本发明不要求对关于图1所描述的图形卡20和显示器14作任何改变。如果软件应用程序32不了解可用的层也没有能力请求使用特定的视频硬件层,它也可以和软件应用程序12相同。
接收到绘制请求时,操作系统36处理该请求并通过操作系统36的API 34和图形卡20的API 22向图形卡20发送适当的指令。与图1的系统中操作系统36不了解图形卡20的硬件层24不同,本发明情况下操作系统36了解硬件层24,并在API 34内具有对图形卡20的驱动程序进行补充的驱动程序。因此,绘制请求被送往操作系统36所确定的层——在有些情况下该视频硬件层将是由希望绘制图像、字符或向量的软件应用程序32确定的,但是在其它情况下将由操作系统36本身使用所发出的事件的几何形状、绘图灵敏区域的几何形状和数据的优先级做出该决定。这使得能够控制哪些成分被定位地传送到哪些区域。
例如,典型的示例将具有告警描绘,其在一个区域上定位地发生,该区域与具有比其它视频面更高的优先级的层有关,保证该告警信号在组合显示上示出的所有其它内容、气候数据或电影之上是可见的。
图像的这些层都单独地保存在图形卡20上并被无破坏地结合成单个合成图像。该合成的视频图像随后被图形卡20发送到显示屏14用于放映。
本发明的系统允许图形卡硬件层被任何第三方应用程序软件利用,不管它是否了解底层的硬件层。它还提供统一的接口,这样软件应用程序并不需要知道具体图形卡的细节。本发明的其它优点将从随后的本发明的更具体的说明中变得清楚。
虽然本发明实际上可以在任何操作系统上实现,但是本发明的优选实施方式将关于QNXTMRTOS(实时操作系统)上运行的PhotonTM窗口系统来描述。本领域技术人员从本文的详细说明中将清楚为将本发明应用于其它操作系统所需要的变化。
在本发明的一个实施方式中的Photon事件空间和QNX操作系统环境50的符号的可视化在图3中示出。
QNX操作系统是“消息传递操作系统”。这意味着包括软件应用程序、操作系统本身和视窗型GUI(图形用户接口)软件的所有的软件,都在系统上作为分离的软件进程运行。这些软件进程被表示为图3的部分52中的模块。消息传递是这些软件进程之间的进程间通信(IPC)的基本手段。消息是从一个进程传递到另一个进程而没有特定意义被附加到消息的内容中的字节包。消息中的数据对消息的发送者和它的接收者有意义,但通常对其它设备没有意义。
Photon环境50提供三维虚拟“事件空间”54,用户60可以被想象为处于这个空间之外,正在向其中看。Photon环境50限定自己只管理应用程序拥有的“区域”,并当各种“事件”流过这个事件空间54中的区域时对它们执行修剪和操纵。软件应用程序能够将区域放进这个事件空间54中,它对可能经过其的各种类型的事件是敏感的、不透明的、或两者都有。
软件应用程序能够通过相应的软件进程自身拥有的这些矩形区域中的一个或多个在Photon环境50上施加影响。例如,一个Photon应用程序56会产生区域58。区域也能够发射和收集称为事件的对象。这些事件能够以两种方向中的任一种穿过事件空间54(即,或者朝向或者背离用户60的方向)。当事件穿过事件空间54时,它们与其它区域相互作用——这就是软件应用程序之间如何互相作用的。当事件穿过事件空间54时,区域是固定的。
当事件流过事件空间54时,它的矩形集合与其它软件进程放进事件空间54内的区域相交。当这种情况发生时,操作系统根据与该事件相交的区域的属性来调整该事件的矩形集合。
各事件属于不同的类别并具有不同的属性。事件被根据始发区域、种类、方向、矩形的附表以及随意地根据一些事件特定的数据来定义。事件被用来代表下列的按键、键盘状态信息;鼠标键的按下和释放;指针运动(是否伴随着鼠标键被按下);区域边界交叉;区域被暴露或覆盖;拖动操作;以及绘制功能。
图形驱动程序64的正常操作是在Photon的事件空间54内以和物理显示设备14相同的尺度和敏感度创建一个区域用来绘制事件。任何从图形驱动程序的区域的底层的区发出事件(例如,输出事件66)的软件应用程序,将使得它的事件与图形驱动程序的区域相交,并且该事件的数据将被传送给图形驱动程序。图形驱动程序64使用从绘制事件(Photon绘制流)得到的数据来将需要的图形传给视频硬件20,并继续传到物理显示设备14。
区域有两种属性,当事件和一个区域相交时这两种属性控制这些事件将被如何处理敏感度和不透明性。如果区域对特定类型的事件敏感,则该区域的所有者把与该区域相交的那种类型的任何事件收集一副本。敏感度属性既不修改事件的矩形集合也不影响事件继续流过事件空间的能力。对特定事件类型不透明的区域阻挡部分该类型的事件的矩形集合在事件空间中进一步行进。如果区域对事件类型是不透明的,任何与该区域相交的那种类型的事件都要调整其矩形集合,剪除该相交区。如果该事件由于与不透明区域的相交被完全剪除,该绘制事件将不再存在。
下表总结了区域的属性如何影响与该区域相交的事件

通过将一块区域放置穿过整个事件空间,进程能够拦截并修改任何穿过该区域的事件。如果区域是敏感的而且不透明的,它能够选择重新发射该事件修改过的版本。
被称做根部区域62(root region)的特定区域总是离用户60最远的区域。所有其它区域以某种方式从根部区域62延伸下来。一旦从用户60出发的事件行进到达根部区域62,它就不再存在。
本发明将这个概念扩展为允许软件应用程序传到在Photon的事件空间中没有物理显示的“屏幕外环境”或“视频面”。为达到这个目的,图形驱动程序在视频面被创建的时刻提供的标识符被插入绘制流,它唯一地识别该视频面。这样图形驱动程序就能够直接将绘制请求传到被识别的视频面内。
换句话说,软件应用程序能够发起在Photon事件空间54中发出输出事件的软件进程。该输出事件可包括表示输出事件将要被送往哪个视频层的标志符。图形驱动程序通过生成被请求的视频面,包括视频面标志符,来响应标志符的存在,以便于交付到该面内。
包含将被指向特定的视频面的绘制流的事件可以被直接发送到图形驱动程序的区域。换句话说,可以直接将指向特定视频面的绘制流交给图形驱动程序而不需要穿过Photon事件空间54,消除了阻止一些或全部绘制事件矩形的区域的可能性。
为提供对硬件层的透明接入,将两种观点合并1.加入了用于图形驱动程序的设备,以在Photon的事件空间54内创建驱动程序区域,其将该区域上收集的任何绘制流传给一个视频面(即,驱动程序区域作为收集者,与其敏感性相匹配的事件被传送到图形驱动程序);以及
2.还加入了将屏幕外环境或者视频面与图形卡上的该层硬件相联系的能力。
通过提供API和支持允许软件应用程序查询可用的硬件层的数量的驱动程序,确定每个硬件层支持的性能,创建与硬件层所强制的任何限制相匹配的屏幕外环境/视频面,请求要被创建在Photon空间内的驱动程序区域指向该面,最后,将该面与分层硬件的平面联系起来并配置该分层硬件的性能,不需要以任何方式修改该软件应用程序甚至也不需要软件应用程序知道视频硬件层的存在,任何软件应用程序都能够接入层。
配置应用程序建立起视频面、驱动程序区域、面与层的关联、以及多层属性。一旦完成,位于配置应用程序所请求的驱动程序区域内的任何软件应用程序,将传给被该驱动程序区域指向的面,接着通过分层硬件传给主显示。
图4示出了这个概念的示例性的图形表示。注意层将会把与其有关的视频面的内容合并为主显示(当层是图形卡上的固件实体时,视频面是在系统的操作系统一侧上被管理的软件实体);视频面可与层有关也可以无关;软件应用程序能够发射指向特定视频面的绘制流或者不考虑多个视频面的存在的绘制流;如果该绘制不被指向特定的视频面,该事件流过Photon事件空间并将通过任何对与这些事件相交的绘制敏感的区域收集起来;以及如果绘制被指向特定的视频面,绘制事件被直接传送给由拥有被指向的视频面的驱动程序所创建的区域,绕过穿过在其中其它区域能够阻止或修改绘制事件的Photon事件空间的正常事件传播。
多个驱动程序区域能够被单一一个驱动程序放进Photon的事件空间,这个驱动程序指向除了与主显示相关的视频面的视频面。这实际上导致该区域下的任何软件应用程序传到与该驱动程序区域相关的视频面,而不管该软件应用程序是否知道该绘制最终要到哪里去。
如果这样一个区域正指向与层相关的视频面,来自驱动程序区域下的软件应用程序的绘制命令将被传给该视频面并被该层组合。
因此,软件应用程序不是明确地传给层;它们或者穿过Photon空间传到任何捕获该绘制者,或者传到特定的视频面。视频面已经与层联系起来的事实并不影响在绘制时软件应用程序所使用的命令/API。
在图4中,软件应用程序APP1正在穿过Photon事件空间80进行绘制。其绘制与指向同主显示(图形卡上的顶部硬件层)相关的视频面84的驱动程序区域82相交。也就是说,视频驱动程序94从区域82接收到的任何绘制事件都将被传给面84。
软件应用程序APP2正在用与APP1同样的方法进行绘制,但是它的绘制与指向或者与视频面88相关的驱动程序区域86相交。这个视频面88与图形卡上的另一层相关。
软件应用程序APP3正在用与APP1和APP2同样的方法进行绘制,但是APP3有意地将其绘制目标设置为视频面90。使用的机构将APP3的绘制流直接发送给主面区域。绘制流具有告知事件的收集者、图形驱动程序,绘制流在这种情况下应该被传给视频面90的标志符。在图4中,视频面90与第三层相关。
再次注意,软件应用程序正传送给视频面,而不是特定地传给图形卡上的层。视频面88和90可能轻易不具有层关联。对于在该情况下将要被看到的那些面的内容,它们将不得不以位图传送到与视频面84相关的层。
图形卡上的层硬件92操纵视频面84、88、90并将它们拖入图形输送管线以生成在图形显示设备14上看到的合成的显示。如本领域中所已知的,视频面84、88、90被简单地定义为视频硬件的视频存储器96内的区域。
第三方软件应用程序的软件进程所生成的绘制指令由此可以位于这些视频面84、88、90的任何一个之中并被相应处理。
在本发明的优选实施方式中,在图4示出的Photon事件空间中的视频层和图形驱动程序区域的配置是由称为“配置应用程序”的分离的软件进程生成的。该配置应用程序能够,例如,执行如图5所示的流程图中呈现的步骤来建立这个环境。
在步骤100,配置应用程序向图形驱动程序查询特定的物理显示设备14,查询可用的硬件层的数量。图形驱动程序是专用于图形卡20的,但是所有具有多层支持的Photon驱动程序具有用于层硬件的查询和控制的相同的接口。
配置应用程序接下来在步骤102向图像驱动程序查询每个视频层的性能。该信息将包含例如每个视频层的尺度、颜色的数量、维度、分辨率、比例因子、虚拟维度限制、色度键、阿尔法混合性能、及经该特定环境的其它参数的参数。
装备有来自图形驱动程序的这条信息,配置应用程序接着在步骤104生成所需数量的视频面(称作Photon中的“屏幕外环境”),并在步骤106基于可用的硬件层的数目和能力配置相应的层。
接下来在步骤108配置应用程序随意地将那些驱动程序区域放入Photon事件空间80内。这个步骤是随意的,因为并不期望将所有驱动程序区域放入Photon事件空间80内(用于视频面的Photon空间内的驱动程序区域的缺少防止了没有特定意图传给该面的软件应用程序无意中这样做)。如上文注明的,可能期望将一些绘制请求直接发送给特定的视频层而不必穿过Photon事件空间80,避免某些绘制请求被其它区域修改或阻碍的可能性。
例如,可能需要配置一个层来向用户显示告警条件。该层可建立在Photon事件空间80之外以保证这些告警条件无论如何都将被显示给用户60。
在这一点上,该系统目前被配置以便利用图形卡的硬件层性能。
随后配置应用程序能够终止,Photon系统如上文来配置。任何被置于指向与层关联的视频面的图形卡驱动程序区域下的第三方软件应用程序都将实际地传到该层。第三方软件应用程序甚至不必知道这些层不需要在多层系统中有任何改变即可存在。
在这一点上,从连接到与层关联的视频面的驱动程序区域下作出的任何应用程序将传到该层内,并且硬件将基于对该层属性的配置来组合产生最终显示的结果。
应该注意的是从连接到视频面的驱动程序区域内传来的任何软件应用程序都将交付到该视频面内。没必要把该视频面也连接到分层硬件。例如,屏幕保护程序可以请求在1024,768至2047,1535创建驱动程序区域并将这块区域与将在0,0操作和显示的视频面联系起来。结果将是屏幕保护程序使用控制台5上的软件应用程序的内容,采取1024×768的分辨率,来生成其显示内容。
在Photon事件空间中的默认的窗口管理布局如图6所示。显示框架是由“多个控制台”组成的,其中,从控制台1向右一个,向下一个,就是控制台5。
系统一经配置好,就可以用图7中的流程图所示的方式来处理绘制请求。这个流程图已经被简化以便示范该处理流程,而不代表如何构建实际的软件代码。例如,操作系统的真实实现通常不包括关于步骤120所示的“否”循环。操作系统一般对中断的到达、功能调用的发布、或对周期性的轮询的响应作出响应,而不是在处理循环中停留来等待响应。但是,本领域技术人员从本发明的说明书这种简单化的方法中将会清楚本发明的实际软件代码的实现。
在步骤120,当绘制事件被接收时,或者简单地,任何要将图像、向量或字符传给物理显示器的请求被接收时,控制传到步骤122。在步骤122,该例程确定绘制请求是否被标记为用于特定的视频硬件层。如果它没有被标记,则经步骤124绘制事件被发送穿过Photon事件空间80。在步骤125,这个事件接着被传送到Photon事件空间80内的各区域。绘制事件将被分派给哪个区域是由绘制事件源的几何形状决定的。如上文所记录的,例如,可能期望向具有比视频图像更高优先级的区域发送告警信号显示。事实上,为了实现常规的分层接口,能够控制绘制事件最终对哪些面/层产生影响是必要的。
如果在步骤122,绘制事件被识别以被送往特定的视频面,则它被直接传给图形区域而不需要从发射器区域穿过Photon空间。如上文参考图5的步骤108所述,可能需要将一些绘制请求直接传给特定的硬件层,避免绘制请求被另一区域阻碍或者修改的可能性。如果打算将绘制请求用于Photon事件空间80,则控制进行到步骤124,但是如果打算将绘制请求直接供给硬件层,控制进行到步骤130。
在步骤132,整个Photon事件空间80参考图3和4所述来被处理。这导致绘制事件在Photon事件空间80内被处理并且可能被投射到一个或多个图形驱动程序区域。
这些图形驱动程序区域与特定的视频硬件层相关,因此在步骤134被交付给那些视频硬件层。如果绘制事件已经被送到步骤130,则它将绕过所有绘制源和驱动程序区域之间的中间区域而且不考虑绘制源或接收驱动程序区域的几何形状,而被简单地直接发射给Photon事件空间80中的驱动程序区域。该绘制接着被传给期望的硬件层134。
在步骤136,接下来视频硬件层被图形卡处理并被呈现在物理显示屏上。控制接下来回到步骤120,等待其它绘制事件的到来。
以这种方式布置的系统允许第三方软件应用程序利用图形卡中的视频硬件层支持,甚至不需知道这些硬件层的存在。这种系统可允许,例如,电视显示器在pip(画中画)窗口中支持计算机显示或者电子邮件。电子邮件特征可以是在一个分离的层上的电视机所显示的标准电子邮件应用,以便允许用户对电子邮件应用程序进行可配置的透明控制(以求在运动事件期间不将分数混淆得太严重)。类似地,独立的绘图应用能够被放在一个层之上,并且汽车信息(行车计算机(tripcomputer)信息、hvac(供暖、通风和空气调节)设置等等)能够被显示在对系统的微处理器影响最小的图上。
在展示并描述本发明的具体实施方式
时,很明显可以对这些实施方式进行改变和修改而不会超出本发明的真实范围和精神。
本发明的方法步骤可以以例如目标代码或者源代码的多种格式存储的可执行机器代码集合中实施。为了简便,在本文中这种代码通常被描述为编程代码或者软件代码。很明显,可执行的机器代码可以与其它程序的代码相结合,作为子程序通过外部程序调用或者本领域已知的其它技术来执行。
本发明的实施方式可以被计算机处理器或者可以用方法步骤的方式编程的类似的设备执行,或者可以由被装备来执行这些步骤的装置的电子系统来执行。微处理器、数字信号处理器(DPS)、微控制器和专用集成电路(ASIC)是有这种执行能力的设备的典型例子。类似地,电子存储器介质,如计算机磁盘、CD-Rom、随机存取存储器(RAM)、只读存储器(ROM)或者本领域中已知的类似的计算机软件存储介质,可被用于保存执行本发明的方法所需的软件代码。同样,表示这些方法步骤的电子信号也可以通过通信网络传送。
权利要求
1.一种在计算机系统中管理视频显示的方法,所述计算机系统包括图形卡、视频显示器和操作系统,所述计算机系统用于运行软件应用程序,所述图形卡用于将图像传给所述视频显示器,所述方法包括以下步骤通过所述操作系统的通用的应用程序编程接口(API)从所述软件应用程序接收绘制事件,所述接口支持图形卡上的硬件层;确定所述图形卡上的可用硬件层,以及它们的参数;所述操作系统将所述绘制请求选择性地传送给对应所述图形卡上的所述可用硬件层的特定的层的视频层;以及所述图形卡将所述视频层上的数据映射到所述可用硬件层的特定的层上,用于在所述视频显示器上显示;由此所述软件应用程序能够利用所述图形卡上的可用硬件层,而不需要知道它们的存在。
2.如权利要求1所述的方法,其中所述传送步骤包括通过把所述绘制请求传送给所述特定的视频层来响应包括特定的视频层的识别的所述绘制请求的步骤。
3.如权利要求2所述的方法,其中所述传送步骤包括通过确定所述绘制请求应该被传送给哪个视频层并从而传送所述绘制请求来响应不识别特定的视频层的所述绘制请求的步骤。
4.如权利要求3所述的方法,其中所述确定步骤包括根据所述绘制请求的几何形状和绘制敏感区域的几何形状来选择所述绘制请求要被送往的视频层。
5.如权利要求3所述的方法,其中所述图形卡包括用于无破坏地保存视频层数据的存储器。
6.如权利要求5所述的方法,进一步包括的步骤有构造三维事件空间,定义用于管理绘制事件和软件区域的坐标系统,每个所述软件区域被定义为所述三维事件空间内的平面区域并且每个所述绘制事件被定义为所述三维事件空间内的向量,所述软件区域被选择性地配置为响应穿过所述软件区域的绘制事件。
7.如权利要求6所述的方法,其中所述绘制事件包括在所述视频显示器上显示图像、向量或字符的请求。
8.如权利要求7所述的方法,其中每个所述软件区域都包括所述三维事件空间的尺度和位置参数。
9.如权利要求8所述的方法,其中所述图形驱动程序的尺度等于物理显示器的尺度。
10.如权利要求8所述的方法,其中所述三维事件空间中的根部区域的尺度比所述视频显示器的尺度大,允许绘制请求被传到屏幕外环境。
11.如权利要求8所述的方法,其中所述计算机系统上运行的每个软件应用程序都与所述三维事件空间中的区域相关。
12.如权利要求11所述的方法,其中所述软件区域中的至少一个是适合于所述图形卡的图形驱动程序。
13.如权利要求12所述的方法,其中所述软件区域中的两个或多个是图形驱动程序,并且所述两个或多个图形驱动程序在所述空间内是不相重叠的,所述两个或多个图形驱动程序是与分离的图形硬件层相关的。
14.如权利要求5所述的方法,进一步包括根据所述图形卡上的相关的硬件层的参数生成驱动程序区域的步骤。
15.如权利要求5所述的方法,进一步包括步骤使用配置应用程序来配置视频面、驱动程序区域、面与层的关联、以及层属性。
16.一种管理视频显示的方法,包括的步骤有使用配置应用程序来配置视频面、驱动程序区域、面与层的关联、以及层属性,包括确定图形卡上的可用硬件层,以及它们的参数;通过以下步骤响应于通过操作系统的通用API绘制事件的接收确定所述绘制请求是否被标记用于特定的视频层,并且如果被标记了,将所述绘制请求传给所述特定的视频层,否则,在Photon事件空间内处理所述绘制请求;所述Photon事件空间定义具有至少三个维度的事件空间并显示所述多个程序的操作环境、所述事件空间在所述事件空间的第一端有根部平面,以及其中,每组特性包括尺度特性和位置特性,所述尺度特性表示所述事件空间中的平面区的一组尺度,所述位置特性表示所述事件空间中的所述平面区的位置并且相对于所述事件空间内的至少一个第二平面区;以及所述图形卡将所述视频层上的数据映射到所述可用硬件层之中的特定层上,用于在所述视频显示器上显示。
17.如权利要求16所述的方法,其中所述配置步骤包括由配置应用程序所执行的步骤向图形驱动程序查询特定的显示和可用硬件层的数目;向所述图形驱动程序查询每个视频层的性能;生成所需视频面的数量,以及基于所述可用硬件层的数量和性能配置相应的层。
18.如权利要求17所述的方法,进一步包括将视频面定义为直接与特定的硬件层相关的步骤。
19.如权利要求18所述的方法,其中所述响应步骤包括以下步骤响应于从软件应用程序接收到的事件,所述第一事件信号具有事件类型和区性质,所述区性质在所述事件空间内定义事件区;确定所述事件区是否与第一程序区相交,所述第一程序区被定义在所述事件空间内并对应于所述第一程序,如果为是,则执行下列步骤通过测试所述事件类型来确定所述第一程序是否对所述第一事件信号敏感,如果为是,向所述第一程序发送输出信号,所述输出信号包括对应所述第一事件信号的信息,以及通过测试所述事件类型来确定所述第一程序是否要修改所述第一事件信号,如果为是,通过从所述事件区将所述第一程序区剪除来修改所述区性质。
20.一种计算机系统,包括计算机;安装在所述计算机内的图形卡;电气上连接到所述图形卡的视频显示器;在所述计算机上运行的软件应用程序;以及在所述计算机上运行的操作系统,所述操作系统包括支持所述图形卡上的硬件层的通用应用程序编程接口(API);所述操作系统可操作用来通过所述通用API接收绘制事件;确定所述图形卡上的可用硬件层,以及所述硬件层的参数;以及通过将绘制请求选择性地传送给所述图形卡上所述可用硬件层之中的特定层响应于来自所述软件应用程序的绘制请求;以及所述图形卡用来将所述视频层上的数据映射到所述可用硬件层之中的特定层上,用于在所述视频显示器上显示;由此所述计算机环境允许软件应用程序利用所述图形卡上的可用硬件层。
21.如权利要求20所述的计算机系统,其中所述操作系统进一步用于通过将所述绘制请求传送给所述特定硬件层来响应包括特定硬件层的识别的绘制请求。
22.如权利要求20所述的计算机系统,其中所述操作系统进一步用于构建三维Photon事件空间,定义用于管理绘制事件和软件区域的坐标系统;每个所述软件区域都被定义为所述三维事件空间内的平面区域;以及每个所述绘制事件被定义为所述三维事件空间内的向量;所述软件区域被选择性地配置以响应穿过所述软件区域的绘制事件。
23.如权利要求20所述的计算机系统,其中所述操作系统进一步用来创建与所述图形卡上的硬件层关联的驱动程序区域。
24.如权利要求22所述的计算机系统,其中在所述系统上运行的每个软件应用程序都与所述Photon事件空间内的一个区域相联系。
25.如权利要求20所述的计算机系统,其中所述操作系统进一步用于根据相关的硬件层的参数来定义驱动程序区域。
全文摘要
本发明通常涉及计算机图形学,更具体地涉及用于配置、控制和接入用于组成一个视频显示的多个硬件图形层的方法和系统。本发明一方面被广义地如下定义在包括软件应用程序和在计算机上运行的操作系统的计算机环境中,计算机包括图形卡和视频显示器,图形卡可操作用于将图像传给视频显示器,改进包括所述操作系统包括支持图形卡上的硬件层的通用应用程序编程接口(API);操作系统可操作用于通过所述通用API接收绘制事件;确定所述图形卡上的可用硬件层,以及它们的参数;并通过将所述绘制请求选择性地传给任意的所述图形卡上的可用硬件层来响应来自软件应用程序的绘制请求;由此所述计算机环境允许软件应用程序利用所述图形卡上的可用硬件层。
文档编号G06F9/44GK1770129SQ20051009349
公开日2006年5月10日 申请日期2005年8月30日 优先权日2004年8月30日
发明者D·弗里, A·林, D·多诺霍 申请人:Qnx软件操作系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1