Claims
- 1. In a computing environment, a system comprising:
a scene graph including a plurality of containers that when traversed provide instructions for outputting graphic data; at least one of the plurality of containers associated with a mutable value, the mutable value having a value that may be varied; and a rendering mechanism that traverses the scene graph and provides the instructions, the instructions including data based on a current value of the mutable value.
- 2. The system of claim 1 wherein the mutable value corresponds to a property of a scene graph element.
- 3. The system of claim 1 wherein the mutable value corresponds to an appearance characteristic of content represented at least in part by the container.
- 4. The system of claim 1 wherein the mutable value corresponds to an identifier.
- 5. The system of claim 4 wherein the identifier comprises a hit test identifier.
- 6. The system of claim 1 wherein the mutable value corresponds to an appearance characteristic of content represented in the scene graph, and further comprising at least one constant value corresponding to at least one other appearance characteristic of the content.
- 7. The system of claim 1 wherein the mutable value comprises an object having at least one method.
- 8. The system of claim 7 wherein the mutable value includes a first method that returns a current value for the mutable value and a second method that sets the mutable value to a value passed as an argument.
- 9. The system of claim 1 further comprising an application program that varies the mutable value.
- 10. The system of claim 1 further comprising another mutable value, wherein the mutable value and the other mutable value are varied in a batched operation.
- 11. The system of claim 10, wherein the mutable value and the other mutable value are varied in the batched operation by placing values for each mutable value into a change queue that is processed by the rendering mechanism to establish the current value for each mutable value.
- 12. The system of claim 1, wherein the mutable value is varied in synchronization with at least one structural change to the scene graph.
- 13. The system of claim 1 wherein the scene graph includes a parameterized graph container having a table with at least one entry indicative of a type of a variable parameter.
- 14. The system of claim 1 wherein the rendering mechanism comprises a high-level component that executes at a first operating rate to provide the instructions to a low-level component, wherein the low-level component runs at a second operating rate to provide drawing commands based on the instructions to a graphics subsystem, and wherein the second operating rate is greater than the first operating rate and corresponds to a frame rate of the graphics subsystem.
- 15. In a computing environment, a method comprising:
providing an interface comprising a set of at least one function to a scene graph; receiving a request via the interface to include a mutable value in a container of the scene graph, the mutable value having a value that is capable of being varied by another request received via the interface; and rendering the scene graph including providing graphics instructions corresponding to the scene graph, the instructions including data based on a current value of the mutable value.
- 16. The method of claim 15 further comprising, receiving a request to vary the value of the mutable value, the request including data corresponding to a new value for the mutable value.
- 17. The method of claim 15 wherein rendering the scene graph includes applying the new value to the mutable value such that the new value becomes the current value.
- 18. The method of claim 15 further comprising, queuing the new value.
- 19. The method of claim 18 further comprising, receiving another request to vary the value of another mutable value, the other request including data corresponding to another new value for the other mutable value, queuing the other new value, and wherein rendering the scene graph includes dequeuing each new value and applying each new value to its respective mutable value.
- 20. The method of claim 15 further comprising, receiving a request to return a current value of the mutable value.
- 21. The method of claim 15 wherein the rendering mechanism comprises a high-level component that executes at a first operating rate to provide the instructions to a low-level component, and further comprising, operating the low-level component at a second operating rate to provide drawing commands based on the instructions to a graphics subsystem, wherein the second operating rate is greater than the first operating rate and corresponds to a frame rate of the graphics subsystem.
- 22. The method of claim 15 wherein the mutable value corresponds to a position of content represented by the container, and further comprising, receiving a series of requests over time to vary the value of the mutable value, each request including data corresponding to a new position value for the mutable value.
- 23. The method of claim 15 wherein the mutable value corresponds to an appearance of content represented by the container, and further comprising, receiving at least one request to vary the value of the mutable value, each request including data corresponding to a new appearance value for the mutable value.
- 24. A computer-readable medium having computer-executable instructions, comprising:
providing an interface comprising a set of at least one function to a scene graph; receiving a request via the interface to include a mutable value in a container of the scene graph, the mutable value having a value that is capable of being varied by another request received via the interface; and rendering the scene graph including providing graphics instructions corresponding to the scene graph, the instructions including data based on a current value of the mutable value.
- 25. The computer-readable medium of claim 24 having further computer-executable instructions comprising, receiving a request to vary the value of the mutable value, the request including data corresponding to a new value for the mutable value.
- 26. The computer-readable medium of claim 24 wherein rendering the scene graph includes applying the new value to the mutable value such that the new value becomes the current value.
- 27. The computer-readable medium of claim 24 having further computer-executable instructions comprising, queuing the new value.
- 28. The computer-readable medium of claim 27 having further computer-executable instructions comprising, receiving another request to vary the value of another mutable value, the other request including data corresponding to another new value for the other mutable value, queuing the other new value, and wherein rendering the scene graph includes dequeuing each new value and applying each new value to its respective mutable value.
- 29. The computer-readable medium of claim 24 having further computer-executable instructions comprising, receiving a request to return a current value of the mutable value.
- 30. The computer-readable medium of claim 24 wherein the rendering mechanism comprises a high-level component that executes at a first operating rate to provide the instructions to a low-level component, and having further computer-executable instructions comprising, operating the low-level component at a second operating rate to provide drawing commands based on the instructions to a graphics subsystem, wherein the second operating rate is greater than the first operating rate and corresponds to a frame rate of the graphics subsystem.
- 31. The computer-readable medium of claim 24 wherein the mutable value corresponds to a position of content represented by the container, and having further computer-executable instructions comprising, receiving a series of requests over time to vary the value of the mutable value, each request including data corresponding to a new position value for the mutable value.
- 32. The computer-readable medium of claim 24 wherein the mutable value corresponds to an appearance of content represented by the container, and having further computer-executable instructions comprising, receiving at least one request to vary the value of the mutable value, each request including data corresponding to a new appearance value for the mutable value.
- 33. In a computing environment, a system comprising:
a scene graph including a plurality of containers that when traversed provide an set of instructions for outputting data; a parameterized graph container, the parameterized graph container corresponding to a set of at least one variable value that may be changed; and a rendering mechanism that traverses the scene graph, including taking action to determine an actual value for the variable value and place data corresponding to the actual value in the set of instructions.
- 34. The system of claim 33 wherein the set of at least one variable value is maintained in a table associated with the parameterized graph container.
- 35. The system of claim 34 wherein the table includes type information for each variable value in the set.
- 36. The system of claim 33 wherein the parameterized graph container is associated with type information for each variable value in the set.
- 37. The system of claim 33 wherein at least one type corresponds to a property of content represented by the parameterized graph container.
- 38. The system of claim 33 wherein at least one type corresponds to an appearance of content represented by the parameterized graph container.
- 39. The system of claim 33 wherein at least one type corresponds to an identity of content represented by the parameterized graph container.
- 40. The system of claim 33 wherein at least one type corresponds to a position of content represented by the parameterized graph container.
- 41. The system of claim 33 wherein the parameterized graph container is associated with type information for each variable value in the set, and wherein at least one type corresponds to a hit test identifier for content represented by the parameterized graph container.
- 42. The system of claim 33 further comprising an apply node and a parameterized node, the apply-node providing at least one value for use by the parameterized node.
- 43. The system of claim 42 further comprising a transformation node associated with the apply node, the transformation node configured to alter a position of content represented by the parameterized graph container.
- 44. The system of claim 42 further comprising a transformation node associated with the apply node, and an animation engine, the transformation node configured to alter a position of content represented by the parameterized graph container based on data from the animation engine, the animation engine varying the data over time such that the content changes position over time.
- 45. The system of claim 42 further comprising an effect node associated with the apply node, the effect node configured to alter an effect of content represented by the parameterized graph container.
- 46. The system of claim 42 further comprising an effect node associated with the apply node, and an animation engine, the effect node configured to alter content represented by the parameterized graph container based on data from the animation engine, the animation engine varying the data over time such that the content changes appearance over time.
- 47. The system of claim 42 further comprising another apply node that maintains another actual value for the variable value, and wherein the rendering mechanism accesses the other apply node to determine another actual value to output in the set of instructions.
- 48. The system of claim 42 further comprising another apply node that maintains a reference for the variable value, and wherein the rendering mechanism accesses the reference to determine another actual value to output in the set of instructions.
- 49. The system of claim 33 further comprising a parameterized sub-scene-graph attached to a mutable transform container, such that the transform container is animated over time or changed via a mutable value.
- 50. The system of claim 49 wherein the parameterized sub-scene-graph is attached to a mutable transform container via an apply-node.
- 51. The system of claim 33 further comprising a parameterized sub-scene-graph attached to a mutable transform container, such that the transform container is animated over time or changed via a value received from an outer parameterized container.
- 52. The system of claim 51 wherein the parameterized sub-scene-graph is attached to a mutable transform container via an apply-node.
- 53. The system of claim 33 further comprising a first apply node and a second apply node, wherein the first apply nodes maintains the actual value for the variable value, and the second apply node maintains another actual value for the variable value, and wherein the rendering mechanism accesses the first apply node to determine the actual value and the second apply node to determine the other actual value, and further places other data corresponding to the other actual value in the set of instructions such that the parameterized graph container can be reused in the same set of instructions with the data and the other data.
- 54. The system of claim 33 wherein the rendering mechanism comprises a high-level component that executes at a first operating rate to provide the set of instructions to a low-level component, wherein the low-level component runs at a second operating rate to provide drawing commands based on the instructions to a graphics subsystem, and wherein the second operating rate is greater than the first operating rate and corresponds to a frame rate of the graphics subsystem.
- 55. The system of claim 33 further comprising an alpha container, wherein an alpha value is attached to a mutable value such that sub-scene-graphs may be changed.
- 56. A method for outputting graphics instructions, comprising:
providing a scene graph including an interface for adding containers thereto; receiving a request to add a parameterized graph container to the scene graph, the parameterized graph container representing content and corresponding to a set of at least one variable value that may be changed; and rendering an instruction stream from the scene graph, including determining a first actual value for each variable value in the set and placing first data corresponding to each first actual value in the instruction stream, and determining a second actual value for each variable value in the set and placing second data corresponding to each second actual value in the instruction stream.
- 57. The method of claim 56 wherein the table includes type information for each variable value in the set.
- 58. The method of claim 57 further comprising, verifying that each first actual value and each second actual value match the type information.
- 59. The method of claim 56 wherein determining a first actual value for each variable comprises accessing a first apply node, and wherein determining a second actual value for each variable comprises accessing a second apply node.
- 60. The method of claim 59 wherein one variable in the set corresponds to a position variable, and wherein the first and second actual values for the position variables are different from one another such that the instruction stream includes instructions for two instances of the content having different positions.
- 61. The method of claim 60 further comprising, varying at the first apply node a value of the one variable in the set corresponding to a position variable over time such that a first position of the content varies over time.
- 62. A computer-readable medium having computer-executable instructions, comprising:
providing a scene graph including an interface for adding containers thereto; receiving a request to add a parameterized graph container to the scene graph, the parameterized graph container representing content and corresponding to a set of at least one variable value that may be changed; and rendering an instruction stream from the scene graph, including determining a first actual value for each variable value in the set and placing first data corresponding to each first actual value in the instruction stream, and determining a second actual value for each variable value in the set and placing second data corresponding to each second actual value in the instruction stream.
- 63. The method of claim 62 wherein the table includes type information for each variable value in the set.
- 64. The method of claim 63 further comprising, verifying that each first actual value and each second actual value match the type information.
- 65. The method of claim 62 wherein determining a first actual value for each variable comprises accessing a first apply node, and wherein determining a second actual value for each variable comprises accessing a second apply node.
- 66. The method of claim 65 wherein one variable in the set corresponds to a position variable, and wherein the first and second actual values for the position variables are different from one another such that the instruction stream includes instructions for two instances of the content having different positions.
- 67. The method of claim 66 further comprising, varying at the first apply node a value of the one variable in the set corresponding to a position variable over time such that a first position of the content varies over time.
- 68. A computer-readable medium having stored thereon a data structure, the data structure comprising:
a first field indicative of an instruction type corresponding to a graphics instruction in a parameterized instruction stream of a scene graph; at least one parameter field, each parameter field including a placeholder for a parameterized instruction; and upon rendering of the scene graph, the placeholder being instantiated into a constant value by obtaining the constant value from information corresponding to the scene graph.
- 69. The data structure of claim 68 further comprising at least one constant field that does not change upon rendering of the scene graph.
- 70. The data structure of claim 69 further comprising a parameter descriptor field that includes information indicating each parameter field in the data structure and each constant field in the data structure.
- 71. The data structure of claim 68 wherein the placeholder is for an animated value, and wherein obtaining the constant value from information corresponding to the scene graph comprises accessing a value from a parent graph container.
- 72. The data structure of claim 68 wherein the placeholder is for a parameter reference, and wherein obtaining the constant value from information corresponding to the scene graph comprises accessing a based on a parameter reference index.
- 73. The data structure of claim 68 wherein an indicator of the placeholder value determines whether the placeholder is for an animated value or a parameter reference.
- 74. A method for communicating between a first process and a second process, comprising:
at the first process, providing a scene graph including an interface for adding containers thereto; receiving, from the second process, a request to add a parameterized graph container to the scene graph, the parameterized graph container representing content and corresponding to a set of at least one variable value that may be changed; and at the first process, rendering an instruction stream from the scene graph, including determining a first actual value for each variable value in the set and placing first data corresponding to each first actual value in the instruction stream, and determining a second actual value for each variable value in the set and placing second data corresponding to each second actual value in the instruction stream.
- 75. The method of claim 74 wherein the table includes type information for each variable value in the set.
- 76. The method of claim 75 further comprising, verifying that each first actual value and each second actual value match the type information.
- 77. The method of claim 74 wherein determining a first actual value for each variable comprises accessing a first apply node, and wherein determining a second actual value for each variable comprises accessing a second apply node.
- 78. The method of claim 77 wherein one variable in the set corresponds to a position variable, and wherein the first and second actual values for the position variables are different from one another such that the instruction stream includes instructions for two instances of the content having different positions.
- 79. The method of claim 78 further comprising, varying at the first apply node a value of the one variable in the set corresponding to a position variable over time such that a first position of the content varies over time.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present invention claims priority to U.S. Provisional Patent Application Serial No. 60/330,231, filed Oct. 18, 2001. The present invention is related to copending United States Patent Applications entitled “Multiple-Level Graphics Processing System and Method” (Attorney Docket No. 3140) 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 |
|
60330231 |
Oct 2001 |
US |