IP Library › Granted Patent US 11,836,333
Granted Patent B2
US 11,836,333 · App. 17/723,307 · Granted Dec 5, 2023

Computer-implemented method and SDK for rapid rendering of object-oriented environments with enhanced interaction

Inventors: Mukesh Arvindbhai Adhvaryu (Wembley, GB); Manan Adhvaryu (Wembley, GB); Martin George Cradley Balchin (Wembley, GB)
Assignee: M & M Info-Tech Limited
G06F3/04842G06F3/0481G06T1/60G06T11/00G06V10/945G06T2200/24
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 11,836,333
App. No.
17/723,307
Granted
Dec 5, 2023
Kind
B2
Abstract

A method of rendering an interface of an object-oriented environment is described. The method includes operations of allocating a buffer in memory for storing interface image data. The buffer provides a data structure defining a quantised image space for visible object image data. The method includes generating a set of multiple objects within the environment. Each object is associated with a layer representing the depth of the object within the environment. The layer is one of an ordered set of layers ranging from a foreground layer to a background layer. The method further includes maintaining the set of objects, in response to receiving a user input. The method includes iteratively updating the buffer to create image data, by incrementally selecting each one of the multiple layers in turn, as the current layer, from the set of layers. The method includes outputting the buffer containing interface image data.

Claims (68)

1. A computer-implemented method of rendering an interface of an object-oriented environment, including the steps of:

allocating a buffer in memory for storing interface image data, the buffer providing a data structure defining a quantised image space for visible object image data;

generating a set of multiple objects within the environment, each object being associated with a layer representing the depth of the object within the environment, the layer being one of an ordered set of layers ranging from a foreground layer to a background layer;

maintaining the set of objects, in response to receiving a user input, by performing at least one of: adding or removing an object, adding or removing a layer and any object associated with the layer, changing the layer associated with an object, or changing the order of the layers;

iteratively updating the buffer to create image data, by incrementally selecting each one of the multiple layers in turn, as the current layer, from the set of layers, starting with the foreground layer and ending with the background layer, and, for each object associated with the current layer:

determining object image data representing the space the object occupies within the interface,

comparing the object image data to the interface image data stored in the buffer,

determining visible object image data from the object image data, in which portions of the object image data that are obscured by one or more objects in a previous layer are excluded from the visible object image data, and

updating the interface image data stored in the buffer by rendering the visible object image data; and

outputting the buffer containing interface image data.

2. The computer-implemented method of claim 1 , wherein the quantised image space defined in the interface image data represents a 2D image, a stereoscopic 3D image, or image data for rendering a 3D environment or an augmented reality environment, and wherein outputting the interface image data includes outputting the interface image data to a display device.

3. The computer-implemented method of claim 1 , wherein outputting the interface image data includes outputting the interface image data to a compositing window manager to be rendered within an interface of an operating system.

4. The computer-implemented method of claim 1 , wherein outputting the interface image data includes writing the image data to a memory or storage device, or streaming the data over a connection to a remote device.

5. The computer-implemented method of claim 1 , wherein updating the interface image data stored in the buffer further includes storing, for each quantised unit of the interface image data, an associated object identifier corresponding to the object.

6. The computer-implemented method of claim 5 , wherein comparing the object image data to the interface image data stored in the buffer includes:

determining one or more overlapping quantised units;

identifying, for the or each overlapping quantised unit, the object associated with the quantised unit stored in the interface image data using the stored object identifier; and

if the layer of the identified object is nearer to the foreground than the layer of the current object, excluding the or each quantised unit from the visible object image data.

7. A computer-implemented method of identifying an object within an interface of an object-oriented environment rendered by the method of claim 5 , including:

receiving a user selection of a position within the interface, and

identifying the object displayed at the selected position within the interface.

8. The computer-implemented method of claim 7 , wherein identifying the object displayed at the selected position within the interface includes:

identifying the quantised unit within the quantised image space at the selected position within the interface image data stored in the buffer, and

identifying the object associated with the selected position using the stored object identifier associated with that quantised unit in the data stored in the buffer.

9. The computer-implemented method of claim 7 , further including performing an action on the identified object, wherein the action is one of:

changing the layer associated with the identified object, either permanently or temporarily;

generating a new object associated with the identified object for displaying data about the selected object;

selecting the object as the focus for further user input;

temporarily removing one or more foreground layers from the iterative updating of the buffer while the object is selected, so that the layer associated with the selected object is in the frontmost displayed layer of the interface.

10. The computer-implemented method of claim 1 , in which updating the buffer for each object associated with the current layer involves processing each object in an order determined by priority values associated with the respective objects.

11. The computer-implemented method of claim 1 , wherein, in response to receipt of a user input indicating a request for a screenshot, outputting the buffer containing interface image data substantially in real-time.

12. A computing device including a memory and a processor, the computing device being configured to render an interface of an object-oriented environment, wherein:

the memory provides a buffer for storing interface image data defining a quantised image space for visible object image data;

the processor being configured to:

generate a set of objects within the environment, each object being associated with a layer representing the depth of the object within the environment, the layer being one of an ordered set of layers ranging from a foreground layer to a background layer;

maintain the set of objects, in response to receiving a user input, by performing at least one of: adding or removing an object, adding or removing a layer and any object associated with the layer, changing the layer associated with an object, or changing the order of the layers;

iteratively update the buffer to create image data, by incrementally selecting each one of the multiple layers in turn, as the current layer, from the set of layers, starting with the foreground layer and ending with the background layer, and, for each object associated with the current layer:

to determine object image data representing the space the object occupies within the interface,

to compare the object image data to the interface image data stored in the buffer,

to determine visible object image data from the object image data, in which portions of the object image data that are obscured by one or more objects in a previous layer are excluded from the visible object image data, and

to update the interface image data stored in the buffer by rendering the visible object image data; and

output the buffer containing interface image data.

13. The device of claim 12 , wherein the quantised image space defining the interface image data is compatible with the resolution of an associated display device, and the device outputs the interface image data to the display device.

14. The device of claim 12 , wherein the interface image data is output to a compositing window manager of an operating system running on the device to be rendered on a display device within an interface of the operating system.

15. The device of claim 12 , wherein the memory further stores for each quantised unit of the interface image data, an associated object identifier corresponding to the object.

16. The device of claim 15 , wherein comparing the object image data to the interface image data stored in the buffer includes:

determining one or more overlapping quantised units;

identifying, for the or each overlapping quantised unit, the object associated with the quantised unit stored in the interface image data using the stored object identifier; and

if the layer of the identified object is nearer to the foreground than the layer of the current object, excluding the or each quantised unit from the visible object image data.

17. The device of claim 15 , further configured to:

receive a user input corresponding to a selection of a position within the interface, and

identify the object displayed at the selected position within the interface.

18. The device of claim 17 , wherein the processor is further configured to:

identify the quantised unit within the quantised image space at the selected position within the interface image data stored in the buffer, and

identify the object associated with the selected position using the stored object identifier associated with that quantised unit in the data stored in the buffer.

19. The device of claim 17 , wherein the processor is further configured to perform an action on the identified object, wherein the action is one of:

changing the layer associated with the identified object, either permanently or temporarily;

generating a new object associated with the identified object for displaying data about the selected object;

selecting the object as the focus for further user input;

temporarily removing one or more foreground layers from the iterative updating of the buffer while the object is selected, so that the layer associated with the selected object is in the frontmost displayed layer of the interface.

20. The device of claim 12 , wherein updating the buffer for each object associated with the current layer involves processing each object in an order determined by priority values associated with the respective objects.

21. A computer-implemented method of identifying an object within an interface of an object-oriented environment, including the steps of:

generating a set of multiple objects within the environment, each object being associated with a layer representing the depth of the object within the environment;

maintaining the set of objects, in response to receiving a user input, by performing at least one of: adding or removing an object, adding or removing a layer and any object associated with the layer, changing the layer associated with an object, or changing the order of the layers;

storing interface image data in a buffer in memory, the interface image data providing a data structure defining a quantised image space, each quantised unit of the interface image data having an associated object identifier corresponding to one of the objects;

receiving a user selection of a position within the interface,

identifying the quantised unit within the quantised image space at the selected position within the interface image data stored in the buffer, and

identifying the object associated with the selected position using the stored object identifier associated with the identified quantised unit.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2022
From: ADHVARYU, MUKESH ARVINDBHAI; ADHVARYU, MANAN; BALCHIN, MARTIN GEORGE CRADLEY
To: M & M INFO-TECH LIMITED
Reel/Frame 060248/0852 →
Priority Claims (2)
GB 2105599 · Apr 19, 2021 · national
GB 2205554 · Apr 14, 2022 · national
Continuity (1)
Related Publication 20220334707A1 · Oct 20, 2022