IP Library Granted Patent US 7,356,823
Granted Patent B2
US 7,356,823 · App. 10/967,444 · Granted Apr 8, 2008

Method for displaying single monitor applications on multiple monitors driven by a personal computer

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,356,823
App. No.
10/967,444
Granted
Apr 8, 2008
Kind
B2
Abstract

A direct access driver solves limitations of DirectX operation under the Microsoft architecture when using multiple monitors. The direct access driver allows applications employing DirectX application program interfaces to use hardware acceleration without display errors on the monitors. Display errors can occur if multiple frame buffer addresses are returned in response to “GetFrameBufferAddress” DirectX calls. A single address is returned for two or more frame buffers on a display driver card by performing, without the DirectX application's knowledge, background operations that track hardware acceleration demands from two or more graphic user interfaces and frame buffers. The background operations entail constantly changing the frame buffer pointers relative to the location of offscreen DirectX application data, while one or more DirectX applications are moved in the display space from monitor to monitor.

Claims (24)

1. A method of accessing multiple display frame buffers of one or more graphics adapters in a computer system, said computer system executing a software driver controlling access to said multiple frame buffers, said software driver providing a single device specific function to be used by applications for block transferring data from a source block to an identified frame buffer address, said method comprising:

receiving a request for invoking said single device specific function to transfer an identified source block to an identified frame buffer address;

in response to receiving said request, determining that said identified source block is to be transferred to a plurality of said multiple frame buffers, wherein said plurality of frame buffers form a virtual destination surface, each one of said plurality of frame buffers associated with a pair of offsets specifying its starting location in said virtual destination surface; and

for each one of said plurality of frame buffers,

a) determining a sub-block of said source block, and a destination block in said each frame buffer for said sub-block, wherein each one of said destination blocks is a rectangular block and said determining said destination block comprises:

(i) obtaining a first set of coordinates specifying starting and ending locations of said destination block in said virtual destination surface,

(ii) obtaining a second set of coordinates specifying starting and ending locations of said destination block in said each frame buffer, by subtracting the offsets for said each frame buffer from said first set of coordinates; and

b) calling said single device specific function of said software driver to transfer said sub-block to said destination block in said one of said plurality of frame buffers.

2. The method of claim 1 , wherein a sub-block and its corresponding destination block have different shapes.

3. The method of claim 1 , wherein said source block comprises one sub-block.

4. The method of claim 1 , wherein said source block is completely transferred to said plurality of frame buffers.

5. The method of claim 1 , wherein said source block is incompletely transferred.

6. The method of claim 1 , further comprising determining said plurality of frame buffers.

7. The method of claim 1 , wherein said source block is from a primary or secondary buffer of a double-buffered source surface.

8. Computer readable medium storing computer software that when loaded at a computing device, adapt said computing device to perform the method of claim 1 .

9. The method of claim 1 , wherein one of said plurality of buffers is associated with a pair of offsets that is not (0,0).

10. A computer system comprising one or more graphics adapters having multiple display frame buffers, said computer system storing and executing a software driver controlling access to said multiple frame buffers, said software driver providing a single device specific function to be used by applications for block transferring data from a source block to an identified frame buffer address, said computer system further storing and executing computer executable instructions adapting said computer system to:

receive a request for invoking said single device specific function of said software driver to transfer an identified source block to an identified frame buffer address;

in response to receiving said request, determine that said identified source block is to be transferred to a plurality of said multiple frame buffers, wherein said plurality of frame buffers form a virtual destination surface, each one of said plurality of frame buffers associated with a pair of offsets specifying its starting location in said virtual destination surface; and

for each one of said plurality of frame buffers,

a) determine a sub-block of said source block, and a destination block in said each frame buffer for said sub-block, wherein each one of said destination blocks is a rectangular block by:

(ii) obtaining a first set of coordinates specifying starting and ending locations of said destination block in said virtual destination surface,

(ii) obtaining a second set of coordinates specifying starting and ending locations of said destination block in said each frame buffer, by subtracting the offsets for said each frame buffer from said first set of coordinates; and

b) call said single device specific function of said software driver to transfer said sub-block to said destination block in said one of said plurality of frame buffers.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2015
From: ATI TECHNOLOGIES ULC
To: ADVANCED SILICON TECHNOLOGIES, LLC
Reel/Frame 036703/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2015
From: APPIAN GRAPHICS CORP.
To: ATI TECHNOLOGIES INC.
Reel/Frame 036620/0397 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2015
From: MARTYN, TOM C.
To: APPIAN GRAPHICS CORP.
Reel/Frame 036613/0619 →
CHANGE OF NAME Recorded Sep 21, 2015
From: ATI TECHNOLOGIES INC.
To: ATI TECHNOLOGIES ULC
Reel/Frame 036643/0220 →
CHANGE OF NAME Recorded Oct 25, 2007
From: ATI TECHNOLOGIES INC.
To: ATI TECHNOLOGIES ULC
Reel/Frame 020010/0917 →