当前位置: 首页 > 专利查询>微软公司专利>正文

虚拟表面渲染制造技术

技术编号:9087325 阅读:310 留言:0更新日期:2013-08-28 23:56
描述了虚拟表面技术。这些技术包括:对初始化和更新的分批的支持,对更新和后备列表的使用,对装订线(gutter)、混合和BLT操作的使用,诸如下推之类的表面优化技术,以及列举和聚块,网格使用,和遮蔽管理技术。

【技术实现步骤摘要】
虚拟表面渲染
技术介绍
计算设备配置的种类持续增长。从传统的台式个人计算机到移动电话、游戏控制台、机顶盒、平板计算机等,从这些配置中的每一个可得到的功能性可以极大地不同。因此,针对一种配置开发的传统显示技术可能不会同样适合于另一种配置。例如,先前用于具有大量存储资源的设备的显示技术可能不适合于具有较少资源的设备。
技术实现思路
描述了虚拟表面(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所见的个体表面,并且可以与一个或多个视件相关联。本文档来自技高网...
虚拟表面渲染

【技术保护点】
一种由计算设备(102)实施的方法,所述方法包括:由合成系统使用混合操作来渲染表面的一部分;以及由所述合成系统使用位块图像转移操作来渲染所述表面的另一部分。

【技术特征摘要】
2012.05.31 US 13/4858321.一种由计算设备(102)实施的方法,所述方法包括:响应于来自在计算设备上运行的应用的请求,由计算设备(102)的合成系统初始化包括一个或多个逻辑表面的汇集的虚拟表面,而无需分配比特,所述虚拟表面不被计算设备所显示;由合成系统使用混合操作来渲染虚拟表面的一部分;以及由所述合成系统使用位块图像转移操作来渲染虚拟表面的另一部分;由合成系统使用所渲染的部分来合成虚拟表面以用于显示。2.如权利要求1所述的方法,其中所述合成系统被配置为:响应于来自所述应用的请求而分配比特给已初始化的虚拟表面。3.如权利要求1所述的方法,其中所述合成系统响应于确定虚拟表面的所述一部分是透明的或者预乘的而确定将所述混合应用于所述一部分。4.如权利要求1所述的方法,还包括:将虚拟表面作为更新来随同标记一起从所述合成系统的渲染器传输至所述合成系统的合成引擎,所述标记能被所述合成引擎使用来指示虚拟表面上的栅格化是完成的。5.如权利要求1所述的方法,其中所述一部分位于虚拟表面的边缘处,以及所述另一部分位于虚拟表面内。6.如权利要求5所述的方法,其中所述另一部分被混合成使得其相邻像素被清除以作为装订线技术的一...

【专利技术属性】
技术研发人员:R芬克LE布兰科C伊尔根JW普里斯特利SP蒙卡约
申请(专利权)人:微软公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1