IP Library Granted Patent US 9,075,631
Granted Patent B2
US 9,075,631 · App. 13/654,914 · Granted Jul 7, 2015

Method of rendering a user interface

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,075,631
App. No.
13/654,914
Granted
Jul 7, 2015
Kind
B2
Abstract

A user interface (UI) is presented in which a UI client engine is associated with an application, and a UI rendering engine is associated with the client engine. The UI rendering engine receives the scene graph and data items associated with elements of the scene graph, and processes a rendering thread to render a UI in accordance with the scene graph and the data items, independently of further input from the client UI engine.

Claims (59)

1. A method of rendering a user interface (UI), the method comprising:

receiving, from a UI client engine associated with an application, a UI component tree for the application;

determining a visual node tree for the UI component tree;

asynchronously receiving, from the UI client engine, UI data items related to elements of the UI component tree;

populating the visual node tree with the UI data items; and

rendering the UI in accordance with the visual node tree independently of further input from the UI client engine.

2. The method of claim 1 , further comprising:

detecting a user input; and

communicating the user input to the UI client engine.

3. The method of claim 2 , further comprising re-rendering the UI in response to the user input independently of further input from the UI client engine.

4. The method of claim 3 , wherein the user input is a button press, and the re-rendering the UI comprises re-rendering the UI to animate a button associated with the button press.

5. The method of claim 3 , wherein the user input is a slider drag, and the re-rendering the UI comprises re-rendering the UI to animate a dragging of a slider associated with the slider drag.

6. The method of claim 3 , wherein the user input is a list scroll, and the re-rendering the UI comprises re-rendering the UI to scroll a list associated with the list scroll.

7. The method of claim 2 , further comprising:

receiving from the UI client engine further data items invoking a modification, and

re-rendering the UI in accordance with the further data items and an associated visual node tree, independently of further input from the UI client engine.

8. The method of claim 7 , wherein the modification is an animation effect.

9. The method of claim 1 , further comprising the UI rendering engine:

carrying out one or more UI modification steps from a queue prior to rendering the UI;

when a time remaining to render the UI is determined as sufficient to carry out a next modification step in the queue, carrying out the next modification step prior to rendering the UI; and

when the time remaining to render the UI is not sufficient to carry out the next modification step, rendering the UI.

10. The method of claim 9 , further comprising, when a time required to carry out one of the one or more UI modification steps and render the UI exceeds the time allowed by a frame-rate of the UI, the UI rendering engine rendering a placeholder or rendering partial results prior to completion of that UI modification step.

11. A product stored on a non-transitory medium carrying instructions which when executed by a processor of an electronic device having a display for displaying a user interface (UI), cause the electronic device to carry out a method of rendering a user interface (UI), the method comprising:

receiving, from a UI client engine associated with an application, a UI component tree for the application;

determining a visual node tree for the UI component tree;

asynchronously receiving, from the UI client engine, UI data items related to elements of the UI component tree;

populating the visual node tree with the UI data items; and

rendering the UI in accordance with the visual node tree independently of further input from the UI client engine.

12. An electronic device, comprising:

a display for displaying a user interface (UI);

a processor; and

a memory carrying instructions which when executed by the processor configure the processor to provide:

a UI rendering engine configured for:

receiving, from a UI client engine associated with an application, a UI component tree for the application;

determining a visual node tree for the UI component tree;

asynchronously receiving, from the UI client engine, UI data items related to elements of the UI component tree;

populating the visual node tree with the UI data items; and

rendering the UI in accordance with the visual node tree independently of further input from the UI client engine.

13. The electronic device of claim 12 , the memory carrying further instructions which when executed by the processor configure the processor to provide:

said UI client engine associated with an application, the UI client engine being configured for:

determining said UI component tree for the application,

receiving inputs from the application related to elements of the UI component tree, and

determining said UI data items related to the inputs.

14. The electronic device of claim 12 , wherein the UI rendering engine is further configured for:

detecting a user input; and

communicating the user input to the UI client engine.

15. The electronic device of claim 14 , wherein the UI rendering engine is further configured for re-rendering the UI in response to the user input independently of further input from the UI client engine.

16. The electronic device of claim 15 , wherein the user input is a button press, and the re-rendering the UI comprises re-rendering the UI to animate a button associated with the button press.

17. The electronic device of claim 15 , wherein the user input is a slider drag, and the re-rendering the UI comprises re-rendering the UI to animate a dragging of a slider associated with the slider drag.

18. The electronic device of claim 15 , wherein the user input is a list scroll, and the re-rendering the UI comprises re-rendering the UI to scroll a list associated with the list scroll.

19. The electronic device of claim 12 , wherein the UI rendering engine is further configured for:

receiving from the UI client engine further data items invoking the modification, and

re-rendering UI in accordance with the further data items and an associated visual node tree, independently of further input from the UI client engine.

20. The electronic device of claim 19 , wherein the modification is an animation effect.

21. The electronic device of claim 12 , wherein the UI rendering engine is further configured to:

carry out one or more UI modification steps from a queue prior to rendering the UI;

when a time remaining to render the UI is determined as sufficient to carry out a next modification step in the queue, carry out the next modification step prior to rendering the UI; and

when the time remaining to render the UI is not sufficient to carry out the next modification step, render the UI.

22. The electronic device of claim 21 , wherein the UI rendering engine is further configured to, when a time required to carry out one of the one or more UI modification steps and render the UI exceeds the time allowed by a frame-rate of the UI, render a placeholder or render partial results prior to completion of that UI modification step.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDED PATENT NUMBER TO REMOVE PATENT NO. 8,873,407 AT PREVIOUSLY RECORDED ON REEL 64066 FRAME 1. ASSIGNOR(S) HEREBY CONFIRMS THE NUNC PRO TUNC ASSIGNMENT EFFECTIVE DATE MARCH 20, 2023. Recorded Feb 2, 2026
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 074921/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064066/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
CHANGE OF NAME Recorded Oct 2, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 033886/0749 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2013
From: LEWIN, MATHIAS; ANDERSSON, JENS OLA; LJUNGKRANTZ, PETER; GURELL, CHRISTOFFER; MOWITZ, JOHAN
To: RESEARCH IN MOTION TAT AB
Reel/Frame 029709/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2013
From: RESEARCH IN MOTION TAT AB
To: RESEARCH IN MOTION LIMITED
Reel/Frame 029705/0648 →