Claims
- 1. A method for rendering a window tree having a plurality of nodes, comprising:
defining a recursive procedure comprising,
identifying one of said nodes to be rendered; determining whether a visual object defined at said identified node is visible; in response to determining that said object is visible, copying rendering information for a sub-tree of said window tree defined by said identified node onto a stack; calculating the bounds of an invalidation rectangle in coordinates relative to said object and determining whether said object should be rendered; in response to determining that said object should be rendered, rendering said object and determining whether said object is a trivial object; and in response to determining that said object is not a trivial object, rendering any children of said node using said recursive procedure.
- 2. The method of claim 1, wherein calculating the bounds of an invalidation rectangle in coordinates relative to said object comprises:
determining whether a transformation is applied to said object; in response to determining that no transformation should be applied to said object, using data from said stack associated with a parent node of said object as said invalidation rectangle.
- 3. The method of claim 2, further wherein calculating the bounds of an invalidation rectangle in coordinates relative to said object further comprises:
in response to determining that a transformation should be applied to said object, creating a cumulative invalidation matrix utilizing an anti-transformation of said transformation; applying said cumulative invalidation matrix to said invalidation rectangle of said parent node to obtain a new bounding polygon; determining a bounding rectangle of said new bounding polygon; intersecting said new bounding rectangle with a bounding rectangle for said object; and storing the results of said intersection on said stack.
- 4. The method of claim 1, wherein determining whether said object is a trivial object comprises examining a bit associated with said object.
- 5. The method of claim 4, further comprising:
in response to determining that said object is a trivial object, rendering any children of said node using a trivial recursive rendering procedure.
- 6. The method of claim 4, wherein said trivial recursive rendering procedure comprises:
defining a recursive procedure comprising,
determining whether said node intersects an invalidation rectangle; in response to determining that said node intersects an invalidation rectangle, rendering a visual object at said node; and calling said trivial recursive rendering procedure for each of said children of said node.
- 7. The method of claim 1, wherein determining whether said object should be rendered comprises determining the intersection of said object and said bounds of said invalidation rectangle in coordinates relative to said object.
- 8. A computer-controlled apparatus capable of performing the method of any one of claims 1-7.
- 9. A computer-readable medium comprising instructions which, when executed by a computer, cause the computer to perform the methods of any one of claims 1-7.
- 10. A method for hit-testing a window tree comprising a plurality of nodes, comprising:
receiving a request to hit-test said window tree comprising a point in coordinates relative to a container; setting a current node of said window tree to a root node of said window tree; determining whether said point is within a visual object defined at said current node; in response to determining that said point is within said visual object, applying a transformation or translation associated with said visual object to said point; determining whether said current node has a child node; and in response to determining that said current node does not have a child node, responding to said request by indicating that said point is located in said current node.
- 11. The method of claim 10, further comprising:
in response to determining that said current node has a child node, determining whether said point is located within a visual object located at said child node; in response to determining that said point is located within said visual object located at said child node, setting said current node to said child node; applying a transformation or translation associated with said visual object at said current node to said point; determining whether said current node has a child node; and in response to determining that said current node does not have a child node, responding to said request by indicating that said point is located in said current node.
- 12. The method of claim 10, further comprising:
in response to determining that said current node has a child node, determining whether said point is located within a visual object located at said child node; in response to determining that said point is not located within said visual object located at said child node, determining whether said current node has an additional child node; and in response to determining that said current node has an additional child node, determining whether said point is located within a visual object located at said additional child node.
- 13. The method of claim 12, further comprising:
in response to determining that said point is not located within a visual object located at said additional child n'ode, determining whether said current node has any other child nodes; and in response to determining that said current node has no other child nodes, responding to said request by indicating that said point is located in said current node.
- 14. The method of claim 13, further comprising:
in response to determining that said point is located within a visual object located at said additional child node, setting said current node to said additional child node; applying a transformation or translation associated with said visual object at said current node to said point; determining whether said current node has a child node; and in response to determining that said current node does not have a child node, responding to said request by indicating that said point is located in said current node.
- 15. A computer-controlled apparatus capable of performing the method of any one of claims 10-14.
- 16. A computer-readable medium comprising instructions which, when executed by a computer, cause the computer to perform the method of any one of claims 10-14.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 60/244,287 filed Oct. 30, 2000, which is expressly incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60244287 |
Oct 2000 |
US |