Intelligent caching data structure for immediate mode graphics
First Claim
1. In a computing environment, a system comprising,a cache that maintains visual information;
- a queue for maintaining changes to the visual information as requested by higher level program code;
an interface to the cache through which the visual information is accessed by the program code, the program code accessing the visual information via the interface, including requesting access to a container in the cache;
a drawing context that opens the container and provides a surface through which the program code requests changes to data in the container;
a batching mechanism, the batching mechanism deferring the writing of any change to the queue until at least the close of the container, such that changes to the container occur as an atomic operation;
a rendering mechanism that applies the changes in the queue and traverses the cache to create an instruction stream based on the visual information including the changes, wherein the rendering mechanism operates at a fixed rate.
2 Assignments
0 Petitions
Accused Products
Abstract
An intelligent caching data structure and mechanisms for storing visual information via objects and data representing graphics information. The data structure is generally associated with mechanisms that intelligently control how the visual information therein is populated and used. The cache data structure can be traversed for direct rendering, or traversed for pre-processing the visual information into an instruction stream for another entity. Much of the data typically has no external reference to it, thereby enabling more of the information stored in the data structure to be processed to conserve resources. A transaction/batching-like model for updating the data structure enables external modifications to the data structure without interrupting reading from the data structure, and such that changes received are atomically implemented. A method and mechanism are provided to call back to an application program in order to create or re-create portions of the data structure as needed, to conserve resources.
-
Citations
49 Claims
-
1. In a computing environment, a system comprising,
a cache that maintains visual information; -
a queue for maintaining changes to the visual information as requested by higher level program code; an interface to the cache through which the visual information is accessed by the program code, the program code accessing the visual information via the interface, including requesting access to a container in the cache; a drawing context that opens the container and provides a surface through which the program code requests changes to data in the container; a batching mechanism, the batching mechanism deferring the writing of any change to the queue until at least the close of the container, such that changes to the container occur as an atomic operation; a rendering mechanism that applies the changes in the queue and traverses the cache to create an instruction stream based on the visual information including the changes, wherein the rendering mechanism operates at a fixed rate. - View Dependent Claims (2, 3, 4, 5)
-
-
6. In a computing environment, a method comprising:
-
maintaining a scene graph; receiving a first request to implement a first change in a structure of the scene graph; receiving a second request to implement a second change in the structure; implementing the changes to the first and second data atomically by making the changes only upon receipt of an instruction that requests implementation of the changes, including writing change data to a change queue; applying the changes in the change queue to the scene graph and traversing the scene graph to generate an instruction stream based on the scene graph including the changes to the structure, wherein applying the changes in the change queue and the traversing of the scene graph occur at a first operating rate to provide the instruction stream to a low-level component, and executing the low-level component at a second operating rate to provide drawing commands based on the instructions to a graphics subsystem, the second operating rate being greater than the first operating rate and corresponding to a frame rate of the graphics subsystem. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer-readable medium having computer-executable instructions, comprising:
-
maintaining a scene graph; receiving a first request to implement a first change in a structure of the scene graph; receiving a second request to implement a second change in the structure; and implementing the changes to the first and second data atomically by making the changes only upon receipt of an instruction that requests implementation of the changes, including writing change data to a change queue; applying the changes in the change queue to the scene graph and traversing the scene graph to generate an instruction stream based on the scene graph including the changes to the structure;
wherein the changes in the change queue and the traversing of the scene graph occur at a first operating rate to provide the instruction stream to a low-level component, andexecuting the low-level component at a second operating rate to provide drawing commands based on the instructions to a graphics subsystem, the second operating rate being greater than the first operating rate and corresponding to a frame rate of the graphics subsystem. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A computer-readable medium having computer-executable instructions, comprising:
-
maintaining visual information in a cache data structure including container and data; reserving an invalid container for storing graphics information, without having space allocated for the graphics information; and rendering the data structure into data for receipt by another entity at a fixed rate, including determining whether the graphics information of the invalid container is needed, and if so; 1) allocating resources for the graphics information; 2) calling back to higher-level program code to provide the graphics information; 3) receiving the graphics information; and 4) outputting the data for receipt by another entity including information corresponding to the graphics information received. - View Dependent Claims (23, 24, 25, 26, 27, 32)
-
-
28. A computer-readable medium having computer-executable components, comprising:
-
a cache that maintains visual information; a queue for maintaining changes to the visual information as requested by higher level program code; an interface to the cache through which the visual information is accessed by the program code, the program code accessing the visual information via the interface, including requesting access to a container in the cache; and a drawing context that opens the container and provides a surface through which the program code requests changes to data in the container, and a batching mechanism, the batching mechanism deferring the writing of any change to the queue until at least the close of the container, such that changes to the container occur as an atomic operation; and a rendering mechanism that operates at a fixed rate and applies the changes in the queue and traverses the cache to create an instruction stream based on the visual information including the changes. - View Dependent Claims (29, 30, 31)
-
-
33. In a computing environment, a system comprising,
a cache that maintains visual information; -
a queue for maintaining changes to the visual information as requested by higher level program code; an interface to the cache through which the visual information is accessed by the program code, the program code accessing the visual information via the interface, including requesting access to a container in the cache; a drawing context that opens the container and provides a surface through which the program code requests changes to data in the container; a batching mechanism, the batching mechanism deferring the writing of any change to the queue until at least the close of the container, such that changes to the container occur as an atomic operation; and a rendering mechanism that applies the changes in the queue and traverses the cache to create an instruction stream based on the visual information including the changes, wherein the rendering mechanism comprises a high-level component that executes at a first operating rate to provide the instruction stream 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 rare is greater than the first operating rate and corresponds to a frame rate of the graphics subsystem. - View Dependent Claims (34, 35, 36, 37)
-
-
38. A computer-readable medium having computer-executable instructions, comprising:
-
maintaining visual information in a cache data structure including containers and data; reserving an invalid container for storing graphics information, without having space allocated for the graphics information; and rendering the data structure into data for receipt by another entity including executing a high-level component at a first operating rate to provide an instruction stream to a low-level component, the low-level component running 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, including determining whether the graphics information of the invalid container is needed, and if so; 2) allocating resources for the graphics information; 2) calling back to higher-level program code to provide the graphics information; 3) receiving the graphics information; and 4) outputting the data for receipt by another entity including information corresponding to the graphics information received. - View Dependent Claims (39, 40, 41, 42, 43)
-
-
44. A computer-readable medium having computer-executable components, comprising:
-
a cache that maintains visual information; a queue for maintaining changes to the visual information as requested by higher level program code; an interface to the cache through which the visual information is accessed by the program code, the program code accessing the visual information via the interface, including requesting access to a container in the cache; and a drawing context that opens the container and provides a surface through which the program code requests changes to data in the container; and a batching mechanism, the batching mechanism deferring the writing of any change to the queue until at least the close of the container, such that changes to the container occur as an atomic operation; and a rendering mechanism comprising a high-level component that executes at a first operating rate to provide an instruction stream to a low-level component, wherein the low-level component rims 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. - View Dependent Claims (45, 46, 47, 48, 49)
-
Specification