CA1323450C - Depth buffer clipping for window management - Google Patents
Depth buffer clipping for window managementInfo
- Publication number
- CA1323450C CA1323450C CA000608710A CA608710A CA1323450C CA 1323450 C CA1323450 C CA 1323450C CA 000608710 A CA000608710 A CA 000608710A CA 608710 A CA608710 A CA 608710A CA 1323450 C CA1323450 C CA 1323450C
- Authority
- CA
- Canada
- Prior art keywords
- window
- subject matter
- depth
- buffer
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Image Generation (AREA)
- Digital Computer Display Output (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
DEPTH BUFFER CLIPPING FOR WINDOW MANAGEMENT
ABSTRACT
In a computer system having a display adapter, a refresh buffer and an interactive display terminal with a screen display on which is formed a plurality of at least partially overlapping windows, a depth buffer is added to the display adapter for providing clipping assistance to the software-based window manager in the CPU. The window manager is programmed to monitor the current depth position of each of the plurality of windows. In response to an input request for a rearrangement of the windows, the window manager assigns a new depth value to the subject matter associated with each affected window and requests that each application retransmit at least the affected subject matter. The depth buffer includes an array which stores the depth values of the subject matter associated with each of the windows being currently displayed on the screen. In response to the rearrangement request, depth buffer receives the new depth values for the subject matter associated with each affected window from the window manager and compares the current depth values. If the comparator determines that the new subject matter has a depth value associated with the same window or a window closer to the viewer, the depth buffer notifies the refresh buffer to store the newly transmitted subject matter from each of the applications being run on the CPU. In an alternative embodiment, two buffers are used to store the depth information associated with the subject matter in a window, i.e. a W-buffer to store the depth of each window relative to a reference point and a Z-buffer to store the depth of the subject matter within a window.
ABSTRACT
In a computer system having a display adapter, a refresh buffer and an interactive display terminal with a screen display on which is formed a plurality of at least partially overlapping windows, a depth buffer is added to the display adapter for providing clipping assistance to the software-based window manager in the CPU. The window manager is programmed to monitor the current depth position of each of the plurality of windows. In response to an input request for a rearrangement of the windows, the window manager assigns a new depth value to the subject matter associated with each affected window and requests that each application retransmit at least the affected subject matter. The depth buffer includes an array which stores the depth values of the subject matter associated with each of the windows being currently displayed on the screen. In response to the rearrangement request, depth buffer receives the new depth values for the subject matter associated with each affected window from the window manager and compares the current depth values. If the comparator determines that the new subject matter has a depth value associated with the same window or a window closer to the viewer, the depth buffer notifies the refresh buffer to store the newly transmitted subject matter from each of the applications being run on the CPU. In an alternative embodiment, two buffers are used to store the depth information associated with the subject matter in a window, i.e. a W-buffer to store the depth of each window relative to a reference point and a Z-buffer to store the depth of the subject matter within a window.
Description
~ 323450 DEPTH BUFFER CLIPPING FOR WINDOW MANAGEMENT
1. Technical Field.
The present invention relates to computer display windowing, and more specifically to providing hardware-based clipping systems to assist a software-based window manager.
1. Technical Field.
The present invention relates to computer display windowing, and more specifically to providing hardware-based clipping systems to assist a software-based window manager.
2. Background Art.
Recent developments in the`technology associated with data processor-controlled interactive display terminals have provided the operator with the capability of displaying the contents of several documents or records on a display terminal screen at the sama time. The contents are typically displayed in a plurality of often overlapping windows, wherein each window displays the contents of a particular document or computer file. U.S. Patent Nos.
4,586,035 and 4,714,918 are illustrative of the ~anner in which such overlapping windows are used in computer systems.
In a typical windowing system such as X-Windows , as described in X-WindoW5 User _uide and Reference for the IBM~RT PC~ 1987, a single physical screen is usad to display several windows in a "space-multiplexed" fashion. In the newer of such ~5 computer systems, several applications can be simultaneously run on the computer. Each application being run on the computer typically "owns" one or more windows on the display screen. Normally, the applications are independent of one another, and, accordingly, the contents of one screen~ are independent of the contents of the other screens.
The windows may be of different siæes and may ~, * Registered Trade Marks , partially or completely overlap.
The windows are typically under the control of a software-based display manager system which views the windows as a stack so that there is a total ordering of the windows with respect to depth. For example, at any given time, one window is on top, one is on the bottom and the other windows are orderèd somewhere in between. Since a window normally does not occupy the entire display area of a display screen and/or may be partly or totally obscured by other windows, applications running on multi-tasking computer systems having windowing capabilities normally are not allowed to write directly to the display adapter in order to generate displays associated with such applications.
Typically, the applications in such a computer system must request a window manager to transmit data to the display screen on its behalf. The so~tware-based window manager insures that the output for an application is written only to the window(s) owned by that application by "clipping"
the output request and discarding those portions of the graphic or text output from that application which would lie outside the window or portion a5 thereof formed on the screen for an application.
This clipping is normally done by a software-based utility program, and it can be very time-consuming.
Recently, there have been significant advancements in the field o~ interactive computer graphics to speed up the processing of data necessary to generate the complex computer-generated pictures representative of the present state of-the-art. Such techniques are des--ribed, for example, by J.D. Foley and ~ Van Dan in Fundamentals of Interactive Computer Gra~hics, Addison-Wesley, 1982. One of the techniques commonly used in the field of three-dimensional interactive computer graphics is a "Z-buffer". Particularly, a Z-buffer is a simple hardware device used to eliminate hidden lines and hidden surfaces when showing a computer-generated picture on a raster-scan display.
In the past, interactive computer graphic systems would normally used special-purpose computers to generate models of three dimensional objects typically consisting of many polygons. Each polygon had its own location and orientation in three dimensional space, as well as its own color and intensity information.
The display of a three-dimensional object by a computer system typically requires computing a color/intensity value for each pixel~ For a given orientation o~ the object being viewed on a screen, a pixel on the display screen may potentially come from mora than one polygon in the object. The pixel value that is displayed on such systems is fro~ the polygon which is "in front of" any other polygons in the line of sight from the viewex through the pixel in question.
Nhen a picture of a three dimensional object is displayed in such computer graphic systems, the polygons making up the object are processed in some order~ This order may be the natural order in which ~he polygons are encountered; which depends on the way tha data structure defining the objecb is constructed, or it may be sorted in some way to make the output process simpler. For example, the polygons may be sorted by depth (z-value) so that t~ose polygons which are further from the observer :
-:
.
.
~ 323450 are encountered first. This sorting is typically done in computer graphic systems so that any particular scene may be displayed on a screen by processing the polygons in a sorted order and, for each polygon, inserting the proper values in the pixels covered by that polygon. A pixel may be written to several times, depending on how many polygons in any given three dimensional object overlap the point on the screen defined by the pixel. Since the polygons are sorted by depth, the last value written to any pixel will be the value for that pixel's closest polygon. In other words, those polygons which are nearest the observer will obscure polygons further back.
It has been found that sorting polygons by depth is usually not desirable because of the lengthy processing time involved and because the sorting was _ not fool-proof. For example, polygons which intersect one another or which overlap one another ~0 in complicated ways in three dimensional space cannot necessarily be sorted based upon one z-value; rather, sorting actually needs to be done for each pixel if the sorting is to be completely accurate. If the object is rotated, is moved with respect to the background, or is moved with respect to other objects in the screen, or if the viewpoint of the observer changes, then the sort must be done again~ ` -It has been ~ound that in such three-dimensional computer graphics applications, the use o~ a Z-buffer avoids the need for any type of sort by saving the depth information (z-value) for each pixel along with the color/intensity value. See Foley and Van Dan at pp. 5~0-~61.~ The~use of a Z-:
~T~-88-054 :: ~ :
buffer, thus, allows polygons making up a scene to be processed in any order because depth information is tracked per pixel rather than per polygon.
Accordingly, strange overlappings of polygons and intersecting polygons will not have an adverse effect on generating the computer image.
The disadvantages associated with the time-consuming software clipping used in updating windows in computer systems having a shared display surface is overcome by the present invention by the addition of a hardware-based depth buffer for windows in the conventional display adapter. The present invention also reduces the time needed to update or rearrange the windows by allowing a particular application to be given direct access to the display adapter of the computer system, while insuring the integrity of the subject matter on windows belonging to other applications being run on the computer system.
DISCLOSURE OF THE INVENTION
~0 The present invention provides for a new and improved method of and system for updating and rearranging windows in a computer system having a refresh buffer and an interactive display terminal with a screen display on which is formed a plurality o~ at least partially overlapping windows, wherein each window currently displays subject matter different fr~m that displayed on the remainder of the screen. The improvement includes an input device for re~uesting a rearrangement of the depth positions of the plurality of overlapping windows relative to a reference position from a current arrangement to a new arrangemant, a window manager for sensing the current depth position of each of the plurality of overlapping windows and assigning a depth value to .
: ~ :
the subject matter currently associated wi~h each of the plurality of overlapping windows. In response to an input request, the window manager also determines a new depth position for the new window arrangement, assigns a new depth value to the position of the subject matter associated with each window which is a~fected by the input request, and notifies any affected application to retransmit those portions of the subject matter being displayed on the screen which will be affected by the input request.
Preferably, the subject matter associated with each of the windows is defined as an array of pixel values havin~ specific pixel addresses.
The computer system includes a depth buffer for receiving and storing the depth values of the subject matter associated with each of the overlapping screens currently being displayed on the screen. In response to the retransmission of subject matter from the affected applications and ~0 the depth values associated therewith in response to the input request, a comparator in the depth buffer compares the depth values for the newly transmitted subject matter to the depth values for the subject ~attex being currently displayed on the screen. If ~5 the new subject matter has a depth value associated with the same window or a window closer to the viewer, the buffer notifies the refresh buffer to store the new subject matter for the purpose of refreshing the screen and notifies the depth buffer to store the new depth values.
The present invention may be implemented in several alternative hardware configurations. In one configuration, a depth value associated with the subj~ect matter in a window is a concatenation of the ' window depth position and the depth value of the subject matter within the window. The depth buffer then compares the new concatenated value with the current concatenated value to determine whether thP
refresh buffer and depth bu~fer should store thP new subject matter and depth values, respectively.
In another embodiment, the depth buffer includes a window depth table which stores the current depth position as~ociated with each window identification.
In this embodiment, the window manager, in response to an input request, outputs new pixel depth values for each window identification listed in the window depth table. The comparator then reads from the window depth table the depth value o~ the window identification for each pixel density currently in the depth buffer and the depth value for the new window identification and compares the respective depth values obtained from the window depth table.
In another embodiment of the present invention, the depth buffer includes a first and second comparator wherein the first comparator compares the new window identification with the current window identification and the second comparator compares the pixel depth value associated with each current window 25 identification with the new pixel depth value associated with the new window identification. If the first comparator determines that the current window and new window identifications are equal and the second comparator determines that the new pixel value is less than or equal to the current pixel value, a logic unit coupled to the outputs of the first and second comparators notifies the refresh buffer to store the new pixel values and notifies the depth buffer to store the new window identification.
~r9-88-054 , t 323450 In another embodimen~, the depth buffer includes both a first buffer array and a second buffer array, wherein the first buf~er array stores the current window identification for the subject matter being displayed on each of the overlapping windows and the second buffer array stores the current pixel depth value of the subject matter being displayed on each of the overlapping windows. The depth buffer also includes a first comparator coupled to the first buffer array for comparing the new window identification with the current window identification wherein, if the current and new window identifications are the same, the first comparator outputs an enable signal. The second comparator is coupled to the second buffer array for comparing the current pixel depth value with the new pixel depth value upon receiving the enable signal from the first comparator. If the new pixel depth value is less than or equal to the current pixel depth value, the second comparator outputs a signal to the first and second buffer array which notifies the first buffer array to store the new window identification and the second buffer array to store the new depth value.
In another embodiment of the present invention applicable to two-dimensional images within each of a plurality of overlapping windows, the depth value associated with the subject matter within a window on a screen comprises only a window identification wherein the depth buffer stores only the current window identification. In response to an~ input re~uest, the window manager outputs a new window identification to the depth buffer wherein the `comparator in the depth buffer compares the~window identification of the newly transmltted subject~
:
:
~ .
~ 323450 matter to the window identification of the currently displayed subject matter. If the new window identification identifies the same window or a window closer to the viewer, the comparator outputs signals to the refresh buffer and depth buffer to direct the refresh buffer to stora the new subject matter for refreshing the screen displa~ with the n~w subject matter and to direct the depth buffer to store new window identifications.
BRIEF DESCRIP~ION OF THE DRAWINGS
Fig. 1 is a generalized diagrammic representation of the conventional computer system which may be adapted to the practice of the present invention.
Fig. 2 is a diagrammic representation of the interactive display portion of the computer system which may be adapted to practice the present invention.
Fig. 3 illustrates the combination of logic units associated with forming a plurality of at least partially overlapping windows on an interactive display monitor for use with the present invention.
Fig. 4A illustrates the initial position of a plurality of at least partially overlapping windows ~5 on a screen display.
Fig. 4B illustrates the reordering of the plurality of at least partially overlapping windows o~ Fig. 4A when the top window is moved to the bottom.
Fig. 5 is a diagrammic representation of the display adapter which may be utilized in the practice of the present invention. ~
Fig. 6 is a diagrammic representation of the Z-buffer system which may be utilized; in one , ~ 3~3450 embodiment of the present invention.
Fig. 7A illustrates the relative position of a stack of at least par~ially overlapping windows on a screen display, together with a stylized grid of pixel values representative of the depth of the subject matter being displayed on the screen;
Fig. 7B illustrates a screen display of the reordering of the windows in 7A, together with a stylized grid of pixel values representative of the changes in the depth of the subject matter being displayed on the screen which are generated by the window manager in the first embodiment of the present invention.
Fig. 8 is a diagrammic representation of a second embodiment of the Z-buffer system which may be used to practice the present invention.
Fig. 9A illustrates the relative position of a plurality of at least partially overlapping windows on the screen of the display monitor, together with a grid of pixels representative of the window identification of the subject matter being displayed;
Fig. 9B illustrates a show screen display of the reordered windows of Fib.9A, together with a stylizad grid of pixels representative of the window identification of the subject matter being displayed on the screen which are changed by the window manager in the second embodiment of the present invention.
Fig~ 10 is a diagrammic representation of a third embodiment of the Z-buffer system which may be used to practice the present invention.
Fig. llA illustrates a plurality of at least partially overlapping windows on the display screen of a display monitor, together with stylized grid o~ pixels representative of the ~indow identification of the subject matter being displayed on the screen.
Fig. llB illustrates a screen display wherein the windows o~ Fig. llA are reordered, together with a stylized grid of pixels representative of the changes in the window identification of the subject matter being displayed on the screen which is changed by the window manager in the third embodiment of the present invention.
Fig. 12 is a diagrammic representation of a fourth embodiment of the Z-buffer system which may be used to practice the present invention.
BEST MODE FOR CARRYING OUT THE INVENTION
For a more detailed understanding of the present invention, reference is made to Fig. 1, which illustrate the major components of the prior art computer system which may be adapted to accomplish the ~ethod of the present invention. The CPU 2 of the conventional computer system is supported by system memory 4 in which all of the applications programming is stored. In recent prior art computer systems, the CPU 2 can run two or more applications concurrently. The CPU 2, in combination with memory 4, controls a display unit 6. The computer system typically has supplemental disk storage 8. Input to ~5 the system may be accomplished through a keyboard 10, ~hich may bs used to input a specific command or ~hich may be used to move the cursor on the display screen of the display unit 6 to a menu-based command.
Alternatively, an input command may be received~ from another input unit 12, a mouse for example. The elements in this computer system are interconnected over a systeill bus 14.
::
, 1 323~50 A computer system which may be adapted to form the apparatus and method of the present invention includes an IBM RT PC having a CPU based on reduced instruction set architecture (RISC) supported by 2 MB
or more of memory and Version 2.2 or later of the AIX**operating system. For some embodiments, an IBM
PS/2* having a conventional Intel* 80286 or 80386 microprocessor supported by an OS/2* operating system and 1 NB or more units of memory may be used.
The system logic and apparatus in such computer systems are shown in more detail in Figs. 2 and 3.
In Fig. 2, an input may be provided through a conventional input adapter 12, which is connected to the computer system though an input driver 14, which has the conventional apparatus and logic required to interface the input operations to the particular data processing system implementing the present invention.
The driver 14 serves the function of converting the signals received from the input adapter to data which ~0 is operable within the present invention.
Routines and logical operations required for the present invention are usually supervised by an applications supervisor unit 16, which will be subsquently described. Changes to the display 6 are a5 controlled by a display manager 18, which co~municates with a displa~ monitor 20 through a display adapter 22. The display adapter 22 adapts or converts the commands from the display manager to signals whiah are more readily usable by the display monitor 20.
* Registered Trade Marks ** Trade Mark of International Business Machine~ Corp.
AT9-88-054 ~ ~
. .
.
~ 32345~
The software for implemen~ing the present invention is stored in memory 4 and carried out under the direction of the application supervisor unit 16, which is typically also stored in memory 4 S under the control of CPU 2. This software will now be described in more detail with respect to Fig~ 3.
In recent computer systems, numerous applications designated application "A", 18, through application "n", 20, can be operated concurrently.
Output of each of these different applications may be viewed on different windows "A, B, C, D, ....n"
formed on the interactive screen display monitor 20, and designated 28, 30, 32 and 34, respectively, in Fig. 4. The user of the computer system interfaces with each application through the input adapter 12 and the corresponding input driver 14 to application user interfaces 22 and 24 for applications A and "n", respectively. The interfaces typically also contain a ~conventional echo manager which directly conveys the input commands directly with the resulting display changes for a particular window to the display manager 18 over bus 20. The application supervisor unit 16 coordinates and multiplexes these various individual window operations and also exercises control over the display manager 18 through the application interface 26. The display manager 18 typically includes a window manager for controlIing the relative position of the overlapping windows as a result of inputs received via bus 20 from input driver 14.
In such computer systems having an interactive display 6 composed of a display monitor 20 and display adapter 22, the plurali~y of overlapping windows A, B, C, and D, formed on ths screen of the ~T9-88-054 :
monitorj such as shown in Fig. 4, wherein each window displays subject matter originating from different applications, e.g. A, B, C, and D, run simultaneously on CPU 2. In effect, each application l'owns" a window on the screen. Normally the applications are independent of one another so the contents of one window h~ve nothing to do with the contents of another window owned by a different application. The windows may be of different sizes and may overlap, as shown in Fig. 4.
In order to change the relative position of the windows, the user inputs a request through input U-lit 12. For example, if the user wishes to push the top window A to the bottom, window B becomes the new top window. All of window B is now visible and part of window C which was obscured by window A is now visible as well. When all or part of the window becomes visible or "is exposed", the application which owns the window is notified by the window ~0 manager that it must regenerate part or all of the contents being displaced on its window. It is each application's responsibility to rewrite the part of the window that was newly exposed. Optionally, each application can simply rewrite its entire window.
~5 In the present example (Fig. 4), the application for window B 30 must at least rewrite the upper-left portion of its window B and the application for ~indow C must do the same with a small part of the upper-left part of its window C. Because each window does not occupy the entire displày screen, it~
may be partly or totally obscured by the other windows. ~ ~
Each application is not~ allowed~ to write directly to the display adapter Z2 in order to ~: :
:
,.: ~ ' .
~ 323450 generate a display associated with each application.
Rather, each of the applications A, B, C, and D must request the window manager to transmit data to the display adapter 22 for refreshing its portion of the display screen on that particular application!s behalf. The software-based window mana~er thu~
insures that the output for a given applica~ion i-s written only to the window(s) owned by the application by "clipping" the output for -that particular application which is partly or totally obscured by other windows. This clipping has, in the past, been done by software and is quite time-consuming.
The outputted subject matter from each application A, B, C, and D, are transmitted over the bus 14 to a special processor 36 in the displày adapter which controls the operations of the display adapter 22. The special processor 22 has associated dedicated memory 38 for storing data on which it ~0 operates. The processor converts the subject matter transmitted from the CPU 2 into a two-dimensional array of pixel values having specific pixel addresses which relate to specific points on the display screen, wherein those portions of the ~5 transmitted subject matter of each application which is obscured by a partial or overlapping window of another application has already been clipped. The special proaessor then conveys this clipped data, in its converted form, over a bus 40 to a frame or refresh buffer 42. The frame buffer or refresh buffer 42, typically a RAM array, stores the pixel values in digital form in the relative location at which they will appear on the actual screen of the display monitGr 20. Thése pixel values are then converted by display controller 44 to signals which are used to project a representation of the subject matter onto the display monitor 20. Typically, the display must be refreshed by the retransmission of the pixel values located in the frame buffer 42 every l/30 or 1/60 of a second.
In the computer system of the present invention a novel 3-buffer subsystem is added to the display adapter 22 to substantially reduce the amount of software clipping that the window manager must per~orm while giving a computer application direct access to the display adapter 22. In effect, the software-based window manager treats each of the windows as a polygon in ~hree-dimensional space.
For the specific windowing purposes desired by the present invention, each polygon is parallel to the plane of the bac~ground and orthogonal to the line of sight of the user; thus, a single depth value serves for each polygon. Accordingly, no two polygons or "windows" have the same depth, so there is never an ambiguity about which polygon is "in front" when computing the value of a pixel. It should be noted, however, that this invention can be adapted to windowing systems wherein the subject matter being displayed in each window constitutes a subject matter situated in three-dimensional space.
Five alternative embodiments of a Z-buffer system 4~ to assist a window manager are set out in more detail below. In each embodiment, the window manager of the display manager 18 decides on the new ordering (top to bottom~ of the windows A, B, C, and D, make some adjustments to the window depth entries to be stored in the Z-buffer system in the display adapter 22 and then notifies each affected :
:;
.
~ 323450 application being run on the CPU 2 that all or part of its window must be redrawnO Each application running on the CPU 2 then transmits the subject matter through ~he display adapter 22 so that the windows associated with the application can be redrawn. The Z-buffer system 46 provides the clipping that the window manager provided in prior art computer systems.
In each embodiment, the Z-buffer system 46 implements a "Z-buffer algorithm". The algorithm implemented in the Z-buffer system 46 may be as ~ollows:
(A) I n it ia 1 iz e all the pixel values~intensity values C[X, Y) to "background".
(B) Initialize all the Z-buffer values Z(x, y) to the largest representable (farthest away) Z-value.
~C) For each polygon (window) on the ~0 display screen:
For each pixel p(x, y) in the polygon:
* Compute Cp, the pixel's color/intensity value;
~S * Compute Zp, the pixel's z-value: and * If Zp, is less than or equal to Z(x, y), then:
o S t o r e n e w color/intensity value:
C (x, y) ~ Cp o Store new z-value: Z(x, Y)~ 3p '' ::
~ 3~3~
In the first embodiment (Fig. 6), the Z-buffer system 46 comprises a romparator 50 and a Z-buffer array ~1, which contains the current Z-buffer depth values for the subject matter on the screen. Each Z-buffer value is specifically associated with a pixel color/intensity value having a specific pixel address based upon its relative position in the two-dimensional array formed by the frame buffer 42. The existing stored depth value contains both the depth o~ the window formed on the screen relative to the "background" reference position, which is typically the position farthest away from the viewer, and the depth of the particular pixel within the window in which the pixel is located.
For the purpose of storage within the Z-buffer array 51, the depth value is formed by concatenating thP window depth with the pixel depth within the window. For example, in a register 48 for storing an existing pixel value from the Z-buffer array 51 for 20 use in the comparator 50, the window depth occupies the higher bit positions 52 and the pixel depth ~ithin the window is stored in the lower bit positions 53 so that all pixels in a given window are considered to ba in front of all pixels associated with a window lower in the stack. It should be notad, however, that for most applications, the individual pixel depth within the window is a constant.
In response to a request through the input device 12 to rearrange the windows on the display screen, the window manager determines the new relative depth positions of the plurality of windows A, B, C, and D, assigns a buffer depth value to each pixel in the frame buffer 42, and notifies each ~ 323450 application whose display is affected ~Q retransmit either all of the subject matter associated with its display or at least the portion thereof which has been affected by the proposed screen rearrangement.
The window manager then transmits the regenerated subject matter to thè display adapter 22 for conversion into pixel values which can be stored in buffer register 56, together with its corresponding pixel address to register 58 and its corresponding Z~buffer depth value to register 54.
For each pixel address, a conventional comparator 60 compares the new Z-buffer depth value from window register 54 to the existing Z-buffer depth value transferred into register 48 from its location in the 1~ Z-buffer array 46.
If the new Z-buffer depth value is larger than the existing Z-buffer depth value the comparator 60 directs the frame buffer 42 to ignore the "write"
command from the window manager. In the event the new Z-buffer depth value is less than or equal to the existing Z-buffer depth value, the comparator 60 outputs a signal to the frame buffer 42 which notifies it to store the new pixel value at the given pixel address and also outputs a signal to the Z-buffer array to notify it to store the new Z-buffer depth value. This process is continued until each existing Z-buffer depth value associated with each affected pixel address in the frame buffer 42 is compared to a new Z-buffer depth value for that address.
Thus, the Z-buffer system 46 of the first embodiment achieves the goal of allowing the Z~
buffer system 46 to do the "clipping" for the window manager. As long as the "wrlte"~request from the t 32345~
window manager contains the Z-buffer depth value appropriate for the window associated with a particular application, the Z-buffer system 46 insures that only those pixels which are actually visible for the window are updated. In this embodiment, however, it is somewhat time-consuming for the window manager to change the relative stacking order of ~he windows. Fig. 7A shows the relative position of stacked windows A, B, C, and D
on the screen of the display monitor 20 of the present invention, together with a stylized 9 x 8 grid of pixels representative of the subject matter being displayed on the screen wherein the numbers associated with each pixel position correspond to the depth of the associated window in which that particular pixel is located, e.g., 0, 1, 2, 3, and 4, for example. Fig. 7B shows a screen display of the same windows, except that window B has been pushed to the botton requiring that the depth values associated with all the pixels and all the windows must be updated be~ore the windows can be withdrawn for the new window arrangement. A corresponding stylized 9 x 8 grid of pixels representative of the new windows positions is shown below the screen in ~5 Fig. 7B. The pixels that must be updated when moving the window A to the bottom of the stack of windows are shown in boldface in the stylized grid of Fig.
7B~ :
In the second embodimènt (FigO 8), the Z-buffer array 66 also contains the current Z-buffèr depth ~alue for the subject matter on the screen; however, the existing stored depth value is ~specified in a different matter from that in the first embodiment.
In the second embodiment, the existing stored depth ' value contains both a window identification integer which identifies the particular window A, 8, C, or D
and a pixel depth value within the window formed on the screen. The window depth is then obtained by using the window identification integer as an index to a window depth table 68 containing the depth of each window relative to the referenced position.
Preferably, the window depth table is a conventional RP*I array.
Considering the second embodiment in more detail, the window manager, in response to a request from the input device 12 to rearrange the windows on the screen display, determines the new relative depth positions of the plurality of windows A/ BJ C~ and D, assigns a new window depth value to each window and transmits the new window depth value to the window depth table 68. The window manager also notifies each application whose display is affected to retransmit either all of the subject matter associated with its display or at least the portion thereof which has been affected by the proposed screen rearrangement.
The transmitted subject matter is routed to the display adapter 22 for conversion into an array of pixel values by the processor 36 wherein each pixel can be sequentially stored in register 56, together with its corresponding pixel address in register 58, in the same manner as in the first embodiment. The ~indow manager, however, transmits a different depth value to register 70 from that transferred to register 54 in the first embodiment, in that a window identification integer, rather than a true` depth valuer is stored in the higher bit positions 72 of register 70 and the pixel depth associated with the :
: ~ ~
1 ~23450 particular window is stored in lower bit positions 74.
In a corresponding manner, register 76 receives an existing depth value from Z-buffer array 66 for the particular pixel location wherein the value comprises a window identification integer in the higher bit positions of register 76 and a pixel depth within the window in the lower bit positions of register 76.
In the second embodiment, the Z-buffer depth values contained in registers 74 and 76 are then modified hy substituting the appropriate depth value for each window identification from window depth table 68 prior to the Z-buffer value being stored in registers 78 and 80, respectively. A conventional comparator 82 then compares the new Z-buffer depth value in register 7~ with the existing Z-buffer depth value in register 80. If the new value in register 78 is greater than the existing value of register 80, ~0 the comparator 82 instructs the frame buffer 42 to ignore the write command from the window manager and the particular pixel value for the particular pixel address is not updated. In the event the new value in register 78 is less than or equal to the existing value in register 80, the comparator 82 notifies the frame buffer 42 to accept the new pixel value at the particular pixel address and also notifies the Z-buffer 66 to update the particular Z-buffer value for the particular pixel address.
It should be noted that it is not nècessary to change all the depth values for all pixel Iocations in the Z-buffer 66. For example, for an 8 bit window identification, at most only 256 window depth table entries must be changed. Whereas, if the :
: .
, ' windows cover most of the screen display surface on a 1024 x 1024 pixel display, about l million Z-buffer entries would have to be changed under the first embodiment. In order to obtain this benefit, however, the additional window buffer table 68 is required.
In order for table 68 not to cause a delay in updating the frame buffer and Z-buffer, the table 68 must read the window identification integers in registers 70 and 76 and transmit corresponding true depth values to registers 78 and 80 very rapidly.
In fact, the processing must be at the same rate at which pixels are drawn. If the table 68 is implemented as another stage in the graphics lS pipeline, it will add slightly to the latency needed for the first pixel of an operation to appear, but it will not slow down the rate of drawing pixels.
Figs. 9A and 9B show how the window identification portion of the depth value for the pixels change as window A is pushed from the top to the bottom. It should be noted that although some values have changed, they are not shown in boldface because they are not changed by the window manager, as was the case in the first embodiment. In this ~5 example, the window manager changed only the few entries in the window depth table (4 in this particular case). Window identification integers in the Z-buffer are then changed automatically as applications B and C redraw the windows by virtue of the new depth values in the window depth table 6~.
In the third embodiment, the Z-buffer array 88 also contains a depth value consisting of a window identification integer and a pixel depth within the~
window for each pixel. Instead of a window depth . :
7 3?345Q
table, however, the third embodiment uses a direct comparison of the new window identification integer sent to register 90 with the existing window depth value transferred from the Z-buffer array as to register 92. The window identification integers for registers 90 and 92 are stored in the higher order bit locations and the pixel depth values are stored in the lower bit positions in a like manner to that in the other embodiments. Considering the third embodiment in more detail, the existing window identification integer from register 92 and the window identification integer from register so are read by a conventional comparator 94. If the comparator 94 determines that the window identifications are equal, it outputs an enable signal to an AND gate ~6. In addition, the existing pixel depth value in register 92 is compared to the new pixel depth value from register 90 in a conventional comparator 98. If the new pixel depth value is less than or e~ual to the old pixel depth value, the comparator 98 outputs an enable signal to the AND gate 96. If the AND gate 96 does not receive an enable signal from both comparator 94 and comparator 96, the AND gate instructs the frame ?5 buffer 42 and Z-buffer 88 to ignore the write command from the window manager. If the AND gate 96 receives enable signals from both the comparator 94 and the comparator ga, it instructs the Z-buffer to store tha new Z-buffer value 100 and instructs the frame buffer 42 to store the new pixel value 102 for the particular pixel location.
The Z-buffer of the third embodiment provides an advantage over the Z-buffer in the second embodiment in that a separate high speed window depth table is~
`
- , . . .
.
~ 323450 not needed. It should be noted that the comparisons by comparator 94 and compara~or 98 may proceed in parallel. The disadvantage of this scheme is that the window manager must explicitly change the ownership of pixels by storing new window identification integers in the Z-buffer 88 when the windows are rearranged.
~ Figs. llA and llB show how the Z-buffer values change as window A is pushed from the top to the bottom o~ the stack. The Z-buffer values modified by the window manager are shown in boldface. It should be noted, however, that significantly fewer Z-values must be modified with the Z-buffer system of the third embodiment than with respect to the first embodiment~ where all the pixels and all the windows required updating regardless of whether a window was in fact affected. In this embodiment, only the pixels in the overlapping areas of affected windows are updated.
~0 In the fourth embodiment, the window manager transfers information to the display adapter in the same manner as in the third embodiment, but the way in which it is organized in the display adapter 22 is different. Considering tha fourth embodiment in ~5 more detail, the display adapter 22 includes both a Z-bu~fer array 104 for storing the depth information of a pixel value within a window and a separa~e W-bu~er array 106 for storing the window identification integer associated with each pixel location. In this embodiment, the window manayer outputs the new window identification to register 108 in the display adapter. The associated pixel depth value within the wLndow is loaded by the~window manzger into register llO. Por any pixel loaation in~
:
:: : :
- t 323450 the sequence, the existing window identification integer from the W-buffer 106 is stored in register 112 and a corre~ponding pixel depth value from Z-buffer 104 is stored in register 114. A conventional comparator 116 then compares the new window identification integer from register 108 with the existing window identification integer from register 112. If the window identifications are not e~ual, the comparator 116 outputs a signal to the Z-buffer and frame buffer to instruct them to ignore the write command from the window manager. If the window identification integers from register 108 and register 114 are equal, however, the comparator 116 ~enerates an enable signal which is transmitted to a conventional comparator 118. Comparator 118 also compares the existing pixel depth value stored in register 114 with the new pixel depth value stored in register 110. If the new pixel depth value is greater than the existing pixel depth value, the comparator 118 outputs a command to the Z-buffer and frame buffer to ignore the write command from the window manager. In the event the new pixel depth value is less than or equal to the old pixel depth value and the comparator 118 has received an enable a~ signal from comparator 116, comparator 118 outputs an enable signal to instruct the Z-buffer 104 to store the new pixel depth value and instructs the frame buffer 42 to store the new pixel value.
The fourth embodiment provides an advantage over the third embodiment in that the window identifications need be transferred to the display adapter 22 only once for each group of graphics operations. In addition, the window manager's write~
access to the new window identification register 108 AT9-88-054 ~ ~
-, :
:
`' ' ~ , .
. . .
on the display adapter 22 can be restricted to supervisor-state pro~rams so that the register cannot be corrupted by application code. Once the ownership of the appropriate pixels has been set by the window manager and the proper window identification has been loaded to the register 108, it is possible to give the application program direct access to the display adapter 22 ~ith the knowledge that it cannot corrupt areas of the screen outside the window(s) that it o~ns, which can result in a significant savings in overhead. Although Fig. 12 shows the two comparisons proceeding sequentially, it should be noted that the two comparisons can be done in parallel. It should also be noted that the Z-values modified b~ the window manager are limited to the pixels as are shown for the third embodiment in Fig. llB.
In a fifth embodiment which may be suitable for the presentation of two-dimensional subject matter within each of the plurality of overlapping windows, the depth value associated with the subject matter within a window on a screen comprises only a window identification. The depth buffer array, therefore, stores only the existing window identification rather than a composite depth value comprising a window depth and a pixel depth within the window. In this embodiment, the window manager and the Z-buffer system disclosed for the first embodiment may be used with the following minor modifications. The Z-buffer array 51 and register 48 only store a window identification integer as the Z-buffer depth value and the window manager 22 outputs only a new w~ndow identification integer to register 54. In all other respects, the operations of the comparator 50 disclosed for the first embodiment operates in ~: ' ~ 32345~
substantially the same manner as previously described. Although the fifth embodiment may not be suitable for displaying complex subject matter within a window, it may be a simple solution for many types of window applications.
While the invention has been particularly shown and described with reference to the preferred e~bodiments, it will be understood by those skilled in the art that various other changes in form and detail may be made without departing from the spirit and scope of the invention.
:
: :
:
: ,:
Recent developments in the`technology associated with data processor-controlled interactive display terminals have provided the operator with the capability of displaying the contents of several documents or records on a display terminal screen at the sama time. The contents are typically displayed in a plurality of often overlapping windows, wherein each window displays the contents of a particular document or computer file. U.S. Patent Nos.
4,586,035 and 4,714,918 are illustrative of the ~anner in which such overlapping windows are used in computer systems.
In a typical windowing system such as X-Windows , as described in X-WindoW5 User _uide and Reference for the IBM~RT PC~ 1987, a single physical screen is usad to display several windows in a "space-multiplexed" fashion. In the newer of such ~5 computer systems, several applications can be simultaneously run on the computer. Each application being run on the computer typically "owns" one or more windows on the display screen. Normally, the applications are independent of one another, and, accordingly, the contents of one screen~ are independent of the contents of the other screens.
The windows may be of different siæes and may ~, * Registered Trade Marks , partially or completely overlap.
The windows are typically under the control of a software-based display manager system which views the windows as a stack so that there is a total ordering of the windows with respect to depth. For example, at any given time, one window is on top, one is on the bottom and the other windows are orderèd somewhere in between. Since a window normally does not occupy the entire display area of a display screen and/or may be partly or totally obscured by other windows, applications running on multi-tasking computer systems having windowing capabilities normally are not allowed to write directly to the display adapter in order to generate displays associated with such applications.
Typically, the applications in such a computer system must request a window manager to transmit data to the display screen on its behalf. The so~tware-based window manager insures that the output for an application is written only to the window(s) owned by that application by "clipping"
the output request and discarding those portions of the graphic or text output from that application which would lie outside the window or portion a5 thereof formed on the screen for an application.
This clipping is normally done by a software-based utility program, and it can be very time-consuming.
Recently, there have been significant advancements in the field o~ interactive computer graphics to speed up the processing of data necessary to generate the complex computer-generated pictures representative of the present state of-the-art. Such techniques are des--ribed, for example, by J.D. Foley and ~ Van Dan in Fundamentals of Interactive Computer Gra~hics, Addison-Wesley, 1982. One of the techniques commonly used in the field of three-dimensional interactive computer graphics is a "Z-buffer". Particularly, a Z-buffer is a simple hardware device used to eliminate hidden lines and hidden surfaces when showing a computer-generated picture on a raster-scan display.
In the past, interactive computer graphic systems would normally used special-purpose computers to generate models of three dimensional objects typically consisting of many polygons. Each polygon had its own location and orientation in three dimensional space, as well as its own color and intensity information.
The display of a three-dimensional object by a computer system typically requires computing a color/intensity value for each pixel~ For a given orientation o~ the object being viewed on a screen, a pixel on the display screen may potentially come from mora than one polygon in the object. The pixel value that is displayed on such systems is fro~ the polygon which is "in front of" any other polygons in the line of sight from the viewex through the pixel in question.
Nhen a picture of a three dimensional object is displayed in such computer graphic systems, the polygons making up the object are processed in some order~ This order may be the natural order in which ~he polygons are encountered; which depends on the way tha data structure defining the objecb is constructed, or it may be sorted in some way to make the output process simpler. For example, the polygons may be sorted by depth (z-value) so that t~ose polygons which are further from the observer :
-:
.
.
~ 323450 are encountered first. This sorting is typically done in computer graphic systems so that any particular scene may be displayed on a screen by processing the polygons in a sorted order and, for each polygon, inserting the proper values in the pixels covered by that polygon. A pixel may be written to several times, depending on how many polygons in any given three dimensional object overlap the point on the screen defined by the pixel. Since the polygons are sorted by depth, the last value written to any pixel will be the value for that pixel's closest polygon. In other words, those polygons which are nearest the observer will obscure polygons further back.
It has been found that sorting polygons by depth is usually not desirable because of the lengthy processing time involved and because the sorting was _ not fool-proof. For example, polygons which intersect one another or which overlap one another ~0 in complicated ways in three dimensional space cannot necessarily be sorted based upon one z-value; rather, sorting actually needs to be done for each pixel if the sorting is to be completely accurate. If the object is rotated, is moved with respect to the background, or is moved with respect to other objects in the screen, or if the viewpoint of the observer changes, then the sort must be done again~ ` -It has been ~ound that in such three-dimensional computer graphics applications, the use o~ a Z-buffer avoids the need for any type of sort by saving the depth information (z-value) for each pixel along with the color/intensity value. See Foley and Van Dan at pp. 5~0-~61.~ The~use of a Z-:
~T~-88-054 :: ~ :
buffer, thus, allows polygons making up a scene to be processed in any order because depth information is tracked per pixel rather than per polygon.
Accordingly, strange overlappings of polygons and intersecting polygons will not have an adverse effect on generating the computer image.
The disadvantages associated with the time-consuming software clipping used in updating windows in computer systems having a shared display surface is overcome by the present invention by the addition of a hardware-based depth buffer for windows in the conventional display adapter. The present invention also reduces the time needed to update or rearrange the windows by allowing a particular application to be given direct access to the display adapter of the computer system, while insuring the integrity of the subject matter on windows belonging to other applications being run on the computer system.
DISCLOSURE OF THE INVENTION
~0 The present invention provides for a new and improved method of and system for updating and rearranging windows in a computer system having a refresh buffer and an interactive display terminal with a screen display on which is formed a plurality o~ at least partially overlapping windows, wherein each window currently displays subject matter different fr~m that displayed on the remainder of the screen. The improvement includes an input device for re~uesting a rearrangement of the depth positions of the plurality of overlapping windows relative to a reference position from a current arrangement to a new arrangemant, a window manager for sensing the current depth position of each of the plurality of overlapping windows and assigning a depth value to .
: ~ :
the subject matter currently associated wi~h each of the plurality of overlapping windows. In response to an input request, the window manager also determines a new depth position for the new window arrangement, assigns a new depth value to the position of the subject matter associated with each window which is a~fected by the input request, and notifies any affected application to retransmit those portions of the subject matter being displayed on the screen which will be affected by the input request.
Preferably, the subject matter associated with each of the windows is defined as an array of pixel values havin~ specific pixel addresses.
The computer system includes a depth buffer for receiving and storing the depth values of the subject matter associated with each of the overlapping screens currently being displayed on the screen. In response to the retransmission of subject matter from the affected applications and ~0 the depth values associated therewith in response to the input request, a comparator in the depth buffer compares the depth values for the newly transmitted subject matter to the depth values for the subject ~attex being currently displayed on the screen. If ~5 the new subject matter has a depth value associated with the same window or a window closer to the viewer, the buffer notifies the refresh buffer to store the new subject matter for the purpose of refreshing the screen and notifies the depth buffer to store the new depth values.
The present invention may be implemented in several alternative hardware configurations. In one configuration, a depth value associated with the subj~ect matter in a window is a concatenation of the ' window depth position and the depth value of the subject matter within the window. The depth buffer then compares the new concatenated value with the current concatenated value to determine whether thP
refresh buffer and depth bu~fer should store thP new subject matter and depth values, respectively.
In another embodiment, the depth buffer includes a window depth table which stores the current depth position as~ociated with each window identification.
In this embodiment, the window manager, in response to an input request, outputs new pixel depth values for each window identification listed in the window depth table. The comparator then reads from the window depth table the depth value o~ the window identification for each pixel density currently in the depth buffer and the depth value for the new window identification and compares the respective depth values obtained from the window depth table.
In another embodiment of the present invention, the depth buffer includes a first and second comparator wherein the first comparator compares the new window identification with the current window identification and the second comparator compares the pixel depth value associated with each current window 25 identification with the new pixel depth value associated with the new window identification. If the first comparator determines that the current window and new window identifications are equal and the second comparator determines that the new pixel value is less than or equal to the current pixel value, a logic unit coupled to the outputs of the first and second comparators notifies the refresh buffer to store the new pixel values and notifies the depth buffer to store the new window identification.
~r9-88-054 , t 323450 In another embodimen~, the depth buffer includes both a first buffer array and a second buffer array, wherein the first buf~er array stores the current window identification for the subject matter being displayed on each of the overlapping windows and the second buffer array stores the current pixel depth value of the subject matter being displayed on each of the overlapping windows. The depth buffer also includes a first comparator coupled to the first buffer array for comparing the new window identification with the current window identification wherein, if the current and new window identifications are the same, the first comparator outputs an enable signal. The second comparator is coupled to the second buffer array for comparing the current pixel depth value with the new pixel depth value upon receiving the enable signal from the first comparator. If the new pixel depth value is less than or equal to the current pixel depth value, the second comparator outputs a signal to the first and second buffer array which notifies the first buffer array to store the new window identification and the second buffer array to store the new depth value.
In another embodiment of the present invention applicable to two-dimensional images within each of a plurality of overlapping windows, the depth value associated with the subject matter within a window on a screen comprises only a window identification wherein the depth buffer stores only the current window identification. In response to an~ input re~uest, the window manager outputs a new window identification to the depth buffer wherein the `comparator in the depth buffer compares the~window identification of the newly transmltted subject~
:
:
~ .
~ 323450 matter to the window identification of the currently displayed subject matter. If the new window identification identifies the same window or a window closer to the viewer, the comparator outputs signals to the refresh buffer and depth buffer to direct the refresh buffer to stora the new subject matter for refreshing the screen displa~ with the n~w subject matter and to direct the depth buffer to store new window identifications.
BRIEF DESCRIP~ION OF THE DRAWINGS
Fig. 1 is a generalized diagrammic representation of the conventional computer system which may be adapted to the practice of the present invention.
Fig. 2 is a diagrammic representation of the interactive display portion of the computer system which may be adapted to practice the present invention.
Fig. 3 illustrates the combination of logic units associated with forming a plurality of at least partially overlapping windows on an interactive display monitor for use with the present invention.
Fig. 4A illustrates the initial position of a plurality of at least partially overlapping windows ~5 on a screen display.
Fig. 4B illustrates the reordering of the plurality of at least partially overlapping windows o~ Fig. 4A when the top window is moved to the bottom.
Fig. 5 is a diagrammic representation of the display adapter which may be utilized in the practice of the present invention. ~
Fig. 6 is a diagrammic representation of the Z-buffer system which may be utilized; in one , ~ 3~3450 embodiment of the present invention.
Fig. 7A illustrates the relative position of a stack of at least par~ially overlapping windows on a screen display, together with a stylized grid of pixel values representative of the depth of the subject matter being displayed on the screen;
Fig. 7B illustrates a screen display of the reordering of the windows in 7A, together with a stylized grid of pixel values representative of the changes in the depth of the subject matter being displayed on the screen which are generated by the window manager in the first embodiment of the present invention.
Fig. 8 is a diagrammic representation of a second embodiment of the Z-buffer system which may be used to practice the present invention.
Fig. 9A illustrates the relative position of a plurality of at least partially overlapping windows on the screen of the display monitor, together with a grid of pixels representative of the window identification of the subject matter being displayed;
Fig. 9B illustrates a show screen display of the reordered windows of Fib.9A, together with a stylizad grid of pixels representative of the window identification of the subject matter being displayed on the screen which are changed by the window manager in the second embodiment of the present invention.
Fig~ 10 is a diagrammic representation of a third embodiment of the Z-buffer system which may be used to practice the present invention.
Fig. llA illustrates a plurality of at least partially overlapping windows on the display screen of a display monitor, together with stylized grid o~ pixels representative of the ~indow identification of the subject matter being displayed on the screen.
Fig. llB illustrates a screen display wherein the windows o~ Fig. llA are reordered, together with a stylized grid of pixels representative of the changes in the window identification of the subject matter being displayed on the screen which is changed by the window manager in the third embodiment of the present invention.
Fig. 12 is a diagrammic representation of a fourth embodiment of the Z-buffer system which may be used to practice the present invention.
BEST MODE FOR CARRYING OUT THE INVENTION
For a more detailed understanding of the present invention, reference is made to Fig. 1, which illustrate the major components of the prior art computer system which may be adapted to accomplish the ~ethod of the present invention. The CPU 2 of the conventional computer system is supported by system memory 4 in which all of the applications programming is stored. In recent prior art computer systems, the CPU 2 can run two or more applications concurrently. The CPU 2, in combination with memory 4, controls a display unit 6. The computer system typically has supplemental disk storage 8. Input to ~5 the system may be accomplished through a keyboard 10, ~hich may bs used to input a specific command or ~hich may be used to move the cursor on the display screen of the display unit 6 to a menu-based command.
Alternatively, an input command may be received~ from another input unit 12, a mouse for example. The elements in this computer system are interconnected over a systeill bus 14.
::
, 1 323~50 A computer system which may be adapted to form the apparatus and method of the present invention includes an IBM RT PC having a CPU based on reduced instruction set architecture (RISC) supported by 2 MB
or more of memory and Version 2.2 or later of the AIX**operating system. For some embodiments, an IBM
PS/2* having a conventional Intel* 80286 or 80386 microprocessor supported by an OS/2* operating system and 1 NB or more units of memory may be used.
The system logic and apparatus in such computer systems are shown in more detail in Figs. 2 and 3.
In Fig. 2, an input may be provided through a conventional input adapter 12, which is connected to the computer system though an input driver 14, which has the conventional apparatus and logic required to interface the input operations to the particular data processing system implementing the present invention.
The driver 14 serves the function of converting the signals received from the input adapter to data which ~0 is operable within the present invention.
Routines and logical operations required for the present invention are usually supervised by an applications supervisor unit 16, which will be subsquently described. Changes to the display 6 are a5 controlled by a display manager 18, which co~municates with a displa~ monitor 20 through a display adapter 22. The display adapter 22 adapts or converts the commands from the display manager to signals whiah are more readily usable by the display monitor 20.
* Registered Trade Marks ** Trade Mark of International Business Machine~ Corp.
AT9-88-054 ~ ~
. .
.
~ 32345~
The software for implemen~ing the present invention is stored in memory 4 and carried out under the direction of the application supervisor unit 16, which is typically also stored in memory 4 S under the control of CPU 2. This software will now be described in more detail with respect to Fig~ 3.
In recent computer systems, numerous applications designated application "A", 18, through application "n", 20, can be operated concurrently.
Output of each of these different applications may be viewed on different windows "A, B, C, D, ....n"
formed on the interactive screen display monitor 20, and designated 28, 30, 32 and 34, respectively, in Fig. 4. The user of the computer system interfaces with each application through the input adapter 12 and the corresponding input driver 14 to application user interfaces 22 and 24 for applications A and "n", respectively. The interfaces typically also contain a ~conventional echo manager which directly conveys the input commands directly with the resulting display changes for a particular window to the display manager 18 over bus 20. The application supervisor unit 16 coordinates and multiplexes these various individual window operations and also exercises control over the display manager 18 through the application interface 26. The display manager 18 typically includes a window manager for controlIing the relative position of the overlapping windows as a result of inputs received via bus 20 from input driver 14.
In such computer systems having an interactive display 6 composed of a display monitor 20 and display adapter 22, the plurali~y of overlapping windows A, B, C, and D, formed on ths screen of the ~T9-88-054 :
monitorj such as shown in Fig. 4, wherein each window displays subject matter originating from different applications, e.g. A, B, C, and D, run simultaneously on CPU 2. In effect, each application l'owns" a window on the screen. Normally the applications are independent of one another so the contents of one window h~ve nothing to do with the contents of another window owned by a different application. The windows may be of different sizes and may overlap, as shown in Fig. 4.
In order to change the relative position of the windows, the user inputs a request through input U-lit 12. For example, if the user wishes to push the top window A to the bottom, window B becomes the new top window. All of window B is now visible and part of window C which was obscured by window A is now visible as well. When all or part of the window becomes visible or "is exposed", the application which owns the window is notified by the window ~0 manager that it must regenerate part or all of the contents being displaced on its window. It is each application's responsibility to rewrite the part of the window that was newly exposed. Optionally, each application can simply rewrite its entire window.
~5 In the present example (Fig. 4), the application for window B 30 must at least rewrite the upper-left portion of its window B and the application for ~indow C must do the same with a small part of the upper-left part of its window C. Because each window does not occupy the entire displày screen, it~
may be partly or totally obscured by the other windows. ~ ~
Each application is not~ allowed~ to write directly to the display adapter Z2 in order to ~: :
:
,.: ~ ' .
~ 323450 generate a display associated with each application.
Rather, each of the applications A, B, C, and D must request the window manager to transmit data to the display adapter 22 for refreshing its portion of the display screen on that particular application!s behalf. The software-based window mana~er thu~
insures that the output for a given applica~ion i-s written only to the window(s) owned by the application by "clipping" the output for -that particular application which is partly or totally obscured by other windows. This clipping has, in the past, been done by software and is quite time-consuming.
The outputted subject matter from each application A, B, C, and D, are transmitted over the bus 14 to a special processor 36 in the displày adapter which controls the operations of the display adapter 22. The special processor 22 has associated dedicated memory 38 for storing data on which it ~0 operates. The processor converts the subject matter transmitted from the CPU 2 into a two-dimensional array of pixel values having specific pixel addresses which relate to specific points on the display screen, wherein those portions of the ~5 transmitted subject matter of each application which is obscured by a partial or overlapping window of another application has already been clipped. The special proaessor then conveys this clipped data, in its converted form, over a bus 40 to a frame or refresh buffer 42. The frame buffer or refresh buffer 42, typically a RAM array, stores the pixel values in digital form in the relative location at which they will appear on the actual screen of the display monitGr 20. Thése pixel values are then converted by display controller 44 to signals which are used to project a representation of the subject matter onto the display monitor 20. Typically, the display must be refreshed by the retransmission of the pixel values located in the frame buffer 42 every l/30 or 1/60 of a second.
In the computer system of the present invention a novel 3-buffer subsystem is added to the display adapter 22 to substantially reduce the amount of software clipping that the window manager must per~orm while giving a computer application direct access to the display adapter 22. In effect, the software-based window manager treats each of the windows as a polygon in ~hree-dimensional space.
For the specific windowing purposes desired by the present invention, each polygon is parallel to the plane of the bac~ground and orthogonal to the line of sight of the user; thus, a single depth value serves for each polygon. Accordingly, no two polygons or "windows" have the same depth, so there is never an ambiguity about which polygon is "in front" when computing the value of a pixel. It should be noted, however, that this invention can be adapted to windowing systems wherein the subject matter being displayed in each window constitutes a subject matter situated in three-dimensional space.
Five alternative embodiments of a Z-buffer system 4~ to assist a window manager are set out in more detail below. In each embodiment, the window manager of the display manager 18 decides on the new ordering (top to bottom~ of the windows A, B, C, and D, make some adjustments to the window depth entries to be stored in the Z-buffer system in the display adapter 22 and then notifies each affected :
:;
.
~ 323450 application being run on the CPU 2 that all or part of its window must be redrawnO Each application running on the CPU 2 then transmits the subject matter through ~he display adapter 22 so that the windows associated with the application can be redrawn. The Z-buffer system 46 provides the clipping that the window manager provided in prior art computer systems.
In each embodiment, the Z-buffer system 46 implements a "Z-buffer algorithm". The algorithm implemented in the Z-buffer system 46 may be as ~ollows:
(A) I n it ia 1 iz e all the pixel values~intensity values C[X, Y) to "background".
(B) Initialize all the Z-buffer values Z(x, y) to the largest representable (farthest away) Z-value.
~C) For each polygon (window) on the ~0 display screen:
For each pixel p(x, y) in the polygon:
* Compute Cp, the pixel's color/intensity value;
~S * Compute Zp, the pixel's z-value: and * If Zp, is less than or equal to Z(x, y), then:
o S t o r e n e w color/intensity value:
C (x, y) ~ Cp o Store new z-value: Z(x, Y)~ 3p '' ::
~ 3~3~
In the first embodiment (Fig. 6), the Z-buffer system 46 comprises a romparator 50 and a Z-buffer array ~1, which contains the current Z-buffer depth values for the subject matter on the screen. Each Z-buffer value is specifically associated with a pixel color/intensity value having a specific pixel address based upon its relative position in the two-dimensional array formed by the frame buffer 42. The existing stored depth value contains both the depth o~ the window formed on the screen relative to the "background" reference position, which is typically the position farthest away from the viewer, and the depth of the particular pixel within the window in which the pixel is located.
For the purpose of storage within the Z-buffer array 51, the depth value is formed by concatenating thP window depth with the pixel depth within the window. For example, in a register 48 for storing an existing pixel value from the Z-buffer array 51 for 20 use in the comparator 50, the window depth occupies the higher bit positions 52 and the pixel depth ~ithin the window is stored in the lower bit positions 53 so that all pixels in a given window are considered to ba in front of all pixels associated with a window lower in the stack. It should be notad, however, that for most applications, the individual pixel depth within the window is a constant.
In response to a request through the input device 12 to rearrange the windows on the display screen, the window manager determines the new relative depth positions of the plurality of windows A, B, C, and D, assigns a buffer depth value to each pixel in the frame buffer 42, and notifies each ~ 323450 application whose display is affected ~Q retransmit either all of the subject matter associated with its display or at least the portion thereof which has been affected by the proposed screen rearrangement.
The window manager then transmits the regenerated subject matter to thè display adapter 22 for conversion into pixel values which can be stored in buffer register 56, together with its corresponding pixel address to register 58 and its corresponding Z~buffer depth value to register 54.
For each pixel address, a conventional comparator 60 compares the new Z-buffer depth value from window register 54 to the existing Z-buffer depth value transferred into register 48 from its location in the 1~ Z-buffer array 46.
If the new Z-buffer depth value is larger than the existing Z-buffer depth value the comparator 60 directs the frame buffer 42 to ignore the "write"
command from the window manager. In the event the new Z-buffer depth value is less than or equal to the existing Z-buffer depth value, the comparator 60 outputs a signal to the frame buffer 42 which notifies it to store the new pixel value at the given pixel address and also outputs a signal to the Z-buffer array to notify it to store the new Z-buffer depth value. This process is continued until each existing Z-buffer depth value associated with each affected pixel address in the frame buffer 42 is compared to a new Z-buffer depth value for that address.
Thus, the Z-buffer system 46 of the first embodiment achieves the goal of allowing the Z~
buffer system 46 to do the "clipping" for the window manager. As long as the "wrlte"~request from the t 32345~
window manager contains the Z-buffer depth value appropriate for the window associated with a particular application, the Z-buffer system 46 insures that only those pixels which are actually visible for the window are updated. In this embodiment, however, it is somewhat time-consuming for the window manager to change the relative stacking order of ~he windows. Fig. 7A shows the relative position of stacked windows A, B, C, and D
on the screen of the display monitor 20 of the present invention, together with a stylized 9 x 8 grid of pixels representative of the subject matter being displayed on the screen wherein the numbers associated with each pixel position correspond to the depth of the associated window in which that particular pixel is located, e.g., 0, 1, 2, 3, and 4, for example. Fig. 7B shows a screen display of the same windows, except that window B has been pushed to the botton requiring that the depth values associated with all the pixels and all the windows must be updated be~ore the windows can be withdrawn for the new window arrangement. A corresponding stylized 9 x 8 grid of pixels representative of the new windows positions is shown below the screen in ~5 Fig. 7B. The pixels that must be updated when moving the window A to the bottom of the stack of windows are shown in boldface in the stylized grid of Fig.
7B~ :
In the second embodimènt (FigO 8), the Z-buffer array 66 also contains the current Z-buffèr depth ~alue for the subject matter on the screen; however, the existing stored depth value is ~specified in a different matter from that in the first embodiment.
In the second embodiment, the existing stored depth ' value contains both a window identification integer which identifies the particular window A, 8, C, or D
and a pixel depth value within the window formed on the screen. The window depth is then obtained by using the window identification integer as an index to a window depth table 68 containing the depth of each window relative to the referenced position.
Preferably, the window depth table is a conventional RP*I array.
Considering the second embodiment in more detail, the window manager, in response to a request from the input device 12 to rearrange the windows on the screen display, determines the new relative depth positions of the plurality of windows A/ BJ C~ and D, assigns a new window depth value to each window and transmits the new window depth value to the window depth table 68. The window manager also notifies each application whose display is affected to retransmit either all of the subject matter associated with its display or at least the portion thereof which has been affected by the proposed screen rearrangement.
The transmitted subject matter is routed to the display adapter 22 for conversion into an array of pixel values by the processor 36 wherein each pixel can be sequentially stored in register 56, together with its corresponding pixel address in register 58, in the same manner as in the first embodiment. The ~indow manager, however, transmits a different depth value to register 70 from that transferred to register 54 in the first embodiment, in that a window identification integer, rather than a true` depth valuer is stored in the higher bit positions 72 of register 70 and the pixel depth associated with the :
: ~ ~
1 ~23450 particular window is stored in lower bit positions 74.
In a corresponding manner, register 76 receives an existing depth value from Z-buffer array 66 for the particular pixel location wherein the value comprises a window identification integer in the higher bit positions of register 76 and a pixel depth within the window in the lower bit positions of register 76.
In the second embodiment, the Z-buffer depth values contained in registers 74 and 76 are then modified hy substituting the appropriate depth value for each window identification from window depth table 68 prior to the Z-buffer value being stored in registers 78 and 80, respectively. A conventional comparator 82 then compares the new Z-buffer depth value in register 7~ with the existing Z-buffer depth value in register 80. If the new value in register 78 is greater than the existing value of register 80, ~0 the comparator 82 instructs the frame buffer 42 to ignore the write command from the window manager and the particular pixel value for the particular pixel address is not updated. In the event the new value in register 78 is less than or equal to the existing value in register 80, the comparator 82 notifies the frame buffer 42 to accept the new pixel value at the particular pixel address and also notifies the Z-buffer 66 to update the particular Z-buffer value for the particular pixel address.
It should be noted that it is not nècessary to change all the depth values for all pixel Iocations in the Z-buffer 66. For example, for an 8 bit window identification, at most only 256 window depth table entries must be changed. Whereas, if the :
: .
, ' windows cover most of the screen display surface on a 1024 x 1024 pixel display, about l million Z-buffer entries would have to be changed under the first embodiment. In order to obtain this benefit, however, the additional window buffer table 68 is required.
In order for table 68 not to cause a delay in updating the frame buffer and Z-buffer, the table 68 must read the window identification integers in registers 70 and 76 and transmit corresponding true depth values to registers 78 and 80 very rapidly.
In fact, the processing must be at the same rate at which pixels are drawn. If the table 68 is implemented as another stage in the graphics lS pipeline, it will add slightly to the latency needed for the first pixel of an operation to appear, but it will not slow down the rate of drawing pixels.
Figs. 9A and 9B show how the window identification portion of the depth value for the pixels change as window A is pushed from the top to the bottom. It should be noted that although some values have changed, they are not shown in boldface because they are not changed by the window manager, as was the case in the first embodiment. In this ~5 example, the window manager changed only the few entries in the window depth table (4 in this particular case). Window identification integers in the Z-buffer are then changed automatically as applications B and C redraw the windows by virtue of the new depth values in the window depth table 6~.
In the third embodiment, the Z-buffer array 88 also contains a depth value consisting of a window identification integer and a pixel depth within the~
window for each pixel. Instead of a window depth . :
7 3?345Q
table, however, the third embodiment uses a direct comparison of the new window identification integer sent to register 90 with the existing window depth value transferred from the Z-buffer array as to register 92. The window identification integers for registers 90 and 92 are stored in the higher order bit locations and the pixel depth values are stored in the lower bit positions in a like manner to that in the other embodiments. Considering the third embodiment in more detail, the existing window identification integer from register 92 and the window identification integer from register so are read by a conventional comparator 94. If the comparator 94 determines that the window identifications are equal, it outputs an enable signal to an AND gate ~6. In addition, the existing pixel depth value in register 92 is compared to the new pixel depth value from register 90 in a conventional comparator 98. If the new pixel depth value is less than or e~ual to the old pixel depth value, the comparator 98 outputs an enable signal to the AND gate 96. If the AND gate 96 does not receive an enable signal from both comparator 94 and comparator 96, the AND gate instructs the frame ?5 buffer 42 and Z-buffer 88 to ignore the write command from the window manager. If the AND gate 96 receives enable signals from both the comparator 94 and the comparator ga, it instructs the Z-buffer to store tha new Z-buffer value 100 and instructs the frame buffer 42 to store the new pixel value 102 for the particular pixel location.
The Z-buffer of the third embodiment provides an advantage over the Z-buffer in the second embodiment in that a separate high speed window depth table is~
`
- , . . .
.
~ 323450 not needed. It should be noted that the comparisons by comparator 94 and compara~or 98 may proceed in parallel. The disadvantage of this scheme is that the window manager must explicitly change the ownership of pixels by storing new window identification integers in the Z-buffer 88 when the windows are rearranged.
~ Figs. llA and llB show how the Z-buffer values change as window A is pushed from the top to the bottom o~ the stack. The Z-buffer values modified by the window manager are shown in boldface. It should be noted, however, that significantly fewer Z-values must be modified with the Z-buffer system of the third embodiment than with respect to the first embodiment~ where all the pixels and all the windows required updating regardless of whether a window was in fact affected. In this embodiment, only the pixels in the overlapping areas of affected windows are updated.
~0 In the fourth embodiment, the window manager transfers information to the display adapter in the same manner as in the third embodiment, but the way in which it is organized in the display adapter 22 is different. Considering tha fourth embodiment in ~5 more detail, the display adapter 22 includes both a Z-bu~fer array 104 for storing the depth information of a pixel value within a window and a separa~e W-bu~er array 106 for storing the window identification integer associated with each pixel location. In this embodiment, the window manayer outputs the new window identification to register 108 in the display adapter. The associated pixel depth value within the wLndow is loaded by the~window manzger into register llO. Por any pixel loaation in~
:
:: : :
- t 323450 the sequence, the existing window identification integer from the W-buffer 106 is stored in register 112 and a corre~ponding pixel depth value from Z-buffer 104 is stored in register 114. A conventional comparator 116 then compares the new window identification integer from register 108 with the existing window identification integer from register 112. If the window identifications are not e~ual, the comparator 116 outputs a signal to the Z-buffer and frame buffer to instruct them to ignore the write command from the window manager. If the window identification integers from register 108 and register 114 are equal, however, the comparator 116 ~enerates an enable signal which is transmitted to a conventional comparator 118. Comparator 118 also compares the existing pixel depth value stored in register 114 with the new pixel depth value stored in register 110. If the new pixel depth value is greater than the existing pixel depth value, the comparator 118 outputs a command to the Z-buffer and frame buffer to ignore the write command from the window manager. In the event the new pixel depth value is less than or equal to the old pixel depth value and the comparator 118 has received an enable a~ signal from comparator 116, comparator 118 outputs an enable signal to instruct the Z-buffer 104 to store the new pixel depth value and instructs the frame buffer 42 to store the new pixel value.
The fourth embodiment provides an advantage over the third embodiment in that the window identifications need be transferred to the display adapter 22 only once for each group of graphics operations. In addition, the window manager's write~
access to the new window identification register 108 AT9-88-054 ~ ~
-, :
:
`' ' ~ , .
. . .
on the display adapter 22 can be restricted to supervisor-state pro~rams so that the register cannot be corrupted by application code. Once the ownership of the appropriate pixels has been set by the window manager and the proper window identification has been loaded to the register 108, it is possible to give the application program direct access to the display adapter 22 ~ith the knowledge that it cannot corrupt areas of the screen outside the window(s) that it o~ns, which can result in a significant savings in overhead. Although Fig. 12 shows the two comparisons proceeding sequentially, it should be noted that the two comparisons can be done in parallel. It should also be noted that the Z-values modified b~ the window manager are limited to the pixels as are shown for the third embodiment in Fig. llB.
In a fifth embodiment which may be suitable for the presentation of two-dimensional subject matter within each of the plurality of overlapping windows, the depth value associated with the subject matter within a window on a screen comprises only a window identification. The depth buffer array, therefore, stores only the existing window identification rather than a composite depth value comprising a window depth and a pixel depth within the window. In this embodiment, the window manager and the Z-buffer system disclosed for the first embodiment may be used with the following minor modifications. The Z-buffer array 51 and register 48 only store a window identification integer as the Z-buffer depth value and the window manager 22 outputs only a new w~ndow identification integer to register 54. In all other respects, the operations of the comparator 50 disclosed for the first embodiment operates in ~: ' ~ 32345~
substantially the same manner as previously described. Although the fifth embodiment may not be suitable for displaying complex subject matter within a window, it may be a simple solution for many types of window applications.
While the invention has been particularly shown and described with reference to the preferred e~bodiments, it will be understood by those skilled in the art that various other changes in form and detail may be made without departing from the spirit and scope of the invention.
:
: :
:
: ,:
Claims (14)
1. In a computer system having a refresh buffer and an interactive display terminal with a screen display on which is formed a plurality of at least partially overlapping windows, each window currently displaying subject matter generated by one of a plurality of applications running on the computer system, the improvement comprising:
means for requesting a rearrangement of the depth of the plurality of windows relative to a reference position from a current arrangement to a new arrangement;
manager means for determining the depth of the subject matter associated with each of the windows, wherein said manager means, in response to an input request, determines the new depth of the subject matter in each of the plurality of windows affected by the requested rearrangement, transmits new depth values for the affected subject matter, and instructs each application associated with a window with affected subject matter to retransmit at least the portion of the subject matter associated with each window which will become visible as a result of the rearrangement; and buffer means for storing the depth values of the subject matter associated with each of the windows currently being displayed on the screen, wherein said buffer means includes comparator means for comparing the depth value for the retransmitted subject matter to the depth value for the currently displayed subject matter in response to the input request and, if the retransmitted subject matter has a depth value associated with the same window or a window closer to the viewer, the comparator means instructs the refresh buffer to store the retransmitted subject matter for refreshing the screen.
means for requesting a rearrangement of the depth of the plurality of windows relative to a reference position from a current arrangement to a new arrangement;
manager means for determining the depth of the subject matter associated with each of the windows, wherein said manager means, in response to an input request, determines the new depth of the subject matter in each of the plurality of windows affected by the requested rearrangement, transmits new depth values for the affected subject matter, and instructs each application associated with a window with affected subject matter to retransmit at least the portion of the subject matter associated with each window which will become visible as a result of the rearrangement; and buffer means for storing the depth values of the subject matter associated with each of the windows currently being displayed on the screen, wherein said buffer means includes comparator means for comparing the depth value for the retransmitted subject matter to the depth value for the currently displayed subject matter in response to the input request and, if the retransmitted subject matter has a depth value associated with the same window or a window closer to the viewer, the comparator means instructs the refresh buffer to store the retransmitted subject matter for refreshing the screen.
2. The computer system of Claim 1, wherein:
said comparator means notifies the depth buffer to store the depth values for the newly transmitted subject matter stored in the refresh buffer.
said comparator means notifies the depth buffer to store the depth values for the newly transmitted subject matter stored in the refresh buffer.
3. The computer system of Claim 2, wherein:
if the new subject matter has a depth value associated with a window farther from the viewer, said comparator means inhibits the refresh buffer for storing the newly transmitted subject matter and the screen is refreshed with the subject matter currently in the refresh buffer.
if the new subject matter has a depth value associated with a window farther from the viewer, said comparator means inhibits the refresh buffer for storing the newly transmitted subject matter and the screen is refreshed with the subject matter currently in the refresh buffer.
4. The computer system of Claim 2, wherein:
the subject matter associated with each of the windows is stored in the refresh buffer as an array of pixel values having specific pixel addresses; and said manager means assigns a depth value to each pixel value in each pixel array associated with each window currently on the screen, and, in response to the input request, assigns a new depth value to the portion of the pixel values associated with each window which is affected by the input request, and transmits the depth values to said buffer means.
the subject matter associated with each of the windows is stored in the refresh buffer as an array of pixel values having specific pixel addresses; and said manager means assigns a depth value to each pixel value in each pixel array associated with each window currently on the screen, and, in response to the input request, assigns a new depth value to the portion of the pixel values associated with each window which is affected by the input request, and transmits the depth values to said buffer means.
5. The computer system of Claim 4, wherein:
the depth value comprises:
a concatenation of the window depth position and the depth value of the subject matter within the window for each window.
the depth value comprises:
a concatenation of the window depth position and the depth value of the subject matter within the window for each window.
6. The computer system of Claim 1, wherein:
the depth value for the subject matter associated with a window formed on the screen comprises a window identification and a pixel depth value representative of the depth of the subject matter within a window;
said buffer means stores the current window identifications for the plurality of overlapping windows;
said comparator means includes a window depth table which stores the current depth position associated with each window identification;
said manager means, in response to the request from said input means, outputs the new window identifications and pixel depth values to said comparator means and outputs a new depth position for each window identification listed in the window depth table; and the comparator reads from said window depth table the depth value of the window identification currently in the buffer means and the depth value for the new window identification and compares the respective depth values for the windows obtained from said window depth table.
the depth value for the subject matter associated with a window formed on the screen comprises a window identification and a pixel depth value representative of the depth of the subject matter within a window;
said buffer means stores the current window identifications for the plurality of overlapping windows;
said comparator means includes a window depth table which stores the current depth position associated with each window identification;
said manager means, in response to the request from said input means, outputs the new window identifications and pixel depth values to said comparator means and outputs a new depth position for each window identification listed in the window depth table; and the comparator reads from said window depth table the depth value of the window identification currently in the buffer means and the depth value for the new window identification and compares the respective depth values for the windows obtained from said window depth table.
7. The computer system of Claim 6, wherein:
each depth value comprises a concatenation of the window identification and the pixel depth value within the window; and said comparator compares the concatenated value currently in said buffer means with the new concatenated value.
each depth value comprises a concatenation of the window identification and the pixel depth value within the window; and said comparator compares the concatenated value currently in said buffer means with the new concatenated value.
8. The computer system of Claim 1, wherein:
the depth value for the subject matter within a window comprises a window identification and a pixel depth value representative of the depth of the subject matter within a window;
said buffer means stores the current window identifications and associated pixel depth values for the plurality of overlapping windows;
said manager means, in response to the request from said input means, outputs the new window identifications and associated pixel depth values for the plurality of overlapping windows to said comparator means;
said comparator means comprises:
first comparator means for comparing the new window identification with the current window identification wherein, if the current window and new window identifications are equal, the first comparator outputs a first enable signal;
second comparator means for comparing the current pixel depth value associated with each current window identification with the new pixel depth value associated with the new window identification wherein, if the new pixel value is less than or equal to the current pixel depth value, the second comparator outputs a second enable signal; and logic means coupled to the outputs of said first and second comparators, for outputting an update signal to said refresh buffer and said buffer means in response to the receipt of first and second enable signals from said comparators, wherein the refresh buffer accepts the new pixel values and the buffer means accepts the new window identification in response to the update signal.
the depth value for the subject matter within a window comprises a window identification and a pixel depth value representative of the depth of the subject matter within a window;
said buffer means stores the current window identifications and associated pixel depth values for the plurality of overlapping windows;
said manager means, in response to the request from said input means, outputs the new window identifications and associated pixel depth values for the plurality of overlapping windows to said comparator means;
said comparator means comprises:
first comparator means for comparing the new window identification with the current window identification wherein, if the current window and new window identifications are equal, the first comparator outputs a first enable signal;
second comparator means for comparing the current pixel depth value associated with each current window identification with the new pixel depth value associated with the new window identification wherein, if the new pixel value is less than or equal to the current pixel depth value, the second comparator outputs a second enable signal; and logic means coupled to the outputs of said first and second comparators, for outputting an update signal to said refresh buffer and said buffer means in response to the receipt of first and second enable signals from said comparators, wherein the refresh buffer accepts the new pixel values and the buffer means accepts the new window identification in response to the update signal.
9. The computer system of Claim 1, wherein:
the depth value associated with the subject matter on each window comprises a window identification and a pixel depth value representative of the depth of the subject matter within a window;
said buffer means comprises:
first buffer means for storing the current window identification for the subject matter being displayed on each of the overlapping windows; and second buffer means for storing the current pixel depth value of the subject matter being displayed on each of the overlapping screens, said manager means, in response to the request from said input means, outputs the new window identification and pixel depth value to said comparator means and a new depth position for each window identification to the window identification table, said comparator means comprises:
first comparator means coupled to the first buffer means for comparing the new window identification with the current window identification wherein, if the current and new window identifications are the same, the first comparator outputs an enable signal to the second comparator; and second comparator means coupled to said second buffer means for comparing the current pixel value with the new pixel value upon receiving an enable signal from said first comparator, wherein, if the new pixel value is less than or equal to the current pixel depth value, said second comparator outputs update signals to the first and second buffer means whereupon said first buffer means stores the new window identifications and said second buffer means stores the new depth value.
the depth value associated with the subject matter on each window comprises a window identification and a pixel depth value representative of the depth of the subject matter within a window;
said buffer means comprises:
first buffer means for storing the current window identification for the subject matter being displayed on each of the overlapping windows; and second buffer means for storing the current pixel depth value of the subject matter being displayed on each of the overlapping screens, said manager means, in response to the request from said input means, outputs the new window identification and pixel depth value to said comparator means and a new depth position for each window identification to the window identification table, said comparator means comprises:
first comparator means coupled to the first buffer means for comparing the new window identification with the current window identification wherein, if the current and new window identifications are the same, the first comparator outputs an enable signal to the second comparator; and second comparator means coupled to said second buffer means for comparing the current pixel value with the new pixel value upon receiving an enable signal from said first comparator, wherein, if the new pixel value is less than or equal to the current pixel depth value, said second comparator outputs update signals to the first and second buffer means whereupon said first buffer means stores the new window identifications and said second buffer means stores the new depth value.
10. The computer system of Claim 1, wherein:
(a) the depth value associated with the subject matter within a window on a screen comprises a window identification;
(b) said buffer means stores the current window identifications for the subject matter being displayed on each of the overlapping screens;
(c) said manager means, in response to the request of the input means, outputs a new window ID;
(d) said comparator means compares the window identification of the newly transmitted subject matter to the window identification of the currently displayed subject matter and, if the new window identification identifies the same window or a window closer to the viewer, the comparator outputs enable signals to the refresh buffer and buffer means; and (e) in response to the enable signals, the refresh buffer stores the new subject matter for refreshing the screen display with the new subject matter and the buffer means stores the new window identification.
(a) the depth value associated with the subject matter within a window on a screen comprises a window identification;
(b) said buffer means stores the current window identifications for the subject matter being displayed on each of the overlapping screens;
(c) said manager means, in response to the request of the input means, outputs a new window ID;
(d) said comparator means compares the window identification of the newly transmitted subject matter to the window identification of the currently displayed subject matter and, if the new window identification identifies the same window or a window closer to the viewer, the comparator outputs enable signals to the refresh buffer and buffer means; and (e) in response to the enable signals, the refresh buffer stores the new subject matter for refreshing the screen display with the new subject matter and the buffer means stores the new window identification.
11. In a computer system capable of running a plurality of applications having a display adapter with a refresh buffer and an interactive display terminal with a screen display on which is formed a plurality of at least partially overlapping windows, each window currently displaying subject matter from and application, the improvement comprising:
means for requesting a rearrangement of the depth positions of the plurality of windows relative to a reference position from a current arrangement to a new arrangement;
manager means for sensing the depth position of each of the plurality of windows and assigning a depth value to the subject matter associated with each of the windows, wherein said manager means, in response to the input request, determines the new depth positions of the plurality of windows, assigns a new depth value to the subject matter associated with each window affected by the requested rearrangement, outputs such depth values;
and instructs each application associated with a window with affected subject matter to retransmit at least the portion of the subject matter associated with such window which will become visible as a result of the rearrangement; and buffer means for storing the depth values of the subject matter associated with each of the windows currently being displayed on the screen, wherein said buffer means includes means for comparing the depth value for the retransmitted subject matter to the depth value for the currently displayed subject matter in response to the input request and, if the new subject matter has a depth value associated with the same window or a window closer to the viewer, the comparator instructs the refresh buffer to store the retransmitted subject matter for refreshing the screen.
:
means for requesting a rearrangement of the depth positions of the plurality of windows relative to a reference position from a current arrangement to a new arrangement;
manager means for sensing the depth position of each of the plurality of windows and assigning a depth value to the subject matter associated with each of the windows, wherein said manager means, in response to the input request, determines the new depth positions of the plurality of windows, assigns a new depth value to the subject matter associated with each window affected by the requested rearrangement, outputs such depth values;
and instructs each application associated with a window with affected subject matter to retransmit at least the portion of the subject matter associated with such window which will become visible as a result of the rearrangement; and buffer means for storing the depth values of the subject matter associated with each of the windows currently being displayed on the screen, wherein said buffer means includes means for comparing the depth value for the retransmitted subject matter to the depth value for the currently displayed subject matter in response to the input request and, if the new subject matter has a depth value associated with the same window or a window closer to the viewer, the comparator instructs the refresh buffer to store the retransmitted subject matter for refreshing the screen.
:
12. The computer system of Claim 11, wherein:
said buffer means comprises a RAM array located in the display adapter; and said manager means instructs each application to retransmit its affected subject matter directly to the display adapter for clipping.
said buffer means comprises a RAM array located in the display adapter; and said manager means instructs each application to retransmit its affected subject matter directly to the display adapter for clipping.
13. In a computer system having a display adapter with a refresh buffer and an interactive display terminal with a screen display on which is formed a plurality of at least partially overlapping windows, each window currently displaying subject matter generated by an application running on the computer system, the improvement comprising:
means for requesting a rearrangement of the depth of the plurality of windows relative to a reference position from a current arrangement to a new arrangement;
manager means for determining the depth of the subject matter associated with each of the windows, wherein said manager means, in response to the input request, determines the new depth of the subject matter in each of the plurality of windows affected by the requested rearrangement, transmits new depth values for the affected subject matter to the display adapter and instructs each application associated with a window with affected subject matter to retransmit at least the portion thereof which will become visible as a result of such rearrangement;
buffer means in the display adapter for storing the depth values of the subject matter associated with each of the windows currently being displayed on the screen;
and means in the display adapter for comparing the depth value for the retransmitted subject matter to the depth value for the currently displayed subject matter in response to the input request and, if the retransmitted subject matter has a depth value associated with a same window or a window closer to the viewer, the comparator means instructs the refresh buffer to store the newly transmitted subject matter for refreshing the screen.
means for requesting a rearrangement of the depth of the plurality of windows relative to a reference position from a current arrangement to a new arrangement;
manager means for determining the depth of the subject matter associated with each of the windows, wherein said manager means, in response to the input request, determines the new depth of the subject matter in each of the plurality of windows affected by the requested rearrangement, transmits new depth values for the affected subject matter to the display adapter and instructs each application associated with a window with affected subject matter to retransmit at least the portion thereof which will become visible as a result of such rearrangement;
buffer means in the display adapter for storing the depth values of the subject matter associated with each of the windows currently being displayed on the screen;
and means in the display adapter for comparing the depth value for the retransmitted subject matter to the depth value for the currently displayed subject matter in response to the input request and, if the retransmitted subject matter has a depth value associated with a same window or a window closer to the viewer, the comparator means instructs the refresh buffer to store the newly transmitted subject matter for refreshing the screen.
14. The computer system of Claim 13, wherein said buffer means comprises a RAM array.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US30612589A | 1989-02-06 | 1989-02-06 | |
US07/306,125 | 1989-02-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CA1323450C true CA1323450C (en) | 1993-10-19 |
Family
ID=23183938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA000608710A Expired - Fee Related CA1323450C (en) | 1989-02-06 | 1989-08-18 | Depth buffer clipping for window management |
Country Status (8)
Country | Link |
---|---|
EP (1) | EP0381892B1 (en) |
JP (1) | JPH0612518B2 (en) |
KR (1) | KR920006746B1 (en) |
CN (1) | CN1016013B (en) |
AU (1) | AU623468B2 (en) |
CA (1) | CA1323450C (en) |
DE (1) | DE68922093T2 (en) |
ES (1) | ES2070916T3 (en) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE1007551A3 (en) * | 1993-09-24 | 1995-08-01 | Philips Electronics Nv | Method for in a calculator auto repair of consistency in a hierarchical objektstruktuur after inter action by a user and calculator with such a system for consistency auto repair. |
AU7725794A (en) * | 1993-12-30 | 1995-07-17 | Taligent, Inc. | Object-oriented view hierarchy framework |
US5524200A (en) * | 1993-12-30 | 1996-06-04 | Taligent, Inc. | Object-oriented non-rectilinear viewing framework |
JPH09185356A (en) * | 1995-12-29 | 1997-07-15 | Nec Corp | Multiwindow display control system |
JP2976879B2 (en) * | 1996-03-22 | 1999-11-10 | 日本電気株式会社 | Window display with depth |
KR100681115B1 (en) * | 1999-11-24 | 2007-02-08 | 주식회사 케이티 | Method for improvement graphic processing in communication system |
EP1400856B1 (en) | 2002-09-20 | 2011-11-02 | FUJIFILM Corporation | Method of making lithographic printing plate |
JP2006119729A (en) | 2004-10-19 | 2006-05-11 | Sony Corp | Program, and method and device for image display control |
CN1300684C (en) * | 2005-01-31 | 2007-02-14 | 浙江大学 | Method for determining window shearing relation in grahpic user interface |
CN115220826A (en) * | 2021-04-15 | 2022-10-21 | 华为技术有限公司 | Window display method and electronic equipment |
CN114398019B (en) * | 2022-01-24 | 2024-02-23 | 广州文石信息科技有限公司 | Screen update request processing method and device and electronic ink screen equipment |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4439760A (en) * | 1981-05-19 | 1984-03-27 | Bell Telephone Laboratories, Incorporated | Method and apparatus for compiling three-dimensional digital image information |
WO1985002049A1 (en) * | 1983-11-03 | 1985-05-09 | Burroughs Corporation | Method of electronically moving portions of several different images on a crt screen |
GB2162726A (en) * | 1984-07-31 | 1986-02-05 | Ibm | Display of overlapping viewport areas |
US4710761A (en) * | 1985-07-09 | 1987-12-01 | American Telephone And Telegraph Company, At&T Bell Laboratories | Window border generation in a bitmapped graphics workstation |
GB2180729B (en) * | 1985-09-13 | 1989-10-11 | Sun Microsystems Inc | Method and apparatus for dma window display |
US4987530A (en) * | 1985-11-15 | 1991-01-22 | Data General Corp. | Input/output controller for a data processing system |
JPS62276673A (en) * | 1986-05-26 | 1987-12-01 | Toshiba Corp | Multiwindow display device |
JPH0814785B2 (en) * | 1986-09-24 | 1996-02-14 | 株式会社日立製作所 | Display controller |
JPS63153627A (en) * | 1986-12-17 | 1988-06-27 | Pfu Ltd | Display order control system |
AU617464B2 (en) * | 1988-10-31 | 1991-11-28 | Sun Microsystems, Inc. | Apparatus for extending windows using z buffer memory |
-
1989
- 1989-08-18 CA CA000608710A patent/CA1323450C/en not_active Expired - Fee Related
- 1989-11-30 EP EP89312524A patent/EP0381892B1/en not_active Expired - Lifetime
- 1989-11-30 ES ES89312524T patent/ES2070916T3/en not_active Expired - Lifetime
- 1989-11-30 DE DE68922093T patent/DE68922093T2/en not_active Expired - Lifetime
-
1990
- 1990-01-03 AU AU47636/90A patent/AU623468B2/en not_active Ceased
- 1990-01-20 KR KR1019900000662A patent/KR920006746B1/en not_active IP Right Cessation
- 1990-01-21 CN CN90100484A patent/CN1016013B/en not_active Expired
- 1990-02-06 JP JP2025299A patent/JPH0612518B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0612518B2 (en) | 1994-02-16 |
KR920006746B1 (en) | 1992-08-17 |
DE68922093T2 (en) | 1995-10-05 |
AU4763690A (en) | 1990-08-09 |
AU623468B2 (en) | 1992-05-14 |
CN1044718A (en) | 1990-08-15 |
EP0381892A3 (en) | 1991-03-27 |
DE68922093D1 (en) | 1995-05-11 |
ES2070916T3 (en) | 1995-06-16 |
EP0381892A2 (en) | 1990-08-16 |
EP0381892B1 (en) | 1995-04-05 |
CN1016013B (en) | 1992-03-25 |
JPH02234219A (en) | 1990-09-17 |
KR900013418A (en) | 1990-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5241656A (en) | Depth buffer clipping for window management | |
US5574836A (en) | Interactive display apparatus and method with viewer position compensation | |
US6911983B2 (en) | Double-buffering of pixel data using copy-on-write semantics | |
US5801717A (en) | Method and system in display device interface for managing surface memory | |
US4914607A (en) | Multi-screen display control system and its method | |
EP0783154B1 (en) | Split-level graphics library | |
US5371514A (en) | Method and apparatus for determining the drawing primitives that are visible in a pick aperture of a graphics system | |
US8704840B2 (en) | Memory system having multiple address allocation formats and method for use thereof | |
CA2011102A1 (en) | Method and apparatus for detecting changes in raster data | |
CN1007937B (en) | Display processor | |
CA1323450C (en) | Depth buffer clipping for window management | |
WO1994027240A1 (en) | Computer graphics system having high performance multiple layer z-buffer | |
EP0284904B1 (en) | Display system with symbol font memory | |
JP2755378B2 (en) | Extended graphics array controller | |
US5748946A (en) | Method and apparatus for improved graphics picking using auxiliary buffer information | |
EP0803797A1 (en) | System for use in a computerized imaging system to efficiently transfer graphic information to a graphics subsystem employing masked span | |
CA1229439A (en) | Data display system | |
EP0803798A1 (en) | System for use in a computerized imaging system to efficiently transfer graphics information to a graphics subsystem employing masked direct frame buffer access | |
US6943801B2 (en) | System and method for refreshing imaging devices or displays on a page-level basis | |
CN1114855C (en) | Apparatus and method of windowing VGA image | |
US5903280A (en) | Image display apparatus that reduces necessary memory capacity for operation | |
JPH0588838A (en) | Multi window display device | |
JPS63250688A (en) | Display adaptor | |
Broemmelsiek | Parallax engine: a display generation architecture for motion parallax and stereoscopic display effects | |
JPS59136783A (en) | Multiwindow bit map display unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MKLA | Lapsed |