# US 2013/0159893 A1 · Method of rendering a user interface

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2013/0159893 A1
- Document ID: US20130159893A1
- Status: Published application
- Kind: A1
- Application number: 13/715,621
- Filed: 2012-12-14
- Published: 2013-06-20
- Earliest claimed: 2011-12-16
- Assignees: Research In Motion Limited
- Inventors: Mathias Lewin; Jens Ola Andersson; Johan Mowitz; Christoffer Gurell
- Web page: https://patentgrep.com/patent/US20130159893A1

## CPC

- G06F 3/048: Interaction techniques based on graphical user interfaces [GUI]
- G06F 3/0481: based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F 8/38: for implementing user interfaces
- G06F 9/451: Execution arrangements for user interfaces
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A user interface (UI) system where at a UI client engine is associated with an application, and a UI rendering engine is associated with the client engine. The UI client engine receives, from a UI client engine associated with an application, a UI component tree comprising: UI component nodes having associated predefined contextual rendering information, and a custom rendering element node having associated incomplete contextual rendering information; generating UI rendering instructions in accordance with the UI component tree by: for each UI component node, using the predefined contextual rendering information to generate UI component rendering instructions, for the custom rendering element node, retrieving custom rendering instructions generated by the application and generating incomplete rendering instructions based on the incomplete contextual rendering information; and combines the UI component rendering instructions, the incomplete rendering instructions and the retrieved custom rendering instructions; renders the UI in accordance with the generated UI rendering instructions.

## Claims

### Claim 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, the UI component tree comprising:
UI component nodes each having associated predefined contextual rendering information, and
a custom rendering element node having associated incomplete contextual rendering information;
generating UI rendering instructions in accordance with the UI component tree by:
for each UI component node, using the predefined contextual rendering information to generate UI component rendering instructions,
for the custom rendering element node, retrieving custom rendering instructions generated by the application and generating incomplete rendering instructions based on the incomplete contextual rendering information; and
combining the UI component rendering instructions, the incomplete rendering instructions and the retrieved custom rendering instructions; and
rendering the UI in accordance with the generated UI rendering instructions.

### Claim 2 (depends on 1)

The method of claim 1, wherein the custom rendering instructions generated by the application are stored at a synchronization object.

### Claim 3 (depends on 2)

The method of claim 2, wherein the custom rendering instructions stored at the synchronization object are retrieved from the synchronization object asynchronously.

### Claim 4 (depends on 2)

The method of claim 2, wherein synchronization object comprises a pixel buffer.

### Claim 5 (depends on 2)

The method of claim 2, wherein the UI is rendered in accordance with a UI rendering frame rate; and wherein updated custom rendering instructions are stored at the synchronization object at a custom instruction frame rate.

### Claim 6 (depends on 5)

The method of claim 5, wherein when application frame rate is less than the UI rendering frame rate, and wherein the method further comprises reusing custom rendering instructions for multiple frames of the UI.

### Claim 7 (depends on 5)

The method of claim 5, wherein the custom instruction frame rate is irregular.

### Claim 8 (depends on 1)

The method of claim 1, wherein the UI custom rendering node comprises a node in an OpenGL framework.

### Claim 9 (depends on 1)

The method of claim 1, wherein generating rendering instructions comprises generating a context in an OpenGL framework.

### Claim 10 (depends on 1)

The method of claim 1, wherein the custom rendering instructions comprise an entity in an OpenGL framework.

### Claim 11 (depends on 1)

The method of claim 1, wherein the incomplete contextual rendering information comprises at least one of preferred position in a coordinate system, preferred size, and rotation.

### Claim 12 (depends on 1)

The method of claim 1, the method further comprising at least one of modifying, adjusting or overriding the custom rendering instructions.

### Claim 13

An electronic device comprising:
a display for displaying a user interface (UI);
one or more processors; and,
memory comprising instructions which, when executed by one or more of the processors, cause the device to:
receive, from a UI client engine associated with an application, a UI component tree for the application, the UI component tree comprising:
UI component nodes each having associated predefined contextual rendering information, and
a custom rendering element node having associated incomplete contextual rendering information;
generate UI rendering instructions in accordance with the UI component tree by:
for each UI component node, using the predefined contextual rendering information to generate UI component rendering instructions,
for the custom rendering element node, retrieving custom rendering instructions generated by the application and generating incomplete rendering instructions based on the incomplete contextual rendering information; and
combining the UI component rendering instructions, the incomplete rendering instructions and the retrieved custom rendering instructions; and
render the UI to the display in accordance with the generated UI rendering instructions.

### Claim 14 (depends on 13)

The electronic device of claim 13, wherein the custom rendering instructions generated by the application are stored at a synchronization object.

### Claim 15 (depends on 14)

The electronic device of claim 14, wherein the electronic device comprises the synchronization object.

### Claim 16 (depends on 14)

The electronic device of claim 14, wherein the custom rendering instructions stored at the synchronization object are retrieved from the synchronization object asynchronously.

### Claim 17 (depends on 14)

The electronic device of claim 14, wherein synchronization object comprises a pixel buffer.

### Claim 18 (depends on 14)

The electronic device of claim 14, wherein the UI is rendered in accordance with a UI rendering frame rate; and wherein updated custom rendering instructions are stored at the synchronization object at a custom instruction frame rate.

### Claim 19 (depends on 18)

The electronic device of claim 18, wherein when application frame rate is less than the UI rendering frame rate, and wherein the method further comprises reusing custom rendering instructions for multiple frames of the UI.

### Claim 20 (depends on 18)

The electronic device of claim 18, wherein the custom instruction frame rate is irregular.

### Claim 21 (depends on 13)

The electronic device of claim 13, wherein the UI custom rendering node comprises a node in an OpenGL framework.

### Claim 22 (depends on 13)

The electronic device of claim 13, wherein generating rendering instructions comprises generating a context in an OpenGL framework.

### Claim 23 (depends on 13)

The electronic device of claim 13, wherein the custom rendering instructions comprise an entity in an OpenGL framework.

### Claim 24 (depends on 13)

The electronic device of claim 13, wherein the incomplete contextual rendering information comprises at least one of preferred position in a coordinate system, preferred size, and rotation.

### Claim 25 (depends on 13)

The electronic device of claim 13, the method further comprising at least one of modifying, adjusting or overriding the custom rendering instructions.

### Claim 26

A computer program product on an electronic device, the computer program product comprising memory comprising instructions which, when executed by one or more processors of the electronic device, cause the electronic device to:
receive, from a UI client engine associated with an application, a UI component tree for the application, the UI component tree comprising:
UI component nodes each having associated predefined contextual rendering information, and
a custom rendering element node having associated incomplete contextual rendering information;
generate UI rendering instructions in accordance with the UI component tree by:
for each UI component node, using the predefined contextual rendering information to generate UI component rendering instructions,
for the custom rendering element node, retrieving custom rendering instructions generated by the application and generating incomplete rendering instructions based on the incomplete contextual rendering information; and
combining the UI component rendering instructions, the incomplete rendering instructions and the retrieved custom rendering instructions; and
render the UI to the display in accordance with the generated UI rendering instructions.
