CN101416221A - 用于同步动画系统的通信协议 - Google Patents

用于同步动画系统的通信协议 Download PDF

Info

Publication number
CN101416221A
CN101416221A CNA2004800279300A CN200480027930A CN101416221A CN 101416221 A CN101416221 A CN 101416221A CN A2004800279300 A CNA2004800279300 A CN A2004800279300A CN 200480027930 A CN200480027930 A CN 200480027930A CN 101416221 A CN101416221 A CN 101416221A
Authority
CN
China
Prior art keywords
animation
message
level
clock
subsystem
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004800279300A
Other languages
English (en)
Other versions
CN101416221B (zh
Inventor
L·布兰克
A·拜欧拉
M·卡尔金斯
P·戴维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101416221A publication Critical patent/CN101416221A/zh
Application granted granted Critical
Publication of CN101416221B publication Critical patent/CN101416221B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Abstract

本文描述了管理高级动画系统和低级动画系统之间的异步数据交换的一种通信协议。高级动画系统具有可变的、中等频率的帧速率,并且针对交互而被优化。低级动画系统具有恒定的、高频率的帧速率,并且针对高刷新帧速率而被优化。该通信协议包括可由高级动画系统向低级动画系统发送、以指明动画以及该动画在指定时间段上将如何改变的消息。结果是,即使没有从高级系统接收到每一帧的动画数据,低级系统也可以用高刷新速率来显示动画。

Description

用于同步动画系统的通信协议
技术领域
本文中所描述的系统和方法一般涉及动画系统,更具体地涉及用于维持多个动画系统之间的数据和时钟同步的通信协议。
发明背景
无论是就视频游戏、网络网站、多媒体演示还是其它而言,近年来用户对图形质量的期望大大地增加了。因而,这一很高程度的期望对视频/动画系统和应用程序开发者提出了不断增加的挑战。
交互式动画应用程序提出了一个特殊的问题,因为两个动画系统(例如,存储在本地或远程存储器中的应用程序以及显示设备系统)必须相互通信才能提供高品质的用户体验。这里存在一个问题,因为一个动画系统(即,存储在存储器中的应用程序)与用户交互最为相关,而另一个动画系统(即,显示设备系统)主要与诸如刷新速率等呈现方面相关。必须调解这些竞争的利益才能提供期望的用户体验。
发明概述
本文描述了包括两个不同动画系统的系统和方法。高级动画系统(例如,应用程序)主要与交互及复杂的定时结构相关,因此针对高交互而被优化。低级动画系统(例如,显示设备)主要与呈现刷新速率相关,因此针对高刷新帧速率而被优化。提供多个不同的动画系统允许动画以预定的显示刷新速率运行而不牺牲交互,或是反之。
两个动画系统异步地运行,从而每个系统可更好地在其自己的定时结构中聚焦在其主要功能之上。为优化用户体验,两个动画系统必须被同步。在本文中所描述的同步过程中,高级动画系统和低级动画系统使用专门为此目的设计的通信协议来交换数据(例如,时钟数据、动画功能数据等等)。
本文中所介绍的通信协议可提供一种用于交换所需数据的有效方法。该通信协议不是为每一帧发送大量数据,而是能够仅发送关于假定动画在指定的时间段上将如何改变的少量数据。除了节省系统额外开销以外,该协议确保低级动画系统具有用于处理动画的若干帧的信息,这导致没有任何呈现帧将因为缺少刷新数据而被丢失。
附图简述
当通过结合附图参考以下详细描述时,可以对本发明的示例性方法和安排有更加完整的理解,附图中:
图1是包括动画子系统的服务器-客户机系统的框图。
图2是示例性动画呈现系统体系结构的框图。
图3是描绘分解的动画/呈现系统的基本操作的方法实现的流程图。
图4a是从高级定时引擎向低级定时引擎发送、以将高级动画系统与低级动画系统同步的通信协议消息和参数的描绘。
图4b是从低级定时引擎向高级定时引擎发送、以将高级动画系统与低级动画系统同步的通信协议消息和参数的描绘。
图4c是从高级动画对象向低级动画对象发送、以将高级动画系统与低级动画系统同步的通信协议消息和参数的描绘。
图5是描绘具有完全连接的高级动画系统和低级动画系统的呈现系统中的动画过程的示例性方法实现的流程图。
图6是描绘具有部分连接的高级动画系统和低级动画系统的呈现系统中的动画过程的示例性方法实现的流程图。
图7是根据本文中所描述的系统和方法的示例性计算环境。
优选实施例的详细描述
以下讨论一般涉及使用管理在生成和呈现中所使用的传送工具的通信协议来生成和呈现动画(即,随时间推移而修改图形对象的功能)的计算机系统。图形对象可包括窗口、对话框等等。如本文中所使用的,术语“计算机系统”可指单个计算机或是一起工作的多个计算机。计算机系统包括多个不同的动画/呈现系统—或子系统—其中每一个都聚焦在特定的动画或呈现功能上。
在以下讨论中,在两个动画系统或子系统的环境中描述通信协议。但是注意,这些仅仅是示例,并且可与两个以上不同的动画系统或子系统一起使用该通信协议。
在本文中所介绍的通信协议的讨论中使用术语“呈现”。“呈现”可被视为动画过程中为显示定义动画和/或显示动画的步骤。“呈现系统”可以是包括呈现功能的系统。可将其严格定义为描述仅执行呈现功能的系统,或可将其宽泛地定义为描述诸如动画系统等除了一个或多个呈现功能以外还执行其它功能的系统。
类似地,如本文中所使用的术语“动画系统”是指包括动画功能的系统。“动画系统”可以是仅执行动画功能的系统,或者可以是执行诸如呈现功能等一个或多个动画功能以及其它功能的系统。
使用“呈现系统”或“动画系统”这两个特定术语中的任何一个并不意味着限制与其相关联的体系结构和/或功能的范围。所使用的术语的正确范围可从使用该术语的上下文中推导。
全特征的动画系统包括复杂的定时结构,其中每个动画可由单独的时钟驱动,而这些时钟由应用程序开发者所指定的任意一组规则联系。例如,可指定一个动画(A)恰好在一个不同的动画(B)结束的同时开始,或可指定一组动画以其正常速度的半速运行。在更加一般的意义上,这一系统还可通过将一时钟与每一件线性媒体相关联,来处理动画与诸如音频和视频等其它类型的线性媒体的同步。
此外,时钟是交互式的,因为它们可在任何时候被启动、暂停或停止,并且那些交互可能会引起如同步规则所指示地贯穿整个定时分层结构传播的改变。接前例,如果动画(B)被暂停,并在五秒钟后重新开始,则动画(A)将比原始计划晚五秒钟开始。这进而可能引起其它时钟中的定时改变,从而可能贯穿整个定时结构传播。
计算对定时结构的改变是成本高昂的无界操作,因此这一操作不适用于具有达到可预测的帧速率的目标的实时呈现系统。这两个目标(提供全特征的动画系统和维持可预测的帧速率)是矛盾的。一个解决方案是将系统分成两个部分:一个知道诸时钟之间的同步规则,而另一个将每个时钟视为完全独立的实体。
本文中要求保护的通信协议将两个不同的动画系统维持在同步,以使动画可用高显示刷新速率运行而不会牺牲交互性,反之亦然。
本文中所描述的动画系统至少包括两个组件,即主要与交互和复杂的定时结构相关的高级动画子系统、以及主要与以高且恒定的显示刷新速率在显示器上呈现一个或多个动画相关的低级动画子系统。术语“高级”是指此动画系统更靠近用户这一事实,而“低级”动画系统更靠近裸机(或是机器)。
高级动画子系统的一个示例是根据从应用程序本身或从用户所接收的数据来控制动画的应用程序。低级动画子系统的示例是控制动画数据到物理显示的动画的显示设备系统。显示设备系统包括硬件组件、以及可被包括在显卡硬件(未明确示出)或被包括在不是物理地驻留在显卡上的组件中的软件组件。
在本讨论中,将把显示设备作为是显示系统或者动画系统或子系统来参考。但是注意,显示系统的所有组件和处理并非都必须物理地驻留在该显示设备上。如本文中所使用的术语“显示设备”还包括控制显示器和任何种类的显示存储器的处理器操作。
通常认为动画过程在包括高级动画子系统和低级动画子系统两者的单个机器上的进程中运行(使用单个动画系统)。但是,本文中针对两个不同的动画系统所描述的通信协议预期高级和低级动画子系统:(1)作为单个进程中的两个线程运行,(2)作为单个机器上的两个不同进程运行;或者(3)在被网络分开的两个不同机器上运行,诸如在客户机-服务器体系结构中。
示例性服务器-客户机系统
图1是根据本文中所描述的系统和方法的示例性服务器-客户机系统100的框图。服务器-客户机系统100包括通过诸如因特网等网络106通信的服务器102和客户机104。
服务器102包括存储器108、处理器110、用于控制通过网络106的通信的网络接口卡112、以及服务器执行标准服务器功能通常所需要的其它杂项硬件114。存储器110包括操作系统116和提供服务器功能的杂项软件组件118。
应用程序120还被存储在存储器108中,并且包括收编了控制一个或多个动画功能的计算机代码的高级动画子系统122。动画功能可以是窗口、对话框等等。高级动画子系统122主要被聚焦在交互和复杂的定时结构上。如在以下讨论中将看到的,应用程序120可包括用户编写的计算机代码和与用户代码隔离的系统计算机代码,其中用户代码经由一个或多个应用程序编程接口(API)来访问系统计算机代码。
客户机104包括存储器130、处理器132、控制往来于网络106的通信的网络接口卡134、以及显示器136。客户机104还包括显示设备138以及客户机104正确运作所需的杂项硬件140。
存储器130存储被配置成提供对网络106的访问和导航的浏览器142、以及控制客户机104的基本功能的操作系统144。杂项软件组件146也被存储在存储器130中,并且包括提供必要的客户机104功能和客户机服务的软件。
显示设备138包括低级动画子系统148,它可被存储在显示设备存储器(未示出)、显示设备硬件组件(未示出)或客户机104中所包括的存储器130中。图1示出显示设备138组件中至少有一部分可驻留在客户机104的主存储器130中。低级动画子系统148主要被聚焦在达到高刷新帧速率(三十(30)帧每秒的最小刷新速率)的呈现目标上。支持高刷新帧速率提供了极好的结果,并且能取悦观众,而这正是动画系统的终极目标。
防碍支持动画的高刷新帧速率的两个障碍是(1)等待时间、以及(2)带宽。当通过网络发送数据时,可将数据的目标定为世界上的任何地方,这就可能造成很长的等待时间。等待时间的问题防碍适当的消息和反馈准时到达,并且这可能使刷新速率受损并降低用户体验。这对被配置成单个实体的动画系统而言是更大的问题,因为必须有规律地发送大量数据才能控制动画。
带宽问题对单实体系统也带来更大的问题。对于复杂的动画,为每一帧都必须跨越特定边界(线程、进程、网络)而发送巨大量的数据。即使对本文中所描述的包括两个不同动画子系统的系统而言,使用固有地限制带宽的调制解调器或是对于服务大量客户机的服务器,使用带宽也可能是一个问题。即使服务器仅需为简单的动画发送相对少量的数据,但如果必须将该数据供应给例如四百个客户机,则它就成为带宽问题。
本文中所描述的系统和方法提供一种在维持高刷新速率的同时将带宽利用最小化的有效方法。
示例性动画呈现系统体系结构
图2是根据本文中所描述的系统和方法的示例性动画呈现系统体系结构200的框图。图2所示的元素中一些是图1中也包括的元素。为参考目的,在图2中用图1中的元素所用的相同参考标号来示出两个图中均包括的元素。
示例性体系结构200包括应用程序120和显示设备138。应用程序120根据以下将更加详细讨论的通信协议216,经由通信通道204与显示设备138通信。如前文所讨论的,通信通道204穿越了边界,该边界可能是线程、进程或机器之间的边界。例如,对于机器之间的边界,通信通道204可以是如前所示的网络106。
用户代码202经由API边界206与应用程序120一起运作,API边界206是想要使用具有用户代码202的特征的应用程序128的开发者用来提供对应用程序120的访问的一组系统API。
如前文所讨论的,应用程序120包括高级动画子系统122。高级动画子系统122包括高级图形组件208、高级动画对象数据库210和高级定时引擎212。定时引擎212创建和控制存储在高级动画对象数据库210中的一个或多个高级时钟214。
高级定时引擎212负责建立和同步高级时钟214。因此,例如,如果假定有十个(10)高级时钟214要一起运行,则高级定时引擎212同步十个(10)高级时钟214以同步地显示动画。
高级图形组件208存储动画中所使用的类型的图形。高级动画对象数据库210存储与一个或多个动画相关联的动画值(和/或与一个或多个媒体相关联的媒体对象)。动画值至少包括与动画相关联的时间线(即,时钟)。(注意,如本文中所使用的术语“时钟”和“时间线”是可互换的)。动画值基于高级时钟214的值来影响动画呈现的输出。每个动画修改高级图形组件208的一个或多个方面。
例如,对于创建从点P1到点P2的线的简单动画,动画对象数据库210将为P1在时间=0处存储一值,并为P2在时间=1处存储一值。(P1和P2之间的所有点都是内插的)。
示例性动画呈现系统体系结构200的显示设备138包括图1中所示的低级动画子系统148。低级动画子系统148是高级动画子系统122的等价结构,并且包括低级图形组件218、低级动画对象数据库220和低级定时引擎222。定时引擎222创建一个或多个低级时钟224,它们被存储在低级动画对象数据库中。
低级动画子系统148的组件(218-224)类似于高级动画子系统122的组件(208-214),并且它们的功能和互操作性和前述类似。
如示例性动画呈现系统体系结构200的体系结构,即把动画系统分解成两个子系统的体系结构有几个优点。如果应用程序在交互上成本高昂并且花费大量额外开销,则动画可以继续;它不必在动画能够继续以前等待交互部分完成。在非分解的系统中,如果应用程序不向显示器提供有规律的数据更新,则显示器可能会绘制静态图像而不是运动的动画。
在系统处理信息的同时所显示的状态带状指示器表征了该问题的一个常见示例。通常,指示器按照例如指示某个处理正在进行的从左到右的方向进展。但是,有时状态指示器停止,而用户不能分辨系统是已经锁住了还是仍在处理某些事务。这就是动画器的交互部分没有及时向显示部分提供更新的数据来满足帧速率刷新的结果。
这一系统对视频来说尤其糟糕。对于视频,帧可能被丢失-从而导致假信号或伪影-这仅仅是因为系统正忙于照管另一个任务(可能和移动鼠标光标一样的不重要)。
在分解的动画系统中,低级动画子系统148与高级动画子系统122异步地运行,因此即使当高级动画子系统122被使其不能在帧被刷新以前重新绘制该帧的任务所束缚时,低级动画子系统也继续运行(即,绘制)。因此,分解的动画系统无缝地显示动画操作,并因而提供优越的用户体验。
示例性方法实现:基本操作
图3是描绘诸如图1和图2中所示的分解的动画/呈现系统的基本操作的流程图。在以下讨论中,将连续参考图1和2中所示的元素和参考标号。
在分解的动画系统(即,被分解为彼此异步运作的至少两个不同的动画子系统的动画系统)中,用户(应用程序)通过系统API告诉高级系统假定图形应如何在显示器上显现。高级系统使用专门的通信协议来指导低级系统创建与在高级系统中所建立的结构相似的结构。
因为高级系统被配置成在低级系统中创建若干元素,所以必然有以下参考图4更加详细讨论的通信协议包括若干“创建”消息或命令。图3中所示的流程图覆盖了当高级动画子系统122与低级动画子系统148通信以在其中建立结构时发生的一些基本步骤。
在框300,高级动画子系统122发送消息以在低级动画子系统148中创建动画对象220。然后高级动画子系统122与低级动画子系统148通信以创建要与刚才创建的动画对象220包括在一起的时钟224(即,时间线)(框302)。
注意,动画对象和时间线之间并非必须要有1:1的比。换言之,一条时间线可控制一个以上的动画对象。因此,在以上对框302所描述的步骤中,如果已经存在一条时间线且如果可将新创建的动画对象与现有的时间线相关联,则不需创建时间线。
在这个时间点上,应用程序120可创建另一个动画对象或修改现有动画。如果应用程序120被配置成创建另一个动画对象(“动画对象”分支,框304),则高级动画子系统122在框300向低级动画子系统138发送通信协议消息以创建另一个动画对象220。然后高级动画子系统122在框302发送消息以将一时间线与新创建的动画对象220相关联。该时间线可被创建或可以是现有的时间线。
应用程序120还被配置成支持修改。高级动画子系统122可发送消息以修改动画对象220和/或与其相关联的时间线(“修改”分支,框304)。除了修改动画的方面的直接修改以外,“暂停”操作和“停止”操作也可以是修改。“暂停”操作可根据典型的修改来编码,例如,“在时间0,时钟为10;并且在时间10,时钟为10。”“停止”操作是用“移除动画”消息来发起的。
如果修改是“移动动画”消息(“是”分支,框306),则在框308停止动画。否则(“否”分支,框306),高级动画系统122发送被配置成修改现有动画的一个或多个消息(框310)。修改现有动画还可意味着修改与现有动画相关联的时间线。
如前文所提及的,上述流程图描绘了通过从高级动画子系统122发送通信协议消息来配置低级动画子系统148的一般方法。以下在讨论了通信协议的细节以后,将更详细地讨论使用该通信协议的至少一个更具体方法实现。
通信协议
图4a、4b和4c是概述用于管理高级动画系统和低级动画系统之间的的传送的通信协议的消息/命令的表。在以下讨论中,将连续参考图1和图2中所示出并描述的元素和参考标号。
图4a描绘了描述从高级定时引擎212向低级定时引擎222发送的消息的表400。“创建时钟”消息402使低级定时引擎222为动画创建时钟。“创建时钟”消息402包括“创建时钟参数”404,这些参数是初始时钟属性。时钟属性可包括,但不限于,持续时间(从开始时间起)、父时钟(此时钟中的所有时间与其相关)、速度(相对于其父时钟)、加速和减速。加速和减速参数指定“持续时间”中用在“加速”或“减速”动画上的百分比。
“更新属性”消息406提供对现有时钟的属性的更新。“更新属性参数”408包括目标时钟(即,具有要被更新的属性的时钟)、以及更新后的属性和值。“添加间隔”消息410指令低级定时引擎向现有动画(对象)添加间隔,并且包括“添加间隔参数”412,它们标识目标时钟、以及被添加到目标时钟的间隔的属性。
该协议包括“重置同步滑动”消息414和相关联的“重置同步滑动参数”416,它们被用来维持高级动画子系统122和低级动画子系统148之间的同步。如何实现此部分是关乎特定系统设计的问题。
在至少一个实现中,同步过程由以下示例描述。如果低级动画子系统148正在控制视频文件,并且它检测到视频落后(由于,例如网络通信量),则低级动画子系统148向高级动画子系统122发送“与媒体滑动同步”消息和参数(见以下图4b),并存储已发生滑动这一事实以及滑动的大小。
当高级动画子系统122(具体而言,高级定时引擎212)结束更新间隔以考虑滑动时,它发送“重置同步滑动”消息414和相关联的“重置同步滑动参数”416,来告诉低级动画子系统148将滑动偏移量重置为0。
关于这一特定协议消息的其它信息请参见以下图4b。
可向低级定时引擎222发送“移除所有间隔”消息418来移除与特定时钟相关联的任何现有间隔。目标时钟在“移除所有间隔参数”420中被标识。该通信协议中还包括“删除时钟”消息422,它被发送给低级定时引擎222以移除“删除时钟参数”424中所标识的目标时钟。
图4b描绘了描述该通信协议中从低级定时引擎222发送到高级定时引擎212的消息的表430。“与媒体滑动同步”消息432为高级定时引擎212提供高级定时引擎212与媒体组件同步而应滑动特定时钟的量。***注意,这更接近正确吗?***“与媒体滑动参数同步”消息434包括目标时钟,即要滑动的时钟、以及标识滑动的大小的滑动量。
该消息将数据从低级动画子系统发回高级动画子系统122。这是必要的,因为通信通道204中存在等待时间。此情形可能发生的一种情况是在用户激活“暂停”命令的时候。因为系统彼此异步地通信,所以在高级动画子系统能赶上低级动画子系统以前,低级动画子系统可处理若干个帧。结果是,低级系统始终运行。
但这是用“与媒体滑动同步”消息432来处理的,它把与动画相关联的时钟需要“滑动”或与低级时钟224“同步”来把子系统恢复到同步的消息带给高级动画子系统122。
图4c描绘了从高级动画对象210发送到低级动画对象220的消息的表440。表440包括“创建动画”消息442,它命令低级动画子系统148创建新的动画对象。“创建动画参数”444包括标识正被动画表现的属性的类型的输出值类型、动画函数、动画函数以及控制时钟。
例如,如果旋转变换的角度被动画表现,则输出类型是“双精度浮点数”。如果线的一个端点被动画表现,则输出类型是“点”。如果矩形的颜色被动画表现,则输出类型是“颜色”。
动画函数在本领域中是公知的,并且此处可指定任何此类动画函数。简单的动画函数的示例是“从5到10”。这意味着在间隔的开始,动画函数输出值5,在结束它输出10,并且在中途动画函数输出值7.5等等。更加复杂的动画函数是“从5到6到10”。在此,动画中途的输出值是6。可通过不仅指定值列表,还指定函数应输出那些值的时间列表(之间的所有值是内插的)来使函数更加复杂。
注意,上述动画函数仅仅是示例性的,并且它们并不试图将所附权利要求书的范围限于这些动画函数。在此上下文中可使用能被视为“动画函数”的任何计算机操作。
最后,如前文所讨论的,新的动画对象的控制时钟可以是新的时钟,或者可以是可以控制或不可以控制一个或多个其它动画对象的现有时钟。
表440还包括“更新动画”消息446,它提供用于更新低级动画子系统148中的现有动画的信息。“更新动画参数”448包括目标动画(即,要被更新的动画)、以及更新属性(要被更新的属性以及属性的更新值)。
“创建动画集合”消息450标识低级动画对象[数据库]220中要被分组为集合的多个动画。“创建动画集合参数”452标识要被分组为集合的动画的初始列表。
动画集合在本领域中也是公知的。动画集合的存在允许开发者创建不能用单个线性内插表达的复杂动画行为。例如,一个动画可能将点重复地上下移动,而另一个动画可能将点移到右边。当两个动画一起运行时,该点表现为按照波型图向右。可以编辑动画集合,因此协议中存在如下所述的消息。
“将动画添加到集合中”消息454告诉低级系统把“将动画添加到集合中参数456”中所标识的动画添加到也在“将动画添加到集合中参数”456中所标识的动画集合中。类似地,“将动画从集合中移除”消息458和标识目标动画集合与要从该集合中移除的集合中的动画的“将动画从集合中移除参数”460包括在一起。
表440还包括“创建静态值”消息462。静态值是在低级动画子系统148不能支持由应用程序120所提供的动画的情形中使用的。以下参考图6更详细地描述这一情况。和“创建静态值”消息462相关联的是为所创建的静态值标识值类型和初始值的“创建静态值参数”464。
“更新静态值”消息466为静态值提供更新。“更新静态值参数”468标识目标静态值对象、以及对应于所标识的静态值的新值。
图4(a-c)中所示的消息和参数提供一种可由高级动画子系统异步地控制由低级动画子系统148呈现的动画的流线型的、高效的方法。因为无须在每个呈现刷新帧中发送一个或多个消息,所以显示可以用高的、恒定的速率来呈现帧。与此同时,高级系统可在有处理时间可用时使用处理时间来向低级系统提供数据,即,以较慢和变动的刷新速率。
示例性方法实现:完全连接的系统
图5是描绘具有完全连接的高级动画系统和低级动画系统的呈现系统中的动画过程的示例性方法实现的流程图。
图5中所描绘的情形是:应用程序开发者想要绘制从一固定锚点到另一随时间移动的点的动画表现的直线。开发者需要提供三样东西:(1)呈现操作(例如,在静态点A和动画点B之间绘制一条线);(2)动画函数(例如,点B从(0,0)走到(100,100));以及(3)动画的定时(例如,在5秒后开始,并运行10秒,然后反向重复一次)。
图5示出高级动画子系统122对包含上述信息的应用程序120的响应。在框500,高级动画子系统122从应用程序接收这些信息。在框502,高级动画子系统122创建呈现对象,该呈现对象表示一条线。在框504,高级动画子系统122创建输出从(0,0)到(100,100)的值的动画函数。在框506,高级动画子系统122创建在5秒后开始,运行10秒然后反向运行的时钟。
低级动画子系统148可支持这些对象,因此高级动画子系统120向低级动画子系统148发送在通信通道204上生成在框510-518中所描绘的通信的消息(框508)。
框510:创建时钟1;为时钟1设置参数,持续时间=10。
框512:为时钟1添加间隔;从“现在+5”到“现在+15”,从t=0走到t=10。
框514:为时钟1添加间隔:从“现在+15”到“现在+25”,从t=10向下走到t=1。
框516:创建动画1;为动画1设置参数,从(0,0)到(100,100),时钟=时钟1。
框518:创建引用动画1的[DrawLine](画线)指令。
在此例中,DrawLine函数表示用于呈现动画的协议所支持的任何绘制指令。DrawLine指令只是示例性的。
在这些消息已从高级动画子系统122发送到低级动画子系统148时,低级动画子系统148独立于高级子系统148运行,并以可能达到的最高的帧速率更新该线的位置。两个子系统122、148之间无需再发送任何其它消息。
如所示出的,本文中所介绍的通信协议通过简化被放进通信通道204中的数据量来优化通信通道204。如果不使用上述短消息和参数,则将必须通过管道发送大量操作来同步系统。
但是,本质上,被放进通信通道204中的是若干时钟的间隔的列表。对于时钟而言,间隔是定义好的,例如,如‘在时间0和时间10之间,该时钟从0走到10’(这定义了真实世界的时钟)。或者,可能需要时钟慢一倍。在此情形中,则‘在时间0和时间10之间,时钟从0走到5’。
通过定义定时间隔的列表,就可定义时钟上的每一个操作。例如,可用时钟间隔来定义暂停操作:‘在时间0,时钟是10,且在时间10,时钟是10’。因此,每个操作都可被表达为一个线性间隔。
示例性方法实现:部分连接的系统
图6是描绘具有部分连接的高级动画系统和低级动画系统的呈现系统中的动画过程的示例性方法实现的流程图。
这一示例的情形是:应用程序开发者想要绘制从固定锚点走到在自定义路径上随时间移动的另一个点的动画表现的直线。开发者需要提供以下:(1)呈现操作(例如,在静态点A和动画点B之间绘制一条线);(2)自定义动画函数(例如,调用自定义动画1来计算点B的位置);以及(3)动画的定时(例如,在5秒后开始,并运行10秒,然后反方向重复一次)。
在框600,高级动画子系统122接收应用程序信息。响应于应用程序的请求,高级动画子系统122创建表示该线的呈现对象(框602),被配置成调回用户代码202的动画函数(框604),以及在5秒后开始、运行10秒然后反方向运行的时钟(框606)。在框608,适当的消息被发送到低级动画子系统148。
因为自定义动画需要用户代码,所以它不能由低级子系统处理,因此这就在通信通道上生成了以下初始通信:
框610:创建静态点值1。
框612:创建引用点值1的[DrawLine](画线)指令。(DrawLine指令仅仅是示例性的;见上)。
在框614,低级动画子系统148接收从高级动画子系统122发送的数据。低级动画子系统148将动画视为静态线。
在数据的初始发送后的每一帧上,高级动画子系统122调用用户代码202来计算点B的位置(框620)并在框622接收新的位置值。然后高级动画子系统122通过通信通道204将以下消息发送到低级动画子系统以更新静态点值1的值:
框626:用点B的新值来更新静态点值。
示例性计算机环境
本文中所描述的各种组件和功能是用计算系统来实现的。图7示出由标号700所指的此类计算系统,即计算机的典型示例的组件。图7中所示的组件仅仅是示例,而并不试图对本发明的功能范围提出任何限制;本发明无须依赖于图7中所示的特征。
一般而言,可使用各种不同的通用或专用计算系统配置。可能适用于本发明的公知的计算系统、环境、和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、包括以上任何系统或设备的分布式计算环境、等等。
在许多情形中,计算机的功能由诸如程序模块等计算机所执行的计算机可执行指令来具体化。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。任务还可由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可位于本地和远程计算机存储介质中。
指令和/或程序模块在不同的时间存储在或是作为计算机的部件、或可由计算机读出的各种计算机可读介质中。程序通常被分布在例如软盘、CD-ROM、DVD或诸如已调制信号等某种形式的通信介质上。它们从那里被安装或加载到计算机的次级存储器中。在执行时,它们至少被部分地加载到计算机的主电子存储器中。当这些及其它各种类型的计算机可读存储介质包含用于实现以下联合微处理器或其它数据处理器描述的步骤的指令程序和/或模块时,本文中所描述的发明包括此类介质。当根据以下所描述的方法和技术来对计算机编程时,本发明还包括该计算机本身。
为说明起见,本文中将诸如操作系统等程序及其它可执行程序组件示为离散的框,尽管可认识到,此类程序和组件在各个时候驻留在计算机的不同存储组件中,并且由计算机的(一个或多个)数据处理器执行。
参考图7,计算机700的组件可包括,但不限于,处理单元702、系统存储器704、以及将包括系统存储器在内的各种系统组件耦合到处理单元702的系统总线706。系统总线706可以是数种类型的总线结构中的任何类型,包括存储器总线或存储器控制器、外围总线、以及使用各种总线体系结构中的任何体系结构的局部总线。作为示例,而非限制,此类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISAA)总线、视频电子标准协会(VESA)局部总线、以及也称为Mezzanine总线的外围部件互连(PCI)总线。
计算机700通常包括各种计算机可读介质。计算机可读介质可以是可由计算机700访问的任何可用介质,并包括易失性和非易失性、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可包括计算机存储介质和通信介质。“计算机存储介质”包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术,CD-ROM、数字多功能盘(DVD)或其它光盘存储,磁带盒、磁带、磁盘存储或其它磁存储设备,或任何其它可被用来存储所需信息并可由计算机700访问的介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任何信息传递介质。术语“已调制数据信号”是指以在信号中将信息编码的方式设置或改变其一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直接连线连接等有线介质,以及诸如声学、RF、红外及其它无线介质等无线介质。以上任何组合也应被包括在计算机可读介质的范畴之内。
系统存储器704包括诸如只读存储器(ROM)708和随机存取存储器(RAM)710等易失性和/或非易失性存储器形式的计算机存储介质。包含诸如在启动期间帮助在计算机700内诸元件之间传递信息的基本例程的基本输入/输出系统712(BIOS)通常存储在ROM 708中。RAM 710通常包含可由处理单元702立即访问和/或现在正由其操作的数据和/或程序模块。作为示例,而非限制,图7示出操作系统714、应用程序716、其它程序模块718和程序数据720。
计算机700还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图7示出读或写不可移动、非易失性磁介质的硬盘驱动器722,读或写可移动、非易失性磁盘726的磁盘驱动器724,以及读或写诸如CD ROM或其它光介质等可移动、非易失性光盘730的光盘驱动器728。可在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,磁带盒、闪存卡、数字多功能盘、数码录像带、固态RAM、固态ROM、等等。硬盘驱动器722通常通过诸如接口732等不可移动存储器接口连接到系统总线706,而磁盘驱动器724和光盘驱动器728通常由诸如接口734等可移动存储器接口连接到系统总线706。
以上所讨论并在图7中示出的各驱动器及其相关联的计算机存储介质为计算机700提供计算机可读指令、数据结构、程序模块和其它数据的存储。在图7中,例如,硬盘驱动器722被示为存储了操作系统715、应用程序717、其它程序模块719和程序数据721。注意,这些组件可与操作系统714、应用程序716、其它程序718和程序数据720相同或不同。此处操作系统715、应用程序717、其它程序模块719和程序数据721被赋予不同的标号以说明至少它们是不同的副本。用户可通过诸如键盘736和定位设备738(通常指鼠标、轨迹球或触摸垫)等输入设备将命令和信息输入到计算机700中。其它输入设备(未示出)可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些及其它输入设备通常通过被耦合到系统总线的输入/输出(I/O)接口740连接到处理单元702,但也可由诸如并行端口、游戏端口或通用串行总线(USB)等其它接口和总线结构连接。监视器742或其它类型的显示设备也经由诸如视频适配器744等接口连接到系统总线706。除了监视器742以外,计算机还可包括其它外围输出设备(例如扬声器)以及一个或多个打印机748等,它们可通过I/O接口740连接。
计算机使用到诸如远程计算设备750等一个或多个远程计算机的逻辑连接在联网环境中操作。远程计算设备750可以是个人计算机、服务器、路由器、网络PC、对等设备或其它普通网络节点,并通常包括以上相对于计算机700所描述的许多或全部元件。图7中所示的逻辑连接包括局域网(LAN)752和广域网(WAN)754。尽管图7中所示的WAN 754是因特网,但是WAN 754还可以包括其它网络。此类网络环境常见于办公室、企业范围的计算机网络、内联网等。
当在LAN网络环境中使用时,计算机700通过网络接口或适配器756连接到LAN 752。当在WAN网络环境中使用时,计算机700通常包括调制解调器758或其它用于通过因特网754建立通信的装置。可内置或外置的调制解调器758可经由I/O接口740或其它适当机制连接到系统总线706。在联网环境中,相对于计算机700所描述的程序模块或其部分可被存储在远程计算设备750中。作为示例,而非限制,图7示出远程应用程序760驻留在远程计算设备750上。可以认识到,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它装置。
结论
如所描述的系统和方法所使用的通信协议由此提供一种将高级动画系统与低级动画系统同步的方法,从而低级系统可以用快的、恒定的帧刷新速率运行,而与此同时高级系统可以用为交互优化的可变帧速率运行。无需牺牲任何交互能力就可实现优越的图形。该协议还将在两个动画系统之间发送的数据量最小化,由此节省了额外开销,并优化了性能。
尽管以上描述了特定实现和实施例的细节,但是这些细节旨在满足法定的公开义务,而不是要限制所附权利要求书的范围。因此,如所附权利要求书所定义的本发明并不局限于以上所描述的特定特征。相反,按照落入根据等效教义适当解释的所附权利要求书的适当范围的任何形式或修改来要求保护本发明。

Claims (26)

1.一种动画呈现系统,包括:
高级动画子系统,它处理所述系统的交互功能;
低级动画子系统,它处理所述系统的显示功能;
至少一个高级时钟,它由高级动画操作引用;
至少一个低级时钟,它由低级动画操作引用;
通信通道,用于根据通信协议在所述高级动画子系统和所述低级动画子系统之间发送消息;以及
其中,所述通信协议包括由所述高级动画子系统提供给所述低级动画子系统的信息,所述信息指明动画并指定所述动画在指定时间段上要如何改变,由此确保所述低级动画系统具有用于处理所述动画的若干帧的信息。
2.如权利要求1所述的动画呈现系统,其特征在于,在所述高级动画子系统和所述低级动画子系统之间的通信是异步的。
3.如权利要求1所述的动画呈现系统,其特征在于:
所述低级动画子系统以恒定的显示帧刷新速率呈现动画;以及
所述高级动画子系统以慢于所述恒定显示帧刷新速率的可变速率处理交互。
4.如权利要求1所述的动画呈现系统,其特征在于,所述通信协议还包括从所述低级动画子系统向所述高级动画子系统发送的至少一个消息,所述消息用于处理所述高级动画子系统和所述低级动画子系统之间的同步。
5.如权利要求4所述的动画呈现系统,其特征在于,从所述低级动画子系统向所述高级动画子系统发送的一个消息还包括“与媒体滑动同步”消息,所述“与媒体滑动同步”消息标识与动画相关联的目标时钟、以及所述目标时钟为将所述高级动画子系统与所述低级动画子系统正在运行的动画同步而必须滑动的量。
6.如权利要求1所述的动画呈现系统,其特征在于:
所述高级动画子系统还包括高级定时引擎;
所述低级动画子系统还包括低级定时引擎;以及
所述通信协议还包括从所述高级定时引擎向所述低级定时引擎发送的以下参数化的消息:
带有初始时钟属性参数的创建时钟消息;
带有目标时钟参数和更新属性参数的更新属性消息;
带有目标时钟参数和间隔属性参数的添加间隔消息;
带有目标时钟参数的重置同步滑动消息;
带有目标时钟参数的移除所有间隔消息;以及
带有要删除的目标时钟参数的删除时钟消息。
7.如权利要求1所述的动画呈现系统,其特征在于:
所述高级动画子系统还包括高级动画对象数据库;
所述低级动画子系统还包括低级动画对象数据库;
所述通信协议还包括从所述高级动画对象数据库向所述低级动画对象数据库发送的以下参数化的消息:
带有输出值类型参数、动画函数参数和控制时钟参数的创建动画消息;
带有目标动画参数和更新属性参数的更新动画消息;
带有输出值类型参数、动画函数参数和控制时钟参数的创建动画消息;
带有目标动画参数和更新属性参数的更新动画消息;
带有动画参数列表的创建动画集合消息;
带有目标动画集合参数和要添加的动画参数的将动画添加到集合消息;
带有目标动画集合参数和要移除的动画参数的将动画从集合中移除消息;
带有值类型参数和初始值参数的创建静态值消息;以及
带有目标静态值对象参数和新值参数的更新静态值参数。
8.一种用于处理动画应用程序的方法,包括:
将来自所述动画应用程序的动画数据接收到高级动画子系统中;
根据通信协议通过通信通道将动画信息从所述高级动画子系统发送到低级动画子系统,以使所述低级动画子系统能够显示与所述动画数据相关联的动画;
其中,所述通信协议能够指明动画,并提供关于所述动画在特定时间段上应如何改变的指令,从而所述低级动画子系统可以用恒定的显示帧刷新速率处理所述动画的若干帧,而与此同时所述高级动画子系统以可变的刷新速率执行。
9.如权利要求8所述的方法,其特征在于,还包括所述高级动画子系统接收来自所述低级动画子系统的至少一个协议消息,以协助所述高级动画子系统中的定时元素至少与所述低级动画子系统中的定时元素保持同步。
10.如权利要求8所述的方法,其特征在于,所述通信协议包括从高级动画子系统定时元素向低级动画子系统定时元素发送的以下消息:
用于创建时钟的消息;
用于更新时钟属性的消息;
用于将间隔添加到时钟的消息;
用于移除时钟的所有间隔的消息;以及
用于删除时钟的消息。
11.如权利要求10所述的方法,其特征在于,所述通信协议还包括从高级动画子系统定时元素向低级动画子系统定时元素发送的以下消息:
用于重置所述低级动画子系统中的同步滑动值的消息。
12.如权利要求8所述的方法,其特征在于,所述通信协议包括从高级动画子系统动画对象元素向低级动画子系统动画对象元素发送的以下消息:
用于创建动画的消息;
用于更新动画的消息;
用于创建动画集合的消息;
用于将动画添加到动画集合中的消息;以及
用于将动画从动画集合中移除的消息。
13.如权利要求8所述的方法,其特征在于,所述通信协议包括从高级动画子系统动画对象元素向低级动画子系统动画对象元素发送的以下消息:
用于创建静态显示值的消息;以及
用于更新静态显示值的消息。
14.一种系统,包括:
高级动画子系统,它被配置成接收来自应用程序的动画信息;
低级动画子系统,它被配置成根据所述动画信息来呈现一个或多个动画;
低级定时引擎,它被配置成监视所述低级动画子系统中的一个或多个低级时钟,并将所述低级时钟与一个或多个高级时钟同步;
高级定时引擎,它被配置成根据一个或多个高级动画对象来监视所述高级动画子系统中的一个或多个高级时钟,并将动画消息发送到所述低级定时引擎,所述动画消息符合通信协议;以及
其中,从所述高级定时引擎发送到所述低级定时引擎的动画消息指明一个或多个动画对象、以及所述动画对象在特定时间段上要如何改变。
15.如权利要求14所述的系统,其特征在于,所述低级定时引擎通过发送标识高级时钟和所述高级时钟为维持与对应于所述高级时钟的低级时钟的同步而必须滑动的量的“与媒体滑动同步”消息,来将所述低级时钟与所述高级时钟同步。
16.如权利要求14所述的系统,其特征在于,所述通信协议还包括以下消息:
用于标识时钟属性的创建时钟消息;
用于标识更新时钟属性的更新属性消息;
用于将定时间隔添加到时钟属性的添加间隔消息;
用于将定时间隔从时钟属性中移除的移除间隔消息;以及
用于删除时钟的删除时钟消息。
17.如权利要求14所述的系统,其特征在于,所述通信协议还包括以下消息:
用于创建动画的创建动画消息;
用于更新现有动画的更新动画消息;
用于标识要被分组的多个动画的创建动画集合消息;
用于标识要向所标识的动画集合添加的动画的将动画添加到集合中消息;以及
用于标识要从所标识的动画集合中移除的动画的将动画从集合中移除消息。
18.如权利要求14所述的系统,其特征在于,所述通信协议还包括以下消息:
用于标识要显示的值类型和初始值的创建静态值消息;以及
用于标识要更新的静态值和所述静态值的新值的更新静态值消息。
19.如权利要求14所述的系统,其特征在于,所述低级定时引擎被配置成根据所述通信协议向所述高级定时引擎发送标识高级时钟以及为将所述高级时钟与低级时钟同步而应将所述高级时钟改变多少的度量的同步消息。
20.如权利要求14所述的系统,其特征在于,还包括:
至少一个低级动画对象;
至少一个高级动画对象,它被配置成通过通信协议消息与所述低级动画对象通信以创建和更新所述低级动画对象来反映所述高级动画对象。
21.一种动画呈现系统中的高级动画子系统,包括:
一个或多个高级时钟;
被配置成跟踪所述一个或多个高级时钟的高级定时引擎;
标识动画的至少一部分的一个或多个动画对象;
用于根据通信协议中所包括的消息而将动画数据发送到低级动画子系统的装置;以及
其中,被发送到所述低级动画子系统的通信协议消息标识所述低级动画子系统中的至少一个动画对象,并提供关于所标识的动画对象在指定的时间段上要如何改变的数据。
22.如权利要求21所述的高级动画子系统,其特征在于,所述通信协议还包括以下消息:
用于标识初始时钟属性的创建时钟消息;
用于标识更新的时钟属性的更新属性消息;
用于标识要向时钟添加的间隔的添加间隔消息;
用于标识要从其移除所有间隔的时钟的移除所有间隔消息;以及
用于标识要被删除的时钟的删除时钟消息。
23.如权利要求21所述的高级动画子系统,其特征在于,所述通信协议还包括以下消息:
用于描述要创建的动画的创建动画消息;以及
用于标识要更新的动画以及更新属性的更新动画消息。
24.如权利要求21所述的高级动画子系统,其特征在于,所述通信协议还包括以下消息:
用于标识要被分组为一个动画集合的多个动画的创建动画集合消息;
用于标识要被添加到所标识的动画集合中的动画的将动画添加到集合中消息;以及
用于标识要从所标识的动画集合中移除的动画的将动画从集合中移除消息。
25.如权利要求21所述的高级动画子系统,其特征在于,所述通信协议还包括以下消息:
用于标识要呈现的值类型和初始值的创建静态值消息;以及
用于标识要更新的静态值和所述静态值的新值的更新静态值消息。
26.一种动画呈现系统中的低级动画子系统,包括:
一个或多个低级时钟;
标识动画的至少一部分的一个或多个低级动画对象;
被配置成跟踪关于所述一个或多个低级动画对象的所述一个或多个低级时钟的低级定时引擎;
其中,所述低级时钟和所述低级动画对象是以向所述低级动画子系统提供能以高的、恒定的显示帧刷新速率显示的动画数据的若干帧的方式、通过以可变的速率从高级动画子系统接收的通信协议消息来创建和更新。
CN2004800279300A 2003-10-24 2004-07-22 用于同步动画系统的通信协议 Expired - Fee Related CN101416221B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/692,673 US7034834B2 (en) 2003-10-24 2003-10-24 Communication protocol for synchronizing animation systems
US10/692,673 2003-10-24
PCT/US2004/023626 WO2005045567A2 (en) 2003-10-24 2004-07-22 Communication protocol for synchronizing animation systems

Publications (2)

Publication Number Publication Date
CN101416221A true CN101416221A (zh) 2009-04-22
CN101416221B CN101416221B (zh) 2012-09-05

Family

ID=34522189

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800279300A Expired - Fee Related CN101416221B (zh) 2003-10-24 2004-07-22 用于同步动画系统的通信协议

Country Status (11)

Country Link
US (3) US7034834B2 (zh)
EP (2) EP1676183A4 (zh)
JP (1) JP4638442B2 (zh)
KR (1) KR101075378B1 (zh)
CN (1) CN101416221B (zh)
AU (2) AU2004287128B2 (zh)
BR (1) BRPI0414504A (zh)
CA (1) CA2537136C (zh)
MX (1) MXPA06003356A (zh)
RU (1) RU2363050C2 (zh)
WO (1) WO2005045567A2 (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9722766D0 (en) 1997-10-28 1997-12-24 British Telecomm Portable computers
US7469381B2 (en) 2007-01-07 2008-12-23 Apple Inc. List scrolling and document translation, scaling, and rotation on a touch-screen display
US7193609B2 (en) 2002-03-19 2007-03-20 America Online, Inc. Constraining display motion in display navigation
US7034834B2 (en) * 2003-10-24 2006-04-25 Microsoft Corporation Communication protocol for synchronizing animation systems
US8504925B1 (en) * 2005-06-27 2013-08-06 Oracle America, Inc. Automated animated transitions between screens of a GUI application
US7450130B2 (en) * 2005-09-14 2008-11-11 Microsoft Corporation Adaptive scheduling to maintain smooth frame rate
US9019300B2 (en) 2006-08-04 2015-04-28 Apple Inc. Framework for graphics animation and compositing operations
US8130226B2 (en) * 2006-08-04 2012-03-06 Apple Inc. Framework for graphics animation and compositing operations
US8234392B2 (en) 2006-11-17 2012-07-31 Apple Inc. Methods and apparatuses for providing a hardware accelerated web engine
US7844915B2 (en) 2007-01-07 2010-11-30 Apple Inc. Application programming interfaces for scrolling operations
US7903115B2 (en) 2007-01-07 2011-03-08 Apple Inc. Animations
US8656311B1 (en) 2007-01-07 2014-02-18 Apple Inc. Method and apparatus for compositing various types of content
US8813100B1 (en) 2007-01-07 2014-08-19 Apple Inc. Memory management
US20080168402A1 (en) 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US20080168478A1 (en) * 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US7872652B2 (en) * 2007-01-07 2011-01-18 Apple Inc. Application programming interfaces for synchronization
US8321593B2 (en) * 2007-01-08 2012-11-27 Apple Inc. Time synchronization of media playback in multiple processes
US8643653B2 (en) * 2007-06-08 2014-02-04 Apple Inc. Web-based animation
US8174502B2 (en) * 2008-03-04 2012-05-08 Apple Inc. Touch event processing for web pages
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US8416196B2 (en) * 2008-03-04 2013-04-09 Apple Inc. Touch event model programming interface
US8717305B2 (en) * 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
US20100207951A1 (en) * 2009-01-20 2010-08-19 Pvt Solar, Inc. Method and device for monitoring operation of a solar thermal system
US20100207950A1 (en) * 2009-02-17 2010-08-19 Microsoft Corporation Defining simple and complex animations
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US8566044B2 (en) * 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9311112B2 (en) * 2009-03-16 2016-04-12 Apple Inc. Event recognition
FR2956547B1 (fr) * 2010-02-15 2012-09-14 Sagem Wireless Procede et un systeme de transfert d'une image entre deux appareils de telephonie mobile
US8552999B2 (en) 2010-06-14 2013-10-08 Apple Inc. Control selection approximation
US9298363B2 (en) 2011-04-11 2016-03-29 Apple Inc. Region activation for touch sensitive surface
US8884970B2 (en) 2011-09-09 2014-11-11 Microsoft Corporation Aligning script animations with display refresh
US9196075B2 (en) * 2011-11-14 2015-11-24 Microsoft Technology Licensing, Llc Animation of computer-generated display components of user interfaces and content items
WO2013185111A2 (en) 2012-06-07 2013-12-12 Apple Inc. Methods and apparatus for synchronization among integrated circuits within a wireless network
RU2540786C2 (ru) * 2013-01-11 2015-02-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ и система динамической генерации трехмерных анимационных эффектов
CN105027104B (zh) 2013-03-15 2018-11-13 苹果公司 用于多分支数字总线的方法和装置
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
US9858899B2 (en) * 2013-06-13 2018-01-02 Microsoft Technology Licensing, Llc Managing transitions of adaptive display rates for different video playback scenarios
US10157593B2 (en) 2014-02-24 2018-12-18 Microsoft Technology Licensing, Llc Cross-platform rendering engine
US10085224B2 (en) 2014-11-19 2018-09-25 Apple Inc. Methods and apparatus for synchronization of media playback within a wireless network
CN105468358B (zh) * 2015-11-17 2019-11-05 腾讯科技(深圳)有限公司 一种移动游戏的数据处理方法以及装置
CN115878065B (zh) * 2023-02-16 2023-05-23 青岛意想意创技术发展有限公司 互动显示单元构成的互动系统的控制方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852449A (en) * 1992-01-27 1998-12-22 Scientific And Engineering Software Apparatus for and method of displaying running of modeled system designs
US5867175A (en) * 1996-05-24 1999-02-02 Microsoft Corporation Method and apparatus for scriping animation
US6563503B1 (en) * 1999-05-07 2003-05-13 Nintendo Co., Ltd. Object modeling for computer simulation and animation
US6924807B2 (en) * 2000-03-23 2005-08-02 Sony Computer Entertainment Inc. Image processing apparatus and method
US7038690B2 (en) * 2001-03-23 2006-05-02 Microsoft Corporation Methods and systems for displaying animated graphics on a computing device
US6919900B2 (en) * 2001-03-23 2005-07-19 Microsoft Corporation Methods and systems for preparing graphics for display on a computing device
US7161599B2 (en) * 2001-10-18 2007-01-09 Microsoft Corporation Multiple-level graphics processing system and method
CN1203418C (zh) * 2001-12-30 2005-05-25 利文劲 一种在互联网上实现交互式动画系统的方法
US7034834B2 (en) * 2003-10-24 2006-04-25 Microsoft Corporation Communication protocol for synchronizing animation systems
JP4702127B2 (ja) * 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム

Also Published As

Publication number Publication date
EP1676183A2 (en) 2006-07-05
US20060061576A1 (en) 2006-03-23
EP1676183A4 (en) 2009-11-18
CN101416221B (zh) 2012-09-05
MXPA06003356A (es) 2006-06-08
US7034834B2 (en) 2006-04-25
RU2006113603A (ru) 2007-11-27
US20060103656A1 (en) 2006-05-18
WO2005045567A3 (en) 2009-02-19
EP2461250A1 (en) 2012-06-06
US7265758B2 (en) 2007-09-04
WO2005045567A2 (en) 2005-05-19
KR20060126919A (ko) 2006-12-11
AU2004287128B2 (en) 2010-02-18
KR101075378B1 (ko) 2011-10-24
AU2004287128A1 (en) 2005-05-19
CA2537136A1 (en) 2005-05-19
AU2010200148A1 (en) 2010-02-04
US7436409B2 (en) 2008-10-14
RU2363050C2 (ru) 2009-07-27
JP2007519072A (ja) 2007-07-12
JP4638442B2 (ja) 2011-02-23
CA2537136C (en) 2011-05-10
AU2010200148B2 (en) 2011-08-25
BRPI0414504A (pt) 2006-11-07
US20050088443A1 (en) 2005-04-28

Similar Documents

Publication Publication Date Title
CN101416221B (zh) 用于同步动画系统的通信协议
CN100492346C (zh) 用于图形遥控系统的同步图形和区域数据
US10547682B2 (en) Dynamically scaling application components using microservices
CN1842088B (zh) 用于丰富交互用户界面的有效远程投影的系统
EP1876569A1 (en) Data structure for expressing video object, program for generating data structure for expressing video object, method for generating data structure for expressing video object, video software development device, image processing program, video processing method, video processing device, and recordin
US10908963B2 (en) Deterministic real time business application processing in a service-oriented architecture
CN102930580A (zh) 数据帧动画
CN109144741A (zh) 进程间通信的方法、装置及电子设备
CN109462777B (zh) 视频热度更新方法、装置、终端及存储介质
US6356355B1 (en) Method and apparatus in a data processing system for generating metadata streams with per page data
CN102930581A (zh) 对数据帧动画的通用表示
WO2024021353A1 (zh) 直播间展示方法、装置、电子设备及存储介质
JP2021103520A (ja) ジェスチャーを利用して対話メッセージに感情を表現する方法、システム、およびコンピュータプログラム
CN108270803B (zh) 通过网页技术实现网络文件与桌面应用传输的方法和系统
KR101721333B1 (ko) 메시지의 송수신을 위한 통신세션을 통해 정보데이터를 제공하는 방법 및 시스템
EP2921952B1 (en) Server and method for providing design data for application and system for generating application
CN1816034B (zh) 用于当使用限制访问的缓冲器时保存会话状态的方法和系统
EP3770857A1 (en) Pack tile
CN113838167A (zh) 用于生成动画的方法和装置
KR20030086676A (ko) 가상 네트워크를 이용한 유무선 동기화 방법 및 이를실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는기록매체
JP2001256034A (ja) 高効率図形情報配信システム及び方法並びに記録媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150506

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150506

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120905

Termination date: 20140722

EXPY Termination of patent right or utility model