IP Library Granted Patent US 9,846,958
Granted Patent B1
US 9,846,958 · App. 13/644,644 · Granted Dec 19, 2017

System and method for display object bitmap caching

Inventor: Raymond Cook (Castro Valley, CA)
Assignee: Aftershock Services, Inc.
G06T13/00G06T7/001G06T7/20G06T19/006G06T2207/20016G06T2207/20021
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 9,846,958
App. No.
13/644,644
Granted
Dec 19, 2017
Kind
B1
Abstract

A system and method for recursively rendering, caching, and/or retrieving a display object bitmap is provided. In some implementations, an image may be rendered on a client computing platform using an image list of one or more bitmap objects. The one or more object bitmaps may be generated in response to obtaining information defining a vector image in an image frame in an animation. An image list may be maintained for an image to be rendered based on the vector image of a frame of animation and/or some or all of the frames in the animation. The image list may store one or more references to one or more respective bitmap objects that are associated with the image to be rendered.

Claims (55)

1. A computer-implemented method of rendering an image for a client computing platform, the method being implemented in a computer system comprising one or more processors configured to execute computer program modules, the method comprising:

obtaining information defining a vector image in a frame in an animation;

maintaining an image list configured to store one or more references to one or more respective bitmap objects associated with the image, a bitmap object comprising one or more of: bitmap data, one or more references to other bitmap objects, or one or more references to child bitmap objects;

generating one or more bitmap objects from the vector image;

caching, at a bitmap object cache, the one or more bitmap objects;

generating one or more child bitmap objects from a first bitmap object of the one or more bitmap objects, wherein the one or more child bitmap objects represent objects that appear within the first bitmap object, and wherein generating a child bitmap object from the first bitmap object comprises:

detecting, within the first bitmap object, a visible boundary of a child object in the vector image based on a color distinction between the child object and that which is adjacent to the child object within the vector image; and

implementing the vector information to rasterize the child object within the visible boundary of the first bitmap object separate from rasterization of the first bitmap object to generate the child bitmap object separately from the first bitmap object;

caching, at a child bitmap object cache, the one or more child bitmap objects; and

augmenting the first bitmap object with one or more references to one or more different, cached child bitmap objects, wherein the one or more different, cached child bitmap objects are different than the first bitmap object.

2. The method of claim 1 , wherein generating the first bitmap object comprises: detecting a visible boundary of an object in the vector image where there is a color distinction between the object and that which is adjacent to the object within the vector image; and

implementing the vector information to rasterize the object within the visible boundary in the vector image to generate the first bitmap object.

3. The method of claim 1 , wherein caching the one or more child bitmap objects comprises:

comparing the child bitmap object with the one or more child bitmap objects in the child bitmap object cache; and

responsive to the child bitmap object matching one of the one or more child bitmap objects in the child bitmap object cache, augmenting the first bitmap object with a reference to a cache of the matched one of the one or more child bitmap objects in the child bitmap object cache.

4. The method of claim 3 , further comprising:

responsive to the child bitmap object matching one of the one or more child bitmap objects in the child bitmap object cache, discarding the child bitmap object.

5. The method of claim 1 , wherein caching the one or more child bitmap objects comprises:

when the child bitmap object does not match one of the one or more child bitmap objects in the child bitmap object cache,

adding the child bitmap object to the child bitmap object cache; and

augmenting the first bitmap object with a reference to a cache of the child bitmap object.

6. The method of claim 1 , further comprising:

comparing the bitmap object with the vector image; and

removing, from the bitmap object, one or more pixels that match respective one or more pixels of the vector image.

7. The method of claim 6 , further comprising:

comparing the child bitmap object with the bitmap object; and

removing, from the child bitmap object, one or more pixels that match respective one or more pixels of the bitmap object.

8. Non-transitory electronic storage media storing information related to an image, the stored information comprising:

an image list configured to store one or more references to one or more respective bitmap objects associated with the image, a bitmap object comprising one or more of: bitmap data, one or more references to other bitmap objects, or one or more references to child bitmap objects;

a bitmap object cache configured to store one or more bitmap objects for the image;

a child bitmap object cache configured to store one or more child bitmap objects for a bitmap object; and

instructions configured to cause a client computing platform to:

obtain information defining a vector image in a frame in an animation;

generate one or more bitmap objects from the vector image;

cache, at a bitmap object cache, the one or more bitmap objects;

generate one or more child bitmap objects from a first bitmap object of the one or more bitmap objects, wherein the one or more child bitmap objects represent objects that appear within the first bitmap object, and wherein generating a child bitmap object from the first bitmap object comprises:

detecting, within the first bitmap object, a visible boundary of a child object in the vector image based on a color distinction between the child object and that which is adjacent to the child object within the vector image; and

implementing the vector information to rasterize the child object within the visible boundary of the first bitmap object separate from rasterization of the first bitmap object to generate the child bitmap object separately from the first bitmap object;

cache, at a child bitmap object cache, the one or more child bitmap objects; and

augment the first bitmap object with one or more references to one or more different, cached child bitmap objects, wherein the one or more different, cached child bitmap objects are different than the first bitmap object.

9. The electronic storage media of claim 8 , wherein the instructions are configured to cause a client computing platform to cache the one or more child bitmap objects by

comparing the child bitmap object with the one or more child bitmap objects in the child bitmap object cache; and

responsive to the child bitmap object matching one of the one or more child bitmap objects in the child bitmap object cache, augmenting the first bitmap object with a reference to a cache of the matched one of the one or more child bitmap objects in the child bitmap object cache.

10. The electronic storage media of claim 9 , wherein the instructions are configured to cause a client computing platform to cache the one or more child bitmap objects by

when the child bitmap object does not match one of the one or more child bitmap objects in the child bitmap object cache,

adding the child bitmap object to the child bitmap object cache; and

augmenting the first bitmap object with a reference to a cache of the child bitmap object.

11. The electronic storage media of claim 9 , wherein the instructions are configured to cause a client computing platform to cache the one or more child bitmap objects by

responsive to the child bitmap object matching one of the one or more child bitmap objects in the child bitmap object cache, discarding the child bitmap object.

12. The electronic storage media of claim 8 , wherein the instructions are configured to cause a client computing platform to

compare the bitmap object with the vector image; and

remove, from the bitmap object, one or more pixels that match respective one or more pixels of the vector image.

13. The electronic storage media of claim 12 , wherein the instructions are configured to cause a client computing platform to

compare the child bitmap object with the bitmap object; and

remove, from the child bitmap object, one or more pixels that match respective one or more pixels of the bitmap object.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2018
From: AFTERSHOCK SERVICES, INC.
To: ELECTRONIC ARTS INC.
Reel/Frame 045474/0300 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2017
From: KABAM, INC.
To: AFTERSHOCK SERVICES, INC.
Reel/Frame 042211/0425 →
TERMINATION OF INTELLECTUAL PROPERTY SECURITY AGREEMENT, RECORDED AT REEL/FRAME: 039268/0910 Recorded Mar 2, 2017
From: SILICON VALLEY BANK
To: KABAM, INC.
Reel/Frame 041857/0538 →
SECURITY AGREEMENT Recorded Jul 6, 2016
From: KABAM, INC.
To: SILICON VALLEY BANK
Reel/Frame 039268/0910 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2012
From: COOK, RAYMOND
To: KABAM, INC.
Reel/Frame 029076/0954 →