Claims
- 1. In a computing environment, a system comprising,
a graphics subsystem for outputting frames of display information including graphics; a first component that provides graphics data at a first rate to the graphics subsystem to output the frames of display information; and a second component that interfaces with program code to produce scene data for the program code, the second component configured to process the scene data into graphics information at a second rate that is lower than the first rate, and to provide the graphics information to the first component.
- 2. The system of claim 1 wherein the graphics information comprises image data in a format understood by the first component.
- 3. The system of claim 1 wherein the graphics information comprises instructions.
- 4. The system of claim 3 wherein the instructions include at least one interpolation command, and wherein the first component includes an interpolation mechanism that changes the graphics data provided to the graphics subsystem by interpolating an image within the graphics data over time.
- 5. The system of claim 1 wherein the second component accesses animation parameters to vary the graphics information provided to the first component.
- 6. The system of claim 1 wherein the second component operates in response to a change in the scene data to output.
- 7. The system of claim 1 wherein the second component operates when the first component indicates that the graphics information is needed.
- 8. The system of claim 1 wherein the second component dynamically adjusts the amount of the graphics information provided to the first component based on feedback from the first component.
- 9. The system of claim 1 wherein the second component operates at a frequency that is based on an animation parameter in the scene data.
- 10. The system of claim 1 wherein the second component provides the graphics information to the first component via an instruction stream.
- 11. The system of claim 1 wherein the second component provides the graphics information to the first component via an instruction stream.
- 12. The system of claim 1 wherein the second component provides the graphics information to the first component via a network connection.
- 13. The system of claim 1 wherein the first component maintains the graphics information provided by the second component in a set of at least one queue.
- 14. The system of claim 1 further comprising at least one other second component that provides other graphics information to the first component, and wherein the first component composes the graphics data provided to the graphics subsystem from a composition of the graphics information from each second component.
- 15. The system of claim 14 wherein the first component maintains the graphics information provided by the second component in a set of at least one queue for each high level component.
- 16. The system of claim 1 further comprising a cache data structure in which the second component maintains at least some of the scene data.
- 17. The system of claim 16 wherein the cache data structure is arranged as a hierarchical tree of nodes.
- 18. The system of claim 17 wherein at least one of the nodes comprises a container structure that includes drawing instructions.
- 19. The system of claim 1 wherein the first component separates the graphics information provided by the second component into visual blocks and resource data structures.
- 20. The system of claim 1 wherein the first component and high level component execute on different threads.
- 21. In a computing environment having a graphics subsystem that outputs frames of display information, a method comprising:
at a first component:
1) receiving calls including data corresponding to graphical images for output; 2) maintaining the data as scene information; and 3) at a first operating rate:
a) processing the scene information into graphics information; and b) communicating the graphics information to a second component; and at the second component, at a second operating rate that is faster than the first operating rate and based on a frame refresh rate of the graphics subsystem:
4) receiving the graphics information; 5) processing the graphics information into graphics data formatted for the graphics subsystem; and 6) communicating the graphics data to the graphics subsystem to output the frame.
- 22. The method of claim 21 wherein the first operating rate corresponds to a rate of receiving the calls.
- 23. The method of claim 21 wherein maintaining the scene information comprises constructing a scene graph data structure.
- 24. The method of claim 23 wherein maintaining the scene information comprises, opening a container in a scene graph data structure to access drawing instructions therein.
- 25. The method of claim 23 wherein processing the scene graph data structure comprises, changing at least one value of a variable.
- 26. The method of claim 21 wherein maintaining the scene information comprises, queuing changes received via the calls, and applying the queued changes.
- 27. The method of claim 21 wherein processing the scene graph data structure comprises, obtaining at least one value for a variable.
- 28. The method of claim 21 further comprising, at the first component, caching at least some results after processing the scene information.
- 29. The method of claim 21 wherein communicating the graphics information to the second component comprises, sending an instruction stream to the second component.
- 30. The method of claim 29 wherein the instruction stream comprises a resource packet, and wherein processing the graphics information into graphics data formatted for the graphics subsystem comprises, processing the resource packet by creating a resource and associating that resource with the first component.
- 31. The method of claim 29 wherein the instruction stream comprises a visual update packet, and wherein processing the graphics information into graphics data formatted for the graphics subsystem comprises, processing the visual update packet by determining if a visual is already associated with the first component, and if not, creating a new visual and associating the new visual with the first component, and if so, modifying information of that visual based on information in the visual update packet.
- 32. The method of claim 21 further comprising, returning information from the second component to the first component.
- 33. The method of claim 32 wherein returning information from the second component to the first component comprises queuing at least one event.
- 34. The method of claim 21 further comprising, at a third component, receiving other calls including other data corresponding to other graphical images for output; maintaining the other data as other scene information, and at a third operating rate, processing the other scene information into other graphics information and communicating the other graphics information to the second component.
- 35. The method of claim 34 further comprising, at the second component, receiving the other graphics information, processing the other graphics information into other graphics data formatted for the graphics subsystem, including composing a graphics desktop including at least part of the graphics data corresponding to the first component and at least part of the graphics data corresponding to the third component, and communicating the graphics desktop to the graphics subsystem to output the frame.
- 36. A computer-readable medium having stored thereon a data structure, the data structure comprising:
a visual update block, including an identifier field having a visual identifier therein, and a field corresponding to an instruction block; the instruction block corresponding to a set of data related to a visual identified by the visual identifier, the set of data being passed from a high-level graphics processing component to a low-level graphics processing component; and the high-level component constructing the data structure from a scene graph and providing the data structure to the low-level component, the low-level component processing the data structure into graphics data for passing to a graphics subsystem to output a frame.
- 37. The data structure of claim 36 wherein the set of data includes a list of at least one variable.
- 38. The data structure of claim 36 wherein the set of data includes a list of at least one instruction.
- 39. The data structure of claim 36 wherein the field corresponding to the instruction block comprises an instruction block offset pointing to another location in the data structure.
- 40. The data structure of claim 36 wherein the set of data includes an instruction that provides the low level graphics processing component with interpolation information.
- 41. The data structure of claim 40 wherein the interpolation information comprises an interpolation function.
- 42. The data structure of claim 40 wherein the interpolation information comprises a time interval.
- 43. The data structure of claim 42 wherein the time interval comprises starting and ending timing points.
- 44. The data structure of claim 40 wherein the interpolation information comprises starting and ending position data.
- 45. A computer-readable medium having computer-executable instructions, comprising:
at a first component:
1) receiving calls including data corresponding to graphical images for output; 2) maintaining the data as scene information; and 3) at a first operating rate:
a) processing the scene information into graphics information; and b) communicating the graphics information to a second component; and at the second component, at a second operating rate that is faster than the first operating rate and based on a frame refresh rate of a graphics subsystem:
4) receiving the graphics information; 5) processing the graphics information into graphics data formatted for the graphics subsystem; and 6) communicating the graphics data to the graphics subsystem to output a frame.
- 46. The computer-readable medium of claim 45 wherein the first operating rate corresponds to a rate of receiving the calls.
- 47. The computer-readable medium of claim 45 wherein maintaining the scene information comprises constructing a scene graph data structure.
- 48. The computer-readable medium of claim 47 wherein maintaining the scene information comprises, opening a container in a scene graph data structure to access drawing instructions therein.
- 49. The computer-readable medium of claim 47 wherein processing the scene graph data structure comprises, changing at least one value of a variable.
- 50. The computer-readable medium of claim 45 wherein maintaining the scene information comprises, queuing changes received via the calls, and applying the queued changes.
- 51. The computer-readable medium of claim 45 wherein processing the scene graph data structure comprises, obtaining at least one value for a variable.
- 52. The computer-readable medium of claim 45 having at least one further computer-executable instruction comprising, at the first component, caching at least some results after processing the scene information.
- 53. The computer-readable medium of claim 45 wherein communicating the graphics information to the second component comprises, sending an instruction stream to the second component.
- 54. The computer-readable medium of claim 53 wherein the instruction stream comprises a resource packet, and wherein processing the graphics information into graphics data formatted for the graphics subsystem comprises, processing the resource packet by creating a resource and associating that resource with the first component.
- 55. The computer-readable medium of claim 53 wherein the instruction stream comprises a visual update packet, and wherein processing the graphics information into graphics data formatted for the graphics subsystem comprises, processing the visual update packet by determining if a visual is already associated with the first component, and if not, creating a new visual and associating the new visual with the first component, and if so, modifying information of that visual based on information in the visual update packet.
- 56. The computer-readable medium of claim 45 having at least one further computer-executable instruction comprising, returning information from the second component to the first component.
- 57. The computer-readable medium of claim 56 wherein returning information from the second component to the first component comprises queuing at least one event.
- 58. The computer-readable medium of claim 45 having further computer-executable instructions comprising, at a third component, receiving other calls including other data corresponding to other graphical images for output, maintaining the other data as other scene information, and at a third operating rate, processing the other scene information into other graphics information and communicating the other graphics information to the second component.
- 59. The computer-readable medium of claim 58 having further computer-executable instructions comprising, at the second component, receiving the other graphics information, processing the other graphics information into other graphics data formatted for the graphics subsystem, including composing a graphics desktop including at least part of the graphics data corresponding to the first component and at least part of the graphics data corresponding to the third component, and communicating the graphics desktop to the graphics subsystem to output the frame.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present invention claims priority to U.S. Provisional Patent Application Serial No. 60/330,244, filed Oct. 18, 2001. The present invention is related to U.S. patent applications entitled “Generic Parameterization for a Scene Graph” (Attorney Docket No. 3130) and “Intelligent Caching Data Structure for Immediate Mode Graphics” (Attorney Docket No. 3150), both assigned to the assignee of the present application, filed concurrently herewith, and hereby incorporated by reference in their entireties.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60330244 |
Oct 2001 |
US |