Composite graphics rendered using multiple frame buffers
First Claim
1. A system for rendering application windows, comprising:
- a primary frame buffer for providing window data for output to a display device;
a secondary frame buffer for receiving window data from a plurality of applications;
a compositor configured to;
receive window data from a plurality of back buffers;
maintain first visible region data associated with window data in the secondary frame buffer;
maintain second visible region data associated with window data in the back buffers and window data in the secondary frame buffer; and
output to the primary frame buffer a final frame buffer content composited from the first visible region data and the second visible region data.
2 Assignments
0 Petitions
Accused Products
Abstract
A secondary frame buffer is provided for use by classic applications designed to paint directly to a frame buffer. Classic applications paint their windows to the secondary frame buffer, not to the primary frame buffer. A compositor reads window data from the secondary frame buffer and paints it to the primary frame buffer. The compositor also reads window data written to back buffers by other applications and paints that data to the primary frame buffer. Since the compositor maintains visible region data for all windows, the windows are correctly painted to the primary frame buffer whether they are from the back-buffered windows or from classic applications. In addition, optimizations in classic applications that cause classic windows to be inappropriately painted over newer style windows no longer have this effect, since the compositor is responsible for painting legacy windows to the frame buffer, not the applications themselves.
-
Citations
24 Claims
-
1. A system for rendering application windows, comprising:
-
a primary frame buffer for providing window data for output to a display device;
a secondary frame buffer for receiving window data from a plurality of applications;
a compositor configured to;
receive window data from a plurality of back buffers;
maintain first visible region data associated with window data in the secondary frame buffer;
maintain second visible region data associated with window data in the back buffers and window data in the secondary frame buffer; and
output to the primary frame buffer a final frame buffer content composited from the first visible region data and the second visible region data. - View Dependent Claims (2, 3, 4, 5, 10, 11, 12)
-
-
6. A computer program product for rendering application windows, the computer program product comprising a computer-readable medium containing computer program code comprising:
-
a primary frame buffer module for providing window data for output to a display device;
a secondary frame buffer module for receiving window data from a plurality of applications;
a compositor module, communicatively coupled to the primary frame buffer module and the secondary frame buffer module, configured to;
receive window data from a plurality of back buffers;
maintain first visible region data associated with window data in the secondary frame buffer;
maintain second visible region data associated with window data in the back buffers and window data in the secondary frame buffer; and
output to the primary frame buffer a final frame buffer content composited from the first visible region data and the second visible region data. - View Dependent Claims (7, 8, 9, 13)
-
-
14. A method for rendering application windows, comprising:
-
maintaining first visible region data associated with window data in a secondary frame buffer, the secondary frame buffer including window data from a plurality of applications;
maintaining second visible region data associated with window data received from a plurality of back buffers; and
outputting to a primary frame buffer a final frame buffer content composited from the first visible region data and the second visible region data. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A compositor for rendering application windows, the compositor comprising:
-
a receiving module for receiving window data from a plurality of back buffers;
a first visible region module for maintaining first visible region data associated with window data in a secondary frame buffer;
a second visible region module for maintaining second visible region data associated with window data in the back buffers and window data in the secondary frame buffer; and
an output module for outputting to a primary frame buffer a final frame buffer content composited from the first visible region data and the second visible region data.
-
-
22. A method for rendering application windows, the method comprising:
-
detecting a change in a geometry of a first window;
redrawing the first window;
for each of a plurality of lower windows located below the first window;
determining a visible area of the lower window;
determining whether the lower window is a classic window;
responsive to the lower window being a classic window, updating a classic visible regions list to include the visible area of the window;
outputting each lower window to a primary frame buffer in accordance with the determined visible area of the lower window. - View Dependent Claims (23, 24)
-
Specification