IP Library Patent Application 14622463
Patent Application
App. No. 14/622,463

Asynchronous Preparation of Displayable Sections of a Graphical User Interface

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 None
App. No.
14/622,463
Abstract

Particular embodiments of a computing device include a main thread, a graphics thread, and an input thread. The main thread may execute instructions to generate an object representation of a GUI for an application. Copies of the object representation may be provided to the graphics thread and the input thread. The main thread may determine which displayable sections to render based on user input information, a current location with respect to the GUI, and a caching pattern. The caching pattern may include a first section and one or more second sections adjacent to the first section in one or more directions. The main thread may render the those displayable sections and cache some of the sections. The graphics thread may then asynchronously execute instructions to draw one of the rendered sections into a frame buffer.

Claims (48)

1 . A method comprising:

by a computing device, executing, by a main thread, instructions to:

generate an object representation of a graphical user interface (GUI) for an application; and

provide a copy of the object representation of the GUI to a graphics thread;

determine a plurality of displayable sections to render based at least on user input information, a current location with respect to the GUI, and a caching pattern, wherein the caching pattern comprises a first section and one or more second sections adjacent to the first section in one or more directions;

render a first one of the displayable sections and one or more second ones of the displayable sections based at least in part on the determination, wherein the first displayable section and the second displayable sections each comprise display output that fills at least a portion of a screen of the computing device;

cache the second rendered sections in a non-transitory memory of the computing device; and

by the computing device, asynchronously executing, by the graphics thread, instructions to draw the first rendered section into a frame buffer of the computing device.

2 . The method of claim 1 , wherein the second rendered sections are generated in one or more of the directions.

3 . The method of claim 1 , wherein the caching pattern is determined based at least in part on the user input information.

4 . The method of claim 3 , wherein the caching pattern is determined based at least in part on an estimated likelihood of receiving different types of additional user input information.

5 . The method of claim 3 , wherein the user input information comprises a scroll gesture in the direction in which one or more of the second rendered sections are rendered.

6 . The method of claim 5 , wherein the user input information comprises a direction of scrolling for the GUI, and wherein one or more of the directions corresponds to the direction of scrolling for the GUI.

7 . The method of claim 6 , wherein the caching pattern comprises a plurality of the second rendered sections in the direction of scrolling for the GUI, and wherein a rendered section for the end of a scrolling region of the GUI overlaps with an adjacent one of the second rendered sections.

8 . The method of claim 3 , wherein the user input information comprises a selected tab of the GUI, and wherein one or more of the directions corresponds to the selected tab of the GUI.

9 . The method of claim 8 , wherein at least one of the second rendered sections corresponds to a different tab of the application.

10 . The method of claim 1 , further comprising asynchronously executing, by the graphics thread, instructions to:

in response to receiving additional user input information:

retrieve from the memory one of the second rendered sections; and

draw into the frame buffer the retrieved second rendered section.

11 . The method of claim 10 , further comprising asynchronously executing, by the main thread, instructions to:

determine one or more new displayable sections to render based at least on the additional user input information and the caching pattern;

render the new displayable sections based at least in part on the determination; and

cache at least one of the new rendered sections.

12 . The method of claim 11 , further comprising asynchronously executing, by the graphics thread, instructions to:

draw one of the new rendered sections into the frame buffer.

13 . One or more computer-readable non-transitory storage media embodying software that is operable when executed by one or more processors of a computing device to:

execute, by a main thread, instructions to:

generate an object representation of a graphical user interface (GUI) for an application; and

provide a copy of the object representation of the GUI to a graphics thread;

determine a plurality of displayable sections to render based at least on user input information, a current location with respect to the GUI, and a caching pattern, wherein the caching pattern comprises a first section and one or more second sections adjacent to the first section in one or more directions;

render a first one of the displayable sections and one or more second ones of the displayable sections based at least in part on the determination, wherein the first displayable section and the second displayable sections each comprise display output that fills at least a portion of a screen of the computing device;

cache the second rendered sections in a non-transitory memory of the computing device; and

asynchronously execute, by the graphics thread, instructions to draw the first rendered section into a frame buffer of the computing device.

14 . The media of claim 13 , wherein the second rendered sections are generated in one or more of the directions.

15 . The media of claim 13 , wherein the caching pattern is determined based at least in part on the user input information.

16 . The media of claim 15 , wherein the caching pattern is determined based at least in part on an estimated likelihood of receiving different types of additional user input information.

17 . The media of claim 15 , wherein the user input information comprises a scroll gesture in the direction in which one or more of the second rendered sections are rendered.

18 . The media of claim 17 , wherein the user input information comprises a direction of scrolling for the GUI, and wherein one or more of the directions corresponds to the direction of scrolling for the GUI.

19 . The media of claim 18 , wherein the caching pattern comprises a plurality of the second rendered sections in the direction of scrolling for the GUI, and wherein a rendered section for the end of a scrolling region of the GUI overlaps with an adjacent one of the second rendered sections.

20 . A computing device comprising one or more processors and a memory coupled to the processors comprising instructions executable by the processors, the processors being operable when executing the instructions to:

execute, by a main thread, instructions to:

generate an object representation of a graphical user interface (GUI) for an application; and

provide a copy of the object representation of the GUI to a graphics thread;

determine a plurality of displayable sections to render based at least on user input information, a current location with respect to the GUI, and a caching pattern, wherein the caching pattern comprises a first section and one or more second sections adjacent to the first section in one or more directions;

render a first one of the displayable sections and one or more second ones of the displayable sections based at least in part on the determination, wherein the first displayable section and the second displayable sections each comprise display output that fills at least a portion of a screen of the computing device;

cache the second rendered sections in a non-transitory memory of the computing device; and

asynchronously execute, by the graphics thread, instructions to draw the first rendered section into a frame buffer of the computing device.

Assignments (3)
CHANGE OF NAME Recorded Nov 19, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058214/0351 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2015
From: CHALAND, CHRISTOPHE
To: FACEBOOK, INC.
Reel/Frame 036615/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2015
From: KALDOR, JONATHAN M.; ARNOLD, ROBERT DOUGLAS
To: FACEBOOK, INC.
Reel/Frame 035587/0311 →