PARTIAL DISPLAY UPDATES IN A WINDOWING SYSTEM USING A PROGRAMMABLE GRAPHICS PROCESSING UNIT
Techniques to generate partial display updates in a buffered window system in which arbitrary visual effects are permitted to any one or more windows (e.g., application-specific window buffers) are described. Once a display output region is identified for updating, the buffered window system is interrogated to determine which regions within each window, if any, may effect the identified output region. Such determination considers the consequences any filters associated with a window impose on the region needed to make the output update.
1 . A method to generate a display-wide visual effect, comprising:
copying an image buffer's contents into a second buffer;
causing the second buffer's contents to be filtered back into the image buffer through an application programming interface function to generate a specified visual effect, the second buffer associated with a system frame buffer, the application programming interface function using a graphics processing unit; and
compositing an application-specific window buffer into the image buffer, wherein the act of compositing is performed by the graphics processing unit after the act of filtering.
2 . The method of claim 1 , wherein the act of causing results in filtering less than all of the second buffer's contents.
3 . The method of claim 1 , wherein the specified visual effect comprises one or more of the following visual effects: color effects, distortion effects, stylized effects, composition effects, half-tone effects, transition effects, tile effects, gradient effects, sharpen effects and blur effects.
4 . The method of claim 1 , further comprising transferring contents of the image buffer to the system frame buffer after the act of compositing.
5 . A method to generate a display-wide visual effect, comprising:
causing the contents of an application specific window buffer and an image buffer to be filtered into a second buffer through an application programming interface function to generate a specified visual effect, the application programming interface function using a graphics processing unit; and
transferring, using the graphics processing unit, contents of the second buffer into the image buffer, the image buffer associated with a system frame buffer.
6 . The method of claim 5 , wherein the act of causing results in filtering less than all of the application specific window buffer's content.
7 . The method of claim 5 , wherein the specified visual effect comprises one or more of the following visual effects: color effects, distortion effects, stylized effects, composition effects, half-tone effects, transition effects, tile effects, gradient effects, sharpen effects and blur effects.
8 . A method to generate a display-wide visual effect, comprising:
compositing an application specific window buffer into an image buffer, the image buffer associated with a system frame buffer;
copying contents of the image buffer into a second buffer; and
causing the second buffer's contents to be filtered back into the image buffer through an application programming interface function to generate a specified visual effect, the application programming interface function using a graphics processing unit.
9 . The method of claim 8 , wherein the act of causing results in filtering less than all of the application specific window buffer's content.
10 . The method of claim 8 , wherein the specified visual effect comprises one or more of the following visual effects: color effects, distortion effects, stylized effects, composition effects, half-tone effects, transition effects, tile effects, gradient effects, sharpen effects and blur effects.
11 . A computer-readable medium having computer-executable instructions stored therein for performing the method recited in any one of claims 1 , 5 and 8 .
12 . A computer system, comprising:
a central processing unit;
memory, operatively coupled to the central processing unit, said memory adapted to provide a plurality of application-specific window buffers, at least one assembly buffer, and at least one frame buffer;
a display port operatively coupled to the frame buffer and adapted to couple to a display device;
a graphics processing unit, operatively coupled to the memory; and
one or more programs for causing the central processing unit and the graphics processing unit to perform the method recited in any of claims 1 , 5 or 8 .