将图形内容镜像到外部显示器的制作方法

文档序号:6362991阅读:312来源:国知局
专利名称:将图形内容镜像到外部显示器的制作方法
技术领域
本发明涉及显示器驱动体系的领域,并且,具体地涉及将图形内容镜像(miiTor)到外部显示器。
背景技术
诸如计算机系统、无线蜂窝电话、移动计算装置、台式计算装置或其它数据处理系统之类的电子装置通常包括内置的内部视觉显示装置。该内部显示装置用来显示由电子装置产生或存储于电子装置上的视觉内容。该内部显示装置可以是,例如,内部液晶显示(LCD)装置。某些电子装置可以另外包括连接到外部视觉显示装置的连接器,例如,扩展视频图形阵列(XVGA)连接器或本领域已知的其它连接器。外部显示装置可以是,例如,独立式LCD或阴极射线管(CRT)显示器。在某些情形中,电子装置可以被设置成使得内部显示装置和外部显示装置同时显示相同的视觉内容。这可以被称为镜像模式(miirored mode)。可替换地,某些电子装置还可以被设置成使得这两个显示装置将显示不同的图像,诸如通过在两个显示器之间移动窗口而允许用户将窗口从一个桌面移动到另一个桌面的扩展桌面的部分。

发明内容
在本文描述的某些实施例中,数据处理系统可以合成由在数据处理系统上运行的应用程序产生的图形内容,以产生图像数据。该数据处理系统可以将该图像数据存储在第一帧缓冲器(framebuffer)中,并将从第一帧缓冲器中的图像数据产生的图像显示在数据处理系统的内部显示装置上。数据处理系统中的定标器(scaler)可以对第一帧缓冲器中的图像数据执行定标操作,将定标的图像数据存储在第二帧缓冲器中,并且将从第二帧缓冲器中的定标的图像数据产生的图像显示在与数据处理系统耦接的外部显示装置上。定标操作可以包括调整图像数据的大小、分辨率、定向和颜色中的至少一种。定标器可以相对于图形内容的合成异步地执行定标操作。在一个实施例中,定标的图像数据可以与第一图像帧相关联。定标器为异步的原因是,它与诸如CPU或GPU的其它部件分离地操作。在对与第一图像帧相关联的图像数据完成定标操作之前,数据处理系统可以开始合成图形内容以产生与后一图像帧相关联的图像数据。在一个实施例中,数据处理系统可以确定从与前一帧相关联的定标的图像数据产生的图像是否已经完成在外部显示器上的显示。如果从与前一帧相关联的定标的图像数据产生的图像尚未完成在外部显示器上的显示,则数据处理系统可以丢弃(drop)与第一帧相关联的定标的图像数据。
在另一个实施例中,数据处理系统可以自动地将图像镜像到外部显示装置,除非应用程序正在发布(publish)用于在外部显示装置上显示的另外的图形内容。数据处理系统确定应用程序是否正在发布要在外部显示装置上显示的第二图像的第二图形内容,并且,如果应用程序正在发布第二图形内容,则数据处理系统禁用自动镜像。在另一个实施例中,数据处理系统可以首先确定该应用程序是否为正在发布另外的图形内容的应用程序,然后相应地使能或禁用镜像。该镜像可以包括上述的异步的定标操作。


在附图的各个图中以举例的且非限制性的方式图示了本发明。图I是图示根据实施例的用于将图形内容镜像到外部显示器的显示驱动体系的框图。图2是图示根据实施例的用于镜像图形内容的数据处理系统和外部显示器的框 图。图3是图示根据实施例的用于将图形内容镜像到外部显示器的显示驱动体系的更一般性的示例的框图。图4是图示根据实施例的用于将图形内容镜像到外部显示器的软件堆的框图。图5A和5B是图示根据实施例的克隆镜像方法的流程图。图6A和6B是图示根据实施例的自动克隆镜像方法的流程图。图7是根据实施例的用于克隆镜像操作的时间线(timeline)的框图。图8A和SB图示根据实施例的当将图形内容镜像到外部显示器时的定标操作的一个示例。图9是示出根据实施例的示例性API体系的框图。图10示出根据实施例的使用一个或多个API的软件堆的示例。
具体实施例方式在本发明的实施例的下列详细描述中,参考了附图,其中类似的参考号指示类似的元件,并且其中以说明的方式示出了了可以实现本发明的特定实施例。以足够的详细程度描述这些实施例,以便使得本领域的技术人员能够实现本发明,并且应当理解,可以使用其它实施例,并且可以做出逻辑的、机械的、电的、功能的和其它改变,而不脱离本发明的范围。因此,下面的详细描述不具限制意义,并且仅以所附权利要求限定本发明的范围。图I是示出了根据本发明的实施例,用于将图形内容镜像到外部显示器的显示驱动体系的框图。在一个实施例中,该体系可以包括内部显示装置140和可选的外部显示装置,诸如外部显示装置150。图I所示的数据处理系统101可被包括在便携式通用计算机系统、或便携式专用计算机系统、或诸如蜂窝电话、智能手机、个人数字助理、嵌入式电子装置或消费电子装置的其它类型的数据处理系统内。数据处理系统101可以包括处理装置103,诸如包括一个或多个微处理器的中央处理单元(CPU)。CPU 103可被通过本领域已知的一个或多个总线耦接到图形处理单元(GPU) 105。数据处理系统101还可以包括视频解码器107,视频解码器107可以是硬件视频解码器、软件视频解码器、或以硬件和软件两者实现的视频解码器,以便对压缩并且被可选地加密的媒体数据解码。可以采用视频解码器107解码来自摄像机或来自存储视频内容(诸如电影)的存储装置的视频。数据处理系统101可以包括一个或多个存储器装置,诸如RAM、闪存等,其可以存储用于产生可显示内容的数据以及可显示内容本身。如本领域已知的,存储器109A、109B和109C可以是单独的存储器或是同一存储器,诸如单个集成电路或实现单个存储器空间的多个集成电路等。CPU 103和GPU 105可以产生将被显示的图像或其它数据,并且将这些图像存储在存储器内的缓冲器内。如图I的示例所示,GPU 105可以产生将被显示的图像,并且将这些图像存储在存储器109B和存储器109C内,而CPU 103可以将其创建的要显示的图像存储在存储器109B内。可替换地,CPU 103可以写存储器109B和存储器109C两者,而GPU可以仅写一个存储器或这两个存储器。存储器109A可用于存储被解码的视频数据,诸如压缩或加密的电影。来自视频解码器107的输出提供视频数据,该视频数据可被临时存储在存储器111内。存储器109B、存储器109C和视频数据存储器111可被连接到合成器115。 合成器115可以接收来自存储器109B、存储器109C和视频数据存储器111的输出。另外,合成器115可以接收元数据(未示出),用于使用元数据,用本领域已知的技术将存储器109B和109C内的图像与来自视频数据存储器111的解码的视频内容合成在一起。元数据可以指定源矩形的位置和视频数据的位置以及存储器109B和109C内的图像的位置,以便提供合成的图像。例如,可在具有由元数据指定的位置和大小的窗口内显示电影,并且该窗口可被显示在其它图像上,该其它图像诸如桌面或用户界面的图像,诸如由存储器109B和109C提供的图像。在一个实施例中,来自合成器115的输出可以是24位RGB输出。合成器115的输出可被存储在帧缓冲器内。帧缓冲器可以包括视频输出装置,视频输出装置从包含完整数据帧(即,图形内容)的一个或多个存储器缓冲器(例如缓冲器131-134)驱动视频显示器(例如,内部显示装置140或外部显示装置150)。存储器缓冲器内的信息可以包括用于显示装置的屏幕上的每个像素的颜色值。可以使用附加的α通道保持关于像素透明度的信息。在一个实施例中,合成器115的输出存储在缓冲器131内(以及如果需要,可选地在缓冲器132内)。缓冲器131的内容可用于驱动内部显示装置140。在一个实施例中,数据处理系统101还可以包括定标器120。定标器120可以对存储在缓冲器131内的数据执行定标操作。这可以允许将图形内容克隆(即镜像)到诸如外部显示装置150的副显示器的操作模式。外部显示装置150可以具有与内部显示装置140不同的属性和/或能力,并且定标操作允许在外部显示装置150上正确显示图形内容。定标器120执行的定标操作可以包括调整图像的大小、分辨率、定向、颜色或其它特性。定标器120可以基于从CPU 103,GPU 105或某些其它源接收的输入命令执行定标操作。如果需要,定标器120的输出可被存储在缓冲器133 (以及可选地,缓冲器134)内。缓冲器133的内容可用于驱动外部显示装置150。应当理解,显示装置140和150可以是各种显示装置中的任意一种,诸如IXD (液晶显示器)、LED (发光二极管)显示器、有机LED显示器、CRT (阴极射线管)显示器等。在一个实施例中,内部显示装置140和外部显示装置150可以支持不同的帧速率。例如,内部显示装置140可以支持每秒60帧(fps),而外部显示装置150仅支持24fps。通过此处描述的技术,数据处理系统101可以试图将显示在内部显示装置140上的每个帧镜像到外部显示装置150上。然而,刷新速率的差异可能阻碍完整地镜像每个帧。定标器120可被配置为确定何时将每个帧呈现到内部显示装置140,以及何时将对应的帧呈现到外部显示装置150。如果数据处理系统101在其试图将下一个帧呈现到内部显示装置140时未完成将前一个帧呈现到外部显示装置150,定标器120可配置为丢弃该下一个帧,完成该前一个帧的呈现,并且一旦已经完成前一个帧就继续呈现后续帧。这个处理有助于使在内部显示装置140和外部显示装置150两者上都显示的图形内容同步。图2是示出了根据本发明的实施例,用于镜像图形内容的数据处理系统和外部显示器的框图。在一种实现中,数据处理系统201可以是具有图2所示的平板外形因子的通用或专用计算机。该装置的一个表面的大部分可以包括内部显示器203,后者可以包括被集成安装并且与内部显示器203对齐的多点触摸敏感触摸屏输入装置。内部显示器203可以是图I所示的内部显示装置140的一个代表。数据处理系统201可以包括允许用户与装置交互的一个或多个按钮或开关,诸如按钮205。数据处理系统201还可以包括连接器207,其允许连接外部显示装置,诸如外部显示装置211,等等。应当理解,数据处理系统201可以包括其它连接器,诸如用于充电器或电源的连接器,以及用于同步的连接器,诸如用于 USB(通用串行总线)电缆的USB连接器等。数据处理系统201还可以包括无线收发器,诸如用于WiFi的无线收发器或用于蜂窝电话或其它通信的无线收发器。在一个实施例中,数据处理系统201可以通过电缆210连接到外部显示装置211。在其它实施例中,可以用某些其它方式连接数据处理系统201和外部显示装置,诸如通过上面讨论的无线通信。装置221的一个表面的大部分可以包括外部显示器223。外部显示装置221可以是图I所示的外部显示装置150的一个代表,并且可以包括例如计算机监视器、电视机、投影仪或某些其它显示装置。外部显示装置221可以包括允许用户与装置交互的一个或多个按钮或开关,诸如按钮225。外部显示装置221还可以包括连接器227,其允许连接数据处理系统201,等等。应当理解,外部显示装置221可以包括上面参考数据处理系统201描述的其它连接器。在一个实施例中,根据此处描述的技术,由数据处理系统201产生并且显示在内部显示器203上的图形内容可被克隆或镜像到外部显示装置221并且显示在外部显示器223上。图3是一个框图,示出了根据一个实施例的用于将图形内容镜像到外部显示器的显示驱动体系的更一般示例。体系300可以包括与图I所示的数据处理系统类似的部件,其中诸如合成器115和定标器120的某些部件可被实现在图2所示的ASIC 311内。ASIC是配置为提供相关部件的功能的专用集成电路。图I的存储器109AU09B和109C可被实现为随机存取存储器(RAM) 307,其被通过总线309耦接到图2所示的其余部件。非易失性存储装置313可以存储软件,诸如此处描述的操作系统部件,以及应用,诸如浏览器、电子邮件应用、字处理应用、文档观看应用和本领域已知的其它用户应用。图I的CPU 103和GPU105可以是图3所示的处理装置303和GPU305。图3所示的内部显示器340可以与图I所示的内部显示器140相同。应当理解,在替换实施例中,ASIC 311可以实现处理装置303和GPU 305,并且存储器307和非易失性存储装置313可被以通过总线309耦接到ASIC 311的闪存存储器取代。图4是一个框图,示出了根据本发明的一个实施例的用于将图形内容镜像到外部显示器的软件堆。可以在图I所示的数据处理系统101或图3所示的数据处理系统300上实现软件堆401。在软件部件的执行过程中,软件堆401内的各种软件部件可被存储在存储器内,诸如在RAM 307或非易失性存储装置313或这些存储器的组合内。当不执行部件时,它们可被存储在非易失性存储装置(诸如硬驱动器或闪存等)内。软件堆可以包括若干显示器驱动器,诸如,内部显示器驱动器403和外部显示器驱动器405,它们中的每一个可被配置为与诸如帧缓冲器库411或其它部件的其它软件部件通信。在关于此处描述的实施例的方面之外,内部显示器驱动器403和外部显示器驱动器405还可以执行本领域已知的关于显示(例如,分别关于内部显示装置140和外部显示装置150)的控制的常规操作。软件堆401内的软件部件可以采用传统调用和返回处理,其中进行调用的应用调用另一个软件处理,并且等待响应于该调用的值的返回。另外,软件部件可以采用此处描述的应用编程接口(API)以便执行这些调用。软件堆401内的帧缓冲器库411可以实现用于管理帧缓冲器(诸如帧缓冲器131-134)的软件例程以便驱动数据处理系统的一个或多个显示器。窗口服务器软件部件413可以实现已知的软件处理,以便管理应用的窗口。另外,窗口服务器413可以采用API 调用管理合成器115和定标器120的操作。例如,窗口服务器413可以指示合成器115将从存储器109B和109C接收的媒体数据合成到存储在缓冲器131内的单个图像帧内。在一个实施例中,一帧可以表示在1/60秒的时间内显示的图像。窗口服务器413还可以指示定标器120对缓冲器131内的数据执行定标操作,以便使其适合于外部显示装置150上的显
/Jn ο应用启动器417可以是根据实现而允许用户一次启动多个应用或仅仅一个应用的软件处理。在一个实施例中,应用启动器可以是被称为Springboard的软件程序,它是由苹果公司在iPhone上提供的应用启动器。用户应用407可以是多种用户应用中的任意一种,诸如网络浏览器、文档观看器、图片观看器、电影播放器、字处理或文本编辑应用、电子邮件应用、或本领域已知的其它应用。用户应用407可以使用用于创建和绘制用户图形内容或用户接口对象(诸如,按钮、窗口和本领域已知的其它用户接口元件和部件)的软件框架或一个或多个软件库。图5A是示出了根据本发明的实施例的克隆镜像方法的流程图。可由包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上运行以便执行硬件仿真的指令)或它们的组合的处理逻辑来执行方法500。该处理逻辑配置为将图形内容镜像到外部显示装置。在一个实施例中,方法500可由图I所示的数据处理系统101或图3所示的数据处理系统300执行。参考图5A,在框510,方法500从应用接收图形内容。应用可以包括,例如,用户应用407,其可以绘制旨在作为单个图像显示的图形内容的多个块。图形内容可被临时存储在存储器内,诸如存储器109B或109C内。在框520,方法500将图形内容合成到图像(即,帧)内,并且将结果存储在帧缓冲器内。合成器115按照GPU 105的指示可以将来自存储器109B和/或109C的内容合成为图像数据,并且将结果存储在缓冲器131内。在框530,方法500在内部显示器(诸如内部显示装置140)上显示来自缓冲器131的合成的图像数据。在框540,方法500对合成的图像数据执行定标操作,从而可以在外部显示器上正确显示图像。外部显示器可以具有与内部显示器不同的特性,并且因此定标操作可以包括调整图像的大小、分辨率、定向、颜色或其它特性。在一个实施例中,定标操作可由定标器120执行。定标器120输出的定标后的图像数据可被存储在另一个帧缓冲器(诸如缓冲器133)内。在框550,方法500在外部显示器(诸如外部显示装置150)上显示来自缓冲器133的定标后的图像数据。图5B是示出了根据本发明的实施例的克隆镜像方法的流程图。方法560可由配置为将图形内容镜像到外部显示装置上的处理逻辑执行。在一个实施例中,方法560可由图I所示的数据处理系统101或图3所示的数据处理系统300执行。参考图5B,在框565-580,方法560执行上面参考图5A的框510-540描述的从应用接收图形内容、合成图形内容并且将结果存储在帧缓冲器内、在内部显示器上显示合成的图像的帧、和对合成的图像的帧执行定标操作的步骤。在框585,方法560确定前一个帧是否完成了在图形内容正被镜像到的外部显示装置上的 显示。例如,当帧缓冲器的整个内容(诸如帧缓冲器133)已被显示在外部显示装置150上时,窗口服务器软件部件413可以接收来自外部显示器驱动器405的指示。由于定标器120的操作是异步的,对图像的后一中贞的处理可能已经开始。如果在框585方法500确定前一个巾贞已被完全显示,在框590,方法500在外部显示器上显示定标后的图像数据的当前帧。然而,如果方法500确定前一个帧尚未被完全显示,取代显示当前帧,在框595,方法500丢弃定标后的图像的当前帧,并且返回框565以处理后一帧。在这种情况下丢弃当前帧可以帮助防止图像迟延,并且确保内部显示器和外部显示器保持同步。图6A是示出了根据本发明的实施例的自动克隆镜像方法的流程图。方法600可由配置为如果用户应用没有发布用于在外部显示装置上显示的图形内容,则将图形内容自动镜像到外部显示装置的处理逻辑来执行。在一个实施例中,方法600可由图I所示的数据处理系统101或图3所示的数据处理系统300执行。参考图6A,在框610,方法600检测连接到数据处理系统的外部显示装置的存在。在一个实施例中,当电缆(例如,电缆210)连接到数据处理系统201的连接器207时,外部显示装置405可以向其它软件部件发送信号。在框612,方法600将用户应用绘制的图形内容镜像到外部显示装置。可以根据上面参考图5A描述的方法500执行镜像。在一个实施例中,数据处理系统可配置为不论是否连接了外部显示器,总是镜像图形内容。然而在其它实施例中,可以在检测到外部显示器之后使能镜像。在框630,方法600确定运行在数据处理系统上的用户应用是否正在绘制明确打算显示在外部显示装置上的另一图像。某些应用可以在内部和外部显示器上显示分别的图像。例如,媒体播放器应用(例如,电影播放器)可以在外部显示装置上显示实际的媒体内容,同时在内部显示装置上显示控制(例如,播放、暂停、停止、快进、回倒等)。应用可以用图像的元数据或通过某种其它标识符为内部或外部显示器指定具体内容。在框630,方法600搜索被明确指定给外部显示器的图形内容。如果在框630,方法600确定应用没有提供用于外部显示装置的另一图像,则方法600可在框620继续将图形内容镜像到外部显示器。如果在框630,方法确定应用已提供了用于外部显示装置的另一图像,则在框640,方法600禁用到外部显示装置的镜像操作,并且在外部显示器上显示该另一图像。图6B是示出了根据本发明的实施例的自动克隆镜像方法的流程图。在一个实施例中,方法650可由图I所示的数据处理系统101或图3所示的数据处理系统300执行。
参考图6B,在框660,与图6A —样,方法650检测连接到数据处理系统的外部显示装置的存在。在其它实施例中,可以用在不检测外部显示装置的存在的情况下使用的默认设置(例如,使能或禁用镜像)预先配置处理系统。在框670,方法650禁用到外部显示装置的镜像操作。在一个实施例中,这可以是默认设置,并且因此,不需要改变。在框680,方法650确定运行在数据处理系统上的用户应用是否正在绘制明确打算显示在外部显示装置上的另一图像。如果在框680,方法650确定应用已经提供了用于外部显示装置的另一图像,方法将镜像保持为禁用状态,并且在外部显示器上显示该另一图像。如果在框680,方法650确定应用未提供用于外部显示装置的另一图像,在框690,方法650使能镜像,并且将图形内容镜像到外部显示器。在其它实施例中,数据处理系统可以首先确定应用是否正在绘制要显示在外部显示装置上的另一图像,并且从而确定使能还是禁用镜像。图7是示出了根据一个实施例的用于克隆镜像操作的时间线的框图。时间线700示出了与将图形内容镜像到外部显示器有关的不同操作发生的相对定时。可由诸如图I所示的数据处理系统101或图3所示的数据处理系统300的数据处理系统执行该操作。在这个示例中,时间线700包括示出了由CPU (诸如CPU 103)、GPU (诸如GPU105)和定标器(诸 如定标器120)执行的操作的子集的三个不同的时间线。时间线700示出在一个实施例中,CPU、GPU和定标器可以如何相对于彼此异步地调度操作。异步调度可以允许在完成前一帧的所有操作之前在一个帧上执行操作。这可以使得更有效地使用系统资源。在一个实施例中,CPU可以负责创建用于一系列帧A、B和C的合成命令的列表。创建合成命令的列表可以包括指定在每个帧内应当合成图形数据的哪些块(和它们在存储器109B、109C内的位置)。创建用于巾贞A的合成命令的列表可能花费一定时间量(例如,从时刻t0到时刻tl)。当CPU在时刻tl完成了创建用于帧A的合成命令的列表时,GPU可以开始执行用于帧A的合成命令,以便产生用于输出缓冲器A(例如,帧缓冲器131)的内容。执行用于帧A的合成命令可能花费一定时间量(例如,从时刻tl到时刻t3)。如果CPU没有要处理的其它指令(例如,来自其它应用),CPU可以开始创建用于下一帧B的合成命令的列表。这可以例如在时刻t2发生,即使在整个系统完成帧A的处理之前。当GPU在时刻t3已经完成了执行用于帧A的合成命令时,定标器可以开始对输出缓冲器A的内容执行定标命令。定标命令可以包括上面针对定标器120描述的命令,或其它命令。如果GPU不具有要执行的其它操作,GPU可以在时刻t4开始执行用于帧B的合成命令,以便产生用于输出缓冲器B的内容。当GPU在时刻t5完成了执行用于帧B的合成命令时,定标器可以开始对输出缓冲器B的内容执行定标命令。类似地,当GPU在时刻t4开始执行用于帧B的合成命令时,CPU可以开始创建用于另一个后续帧C的合成命令的列表。在时刻t6,GPU可以开始执行用于帧C的合成命令,以便产生输出缓冲器C,并且在时刻t7,定标器可以开始对输出缓冲器C的内容执行定标命令。可以为要由数据处理系统处理的所有后续帧按照类似的异步方式继续CPU、GPU和定标器的操作的执行。图8A和SB示出了根据一个实施例,当将图形内容镜像到外部显示器时的定标操作的一个示例。图8A和SB所示的定标操作包括图像的旋转。在某些实施例中,数据处理系统801可配置为如果数据处理系统801被翻转或旋转,则自动旋转图像,从而图像相对于用户总是以相同定向出现。例如,不论在图8A和SB中如何翻转数据处理系统801,在数据处理系统801的显示器上示出的房屋总是被正确定向。该定向可以影响外部显示器上的镜像图像。在图8A中,数据处理系统801和外部显示装置821以相同方式被定向(例如,长边处于水平)。当由数据处理系统801将图形内容镜像到外部显示装置821时(例如,通过方法500),由于图像已经被正确显示,定标器不需要旋转图像。然而,在图SB中,数据处理系统801被旋转,从而它相对于外部显示装置821以不同角度定向。如果图形内容被直接镜像到外部显示装置821,图像将会显示为翻转到以其一侧为底。定标器(例如,定标器120)可以从其它系统部件或通过用户输入接收关于数据处理系统801的定向的信息,并且从而可以在定标处理过程中旋转图像。这导致当图像显示在外部显示装置221上时被正确定向。旋转图像可能导致内部显示器和外部显示器之间的长宽比的改变。在某些实施例中,如图SB所示,可以给显示的图像添加黑条,以便保持正确的比例。图8A和SB所示的定标操作可以附加地包括调整所显示的图像的长宽比。例如,在图8A所示的一个实施例中,数据处理系统801的内部显示器可以具有第一长宽比,诸如4 3。外部显示装置821可以具有与内部显示器不同的长宽比,诸如16 9。定标器(例 如,定标器120)可以从外部显示装置821自身或通过用户输入接收关于外部显示装置821的长宽比的信息,并且从而可以在定标处理过程中调整图像的长宽比。图9是图示示例性API体系的框图,该示例性API体系可以用于本发明的某些实施例中。如图9所示,API体系1100包括API实施部件1110 (例如,操作系统、库、装置驱动器、API、应用程序或其它模块),该API实施部件1110实施API 1120。API 1120指定可以由API调用部件1130使用的API实施部件的一种或多种函数、方法、类、对象、协议、数据结构、格式和/或其它特征。API 1120可以指定至少一种调用惯例,所述至少一种调用惯例指定API实施部件中的函数如何从API调用部件接收参数以及该函数如何将结果返回给API调用部件。API调用部件1130(例如,操作系统、库、装置驱动器、API、应用程序或其它模块)通过API 1120进行API调用,以访问和使用由API 1120指定的API实施部件1110的特征。API实施部件1110可以响应于API调用将值通过API 1120返回给API调用部件1130。将会认识到,API实施部件1110可以包括没有通过API 1120指定的且API调用部件1130不可用的另外的函数、方法、类别、数据结构和/或其它特征。应该理解,API调用部件1130可以与API实施部件1110处于相同的系统上,或者,API调用部件1130可以被远程地定位并使用API 1120通过网络来访问API实施部件1110。虽然图9图示单个API调用部件1130与API 1120交互,但是,应该理解,可与API调用部件1130使用不同语言(或相同语言)写成的其它API调用部件也可以使用API 1120。API实施部件1110、API 1120和API调用部件1130可以被存储在机器可读介质上,该机器可读介质包括用于以机器(例如,计算机或其它数据处理系统)可读的形式存储信息的任何机构。例如,机器可读介质包括磁盘、光盘、随机存取存储器、只读存储器、闪速存储装置等。在图10(“软件堆”)中,作为示例性实施例,应用可以使用服务API调用服务A或B,并使用操作系统(OS)API调用操作系统(OS)。服务A和B可以使用OS API调用OS。在前面的说明书中,参考本发明的具体的示例性实施例描述了本发明。显而易见的是,在不脱离下述权利要求中阐述的本发明的更广的精神和范围的情况下,可以对本发明进行各种修改。因此,本说明书和附图被认为是示范性的而非限制性的。为了提供对本发明的若干实施例的更好的理解,以上的描述阐述了大量的具体细节,例如,具体系统、部件、方法等的示例。然而,对于本领域的技术人员而言,显而易见的是,本发明的至少一些实施例可以在无需这些具体细节的情况下被实施。在其它情形中,为了避免不必要地模糊本发明,公知的部件或方法没有被详细地描述,或者以简单的框图的形式呈示。因此,阐述的具体细节仅仅是示例性的。特定的实施方式可以不同于这些示例性细节,但仍被预设在本发明的范围内。
本发明的实施例可以包括上述的各种操作。这些操作可以通过硬件部件、软件、固件或其组合来执行。如本文中所使用的,术语“耦接”可以是指直接地耦接或者通过一个或多个居间部件间接地耦接。在本文描述的各种总线上提供的任何信号可以与其它信号在时间上复用并通过一条或多条共用总线提供。另外,电路部件或模块之间的互连可以被示出为总线或单一信号线。可替换地,每一条总线可以是一条或多条单一信号线,并且,可替换地,每一条单一信号线可以是总线。某些实施例可以被实现为计算机程序产品,该计算机程序产品可以包含存储于机器可读介质上的指令。这些指令可以用来编程通用处理器或专用处理器,以执行上述操作。机器可读介质包括用于以机器(例如,计算机)可读的形式(例如,软件、处理应用)存储或传送信息的任何机构。机器可读介质可以包括但不限于磁存储介质(例如,软盘);光存储介质(例如,CD-ROM);磁光存储介质;只读存储器(ROM);随机存取存储器(RAM);可擦除可编程存储器(例如,EPROM和EEPR0M);闪速存储器;或者适合于存储电子指令的另一种介质。另外,某些实施例可以在分布式计算环境中被实施,在分布式计算环境中,机器可读介质被存储在多于一个的计算机系统上和/或由多于一个的计算机系统执行。另外,在计算机系统之间传输的信息可以通过连接计算机系统的通信介质被拉取或推送。本文中描述的数字处理装置可以包括一个或多个通用处理装置,例如,微处理器或中央处理单元、控制器等。可替换地,数字处理装置可以包括一个或多个专用处理装置,例如,数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。在可替换的实施例中,例如,数字处理装置可以是具有多个处理器的网络处理器,所述多个处理器包括核心单元和多个微引擎。另外,数字处理装置可以包括通用处理装置和(一个或多个)专用处理装置的任何组合。虽然本文中的方法的操作以特定的顺序示出和描述,但是可以改变每一种方法的操作的顺序,使得某些操作可以以反向的顺序执行,或者使得某些操作可以与其它操作至少部分地同时执行。在另一个实施例中,不同的操作的指令或子操作可以为间歇和/或交替的方式。在以上的描述中,各实施例在面向对象的环境中按照对象被描述了。应该理解,本发明不限于面向对象的环境中的实施例,并且,可替换的实施例可以在具有与面向对象的概念类似的特性的其它编程环境中被实现。在前面的说明书中,参考本发明的具体的示例性实施例描述了本发明。显而易见的是,在不脱离权利要求中阐述的本发明的更广的范围的情况下,可以对本发明进行各种修改和改变。因此,本说明书和附图被认为是示范性的而非限制性的。
权利要求
1.一种方法,包括 通过数据处理系统合成图形内容,以产生图像数据; 将图像数据存储在第一帧缓冲器中; 将从第一帧缓冲器中的图像数据产生的图像显示在数据处理系统的内部显示器上;通过定标器对第一帧缓冲器中的图像数据执行定标操作,其中,定标器相对于图形内容的合成异步地执行定标操作; 将定标的图像数据存储在第二帧缓冲器中;以及 将用于显示从第二帧缓冲器中的定标的图像数据产生的图像的数据发送到与数据处理系统耦接的外部显示器。
2.根据权利要求I所述的方法,其中,定标的图像数据包括与第一图像帧相关联的数据。
3.根据权利要求2所述的方法,还包括 在对与第一图像帧相关联的图像数据完成定标操作之前,合成图形内容以产生与后一图像帧相关联的图像数据。
4.根据权利要求2所述的方法,还包括 确定从与前一帧相关联的定标的图像数据产生的图像是否完成了在外部显示器上的显不。
5.根据权利要求4所述的方法,还包括 如果从与前一帧相关联的定标的图像数据产生的图像尚未完成在外部显示器上的显示,则丢弃与第一帧相关联的定标的图像数据。
6.根据权利要求I所述的方法,还包括 从计算机应用程序接收图形内容。
7.根据权利要求I所述的方法,其中,定标操作包括调整图像数据的大小、分辨率、定向和颜色中的至少一种。
8.—种设备,包括 处理装置,被配置为产生用于图形内容的合成命令的列表; 与处理装置耦接的图形处理单元,被配置为执行合成命令的列表,以产生基于图形内容的图像数据; 与图形处理单元耦接的内部显示器,被配置为显示从图像数据产生的图像;以及与图形处理单元耦接的定标器单元,被配置为对图像数据执行定标操作,以产生要显示在外部显示器上的图像的定标的图像数据,其中,定标器单元相对于处理装置和图形处理单元的操作异步地执行定标操作。
9.根据权利要求8所述的设备,其中,定标的图像数据包括与第一图像帧相关联的数据。
10.根据权利要求9所述的设备,其中,图形处理单元还被配置为在定标器单元完成对与第一图像帧相关联的图像数据的定标操作之前,执行合成命令以产生与后一图像帧相关联的图像数据。
11.根据权利要求9所述的设备,其中,处理装置还被配置为确定从与前一帧相关联的定标的图像数据产生的图像是否完成了在外部显示器上的显示。
12.根据权利要求11所述的设备,其中,处理装置还被配置为如果从与前一帧相关联的定标的图像数据产生的图像尚未完成在外部显示器上的显示,则丢弃与第一帧相关联的定标的图像数据。
13.根据权利要求8所述的设备,其中,处理装置还被配置为从计算机应用程序接收图形内容。
14.根据权利要求8所述的设备,其中,定标操作包括调整图像数据的大小、分辨率、定向和颜色中的至少一种。
15.一种数据处理系统,包括 用于合成图形内容以产生图像数据的部件; 用于将图像数据存储在第一帧缓冲器中的存储器; 用于将从第一帧缓冲器中的图像数据产生的图像显示在数据处理系统的内部显示器上的显示器; 用于通过定标器对第一帧缓冲器中的图像数据执行定标操作的部件,其中,定标器相对于图形内容的合成异步地执行定标操作; 用于将定标的图像数据存储在第二帧缓冲器中的存储器;以及用于将用于显示从第二帧缓冲器中的定标的图像数据产生的图像的数据发送到外部显示器的部件。
16.根据权利要求15所述的数据处理系统,其中,定标的图像数据包括与第一图像帧相关联的数据。
17.根据权利要求16所述的数据处理系统,其中,所述数据处理系统还包括 用于在对与第一图像帧相关联的图像数据完成定标操作之前合成图形内容以产生与后一图像帧相关联的图像数据的部件。
18.根据权利要求16所述的数据处理系统,其中,所述数据处理系统还包括 用于确定从与前一帧相关联的定标的图像数据产生的图像是否完成了在外部显示器上的显示的部件。
19.根据权利要求18所述的数据处理系统,其中,所述数据处理系统还包括 用于在从与前一帧相关联的定标的图像数据产生的图像尚未完成在外部显示器上的显示的情况下,丢弃与第一帧相关联的定标的图像数据的部件,其中,定标操作包括调整图像数据的大小、分辨率、定向和颜色中的至少一种。
20.—种方法,包括 通过数据处理系统接收要显示在数据处理系统的内部显示装置上的第一图像的第一图形内容,其中,第一图形内容由在数据处理系统上运行的应用程序产生; 将第一图像自动镜像在与数据处理系统耦接的外部显示装置上; 确定应用程序是否正在发布要显示在外部显示装置上的第二图像的第二图形内容;以及 如果应用程序正在发布第二图形内容,则禁用自动镜像。
21.根据权利要求20所述的方法,还包括 如果应用程序正在发布第二图形内容,则将第二图像的图像数据发送到外部显示装置。
22.根据权利要求20所述的方法,其中,将第一图像自动镜像在外部显示装置上包括 通过定标器对第一图像的图像数据执行定标操作,以产生定标的图像数据,其中,定标器相对于第一图形内容的合成异步地执行定标操作。
23.根据权利要求22所述的方法,其中,定标的图像数据包括与第一图像帧相关联的数据。
24.根据权利要求23所述的方法,还包括 在对与第一图像帧相关联的图像数据完成定标操作之前,合成图形内容以产生与后一图像帧相关联的图像数据。
25.—种方法,包括 通过数据处理系统接收要显示在数据处理系统的内部显示装置上的第一图像的第一图形内容,其中,第一图形内容由在数据处理系统上运行的应用程序产生; 确定应用程序是否正在发布要显示在与数据处理系统耦接的外部显示装置上的第二图像的第二图形内容; 如果应用程序没有正在发布第二图形内容,则将第一图像自动镜像在外部显示装置上;以及 如果应用程序正在发布第二图形内容,则禁用自动镜像并将第二图像的图像数据发送到外部显示装置。
26.根据权利要求25所述的方法,其中,将第一图像自动镜像在外部显示装置上包括 通过定标器对第一图像的图像数据执行定标操作,以产生定标的图像数据,其中,定标器相对于第一图形内容的合成异步地执行定标操作。
27.根据权利要求26所述的方法,其中,定标的图像数据包括与第一图像帧相关联的数据。
28.根据权利要求27所述的方法,还包括 在对与第一图像帧相关联的图像数据完成定标操作之前,合成图形内容以产生与后一图像帧相关联的图像数据。
全文摘要
本公开涉及将图形内容镜像到外部显示器。数据处理系统合成由在数据处理系统上运行的应用程序产生的图形内容以产生图像数据。该数据处理系统将该图像数据存储在第一帧缓冲器中,并将从第一帧缓冲器中的图像数据产生的图像显示在数据处理系统的内部显示装置上。数据处理系统中的定标器对第一帧缓冲器中的图像数据执行定标操作,将定标的图像数据存储在第二帧缓冲器中,并且将从第二帧缓冲器中的定标的图像数据产生的图像显示在与数据处理系统耦接的外部显示装置上。定标器与图形内容的合成异步地执行定标操作。数据处理系统自动地将图像镜像在外部显示装置上,除非应用程序正在发布用于在外部显示装置上显示的另外的图形内容。
文档编号G06F3/14GK102681810SQ201210007739
公开日2012年9月19日 申请日期2012年1月11日 优先权日2011年1月11日
发明者J·S·哈柏, J·桑德梅尔, K·C·戴克 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1