IP Library Granted Patent US 8,648,852
Granted Patent B2
US 8,648,852 · App. 13/858,506 · Granted Feb 11, 2014

Method and system for providing transparent access to hardware graphic layers

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 8,648,852
App. No.
13/858,506
Granted
Feb 11, 2014
Kind
B2
Abstract

The present invention relates generally to computer graphics, and more specifically to methods of, and systems for, configuring, controlling and accessing multiple hardware graphics layers that are used to compose a single video display. One aspect of the invention is broadly defined as follows: in a computer environment including a software application and an operating system running on a computer, the computer including a graphics card and a video display, the graphics card being operable to render images to the video display, the improvement comprising: the operating system including a universal application programming interface (API) which supports hardware layers on graphics cards; the operating system being operable to: receive draw events via the universal API; determine what hardware layers are available on the graphics card, and what their parameters are; and respond to draw requests from the software application by rendering the draw requests selectively to any of the available hardware layers on the graphics card; whereby the computer environment allows software applications to exploit available hardware layers on the graphics card.

Claims (30)

1. A method of configuring hardware graphics layers, the method comprising:

querying a graphics driver, via a programmatic interface implemented by the graphics driver, for a number of hardware layers that are available, wherein the graphics driver is for graphics hardware that comprises the available hardware layers, and wherein the programmatic interface is common to graphics drivers that have layer support;

querying the graphics driver, via the programmatic interface, for parameters of each of the available hardware layers;

generating video surfaces in a memory based on the number of the available hardware layers and the parameters of the available hardware layers, each of the video surfaces corresponding to a respective one of the available hardware layers; and

rendering draw events in the video surfaces.

2. The method of claim 1 wherein generating the video surfaces comprises creating the video surfaces to match a restriction imposed by the available hardware layers.

3. The method of claim 1 further comprising configuring the hardware layers.

4. The method of claim 1 further comprising configuring the available hardware layers based on the number of the available hardware layers and the parameters of the available hardware layers.

5. The method of claim 1 further comprising generating an image for a physical display device with the graphics hardware.

6. The method of claim 1 wherein rendering the draw events comprises rendering the draw events in the video surfaces with the graphics driver.

7. A system comprising:

a graphics hardware comprising a plurality of hardware layers and a video memory;

a processor; and

a computer memory comprising:

a graphics driver for the graphics hardware, the graphics driver comprising a programmatic interface common to graphics drivers that have layer support; and

a configuration application executable with the processor to query the graphics driver via the programmatic interface for a number of available hardware layers,

the configuration application further executable to query the graphics driver, via the programmatic interface, for parameters of each of the available hardware layers, and

the configuration application further executable to generate video surfaces in the video memory based on the number of the available hardware layers and the parameters of the available hardware layers, each of the video surfaces corresponding to a respective one of the available hardware layers, wherein draw events are rendered in the video surfaces.

8. The system of claim 7 , wherein the configuration application is further executable to place a plurality of regions in an event space, each of the regions corresponding to a respective one of the video surfaces.

9. The system of claim 7 , wherein the graphics driver is executable with the processor to render a draw event that intersects any one of the regions in the respective one of the video surfaces.

10. The system of claim 7 , wherein the configuration application is further executable to configure the available hardware layers based on the number of the available hardware layers and the parameters of the available hardware layers.

11. The system of claim 7 , wherein the configuration application is further executable to generate an image with the graphics hardware for a physical display device.

12. The system of claim 7 , wherein the parameters of each of the available hardware layers comprises at least one of a number of colours, dimensions, resolution, scale factors, virtual dimension limits, chroma-key capabilities, and alpha blending capabilities.

13. A non-transitory computer-readable storage medium comprising instructions executable with a processor, the instructions comprising:

a graphics driver executable to manipulate a plurality of hardware layers of graphics hardware, the graphics driver comprising a programmatic interface common to graphics drivers that support layers;

instructions executable to query the graphics driver via the programmatic interface for available hardware layers; and

instructions executable to generate video surfaces in video memory of the graphics hardware based on the available hardware layers, each of the video surfaces corresponding to a respective one of the available hardware layers, wherein draw events from multiple applications are rendered in the video surfaces of the graphics hardware.

14. The computer-readable storage medium of claim 13 further comprising executions executable to query the graphics driver, via the programmatic interface, for parameters of each of the available hardware layers.

15. The computer-readable storage medium of claim 14 further comprising executions executable to generate the video surfaces in the video memory based on the available hardware layers and the parameters of the available hardware layers.

16. The computer-readable storage medium of claim 13 further comprising executions executable to to place a plurality of regions in an event space, each of the regions corresponding to a respective one of the video surfaces.

Assignments (16)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 053313/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
CHANGE OF SEAT Recorded Aug 13, 2013
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 031013/0290 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2013
From: 7801769 CANADA INC.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 031002/0136 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2013
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: 7801769 CANADA INC.
Reel/Frame 031002/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2013
From: QNX SOFTWARE SYSTEMS LTD.
To: QNX SOFTWARE SYSTEMS
Reel/Frame 031002/0001 →
CHANGE OF NAME Recorded Aug 13, 2013
From: QNX SOFTWARE SYSTEMS
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 031013/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2013
From: FRY, DARRIN; LIN, ANGELA; DONOHOE, DAVID
To: QNX SOFTWARE SYSTEMS LTD.
Reel/Frame 031001/0960 →
CHANGE OF ADDRESS Recorded Aug 13, 2013
From: QNX SOFTWARE SYSTEMS LIMITED
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 031013/0293 →