IP Library Granted Patent US 9,274,677
Granted Patent B2
US 9,274,677 · App. 14/166,616 · Granted Mar 1, 2016

Method and system for providing transparent access to hardware graphic layers

Inventors: Darrin Fry (Kanata-Ontario, CA); Angela Lin (Longford, IE); David Donohoe (Longford, IE)
Assignee: 2236008 Ontario Inc.
G06F3/04815G06F3/14G06T1/00G09G5/14G09G5/363G09G2340/10G09G2340/12G09G2352/00G09G2360/08
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 9,274,677
App. No.
14/166,616
Granted
Mar 1, 2016
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 operating system is operable to: receive draw events; 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 (34)

1. A method of directing an input event in a three-dimensional event space, the three-dimensional space comprising a plurality of two-dimensional graphics regions ordered along a third-dimension axis, the method comprising:

associating each two-dimensional graphics region of a set of the two-dimensional graphics regions with a respective one of a plurality of hardware layers, wherein the hardware layers are included in a layering hardware;

receiving the input event directed to the three-dimensional event space;

traversing at least a portion of the third-dimension axis with the input event;

determining one or more intersections of the input event with the two-dimensional graphics regions as the input event traverses the at least a portion of the third-dimension axis; and

for each of the one or more intersections with a respective intersected graphics region:

determining whether the respective intersected graphics region is associated with any of the hardware layers;

determining, when the respective intersected graphics region is not associated with any of the hardware layers, whether the input event is to be processed by a software application associated with content of the respective intersected graphics region and, when the input event is to be processed by the software application, directing the received input event to the software application; and

directing, when the respective intersected graphics region is associated with any of the hardware layers, the input event to the software application associated with the content of the respective intersected graphics region.

2. The method of claim 1 , further comprising:

receiving, from the software application to which the input event was directed, an indication to further process the input event; and

continuing the traversing the at least a portion of the third-dimension axis with the input event.

3. The method of claim 1 , further comprising, for each of the one or more intersections, continuing the traversing the at least a portion of the third-dimension axis with the input event when an attribute associated with the respective intersected graphics region indicates the intersected region is insensitive to the input event.

4. The method of claim 1 , further comprising modifying event characteristics associated with the input event.

5. The method of claim 4 , wherein the event characteristics include at least one of: an originating region, a type, a direction, an attached list of rectangles, or event-specific data.

6. The method of claim 1 , wherein the input event represents at least one of:

a key press, keyboard state information, a mouse button press and release, a pointer motion, or a drag operation.

7. A system comprising:

a plurality of hardware layers, each of the hardware layers configured to store graphic content;

a layering hardware configured to composite the graphics content stored in the hardware layers;

a processor; and

a computer memory comprising instructions executable with the processor, the executable instructions comprising:

a configuring application executable to associate each two-dimensional graphics region of a set of a plurality of two-dimensional graphics regions with a respective one of the hardware layers, wherein a three-dimensional event space comprises the two-dimensional graphics regions ordered along a third-dimension axis; and

a windowing system application executable to receive an input event directed to the three-dimensional event space,

the windowing system application further executable to traverse at least a portion of the third-dimension axis with the input event,

the windowing system application further executable to determine one or more intersections of the input event with the two-dimensional graphics regions during a traversal of the at least the portion of the third-dimension axis,

the windowing system application further executable to, for each of the one or more intersections with a respective intersected graphics region:

determine, when the respective intersected graphics region is not associated with any of the hardware layers, whether the input event is to be processed by a software application associated with the graphics content of the respective intersected graphics region, and direct the input event to the software application when the windowing system determines that the input event is to be processed by the software application; and

direct, when the respective intersected graphics region is associated with any of the hardware layers, the input event to the software application associated with the graphics content of the respective intersected graphics region.

8. The system of claim 7 , wherein the windowing system application is further executable to receive, from the software application to which the input event was directed, an indication that the input event continue the traversal of the at least the portion of the third-dimension axis, and wherein the windowing system application is further executable to continue the traversal of the at least the portion of the third-dimension axis with the input event in response to receipt of the indication.

9. The system of claim 7 , wherein, for each of the one or more intersections, the windowing system application is further executable to continue the traversal of the at least the portion of the third-dimension axis with the input event when an attribute associated with the respective intersected graphics region indicates the respective intersected graphics region is insensitive to the input event.

10. The system of claim 7 , wherein the windowing system application is further executable to modify event characteristics associated with the input event.

11. The system of claim 10 , wherein the event characteristics include at least one of: an originating region, a type, a direction, an attached list of rectangles, or event specific data.

12. The system of claim 7 , wherein the input event represents at least one of: a key press, keyboard state information, a mouse button press and release, a pointer motion or a drag operation.

Assignments (18)
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 Aug 11, 2017
From: FRY, DARRIN; LIN, ANGELA; DONOHOE, DAVID
To: QNX SOFTWARE SYSTEMS LTD.
Reel/Frame 043266/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2017
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 043534/0158 →
CHANGE OF SEAT Recorded Aug 11, 2017
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 043572/0766 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2017
From: QNX SOFTWARE SYSTEMS LTD.
To: QNX SOFTWARE SYSTEMS
Reel/Frame 043266/0845 →
CHANGE OF NAME Recorded Aug 11, 2017
From: QNX SOFTWARE SYSTEMS
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 043534/0001 →
CHANGE OF ADDRESS Recorded Aug 11, 2017
From: QNX SOFTWARE SYSTEMS LIMITED
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 043529/0203 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2017
From: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 043267/0299 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2017
From: 7801769 CANADA INC.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 043267/0253 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2017
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: 7801769 CANADA INC.
Reel/Frame 043267/0192 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE CORPORATE IDENTIFIER INADVERTENTLY LISTED ON THE ASSIGNMENT AND COVERSHEET AS "LIMITED" PREVIOUSLY RECORDED ON REEL 035700 FRAME 0845. ASSIGNOR(S) HEREBY CONFIRMS THE IDENTIFIER SHOULD HAVE STATED "INC.". Recorded May 27, 2015
From: QNX SOFTWARE SYSTEMS LIMITED
To: 2236008 ONTARIO INC.
Reel/Frame 035785/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2015
From: QNX SOFTWARE SYSTEMS LIMITED
To: 2236008 ONTARIO LIMITED
Reel/Frame 035700/0845 →
Continuity (5)
Continuation 13858506 · Apr 8, 2013
Continuation 13326008 · Dec 14, 2011
Continuation 12940162 · Nov 5, 2010
Continuation 10928698 · Aug 30, 2004
Related Publication 20140143711A1 · May 22, 2014