虚拟表面渲染的制作方法与工艺

文档序号:12038836阅读:162来源:国知局
虚拟表面渲染的制作方法与工艺
虚拟表面渲染

背景技术:
计算设备配置的种类持续增长。从传统的台式个人计算机到移动电话、游戏控制台、机顶盒、平板计算机等,从这些配置中的每一个可得到的功能性可以极大地不同。因此,针对一种配置开发的传统显示技术可能不会同样适合于另一种配置。例如,先前用于具有大量存储资源的设备的显示技术可能不适合于具有较少资源的设备。

技术实现要素:
描述了虚拟表面(surface)技术。这些技术包括:对初始化和更新的分批(batching)的支持,对更新和后备列表的使用,对装订线(gutter)、混合和BLT操作的使用,诸如下推(pushdown)之类的表面优化技术,以及列举和聚块(clumping),网格使用,和遮蔽管理技术。本概要被提供来以简要形式介绍概念的选择,这些概念还将在下面的详细说明中进行描述。本概要既不打算标识所要求保护的主题的关键特征或必要特征,也不打算用于帮助确定所要求保护的主题的范围。附图说明参照附图来描述详细说明。在附图中,参考标号最左侧的数字标识该参考标号最先出现的图。在说明书和附图中的不同实例内的相同参考标号的使用可以表示相似或相同的项目。图1是在可运行来执行本文所描述的虚拟表面技术的示例实现中的环境的图示。图2描绘了其中调整虚拟表面尺寸的示例实现。图3描绘了其中示出在应用与虚拟表面的逻辑表面之间的交互的示例实现。图4描绘了更详细地示出图1的合成系统的示例实现。图5图示了合成系统启动虚拟表面的操作的示例实现。图6描绘了示例实现,其示出由合成系统针对更新而进行的表面的准备。图7描绘了合成系统使用图6的后备列表的操作的示例实现。图8描绘了示例实现,其示出了合成系统采用装订线的操作。图9描绘了合成系统对有效区的管理的示例实现。图10描绘了示例实现,其示出了合成系统使用下推技术来合并表面的操作。图11描绘了示例实现,其示出了合成系统将有效区合并到新表面的操作。图12描绘了示例实现,其示出了合成系统采用网格的操作。图13描绘了示例实现,其示出了合成系统关于遮蔽的操作。图14是描绘示例实现中的过程的流程图,其中,为要在其中渲染(render)数据的表面分配尺寸。图15是描绘示例实现中的过程的流程图,其中,合成系统跟踪有效区。图16是描绘示例实现中的过程的流程图,其中,后备列表被用于管理表面。图17是描绘示例实现中的过程的流程图,其中,基于遮蔽来调整表面的尺寸。图18是描绘示例实现中的过程的流程图,其中描述了压缩(compaction)技术,其牵涉到将有效区从一个表面下推到另一个表面。图19是描绘示例实现中的过程的流程图,其中描述了压缩技术,其牵涉到将有效区合并到新表面。图20是描绘示例实现中的过程的流程图,其中合成系统采用网格,以对驱动器进行调用来使用该网格渲染表面。图21图示包括示例设备的各种部件的示例系统,该示例设备可以被实现为如参照图1-20描述的任何类型的计算设备,以实现本文所描述的技术的实施例。具体实施方式概述虚拟表面可以被用来分配和管理用于视件(visual)的渲染的表面。虚拟表面例如可以被用于克服硬件的限制,比如用于管理比硬件可分配用于视件渲染的存储器大的网页的渲染,比如用于管理大网页、沉浸式应用等。本文描述了虚拟表面合成和更新技术。在一个或多个实现中,描述了用来管理用于渲染的表面的技术。这包括用于以下项的技术:对相对于图4和5进一步描述的初始化和更新的分批的支持,对相对于图6和7描述的更新和后备列表的使用,对相对于图8描述的装订线、相对于图9描述的混合和BLT操作的使用,相对于图10描述的诸如下推之类的表面优化技术以及相对于图11描述的列举和聚块,相对于图12描述的网格使用,和相对于图13描述的遮蔽管理技术。在以下讨论中,首先描述可运行来执行本文所描述的虚拟表面技术的示例环境。然后,描述可运行在所述示例环境以及其它环境中的示例过程。同样,示例环境不限于示例过程的执行。示例环境图1图示了根据一个或多个实施例的总地标为100的运行环境。环境100包括计算设备102,计算设备102具有可以包括一个或多个处理器的处理系统104、被示为存储器106的计算机可读存储介质的例子、操作系统108和一个或多个应用110。计算设备102可以被具体化为任何适当的计算设备,举例说明而非限制,比如台式计算机、便携式计算机、诸如个人数字助理(PDA)之类的手持式计算机、移动电话、平板计算机等。以下将在图21中示出并描述计算设备102的不同的例子。计算设备102还包括操作系统108,操作系统108被示为在处理系统104上执行,并且其可被存储在存储器106中。计算设备102还包括应用110,应用110被示为存储在存储器106中,并且其也可以在处理系统104上执行。操作系统108代表计算设备102的功能性,其可以抽象由应用110所使用的下层硬件和软件资源。例如,操作系统108可以抽象如何在显示设备112上显示数据的功能性,而应用110不必“知道”该显示是如何完成的。各种各样的其它示例也被考虑到,比如抽象计算设备102的处理系统104和存储器106资源、网络资源等。计算设备102还被示为包括合成系统114。尽管合成系统114被示为操作系统108的一部分,但是可以以各种各样的方式实现合成系统114,比如实现为独立的模块、单独的应用、计算设备102自身的硬件的一部分(例如,SOC或ASIC)等。合成系统114可以采用各种各样的技术来渲染视件,比如,经由一个或多个应用编程接口(API)116暴露功能性,以便被应用110用来渲染视件。例如,一种这样的技术可以是基于称作交换链(swapchain)的对象的,其可以借力于(leverage)代表位图的缓冲器阵列。缓冲器之一例如可以被用于在任何一个时刻在显示设备112上呈现数据,因此可以被称作“屏幕上缓冲器”或“前缓冲器(frontbuffer)”。使其它缓冲器可用于应用110,以用于屏幕外栅格化,因此其它缓冲器可以被称作“屏幕外缓冲器”或“后缓冲器(backbuffer)”。应用110可以以各种各样的方式对于在显示设备112上显示什么进行改变。在第一种这样的技术中,应用110可以重绘(redraw)后缓冲器之一并“翻转(flip)”内容,比如通过使用指针来使屏幕外缓冲器之一成为屏幕上缓冲器,反之亦然。在第二种这样的技术中,也可以借力于不同尺寸的缓冲器。例如,合成系统114可以利用第一缓冲器作为屏幕上缓冲器。合成系统114还可以利用比第一缓冲器小的第二缓冲器作为屏幕外缓冲器。因此,当要对内容进行更新时,所述更新可以被栅格化到第二缓冲器。然后,可以例如使用blt将所述更新复制到屏幕上缓冲器。按照这种方式,可以节约计算设备102的资源。合成系统114还可以被配置来支持虚拟表面技术。这些技术可以用于帮助应用110的开发者减少计算设备102中用于渲染视件的资源。这可以包括虚拟表面118的使用,从而使得应用110能够将可视数据的表面分为图块(tile),然后提早渲染所述图块。其它实现也被考虑,其中,如以下进一步描述的,图块不被用于划分表面(例如,应用110指定尺寸)。虚拟表面118可以被配置为一个或多个逻辑表面120的汇集。逻辑表面120代表应用110所见的个体表面,并且可以与一个或多个视件相关联。逻辑表面120例如可以被配置为具有固定尺寸的一些图块并且多个图块可以按固定栅格来布置,尽管应该容易明白的是,各种各样的、其中图块不以固定尺寸被使用的其它实例也被考虑到。例如,图块的尺寸可以由希望渲染视件的应用来指定,因此,在这种实例中,图块的尺寸可以由应用自己设置,在以下讨论中,图块也称作“组块(chunk)”。虚拟表面118可以用于代表比纹理(texture)所代表的区域大的区域。例如,应用110可以在创建时指定虚拟纹理的尺寸。该尺寸设立了虚拟表面118的边界。该表面可以与一个或多个视件相关联。在一个或多个实现中,当首次初始化虚拟表面时,其不受实际分配的支持(back)。换句话说,虚拟表面118可以在初始化时不“持有比特”,而是可以在稍后的时间点这样做,例如在分配时。在以下讨论中,视件可以指的是基本合成元素。例如,视件可以包含由合成系统114处理的位图和关联的合成元数据。视件的位图可以与交换链(例如,用于诸如视频之类的动态内容)或图册(atlas)表面(例如,用于半动态内容)相关联。可以在合成系统114所支持的单可视树(visualtree)中支持这两种呈现模型。对于半动态内容,图册可以用作视件的位图的更新模型,并且可以指可包括多个要渲染的层的聚合层,尽管单个层也被考虑。视件以及其属性操纵(例如,偏移、变换、效果(effect)等)和用于更新视件的基于图册的位图的方法(开始绘制(BeginDraw)、暂停绘制(SuspendDraw)、再继续绘制(ResumeDraw)、结束绘制(EndDraw))经由应用编程接口116来暴露,而图册层尺寸、图块尺寸、位图更新的包装/压缩/管理可以对应用110隐藏。交换链指的是可以比如通过改变指针而被一个接一个地“翻转”到屏幕上的一连串缓冲器。因此,翻转模式是这样的模式:交换链技术籍此被用于例如通过使用在屏幕外缓冲器与屏幕上缓冲器之间的交换点而使屏幕外缓冲器成为屏幕上缓冲器。然而,blt模式指的是这样的技术,其中合成系统114的运行时间发出从屏幕外缓冲器至屏幕上缓冲器的“blt”(例如,比特块图像转移(bitblockimagetransfer),其可以用于更新屏幕上缓冲器。如前所述,当在一个或多个实现中首次初始化虚拟表面118时,其不受实际分配的支持。换句话说,它不“持有任何比特”。一旦应用110开始更新表面,合成系统114就可以执行图块(即,合成表面对象)的分配。应用110可以经由各种各样的操作来更新虚拟表面118,比如针对相应操作的开始绘制、暂停绘制、再继续绘制和结束绘制的API调用。在一个或多个实现中,映射可以由合成系统114的内部算法来加以确定,并且使之对于应用110是不可见的。附加地,合成系统114可以经由API116暴露功能性,以使得应用110能够调整虚拟表面118的尺寸和剪裁虚拟表面118。例如,调整尺寸操作可以被用于改变虚拟表面118的边界。这意味着,新的更新和/或分配要落在新尺寸所设定的边界内。应用110还可以使用这个方法来向合成系统114通知:虚拟表面118的某个区不再被利用(例如,非有效),因而可供回收。如果调整尺寸导致区域缩小,则应用110将不再能够通过合成系统114的管理来对新边界之外的区进行更新。图2描绘了其中调整虚拟表面尺寸的示例实现200。在所图示的例子中,第一阶段202和第二阶段204用于分别示出3x3虚拟表面的尺寸被调整为2x2。第二阶段204中包含交叉影线的区代表作为调整尺寸操作的一部分将被丢弃的图块。如前所述,合成系统114于是可以回收用于存储这些图块的存储器106。在调整尺寸之后,如果不首先再次调整虚拟表面的尺寸,则应用110将不再能够对被丢弃的区(即,交叉影线区)进行更新。附加地,在一个或多个实现中,调整尺寸操作可以由合成系统114响应于接收到该操作的指示而启动。例如,合成系统114可以在接收到该指示时实施调整尺寸更新,而不用等待应用调用“commit(提交)”。例如,应用可以调用“Resize(0,0)”、“Resize(INT_MAX,INT_MAX)”和“Commit()”。在这个例子中,应用110已使得内容在第一次调整尺寸中被丢弃,所以即使第二次调整尺寸是在“Commit()”之前被调用的,它也没有效果。在这种情况下,显示设备112不显示内容,因为没有内容可供显示。剪裁操作可以被用于向合成系统114描述应用110所请求的虚拟图册的区。因此,可以执行剪裁操作,而不用调整虚拟表面118的边界的尺寸。然而,它确实告诉合成引擎114目前哪些逻辑表面要被分配,其例子将相对于以下附图而被描述。图3描绘了示例实现300,其中示出应用与虚拟表面的逻辑表面之间的交互。也通过使用第一阶段302和第二阶段304来图示这个例子。在这个例子中,在第一阶段302和第二阶段304中均示出了应用的视见区(viewport)306。相应地,在第一阶段302,应用最初渲染虚拟表面(其包括15个图块)的在视见区306内的头6个图块,这些图块通过交叉影线示出。因为由虚拟表面所代表的页面被滚动,所以应用现在可以使后六个图块被渲染,如第二阶段304所示。因此,应用110可以调用“剪裁”来表明由后6个图块限定的区当前正被使用,因而内容的其余部分当前未被使用。合成系统114然后可以选择重复利用原先代表头6个图块的逻辑表面506。合成系统114还可以暴露图1的API116,以创建和删除逻辑(即,物理的)和虚拟的表面,以及对各个表面进行更新。合成系统114可以强迫该区被应用110更新,以便避免当在可更新区域之外进行绘制时的无关的视件。初始化和分批图4更详细地描绘了示出图1的合成系统114的示例实现400。在当今的计算世界中,用户常常发现自己在观看大量且丰富的内容而且在其中浏览,显示设备在任何时刻都显示不了完整内容。其例子包括复杂且动态的网页、带有大的实况项目列表/照片、音乐或其他实况内容的组的现代应用视图、或者大文档。诸如基于触摸和图像捕获的操纵之类的用户界面允许用户跨平板(slate)、电话、大型TV/投影等上的用户界面的大量显示而快速滚动、摇动(pan)和缩放(zoom)。在大多数情况下,整个内容的预渲染以及当它制作动画(animate)和变化时使其保持最新可能是花费惊人的,实际上,这些甚至可能都不被设备的硬件所支持。作为替代,可以智能地渲染和高速缓存进入到视见区中的内容部分,例如,在用户操纵将其引入视见区之前推测性地提前渲染,并且当视见区离开时从高速缓存器中将其丢弃以便减少所使用的资源,正如在前所述的。为了向用户提供期望的响应,合成系统114可以分开执行合成和渲染。这通过合成系统114并入合成引擎402、控制器404和渲染器406来进行说明。在一个或多个实现中,可以异步地执行合成系统114的这些部件。按照这种方式,对用户输入作出响应的控制器404以及合成引擎402可以摇动/缩放预渲染的内容,而与此同时,渲染器406继续渲染。如前所述,合成系统114可以采用一个或多个虚拟表面118。虚拟表面118的使用允许已渲染内容的高速缓存和合成。当控制器404和合成引擎402用于变换虚拟表面118的同时,渲染器406可以基于推测性的渲染策略来执行对虚拟表面118上的区域的更新和剪裁。可以基于用户输入来执行该变换,以基于虚拟表面118的、已渲染了内容且位于视见区中的区域来产生对用户界面的更新。合成引擎402可以被配置成每次合成多个虚拟表面118和/或视件。在一个或多个实现中,合成系统114可以被配置来将逻辑表面120用作固定或混合尺寸的图块,其对于合成被用作前缓冲器。当渲染器406想要更新虚拟表面118的一部分时,渲染器406可以执行到单独的更新表面中的渲染或者直接渲染到图块表面。如果使用单独的更新表面,则在完成绘制时将内容从该更新表面复制到前缓冲器图块。然后,当渲染器406从图块剪裁掉有效内容时,可以释放所述图块。然而,这种实现可能导致结构性撕裂,原因在于已改变的内容在屏幕上与过时内容合成。附加地,由于装订线(gutter)和采样(例如,双线性的)或T形交叉,而可能产生在虚拟表面上被更新的区的图块或组块之间的接缝,以及其导致过度的CPU和GPU使用,用以应对装订线、多个重叠的更新和复杂的有效区。此外,由于动态内容改变或者用户操纵的内容,可能会遭遇过度的存储器使用。对于每一图块固定/混合尺寸的表面的方法,可能对于较大尺寸的图块而言会由于图块的未使用部分而遭遇存储器浪费,可能由于针对较小图块来渲染/处理更新以及在合成时对其进行渲染而遭遇CPU/GPU浪费,以及如果使用单独的更新缓冲器,则可能会遭遇从更新缓冲器到前缓冲器的CPU/GPU复制成本。因此,在合成系统114的实现中,可以在各种各样的考虑之间进行平衡。当操纵不适合视见区的丰富和/或动态的内容时,这些考虑可以包括以下一组针对用户体验品质和性能的原则。第一个这样的原则称作视觉响应性(visualresponsiveness)。这意味着,虚拟表面118可以被配置成感觉就像在用户的“指尖”和在用户操纵下的真实表面一样。可以通过配置合成系统114来无感知滞后地响应和跟踪操纵而对此进行支持。渲染器406与控制器404和合成引擎402的分离可以被使用来以鲁棒的方式来支持这个原则。第二个这样的原则牵涉到视觉连贯性(visualcoherence)。在这个例子中,当表面被操纵且其中的动态内容(例如,动画)被更新时,显示设备112上的内容没有示出妨碍用户沉浸或信任的伪像。例如,可以没有接缝地、没有视觉撕裂或毁坏地显示内容,用户界面的一些部分没有滞后于其将要附接到的其它部分,等等。原则中的第三个原则牵涉到视觉完整性(visualcompleteness)。如果用户界面在视觉上是完整的,则用户极少看到覆盖显示设备112的某些部分的填充符/占位符图案(例如,方格图案),并且如果这样的话,则此显示被限于相对短的持续时间。附加地,表面内容更新在视觉上不滞后,然而,例如对于在低功率设备上跨越了缩放级别的无限制丰富内容而言,这可能不被保证。例如,渲染器406更新虚拟表面118且合成引擎402合成虚拟表面118越优化和高效,则渲染器406有越多的带宽来进一步推测性地提早渲染以实现附加的视觉完整性。第四原则牵涉到活动的表面(livesurface)。对于该原则,动画、视频和其它动态内容在操纵期间继续播放和执行,而无断续。这可以在渲染器406实现了视觉完整性并且具有用来实施活动表面的带宽的情况下被实现。这可以通过虚拟表面118的高效更新和合成来被支持。合成系统114可以被配置来平衡这些原则。按照这种方式,可以实施综合解决方案,其支持视觉正确性和连贯性,以及对于管理和合成虚拟表面更新的响应性,使得渲染器406具有足够的带宽来确保视觉完整性和活动表面。图5图示了合成系统114启动虚拟表面118的操作的示例实现500。通过使用第一阶段502和第二阶段504图示了该实现。在第一阶段502,应用110请求将在其中渲染用户界面的表面的尺寸,该表面可以与一个或多个视件相关联。如前所述,首先把虚拟表面118初始化(例如,创建),使得其不受实际分配的支持,从而虚拟表面在初始化时不“持有比特”。然后,应用110可以指定要渲染到虚拟表面118上的视件。相应地,合成引擎402可以合成这些视件以用于被渲染器406渲染到虚拟表面118上,比如所示的汽车。这可以通过使用图块或“组块”来执行,其中分配的尺寸由应用指定。在第二阶段504,渲染器406可以接收指令,以更新虚拟表面118的区域,比如表面的矩形区域。渲染器406与合成引擎402之间的接口是使得渲染器406可以实施跨多个虚拟表面118的多个更新506(例如,更新可以包括剪裁指令、对视件的改变、对视件的创建或去除等)以及实施对于可把这些表面作为内容的视件的变换更新(transformupdate)。更新506的例子包括被配置为光标的视件和被配置为用户可选按钮的视件。在一种实现中,可以调用“提交”操作,使得多个更新506可以被渲染器406渲染,例如,作为一批来被更新。按照这种方式,合成系统114可以保护免受不完整更新的渲染。这允许渲染器406按视觉连贯性原则使显示设备112显示连贯且一致的视件。附加地,处理用户输入的控制器404可以基于用户操纵而直接在合成引擎402上更新对于视件的变换(例如,用于摇动或缩放),而不用经过渲染器406。这个方面提供了视觉响应性,即使是在渲染器406被占用相对长的时间段,例如用以处理动画或者动态内容的其它状态变化,和或用于在具有有限处理资源的瘦设备上栅格化复杂内容的情况下。虚拟表面118的实现可以牵涉到向渲染器406提供渲染器406可以向其中渲染的表面和偏移量(offset)。然后,当合成引擎402已挑选并正处理已提交给渲染器406的整批更新时,该表面可以被合成引擎402“翻转”进来。这可以用于消除复制操作,该复制操作否则会在单独的更新表面被用于由渲染器406进行的更新渲染的情况下被执行的。翻转还允许合成引擎402确保在单个批次中由渲染器406生成的每个更新506(例如,经由提交操作)作为整体及时到达显示设备112。因此,合成系统114可以避免对部分更新的处理。更新和后备列表图6描绘了示例实现600,其示出合成系统114针对更新进行表面的准备。合成系统114可以利用各种各样的不同技术来准备用于更新的表面。在第一种情况下,合成系统114可以从应用接收请求以便分配区域来执行更新,在所示的例子中,该区域被示为第一矩形602。响应于该请求,合成系统114可以分配比所请求的区域要大的区域,该区域被示为包括所请求的第一矩形602的第二矩形604。因此,如果随后接收到稍微不同尺寸的更新,则这允许对先前分配的表面的再使用。合成系统114例如可以维护先前由合成系统114分配的表面608的后备列表606。其可以被合成系统114使用来“贮藏”存储器106,以便再使用表面608和表面608的“组块”。这些表面608例如可以被维护在计算设备102的存储器106中,以用于不再使用的表面。因此,在合成系统114接收到对提供用于更新的表面的请求时,合成系统114可以首先检查后备列表606,以确定在计算设备102的存储器106中是否有与该请求相对应的任何先前分配的表面608是可用的。如果有,则合成系统114可以借力于这些表面而由此通过不分配新表面来提高系统的总效率。附加地,通过如前所描述的,向表面分配比所请求的尺寸大的尺寸(例如,具有更多像素),可以增大这些表面608与后续更新相关的可能性。例如,如果在一段时间内,接收到稍微不同尺寸的更新,则这允许先前分配的表面608被更多地再使用,例如,在下一更新针对的是加倍像素的更宽或更长的区域的情况下。因此,合成系统114可以借力于先前使得可用的表面的后备列表606来定位相关表面,而不是分配新表面。应该注意的是,表面的一些部分的剪裁和其它更新也可以是可用的。这可以基于所确认的批次通过区而被跟踪。如果更新适合于还具有其它有效内容的现有表面608的某个可用部分,则该表面可以被再使用。这还通过避免从多个不同表面渲染而降低了合成侧的成本,原因在于每个这样的过渡(transition)都招致设立成本。可以基于历史峰值使用或各种各样的其它因素来设置后备列表606的尺寸(例如,在列表中以及在计算设备102的存储器中维护的表面608的数量)。图7描绘了合成系统114使用图6的后备列表606的操作的示例实现700。该实现被示出为使用第一阶段702、第二阶段704和第三阶段706。在第一阶段702,表面708被分配用于由渲染器406进行渲染。然后,渲染器406可以被给予对表面708的控制,以便执行渲染。在该渲染期间,在第二阶段704,可以分配另一个表面710用于执行更新。在这个例子中,另一个表面710被包括在与渲染器406正渲染的表面708相同的显示区域内。因此,可以在正渲染表面708的同时分配并填充(例如绘制)表面710。然后,如先前所描述的,可以例如响应于提交命令而将该表面710传至渲染器406,以进行渲染。在第三阶段706,另一更新可以被接收来用于更新用户界面。在这个例子中,合成系统114通过使用图6的后备列表606来确定该更新牵涉到先前分配的表面,例如来自第一阶段702的表面708。因此,合成系统114可以使用已分配的表面708来包括更新712。按照这种方式,可以使用表面708而不重新分配新表面,由此节省了计算设备102的资源。各种各样的其它例子也被考虑。装订线图8描绘了示例实现800,其示出合成系统114采用装订线的操作。保持视觉正确性方面的一个问题牵涉到缺少装订线。例如,虚拟表面可以比如由于滚动等而被安置到或调整(scale)到子像素偏移(sub-pixeloffset)。因此,基于相邻像素来确定显示设备112将显示的像素的值,比如,使用双线性采样。然而,更新802的安置于更新802的边缘804处的相邻像素可能具有基于错误信息的值。例如,如果更新802之外的相邻像素包含(例如,来自其他更新的)“垃圾”,则栅格化器(rasterizer)可能从这些像素采样,因而产生具有坏值的像素,当被显示设备112显示时,这些像素可能看起来就好像接缝。应对这种问题的一种方式是将可能处于另一图块/聚块(clump)表面806中的边缘处的像素行或列复制到处于更新802的新分配表面中的相邻像素上。然而,对于计算设备的处理资源,例如对于计算设备102的CPU和GPU资源二者而言,这些附加的复制可证实是花费惊人的。因此,在一个或多个实现中,更新802的边缘与表面边缘对齐。然后,利用夹紧操作(clampingoperation),其使得栅格化器在采样会落在表面之外的“相邻”像素时使用位于表面边缘处的像素的值。这可被用于在成本与视觉正确性之间产生合理的折衷,即使结果在视觉上可能不完全正确,但是结果对于用户可以显得相当正确。在一个或多个实现中,装订线自身不被更新。在一些实例中,更新边缘可能不能够与表面边缘对齐。这可能是由于比更新大的表面的分配导致的。在这样的实例中,位于相同表面上的更新的边缘处的像素行/列可以被复制到相邻像素,以用于与夹紧行为类似的效果。类似地,在一个或多个实现中,当被剪裁和更新时,装订线不被用可能被绘制的潜在的新像素来更新,这是因为它们包含曾与当前有效的像素一起显示的先前有效的像素。这支持正确性与性能之间的折衷,这种折衷在一般情况下产生最少的、在被观看时干扰用户的视觉伪像。混合和BLT图9描绘了示例实现900,其示出合成系统114对有效区的管理。如前所述,虚拟表面118可以包含对于更新而言有效和无效的部分。对于所图示的虚拟表面118的例子而言,例如,更新可以牵涉到虚拟表面118中的光标,而不是汽车。因此,光标可以用于限定虚拟表面118的某个区,其与虚拟表面118的其他区相对比是有效的。通过跟踪该虚拟表面118以及其他表面的这些区,合成系统114可以利用各种各样的优化。例如,技术被描述来把要从表面渲染的区划分为两个部分,混合的和BLT的。该技术可以用于解决这样的实例:其中更新较小并且所得到的虚拟表面上的有效区相对复杂,例如导致具有许多小的源表面的复杂网格(mesh)。如果表面是“预乘的(premultiplied)”或透明的(以及非“不透明的”或者被设置为忽略alpha(透明)值),则表面被“混合”。这可以用于将较大矩形形状与“清除的(cleared)”和/或完全透明的像素(其中,没有由渲染器提供的内容)混合。在一些情况下,这变得比利用复杂网格(其画出复杂形状的每个路径/边缘的轮廓)来进行处理和栅格化更优。当相对于不透明表面而言,有效区是复杂的时,这种方法还可以用于装订线。例如,内部部分可以被BLT,但是边缘周围的像素被混合成使得相邻像素被清除。因此,当栅格化器从这些像素采样时,可以获得精确值。在一个或多个实现中,该技术用于虚拟表面118的边缘,而不用于在构成虚拟表面的图块聚块和表面之间的内部边缘。比特可以被复制并部分被清除,以便确保分配与图块尺寸对齐的聚块表面,以及来自在先表面的拥有该图块的内容被移入新表面。在一个或多个实现中,对于将被渲染器406更新的部分,例如如图7所示的中间的更新矩形,这不被执行。如果表面是不透明的,则在更新之后,可以通过“混合”使边缘上的像素不透明,即,在这些像素的alpha通道中达到完全不透明。可以使用由无重叠矩形条构成的“区”来执行复制、清除和使得不透明的任务中的每一个。各区可以被横切,形成联合,或者被去掉。此外,组成所述区的无重叠矩形条被列举。这允许将各种矩形和区高效地合并成单个区,并且提取出最终所得到的最佳的矩形组。例如,Win32HRGN是可以被利用来借力这些工具的GDI构造。这些操作被用于识别要对其执行例如清除或复制之类的操作的、被合并且最佳化的矩形组,而不是针对每个图块单独地确定要做什么。这可以被使用来在用于执行这些任务的CPU和GPU二者上获得显著的效率,并且还允许在图块/对准尺寸上减小到相对小的值,比如32x32或者16x16,从而如前所述地减少浪费。可以基于有效区的复杂度而不同地应对来自渲染器406的剪裁请求。在典型情况下,可以根据剪裁请求来更新图块聚块/表面的有效区。然而,如果有效区是复杂的并且BLT/混合技术正被利用,则可以执行附加操作。例如,有效区的一些部分可以被混合而变得不透明,这是因为这些部分现在位于该区的边缘处。应对这种问题的另一种方式是为被去除有效部分的图块创建新聚块。然而,所述图块可以继续有一些有效部分保留。对于这些图块,保留的有效部分可以从现有表面复制,变得不透明的部分和剪裁掉的部分可以被清除。当渲染器406例如由于提交操作而提交整批的更新时,可以提交这些新聚块。可以使用矩形条的区来优化该操作,尽管其他例子也被考虑。当由渲染器406提交一组更新时,剪裁和视觉变换(例如,最后得到图块聚块/表面的组及其有效区)可以被传送至合成引擎402。更新可以与相应标记一起被传送,所述标记可以被合成引擎402使用来确保用于在这些表面上栅格化的任何未决的CPU/GPU工作被完成。此时,附加技术可以用于进一步提高效率,其例子在以下部分中进行描述。下推图10描绘了示例实现1000,其示出合成系统114使用下推技术来合并表面的操作。在这个例子中,合成系统114已进行表面分配1002来显示视件,在图中,表面分配1002被示为使用斜条(hashmark)的框。然后,进行另一表面分配1004来执行更新,其被示为与斜条框一起安置的白框。通过由合成系统114跟踪表面的有效区,分配可以被合并,以改善资源利用。例如,与从单个表面渲染相比,从多个表面渲染可能是资源更密集的。在所图示的例子中,表面分配1004的有效部分被“下推”到表面分配1002中。这用虚线框示出,以表明来自表面分配1004中的有效区现在被包括在表面分配1002中。在下推之后,包括更新的表面分配1004可以被释放,从而释放计算设备102的存储器106的一些部分。因此,通过借力被合并的表面之一的分配,该技术可以用于合并表面,而不用创建新的表面分配。例如,在一些实例中,合成系统114可能会面临在当前批或在先前批的更新中的重叠的大更新。这可能导致分配包括相对小的有效区的多个表面。因此,合成系统114可能已经分配了大表面,但是相对小的有效区可以阻止这些表面被释放。然而,通过将有效区从第一表面(例如,更加新的更小的表面)“下推”到第二表面(例如,更加旧的更大的表面),来自第一表面的有效区可以被去除。这允许第一表面的释放,从而释放存储器并减少合成系统114所管理的表面分配的量,而无需牵涉附加的表面分配。按照这种方式,渲染器406可以被分派渲染更少表面的任务,从而提高了合成系统114的效率。进行新表面分配的其它技术也被考虑,其例子将在以下部分进行描述。列举和聚块图11描绘了示例实现1100,其示出合成系统114将有效区合并成新表面的操作。如前所述,合成系统114可以被配置为跟踪表面分配的有效区,其例子被示为具有相应有效区的1102(1)、1102(2)和1102(n)。随着时间的流逝,有效区相对于包括该区的表面的尺寸可能比如由于来自其他表面的更新等而减少。因此,合成系统114可以被配置为:将来自表面分配1102(1)-1102(n)的有效区合并到一个或多个新表面分配1104中。合成系统114例如可以被配置为:通过减少被设立为源且从其渲染以在显示设备112上合成显示的表面的数目来解决表面分配和合成。这可以通过列举全部虚拟表面有效区中最优化的一组矩形来执行。然后,可以针对每个这种矩形创建聚块。如果这导致大量更小的矩形,则可以使用以上讨论的混合/BLT技术。按照这种方式,可以利用将被合成引擎402适当地合成的、已被清除的像素的区域来实现更大的矩形。当合成引擎402接收到更新批时,例如,该引擎可以首先确定构成显示树的虚拟表面和视件的、将被更新的“弄脏的”部分。这可以被执行成包括:从更新来清楚地计算和传递脏区,以及将其剪裁到合成器中,例如,即使下层的表面或“聚块”可能改变(例如,下推或重新聚块),相同内容的有效区也遗留下来(carryover),所以没有可能已经生成新的脏区。有效区的这些矩形描述可以每一更新/剪裁操作地明确地传递。在一个或多个实现中,脏区可以被减少来导致更少数量的更大矩形,以避免在设立和执行许多更小渲染操作时招致大的开销。用来这样做的一种技术是允许最大数量的脏矩形。当碰到新的矩形时,这些矩形可以被添加到列表中或者与总体导致最小区域增长的矩形合并(例如,形成联合)。网格图12描绘了示例实现1200,其示出合成系统114采用网格的操作。网格(例如,点的列表)可以包括这样的多个视件:可以为其向GPU的驱动器进行单个的绘制调用。按照这种方式,可以减少向驱动器进行绘制调用的数量,从而避免每个调用所牵涉的开销。合成引擎402具有用于合成虚拟表面118的聚块/表面的多个选项。例如,因为合成引擎402知道每个聚块的有效区,所以合成引擎402可以通过跳过不与要被更新的脏区相重叠的那些聚块来开始。如果虚拟表面118中包含的视件是像素对齐的,则平移(translation)变换,而无需利用前述的装订线技术。这允许对于聚块中的每个矩形使用简单BLT/混合。替代一次一个地执行这些操作,合成引擎402可以从该组矩形中创建三角形网格并使得使用该网格来渲染表面。例如,合成系统114可以检查具有有效区的一组矩形1202。然后,可以通过将每个矩形分割为两个三角形来生成针对该组矩形的三角形网格1204。然而,可以从矩形形成T形交叉。T形交叉可以例如由于浮点或舍入误差而使得三角形网格1204被带接缝地栅格化。因此,合成系统114可以替代地处理该组矩形,以形成无重叠矩形的、不包括T形交叉的三角形网格1206。可以跨合成帧(compositionframe)地高速缓存所生成的网格,并且如果聚块的矩形没有改变,则可以再使用所生成的网格。如果存在非像素对齐的变换,但是该变换仅仅包括平移(translation),则合成引擎402仍然可以针对每个聚块生成网格,并且自己渲染每个聚块。然而,如果存在更复杂的变换,则合成引擎402可以处理该组矩形,以避免T形交叉来确保不带有接缝的正确栅格化。为了这样做,每个聚块都可以向合成系统114所管理的网格生成器对象登记相应的一组矩形。当每个坐标被检查时,合成系统114的网格生成器功能性可以在已被登记的边缘上添加一个或多个附加的顶点。每个登记的边缘也可以使那个范围中的现有顶点添加给自己。结果是针对每个聚块的具有附加顶点的一组矩形。然后,可以使用这些顶点将这些矩形分解成一组无重叠的三角形。因此,在非简单变换的情况下,可以使用如三角形网格1206所示的这些生成的无T形交叉的网格来渲染聚块。遮蔽图13描绘了示例实现1300,其示出合成系统114关于遮蔽的操作。尽管每个聚块都可以具有指令来混合其表面的一部分和BLT其它部分,但是对于不透明的虚拟表面而言,合成系统114知道每个聚块上的有效且不透明的区。对于遮蔽,这些区可以跨越整个虚拟表面地被累积,并且被合成引擎402用于遮蔽检测。在一个或多个实现中,合成引擎402可以从头到尾列举所登记的遮蔽矩形,以识别被在用于显示设备112显示的z轴次序(z-order)中离用户较近的不透明视件遮蔽的部分。然而,通过一次遮蔽操作(occlusionpass)来将矩形分解为复杂形状可能是昂贵的。为了确保构成某个区的无重叠矩形条完全遮蔽将被该整个区遮蔽的矩形,合成系统114可以利用矩形包容(containment)和相交技术(intersection)。在图13的示例实现1300中,示出了这样的技术的例子,其通过第一阶段1302和第二阶段1304来被示出。在第一阶段1302,第一矩形1306和第二矩形1308将由合成引擎402来合成。然而,合成引擎402可以确定第一矩形1306的一部分1310被第二矩形1308遮蔽。因此,合成引擎402可以被配置为:如果遮蔽矩形遮掩了整个边缘,则把被检查的矩形缩小,使得结果仍然是单个的已被缩小的矩形。其例子在第二阶段1306中示出,其中,第一矩形1306被缩小成使得其不包括被第二矩形1308遮蔽的部分1310。因此,第二矩形1308的边缘可以用于限定第一矩形1306的新边缘,从而节约了计算设备102的资源。各种各样的其它例子也被考虑。示例过程以下的讨论描述了可以利用前述系统和设备来实施的技术。每个过程的诸方面可以以硬件、固件、软件或其组合来实施。所述过程被示为详细描述由一个或多个设备执行的操作的一组方框,并且所述过程不必限于所示出的用于由各个方框执行操作的顺序。在以下讨论的部分中,将参照图1的环境100以及图2-13的系统和示例实现。图14描绘了示例实现中的过程1400,其中,为要在其中渲染数据的表面分配尺寸。合成系统接收对分配要在其中渲染一个或多个视件的表面的请求,该请求指定了表面的尺寸(方框1402)。该请求例如可以源于某个应用以开始“渲染比特”。在一个或多个实现中,所述表面可能在仅仅接收到请求但还未分配时已经初始化,这样使得所述表面在请求被接收时不“持有比特”。响应于接收到请求,合成系统把所述表面分配成具有大于所请求的尺寸的尺寸,以便渲染所述一个或多个视件(方框1404)。如前所述,合成系统114可以被配置来“贮藏存储器”,以促进所分配的、不再有效的表面的再使用。通过使表面大于应用所请求的,合成系统114可以增大所述表面稍后被再次使用的可能性。图15描绘了示例实现中的过程1500,其中,合成系统跟踪有效区。合成系统管理包括用于显示设备显示的视件的表面(方框1502)。所述表面例如可以被配置为如前所述的虚拟表面。跟踪在显示设备将要显示的表面内的有效区(方框1504)。最初,所述表面例如可以被配置来更新显示的一部分。然而,随着时间的流逝,其它表面可以进一步更新该显示中已经被更新过的部分。因此,表面的一些部分可以保持有效用于显示,而其它部分无效。合成系统114可以被配置来跟踪这种有效性,这种有效性可以用于支持各种各样的不同的功能性,比如,在讨论中的其它地方进一步描述的遮蔽管理、表面尺寸调整、表面压缩等。图16描绘了示例实现中的过程1600,其中,后备列表用于管理表面。合成系统接收对分配要在其中渲染一个或多个视件的表面的请求(方框1602)。如前,应用110可以使该请求作为通过合成系统114的一个或多个API116的调用。合成系统检查后备列表,以确定表面是否作为在计算设备的存储器中已分配的而可用,所述表面与所接收的请求相对应并且不包括对于由计算设备的显示设备显示而言是有效的视件(方框1604)。后备列表例如可以引用存储器中已分配的、但是例如由于稍后接收的更新而不再具有有效部分的表面。响应于检查出所确定的表面是可用的,使所确定的表面可用于渲染所述一个或多个视件(方框1606)。如前所述,所确定的表面例如可以已被分配比所请求的要大的尺寸,因而可以与后续更新相关。各种各样的其它例子也被考虑。图17描绘了示例实现中的过程1700,其中,基于遮蔽来调整表面尺寸。对表面的一部分要被显示设备要显示的另一表面遮蔽作出判定(方框1702)。合成引擎402例如可以确定用于表面的显示的z轴次序(z-order),并且确定将在所述表面的该部分上渲染另一表面的至少一部分。从所述表面去除该部分(方框1704)。这可以以各种各样的方式来执行,比如,通过使用所述另一表面的边缘来限定要被缩小的表面的边缘,从而限定所述表面的至少一个新边缘。将具有被去除的部分的表面随同所述另一表面一起渲染(方框1706)。按照这种方式,可以避免对从所述表面被去除的部分的渲染,从而节约了计算设备102的资源。图18描绘了示例实现中的过程1800,其中描述了压缩技术,该压缩技术牵涉到将有效区从一个表面下推到另一表面。跟踪可由合成系统用来渲染一个或多个视件的多个表面的有效区(方框1802)。合成系统114例如可以确定表面的哪些部分将由显示设备显示,以及表面的哪些部分将不由显示设备显示。然后,合成系统作出判定:第一表面的第一有效区可被包括在第二表面的分配内(方框1804)。第一表面例如可以被配置作为更新。然后,后来的更新可以被执行,其使得所述更新的除第一有效区之外的部分无效。然后,下推第一有效区,以使其被包括作为第二表面的一部分(方框1806)。这可以包括将有效区的比特复制到第二表面中。在复制以后,第一表面于是可以被释放,从而节约了在维护单独的表面时的资源,以及通过使用更少数量的表面而提高了渲染操作的效率。因此,在这个例子中,没有分配新表面,从而在进行分配和维护分配上节省了计算设备102的资源。其它例子也被考虑,其例子描述如下。图19描绘了示例实现中的过程1900,其中描述了压缩技术,该压缩技术牵涉到将有效区合并到新表面中。跟踪可由合成系统用来渲染一个或多个视件的多个表面的有效区(方框1902)。如前,合成系统114可以确定多个表面的哪些部分将由显示设备显示,以及表面的哪些部分将不由显示设备显示。然后,计算用于可用来包括来自所述多个表面的有效区的新表面的分配(方框1904)。新表面例如可以被配置为具有用于包括多个有效区的边界的矩形。然后,可以分配新表面来包括来自所述多个表面的有效区(方框1906),然后,可以将有效区复制到新表面,从而使合成系统115能够释放原始表面。合成系统114的表面压缩的各种各样的其它例子也被考虑。图20描绘了示例实现中的过程2000,其中合成系统114采用网格对驱动器进行调用以便使用该网格渲染表面。从一组矩形形成不包括T形交叉的网格(方框2002)。网格例如可以被形成为描述一组三角形,如前所述,这组三角形被形成来避免T形交叉,并因此避免在渲染这些交叉时遇到的混杂(complication)(例如,接缝)。对驱动器进行调用,以便使用网格渲染表面(方框2004),比如,对图形化功能性的驱动器(例如,GPU)的单个调用,其可以用于描述对于用户界面中的更新具有有效区的多个矩形。因此,网格可以有助于避免为用于形成网格的三角形的每个矩形使用调用,如以上相应段落所描述的。示例系统和设备图21图示了示例系统,总地标为2100,这个示例系统包括示例计算设备2102,其代表可以实现本文所描述的各种技术的一个或多个计算系统和/或设备。计算设备2102例如可以是服务供应商的服务器、与客户端相关联的设备(例如,客户端设备)、芯片上系统、和/或任何其它适当的计算设备或计算系统。计算设备2102被示为包括图1的合成系统114。所示的示例计算设备2102包括处理系统2104、一个或多个计算机可读介质2106、以及彼此通信地耦合的一个或多个I/O接口2108。尽管未示出,但是计算设备2102还可以包括将各种部件彼此耦合的系统总线或其它数据和命令转移系统。系统总线可以包括以下不同总线结构中的任何一个或组合:比如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种各样的总线体系结构中的任何一种的处理器或局部总线。各种各样的其它例子也被考虑,比如控制和数据线。处理系统2104代表使用硬件来执行一个或多个操作的功能性。因此,处理系统2104被示为包括可以被配置为处理器、功能块等的硬件元件2110。这可包括在硬件上实现为专用集成电路或使用一个或多个半导体形成的其它逻辑器件。硬件元件2110不受限于其构成材料或者其中采用的处理机制。例如,处理器可以包括半导体和/或晶体管(例如,电子集成电路(IC))。在这样的上下文中,处理器可执行的指令可以是可电子执行的指令。计算机可读存储介质2106被示为包括存储器/存储装置2112。存储器/存储装置2112代表与一个或多个计算机可读介质相关联的存储器/存储装置容量。存储器/存储装置部件2112可以包括易失性介质(比如,随机存取存储器(RAM))和/或非易失性介质(比如,只读存储器(ROM)、快闪存储器、光盘、磁盘等)。存储器/存储装置部件2112可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可拆卸介质(例如,快闪存储器、可拆卸硬盘驱动器、光盘等)。如以下进一步描述的,可以以各种各样的其它方式配置计算机可读介质2106。输入/输出接口2108代表这样的功能性:其允许用户向计算设备2102输入命令和信息,还允许使用各种输入/输出设备向用户和/或其它部件或设备呈现信息。输入设备的例子包括键盘、光标控制设备(例如,鼠标)、话筒、扫描仪、触摸功能性(例如,被配置来检测物理触摸的电容式或其它传感器)、照相机(例如,其可以采用可见波长或诸如红外频率之类的不可见波长来将移动识别为不牵涉触摸的手势)等。输出设备的例子包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,可以按以下进一步描述的各种各样的方式配置计算设备2102来支持用户交互。本文可以在软件、硬件元件、或者程序模块的一般上下文中描述各种技术。一般而言,这样的模块包括执行特定任务或实施特定抽象数据类型的例程、程序、对象、元素、部件、数据结构等。本文使用的术语“模块”、“功能性”和“部件”一般地代表软件、固件、硬件或其组合。本文描述的技术的特征是与平台无关的,这意味着,可以在具有各种各样的处理器的各种各样的商业计算平台上实施所述技术。所描述的模块和技术的实现可以被存储在某种形式的计算机可读介质上或跨越其传输。计算机可读介质可以包括计算设备2102可以访问的各种各样的介质。作为例子而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。与仅仅信号传输、载波或信号本身相对比,“计算机可读存储介质”可以指的是使得能永久性和/或非临时性地存储信息的介质和/或设备。因此,计算机可读存储介质指的是非承载信号的介质。计算机可读存储介质包括硬件,比如以适于存储信息(比如,计算机可读指令、数据结构、程序模块、逻辑元件/电路、或其它数据)的方法或技术实现的易失性和非易失性、可拆卸和不可拆卸的介质和/或存储设备。计算机可读存储介质的例子可以包括但不限于RAM、ROM、EEPROM、快闪存储器或其它存储技术、CD-ROM、数字多功能盘(DVD)或其它光学存储装置、硬盘、磁带盒、磁带、磁盘存储装置或其它磁存储设备,或适于存储想要的信息并可以由计算机访问的其它存储设备、有形介质或制造品。“计算机可读信号介质”可以指的是承载信号的介质,其被配置为诸如经由网络向计算设备2102的硬件传输指令。信号介质典型地可以将计算机可读指令、数据结构、程序模块、或其它数据具体化为诸如载波、数据信号或其它输送机制那样的调制的数据信号。信号介质还包括任何信息传递介质。术语“调制的数据信号”是指使它的特性中的一个或多个以如下方式设置或改变的信号,即:将信息编码在信号中。作为例子而非限制,传输介质包括诸如有线网络或直接有线(direct-wired)连接之类的有线介质和诸如声学、RF、红外和其它无线介质之类的无线介质。如前所述,硬件元件2110和计算机可读介质2106代表以硬件形式实现的模块、可编程器件逻辑和/或固定器件逻辑,在一些实施例中,其可以被用来实施本文所描述的技术的至少一些方面,比如执行一个或多个指令。硬件可以包括以下项的部件:集成电路或芯片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、和其它硅实现或其它硬件。在本上下文中,硬件可以作为处理设备操作,其执行由指令定义的程序任务和/或由硬件体现的逻辑,以及作为被利用来存储用于执行的指令的硬件操作,例如,前述的计算机可读存储介质。前述内容的组合还可以用于实施本文所描述的各种技术。因此,软件、硬件或可执行模块可以被实现为在某种形式的计算机可读存储介质上体现的和/或由一个或多个硬件元件2110体现的一个或多个指令和/或逻辑。计算设备2102可以被配置来实施与软件和/或硬件模块相对应的特定指令和/或功能。因此,可被计算设备2102作为软件来执行的模块的实现可以至少部分地以硬件来实现,例如,通过使用计算机可读存储介质和/或处理系统2104的硬件元件2110。指令和/或功能可以是一个或多个制造品(例如,一个或多个计算设备2102和/或处理系统2104)能够执行/操作来实施本文所描述的技术、模块和例子的。进一步如图21所示,示例系统2100当在个人计算机(PC)、电视设备和/或移动设备上运行应用时,使能对于无缝用户体验的无处不在的环境。当在利用应用、播放视频游戏、观看视频等的时候从一个设备转移到另一设备时,服务和应用在所有三个环境中实质上相似地运行,以用于共同的用户体验。在示例系统2100中,多个设备通过中央计算设备互连。中央计算设备可以相对于多个设备是本地的,或者可以位于远离多个设备的地方。在一个实施例中,中央计算设备可以是通过网络、因特网或其它数据通信链路与多个设备相连的一个或多个服务器计算机的云。在一个实施例中,这种互连的体系结构使得能够跨多个设备传递功能性,以向多个设备的用户提供共同的且无缝的体验。多个设备中的每一个可以具有不同的物理要求和能力,并且中央计算设备使用平台来使得能够向设备传递既对于该设备是定制的并且仍然对于所有设备而言是共同的体验。在一个实施例中,目标设备的类别被创建,并且体验相对于该通用类别的设备被定制。设备的类别可以通过设备的物理特征、使用的类型或其它共同特性来定义。在各种实现中,计算设备2102可以采取各种各样的不同配置,比如用于计算机2114、移动设备2116和电视2118用途。这些配置中的每一种包括一般可以具有不同结构和能力的设备,因而可以根据不同设备类别中的一个或多个来配置计算设备2102。例如,计算设备2102可以被实现为计算机2114类别的设备,包括个人计算机、台式计算机、多屏计算机、膝上型计算机、上网本等。计算设备2102还可以被实现为移动2116类别的设备,包括移动设备,比如,移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏计算机等。计算设备2102还可以被实现为电视2118类别的设备,包括一般具有或在临时观看环境中连接至较大屏幕的设备。这些设备包括电视、机顶盒、游戏控制台等。本文描述的技术可以得到计算设备2102的这些各种配置的支持,并且不限于本文所描述的技术的特定例子。还可以通过使用分布式系统来全部或部分地实施该功能性,比如,经由如下描述的平台2122在“云”2120上。云2120包括和/或代表针对资源2124的平台2122。平台2122抽象云2120的硬件(例如,服务器)和软件资源的潜在的功能性。资源2124可以包括当计算机处理在远离计算设备2102的服务器上执行时可以利用的应用和/或数据。资源2124还可以包括在因特网上提供的服务,和/或通过诸如蜂窝或Wi-Fi网络之类的订户网络提供的服务。平台2122可以抽象将计算设备2102与其它计算设备相连的资源和功能。平台2122还可以用于抽象资源的定标(scaling),以针对所遇到的对于经由平台2122实施的资源2124的要求,提供相应级别的规模。因此,在互连设备的实施例中,本文所描述的功能性的实现可以分布在系统2100中。例如,所述功能性可以部分地实现在计算设备2102上,以及经由抽象云2120的功能性的平台2122来实现。结论尽管本发明是以特定于结构特征和/或方法动作的语言被描述的,但是应该理解,在所附权利要求中限定的发明不一定局限于所描述的特定特征或动作。而是,该特定特征和动作是作为实施所请求保护的发明的示例形式而被公开的。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1