IP Library Granted Patent US 8,098,246
Granted Patent B2
US 8,098,246 · App. 12/940,162 · Granted Jan 17, 2012

Method and system for providing transparent access to hardware graphic layers

Assignee: QNX Software Systems Limited
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,098,246
App. No.
12/940,162
Granted
Jan 17, 2012
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 (24)

1. A method of providing an image to a video display in a computer system, the computer system including a multilayer graphics controller having a graphics controller operating system that directs draw streams to respective hardware layers, the method comprising:

executing a universal application programming interface (API) to communicate draw streams to the graphics controller operating system;

generating a plurality of draw streams using respective software applications, where a first draw stream of the plurality of draw streams includes target information identifying that the first draw stream is provided directly to the universal API and where a second draw stream of the plurality of draw streams includes target information identifying that the second draw stream is provided indirectly to the universal API through a three-dimensional event space; and

directing draw streams provided to the universal API to the graphics controller operating system for provision to the respective hardware layers.

2. The method of claim 1 , wherein generating a plurality of draw streams using respective software applications comprises generating the first draw stream using a first software application and the second draw stream using a second software application.

3. The method of claim 1 , wherein directing draw streams comprises directing the first draw stream to a video surface associated with one of the respective hardware layers.

4. The method of claim 1 further comprising determining a number of the respective hardware layers to receive at least one of the plurality of draw streams.

5. The method of claim 1 further comprising determining at least one capability of at least one of the respective hardware layers.

6. A system configured to provide an image to a video screen, the system comprising:

a processor;

a memory device;

a multilayer graphics controller including a graphics controller operating system, the graphics controller configured to direct draw events to respective hardware layers;

an operating system including a universal application programming interface (API) configured to support hardware layers on the graphics controller, the operating system stored on the memory device and executable by the processor to:

receive a plurality of draw events with the API, wherein each of the draw events is configured to include respective target information identifying whether each of the draw events is to be provided directly to the universal API or indirectly to the universal API through a three dimensional event space; and

direct draw events provided to the universal API to the graphics controller operating system for provision to the respective hardware layers.

7. The system of claim 6 , wherein the operating system is further executable to receive a first draw event from a first software application and a second draw event from a second software application, wherein the first draw event includes target information identifying that the first draw event is to be directly provided to the universal API, and wherein the second draw event includes target information identifying that the second draw event is to be indirectly provided to the universal API through the three dimensional event space.

8. The system of claim 7 , wherein the operating system is further configured to direct the first draw event to a video surface associated with one of the respective hardware layers.

9. A computer-readable non-transitory storage medium comprising a plurality of instructions executable by a processor, the computer-readable medium comprising:

instructions to execute a universal application programming interface (API) to communicate draw streams to a multilayer graphics controller operating system of a graphics controller, the graphics controller configured to direct draw streams to respective hardware layers;

instructions to generate a plurality of draw streams using respective software applications, where the draw streams include target information identifying whether a given draw stream is provided directly to the universal API or indirectly to the universal API through a three-dimensional event space; and

instructions to direct draw streams provided to the universal API to the graphics controller operating system for provision to the respective hardware layers.

10. The computer-readable non-transitory storage medium of claim 9 , wherein the instructions to direct draw streams comprises instructions to direct at least one of the draw streams to a video surface associated with a respective hardware layer.

11. The computer-readable non-transitory storage medium of claim 9 further comprising instructions to determine a number of the respective hardware layers to receive at least one of the plurality of draw streams.

12. The computer-readable non-transitory storage medium of claim 9 further comprising instructions to determine at least one capability of at least one of the respective hardware layers.

Assignments (17)
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: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
CHANGE OF ADDRESS Recorded Feb 27, 2012
From: QNX SOFTWARE SYSTEMS LIMITED
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 027768/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: 7801769 CANADA INC.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 026883/0553 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: 7801769 CANADA INC.
Reel/Frame 026883/0544 →
REGISTRATION Recorded Apr 15, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 026138/0762 →
CHANGE OF SEAT Recorded Apr 15, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 026138/0768 →
CHANGE OF NAME Recorded Apr 15, 2011
From: QNX SOFTWARE SYSTEMS
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 026138/0899 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2011
From: QNX SOFTWARE SYSTEMS LTD.
To: QNX SOFTWARE SYSTEMS
Reel/Frame 026136/0408 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2011
From: FRY, DARRIN; LIN, ANGELA; DONOHOE, DAVID
To: QNX SOFTWARE SYSTEMS LTD.
Reel/Frame 026136/0290 →
Continuity (2)
Continuation 10928698 · Aug 30, 2004
Related Publication 20110050688A1 · Mar 3, 2011