跨平台渲染引擎制造技术

技术编号:13931892 阅读:40 留言:0更新日期:2016-10-28 16:14
一种跨平台渲染引擎。跨平台渲染引擎充当应用与操作系统之间的中介,以用于将应用内容显示在屏幕上,从而允许软件开发者编写与平台无关的应用代码。应用以描述待显示的内容的资源高效的内容描述的形式将内容发送至跨平台渲染引擎。进而,跨平台渲染引擎存储内容描述,并且根据需要将根据内容描述所生成的光栅化的图像提供至合成器。在对应于合成器所需要的纹理的内容描述不可用的情况下,跨平台渲染引擎从应用中拉取出内容描述。通过代表应用从用户界面线程产生经光栅化的图像而不是等待应用线程,跨平台渲染引擎改进应用的整体响应性,并且带来更好的用户体验。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
在多个平台上可用的软件产品(即,跨平台产品)比单平台产品提供更大的用户基数。软件开发者通常想要提供跨那些平台的一致的用户体验(即,外观和感觉),以使得熟悉一个平台上的软件产品的用户将立即对另一个平台上的相同的软件产品感到舒服。用于在屏幕上显示内容的机制在运行不同操作系统的平台间大不相同。例如,一些桌面操作系统不包括用于将来自不同的应用的内容在桌面上进行合成(即,组合)的功能。相反,每个应用都负责创建并更新屏幕图像,并且使图像被显示。尽管一些操作系统提供了合成内容以供显示的方式,但每个操作系统都具有其自身独特的方式来完成该任务。该不一致性要求软件开发者学习如何与软件产品所移植至的每个不同的操作系统进行接合。除了简单地需要软件开发者学习图形功能的特定于平台的实现,实现差异还可以需要大体上重写代码,目的是复制不同平台上的用户体验。每次重写都产生引入新的错误的可能性,并且需要额外的质量保证测试。当操作系统不提供所需要的功能或者与所期望的不同地执行功能时,在该平台上提供一致的用户体验可能是不切实际的(如果不是不可能的)。即使当功能被复制时,应用可能在效率和响应性方面而在各种平台之间不同。这可以是以下因素所造成的,例如:软件开发者对每个操作系统的熟悉度和经验的水平的不同、在各种操作系统上可用的组成功能的优势和劣势的不同、以及硬件定时约束的不同。历史上,在一些应用中,用户界面线程一直负责应用的所有功能,包括:对应用逻辑和规则进行应用、处理对应用的输入、以及向用户呈现应用内容。应用的响应性至少部分地基于用户界面线程多快速地处理输入并渲染对应用内容的改变。当由用户界面线程来处理光栅化时,如果当需要内容更新时用户界面线程繁忙,则应用将出现未响应,这是因为直到用户
界面线程完成其当前的任务为止才能进行光栅化。为了处理与触摸屏相关联的增加的处理要求,已经创建了专用应用线程来将应用响应性与驱动用户界面的代码进行去耦合。对应用内容进行渲染以供显示仍然是由应用线程来控制的,并且不受益于该分离。如果当需要渲染时应用线程忙于对应用内容执行操作,则将渲染将会被延迟直至操作完成为止。如果应用的部分移动到还没有被实现(即,渲染或更新)的屏幕的部分中,则应用可能被视为未响应。当应用线程没有在初始触摸输入的几帧内对应用内容进行光栅化时,可能发生这种情况。例如,在一个操作系统中,应当注意的是,如果应用线程没有在通过滑动一个人的手指而发起拖动(pan)的大约四帧内对应用内容进行光栅化,则应用开始出现未响应。始终保证来自应用线程的该水平的响应性是困难的。随着更新和补丁的开发,这些问题在软件产品的整个使用寿命期间继续。关于这些和其它考虑而进行了本专利技术。尽管已经讨论了相对具体的问题,但应当理解的是,在本文中所公开的实施例不应该限于解决在
技术介绍
中所标识的具体问题。
技术实现思路
提供了该
技术实现思路
以用简化的形式介绍在下文的具体实施方式部分中所进一步描述的概念的选择。该
技术实现思路
不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在作为帮助用来确定所要求保护的主题的范围。实施例提供了渲染并显示用户界面和内容项目的计算机生成的显示组件的系统。该系统包括能够经由屏幕以图形向用户显示应用内容的计算设备。跨平台渲染引擎充当在生成内容的应用与在屏幕上显示内容的合成器之间的中介。跨平台渲染引擎允许应用功能跨各种平台的一致的实现,这进而得到一致的用户体验。除了在由合成器所维持和显示的表面上直接绘制内容,应用还可以向跨平台渲染引擎绘制内容描述。内容描述是原始的应用内容与在屏幕上显示的经光栅化的纹理之间的中间表示。每个内容描述都描述如何绘制应用
内容的不同的片段(例如,矩形)以及那些不同的片段之间的关系。跨平台渲染引擎的实施例将这些描述转换成特定于平台的显示组件以供在屏幕上呈现。跨平台渲染引擎的实施例可以代表应用来控制和操纵对中间表示的渲染,以提供额外的功能并创建更积极响应的应用。当应用提供内容描述而不是应用内容的经光栅化的图像本身时,跨平台渲染引擎可以提供更大的价值。这是因为内容描述在资源使用方面比对应的经光栅化的图像便宜得多,跨平台渲染引擎能够与纹理所保存的相比存储更多的应用内容的表示,这允许跨平台渲染引擎在许多实例中对用户交互进行响应,而不是调用回到应用。这提供了显著的机会来在对应用内容进行渲染时增加性能,并且改进应用的响应性。为了以及时的方式显示内容以使得应用保持对用户响应并且最小化在接收到用户输入与对屏幕进行更新之间的用户可感知的延迟的量,跨平台渲染引擎包括在不同的处理线程上运行的组件,所述在不同的处理线程上运行的组件包括在应用线程上运行的前端以及在用户界面线程上运行的后端。应用线程是负责应用的主要功能的处理线程。应用与跨平台引擎之间的交互在应用线程上进行。用户界面线程是对来自合成器的请求进行响应并且创建包含应用内容的显示层的处理线程,其中,显示图像(例如,位图)被加入所述显示层中。跨平台渲染引擎所提供的效率和响应性是通过使用所存储的内容描述并且使用拉取模型来从应用中获取内容而达成的。当区域需要视觉更新时,后端从应用中拉取出更新,而不是使应用向合成器推送更新。附图说明通过参考以下附图,本公开的进一步的特征、方面、和优点将变得更好地被理解,其中,元素不成比例以便更清楚地示出细节,并且其中,几个视图通篇中相同的附图标记指代相同的元素。图1是用于渲染并显示用户界面和内容项目的计算机生成的显示组件的系统的一个实施例的框图。图2是示出了适用于实现跨平台渲染引擎的系统的一个实施例的高级系统架构图。图3是示出了跨平台渲染引擎与应用之间的交互的一个实施例的流程图。图4A-D示出了针对包含三个内容描述的内容描述合成的内容描述协调的示例。图5A示出了在给定具有多个虚拟纹理的文档中的经选择的预取边界的情况下,可用于进行缓存的虚拟纹理内容描述的示例。图5B示出了在给定具有由多个瓦片组成的单个虚拟纹理的文档中的经选择的预取边界的情况下,可用于进行缓存的虚拟纹理内容描述的示例。图6A示出了使用常规混合模式而根据内容描述来渲染的应用内容的示例。图6B示出了在没有常规混合模式支持的情况下所得出的虚拟纹理。图7A示出了使用下逆混合模式而根据内容描述来渲染的应用内容的示例。图7B示出了在没有下逆模式支持的情况下所得出的虚拟纹理。图8A示出了使用逆混合模式而根据内容描述来渲染的应用内容的示例。图8B示出了在没有逆模式支持的情况下所得出的虚拟纹理。图9是跨平台渲染引擎方法的一个实施例的高级流程图。图10是示出了可以利用其实践本专利技术的计算设备的物理组件的一个实施例的框图。图11A和11B是可以利用其实践本专利技术的实施例的移动计算设备的简化的框图。具体实施方式参考形成了本文的一部分并且示出了具体的示例性实施例的附图以在下文中更加充分地描述了各种实施例。然而,实施例可以以不同的形式来实现,并且不应该被理解为限于在本文中所阐述的实施例;相反,提供了这些实施例以使得该公开将是彻底的和完整的,并且将会向本领域技术人员完全传达实施例的范围。实施例可以被实践为方法、系统、或设备。从而,实施例可以采取硬件实现、完全软件实现、或组合了软件和硬件方面
的实现的形式。因此,以下的详细描本文档来自技高网
...

【技术保护点】
一种用于对与应用相关联的计算机生成的显示组件进行渲染,以用于在计算机支持的显示表面上显示的方法,所述方法包括以下操作:接收描述如何绘制与应用的应用内容相关联的一个或多个计算机生成的显示组件的一个或多个命令;将所述一个或多个命令存储在一个或多个内容描述中,以用于由独立于所述应用而操作的渲染引擎来使用;利用所述渲染引擎、根据所述一个或多个内容描述来渲染所述一个或多个计算机生成的显示组件以用于由所述系统来显示;以及提供所述计算机生成的显示组件以用于在所述计算机支持的显示表面上显示。

【技术特征摘要】
【国外来华专利技术】2014.02.24 US 14/187,8971.一种用于对与应用相关联的计算机生成的显示组件进行渲染,以用于在计算机支持的显示表面上显示的方法,所述方法包括以下操作:接收描述如何绘制与应用的应用内容相关联的一个或多个计算机生成的显示组件的一个或多个命令;将所述一个或多个命令存储在一个或多个内容描述中,以用于由独立于所述应用而操作的渲染引擎来使用;利用所述渲染引擎、根据所述一个或多个内容描述来渲染所述一个或多个计算机生成的显示组件以用于由所述系统来显示;以及提供所述计算机生成的显示组件以用于在所述计算机支持的显示表面上显示。2.根据权利要求1所述的方法还包括以下操作:要求所述应用提供以下命令:所述命令描述如何绘制当前没有存储针对其的一个或多个内容描述的一个或多个计算机生成的显示组件的命令,其中,所述一个或多个内容描述与所述一个或多个计算机生成的显示组件相关联;根据所述命令而立即渲染所述一个或多个计算机生成的显示组件;以及将所述命令存储在一个或多个内容描述中以供后续使用。3.根据权利要求2所述的方法,还包括以下的操作:接收对所述一个或多个计算机生成显示组件进行渲染以用于在所述计算机支持的显示表面上进行显示的请求。4.根据权利要求1所述的方法,其中,所述一个或多个命令以及所述一个或多个内容描述是与平台无关的,并且利用所述渲染引擎、根据所述一个或多个内容描述来渲染所述一个或多个计算机生成的显示组件以用于由所述系统来显示的操作生成特定于平台的计算机生成的显示组件。5.根据权利要求1所述的方法,还包括以下的操作:将与表示应用内容的相同的虚拟纹理相关联的一个或多个内容描述加入到内容描述的选集。6.根据权利要求5所述的方法,还包括以下的操作:确定内容描述的所述选集中的至少三个内容描述已经渲染了相同的至少一个像素;请求针对由边界框所包围的所述虚拟纹理的一部分的新的内容描述,所述边界框包含由来自所述应用的所述至少三个内容描述所绘制的所述虚拟纹理的部分;以及用内容描述的所述选集中的所述新的内容描述来替代渲染了所述相同的至少一个像素的所述至少三个内容描述。7.根据权利要求1所述的方法,其中:接收描述如何绘制所述应用的一个或多个计算机生成的显示组件的一个或多个命令的操作在第一过程中进行;利用所述渲染引擎、根据所述一个或多个内容描述来渲染所述一个或多个计算机生成的显示组件以用于由所述系统来显示的操作在第二过程中进行;将所述一个或多个命令存储在一个或多个内容描述中的操作还包括:将所述一个或多个内容描述从所述第一过程传递至所述第二过程的操作。8.一种系统,其用于渲染应用内容以用于在计算机支持的显示...

【专利技术属性】
技术研发人员:B·威特曼D·麦克唐纳M·Y·乔F·乌哈克
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

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

1