Communication protocol for synchronizing animation
First Claim
1. A system, comprising:
- a high-level animation subsystem to receive animation information from an application;
a low-level animation subsystem to render one or more animations according to the animation information;
a first timing engine to monitor one or more clocks in the low-level animation subsystem and to synchronize the clocks with one or more clocks in the high-level animation subsystem;
a second timing engine to monitor the one or more clocks in the high-level animation subsystem according to one or more high-level animation objects and to transmit animation messages to the first timing engine, the animation messages conforming to a communication protocol and designating one or more animation objects and how the animation objects are to change over a specified period of time;
wherein a high-level animation object communicates with a low-level animation object through the communication protocol messages to create and update the low-level animation object to reflect the high-level animation object; and
wherein the clocks and the animation objects are created and updated though the messages received at a variable rate from the high-level animation subsystem in a manner that provides the low-level animation subsystem with several frames of animation data that can be displayed at a high, constant display frame refresh rate, including a synchronize message that identifies one of the clocks associated with an animation to synchronize with a clock of the high-level animation subsystem.
1 Assignment
0 Petitions
Accused Products
Abstract
A communications protocol is described that governs asynchronous exchange of data between a high level animation system and a low level animation system. The high level animation system has a variable, medium-frequency frame rate and is optimized for interactivity. The low level animation system has a constant, high frequency frame rate and is optimized for high refresh frame rate. The communications protocol includes messages that can be sent by the high-level animation system to the low-level animation system to designate an animation and how the animation is to change over a specified period of time. As a result, the low-level system can display the animation at the high refresh rate even if animation data is not received from the high-level system for every frame.
9 Citations
14 Claims
-
1. A system, comprising:
-
a high-level animation subsystem to receive animation information from an application; a low-level animation subsystem to render one or more animations according to the animation information; a first timing engine to monitor one or more clocks in the low-level animation subsystem and to synchronize the clocks with one or more clocks in the high-level animation subsystem; a second timing engine to monitor the one or more clocks in the high-level animation subsystem according to one or more high-level animation objects and to transmit animation messages to the first timing engine, the animation messages conforming to a communication protocol and designating one or more animation objects and how the animation objects are to change over a specified period of time; wherein a high-level animation object communicates with a low-level animation object through the communication protocol messages to create and update the low-level animation object to reflect the high-level animation object; and wherein the clocks and the animation objects are created and updated though the messages received at a variable rate from the high-level animation subsystem in a manner that provides the low-level animation subsystem with several frames of animation data that can be displayed at a high, constant display frame refresh rate, including a synchronize message that identifies one of the clocks associated with an animation to synchronize with a clock of the high-level animation subsystem. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An animation rendering subsystem, comprising:
-
one or more clocks; a timing engine to track the one or more clocks; one or more animation objects that identify at least a portion of an animation; means for transmitting animation data to a low-level animation subsystem according to messages that identify at least one animation object in the low-level animation subsystem and provide data for changing the at least one identified animation object over a specified period of time; and wherein the messages include a message selected from the group of messages consisting of a create static value message that identifies a value type and an initial value to render, and an update static value message that identifies a static value to update and a new value for the static value. - View Dependent Claims (7, 8, 9)
-
-
10. A low-level animation subsystem, comprising:
-
one or more clocks; one or more animation objects that identify at least a portion of an animation; a timing engine to track the one or more clocks with respect to the one or more animation objects; wherein the clocks and the animation objects are-created and updated through messages received at a variable rate from a high-level animation subsystem in a manner that provides the low-level animation subsystem with several frames of animation data that can be displayed at a high, constant display frame refresh rate, including a synchronize message that identifies one of the clocks associated with an animation to synchronize with a clock of the high-level animation subsystem.
-
-
11. A display device for a computing device, comprising:
-
an interface for communicatively coupling to a computer monitor; and an animation rendering subsystem, comprising; one or more clocks; a timing engine to track the one or more clocks; one or more animation objects that identify at least a portion of an animation; means for transmitting animation data to a low-level animation subsystem according to messages that identify at least one animation object in the low-level animation subsystem and provide data for changing the at least one identified animation object over a specified period of time; and wherein the messages include a message selected from the group of messages consisting of a create static value message that identifies a value type and an initial value to render, and an update static value message that identifies a static value to update and a new value for the static value. - View Dependent Claims (12, 13, 14)
-
Specification