IP Library Granted Patent US 7,830,372
Granted Patent B2
US 7,830,372 · App. 10/928,698 · Granted Nov 9, 2010

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 7,830,372
App. No.
10/928,698
Granted
Nov 9, 2010
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 (31)

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

executing a video card driver for communicating with the video card operating system to direct draw streams from the video card driver through the video card operating system to the video hardware layers;

generating a three-dimensional event space, where the three-dimensional event space includes at least two driver regions associated with respective video hardware layers of the multilayer video card, where the at least two driver regions are disposed at different positions along a length of the three-dimensional event space;

generating an application region within the three-dimensional event space, where the application region is respectively associated with a first software application, where the application region is generated within the three-dimensional event space exterior to the at least two driver regions, and where the first software application directs its draw stream to the application region;

responding to one or more events associated with the first software application by changing attributes of the application region in the three-dimensional event space;

responding to a changed attribute of the application region by directing the draw stream provided to the application region to at least one of the at least two driver regions for provision to the video card driver, where the video card driver provides the draw stream received from the application region to the video operating system for provision to the video hardware layer respectively associated with the at least one of the at least two driver regions;

generating a draw stream using a second software application, where the draw stream of the second software application is not directed to the three-dimensional event space;

receiving the draw stream of the second software application at the video card driver from the second software application and bypassing provision of the draw stream of the second software application to the three-dimensional event space; and

communicating the draw stream of the second software application from the video card driver to the video operating system for provision to a corresponding video hardware layer.

2. The method of claim 1 , where the one or more events comprise a request to present an image, vector, or character on the video display.

3. The method of claim 1 , where the application region includes dimension and positional parameters within the three-dimensional event space.

4. The method of claim 1 , where the second software application communicates layer identification information to the video card driver, and where the layer identification information identifies the corresponding video hardware layer to which the draw stream of the second software application is to be directed.

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

executing a universal application program interface (API) for communicating draw streams to the video card operating system;

executing a first software application to provide a draw stream, where the draw stream of the first software application is provided to a respective application region of a three-dimensional event space, where draw requests received at the application region are provided to the universal API which directs the draw requests received from the three-dimensional event space to the video card operating system for provision to at least one of two or more video hardware layers associated with the three-dimensional event space, and where the draw stream received at the application region is directed from the universal API to the video card operating system in response to one or more events that change attributes of the application region; and

executing a second software application, where the second software application directs its draw stream directly to the universal API and bypasses the three-dimensional event space, whereby the draw stream of the second software application is communicated from the second software application directly to the universal API and therefrom to the video operating system for provision to a corresponding video hardware layer.

6. The method of claim 5 , where the application region includes dimension and positional parameters within the three-dimensional event space.

7. The method of claim 5 , where the one or more events comprise a request to present an image, vector, or character on the video display.

8. The method of claim 5 , where the second software application communicates layer identification information to the universal API, and where the layer identification information identifies the corresponding video hardware layer to which the draw stream of the second software application is to be directed.

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

executing a universal application program interface (API) to communicate with the video card operating system;

generating at least two video driver regions in a three-dimensional event space, where the at least two video driver regions are associated with respective video hardware layers, where the at least two video driver regions are disposed at different locations along a length of the three-dimensional event space;

generating a plurality of application regions in the three-dimensional event space, where each application region is associated with a corresponding software application;

directing a draw stream from a given software application to its corresponding application region in the three-dimensional event space;

providing the draw stream of the corresponding application region to at least one of the at least two video driver regions in response to one or more events that change attributes of the corresponding application region;

directing the draw stream from the at least one of the at least two video driver regions to the universal API for provision to the video card operating system;

responding to a draw stream provided from the universal API to the video card operating system by directing the draw stream of the at least one of the at least two video driver regions to the hardware layer respectively associated with the at least one of the at least two video driver regions;

generating a video surface exterior to the three-dimensional event space, where the video surface is associated with a video hardware layer through the universal API;

providing a draw stream from a further software application to the video surface;

directing the draw stream received at the video surface to the universal API; and

directing the draw stream received by the universal API from the further software application to the video operating system for provision to a corresponding video hardware layer.

Assignments (20)
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 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: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: 7801769 CANADA INC.
Reel/Frame 026883/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: 7801769 CANADA INC.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 026883/0553 →
CHANGE OF SEAT Recorded Jun 9, 2010
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 024508/0545 →
REGISTRATION Recorded Jun 9, 2010
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 024508/0436 →
CHANGE OF NAME Recorded Jun 9, 2010
From: QNX SOFTWARE SYSTEMS
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 024508/0155 →
PARTIAL RELEASE OF SECURITY INTEREST Recorded Jun 3, 2010
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 024483/0045 →
CHANGE OF NAME Recorded Mar 8, 2010
From: QNX SOFTWARE SYSTEMS
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 024047/0454 →
SECURITY AGREEMENT Recorded May 8, 2009
From: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; BECKER SERVICE-UND VERWALTUNG GMBH; CROWN AUDIO, INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS (MICHIGAN), INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS HOLDING GMBH; HARMAN BECKER AUTOMOTIVE SYSTEMS, INC.; HARMAN CONSUMER GROUP, INC.; HARMAN DEUTSCHLAND GMBH; HARMAN FINANCIAL GROUP LLC; HARMAN HOLDING GMBH & CO. KG; HARMAN MUSIC GROUP, INCORPORATED; HARMAN SOFTWARE TECHNOLOGY INTERNATIONAL BETEILIGUNGS GMBH; HARMAN SOFTWARE TECHNOLOGY MANAGEMENT GMBH; HBAS INTERNATIONAL GMBH; HBAS MANUFACTURING, INC.; INNOVATIVE SYSTEMS GMBH NAVIGATION-MULTIMEDIA; JBL INCORPORATED; LEXICON, INCORPORATED; MARGI SYSTEMS, INC.; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS CANADA CORPORATION; QNX SOFTWARE SYSTEMS CO.; QNX SOFTWARE SYSTEMS GMBH; QNX SOFTWARE SYSTEMS GMBH & CO. KG; QNX SOFTWARE SYSTEMS INTERNATIONAL CORPORATION; QNX SOFTWARE SYSTEMS, INC.; XS EMBEDDED GMBH (F/K/A HARMAN BECKER MEDIA DRIVE TECHNOLOGY GMBH)
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 022659/0743 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2005
From: QNX SOFTWARE SYSTEMS LTD.
To: QNX SOFTWARE SYSTEMS
Reel/Frame 016037/0366 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2005
From: FRY, DARRIN; LIN, ANGELA; DONOHOE, DAVID
To: QNX SOFTWARE SYSTEMS LTD.
Reel/Frame 016310/0260 →