IP Library Granted Patent US 8,922,575
Granted Patent B2
US 8,922,575 · App. 13/229,556 · Granted Dec 30, 2014

Tile cache

Inventors: Adrian J. Garside (Sammamish, WA); Milena Salman (Redmond, WA); Vivek Y. Tripathi (Bellevue, WA)
Assignee: Microsoft Corporation
G06T15/005G09G5/36G06F3/033G09G2354/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,922,575
App. No.
13/229,556
Granted
Dec 30, 2014
Kind
B2
Abstract

Tile cache techniques are described. In at least some embodiments, a tile cache is maintained that stores tile content for a plurality of tiles. The tile content is ordered in the tile cache to match a visual order of tiles in a graphical user interface. When tiles are moved (e.g., panned and/or scrolled) in the graphical user interface, tile content can be retrieved from the tile cache and displayed.

Claims (42)

1. A method comprising:

building a tile cache that includes tile slots for a plurality of tiles;

storing visually rendered versions of the plurality of tiles in respective tile slots such that an order in which the rendered versions of the plurality of tiles are stored in the tile slots in the tile cache corresponds to a visual order of the tiles in a graphical user interface; and

responsive to detecting tile movement, retrieving for display one or more visually rendered versions of one or more incoming tiles of the plurality of tiles from one or more respective tile slots in the tile cache.

2. The method of claim 1 , wherein one or more of the visually rendered versions comprise a bitmap image that represents a complete tile visual for at least one of the tiles.

3. The method of claim 1 , wherein said building further comprises generating a cache header for the tile cache that includes pointers that associate individual tiles with respective tile slots.

4. The method of claim 1 , wherein said retrieving comprises:

ascertaining that a visually rendered version of at least one of the incoming tiles is available in primary memory; and

notifying an entity that generates the graphical user interface that the visually rendered version of the at least one of the incoming tiles is available to be retrieved from the primary memory.

5. The method of claim 1 , wherein said retrieving comprises inspecting a cache header for the tile cache to determine a location in the tile cache for the respective tile slots.

6. The method of claim 1 , wherein said tile cache is stored in computer-readable storage, and where said retrieving comprises retrieving the rendered versions via a single access operation to the computer-readable storage.

7. The method of claim 1 , further comprising:

saving the visually rendered versions of the one or more incoming tiles to primary memory; and

notifying an entity that generates the graphical user interface that the visually rendered version of the one or more incoming tiles is available to be retrieved from the primary memory.

8. The method of claim 1 , further comprising, prior to said retrieving, notifying one or more functionalities of a computing device that primary memory associated with one or more outgoing tiles of the graphical user interface is available for other tasks.

9. The method of claim 1 , further comprising:

responsive to a rendered version of a new tile being added to the tile cache, ascertaining that the tile slots in the tile cache are misordered with respect to a visual order of associated tiles; and

reordering the tile cache to cause an order of the tile slots in the tile cache to correspond to a visual order of the associated tiles in the graphical user interface.

10. The method of claim 9 , wherein said reordering comprises scheduling a tile cache reorder operation to be performed when a computing device on which the graphical user interface is displayed is idle.

11. The method of claim 1 , further comprising:

ascertaining for at least one of the incoming tiles that the tile movement has fallen below a threshold velocity; and

responsive to said ascertaining, retrieving animation content for the at least one of the incoming tiles.

12. The method of claim 1 , further comprising:

receiving new content for a tile of the plurality of tiles;

storing the new content in a new tile slot for the tile; and

reordering the tile cache to incorporate the new tile slot such that a tile slot order matches a visual order of the tiles in the graphical user interface.

13. A system comprising:

one or more processors; and

one or more computer readable storage media embodying computer readable instructions that are executable by the one or more processors to perform operations comprising:

determining a location in a tile cache for tile slots that include content for incoming tiles of a graphical user interface;

ascertaining that an order in which the tile slots are stored in the tile cache does not correspond to a visual order of the incoming tiles in the graphical user interface; and

causing the order in which the tile slots are stored in the tile cache to be reordered in the tile cache to correspond to the visual order of the incoming tiles.

14. The system of claim 13 , wherein said order of the tile slots does not correspond to a visual order of the incoming tiles due to a tile slot resizing for one of the incoming tiles that causes new tile content to be stored in a new tile slot for the one of the incoming tiles.

15. The system of claim 13 , wherein said ascertaining comprises determining that the tile slots are stored in non-contiguous portions of the tile cache, and wherein said causing comprises causing the tile slots to be stored in contiguous portions of the tile cache.

16. The system of claim 13 , wherein said causing comprises scheduling a tile cache reorder operation to be performed when the computing device is idle.

17. A method comprising:

detecting that a tile is moving into view in a graphical user interface;

retrieving static tile content for the tile from a tile cache; and

determining whether to retrieve animation content for the tile based on whether movement of the tile in the graphical user interface falls below a threshold velocity.

18. The method of claim 17 , further comprising retrieving the animation content for the tile responsive to a determination that the movement of the tile has fallen below the threshold velocity.

19. The method of claim 18 , wherein the animation content is retrieved from the tile cache.

20. The method of claim 18 , wherein the movement of the tile has fallen below the threshold velocity in response to a user pausing or stopping manipulation of the tile while the tile is displayed in the graphical user interface.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2011
From: GARSIDE, ADRIAN J.; SALMAN, MILENA; TRIPATHI, VIVEK Y.
To: MICROSOFT CORPORATION
Reel/Frame 027029/0116 →
Continuity (1)
Related Publication 20130063443A1 · Mar 14, 2013