asw@vax-d.rutherford.ac.UK (Antony Williams) (11/11/87)
There has been quite a lot of discussion about save-unders. Meanwhile, there are proposals for double buffering, and no doubt there will be implementations of retained windows appearing soon. I would like to take this opportunity to point out that Brad Myers implemented save-unders as well as (optionally) retained windows in his Sapphire window manager. He wrote about this in his chapter "Issues in Window Management Design and Implementation" in Methodology of Window Management (Springer 1986, ISBN 0-387-16116-3). He pointed out that combining save-unders (he called them "courteous" windows) with retained windows " ... does not work very well. If you have windows that have off-screen memory and courteous windows overlapping each other, and you move one of the windows to the top, there is no order in which you can update the windows that will be correct. They all have to be updated first or you have to use separate buffers into which you move the information temporarily." In Sapphire, Brad was trying to retain as much of the window images as possible while conserving memory space and cpu time. He also observed a great deal of complexity in moveing and growing windows in an overlapped set. I think this comes largely because the image is partially on screen, and partially somewhere else, and complexity is n^2. If you have enough store to save a copy of all of the pixels in one place (eg if retaining or double buffering) life gets much easier. Also note that if all windows are retained, saving only the obscured regions (as on the BLIT) saves *at most* one screenful of memory compared to saving whole windows. For monochrome displays this is almost trivial, and well worth the simplification in software. Tony --------------------------------------------------------------------------- Tony Williams |Informatics Division JANET: asw@uk.ac.rl.vd |Rutherford Appleton Lab Usenet: {... | mcvax}!ukc!rlvd!asw |Chilton, Didcot ARPA: asw%vd.rl.ac.uk@nss.cs.ucl.ac.uk |Oxon OX11 0QX, UK
garfinke@hplabsb.UUCP (Dan Garfinkel) (11/12/87)
> Also note that if all windows are retained, > saving only the obscured regions (as on the BLIT) > saves *at most* one screenful of memory compared to saving whole windows. I may be missing something or have a different meaning to retaining only obscured regions, but how can this be true. Suppose you have 3 window, one at (0,0) with a size of (w-2, h-2), another at (1,1) size (w-2, h-2), and the third at (3,3) size (w-2, h-2), where the physical screen is (w,h). The obscured parts of window two is from (1,1) size (w-3, h-3), and window three's obscured parts is from (1,1) size (w-3, h-3). As you can see, you need to save almost *twice* the screen size in this simple case of only three windows. I think one could say that the most one would have to save is (windows-1) * (sccreen_size) amount of memory. Dan Garfinkel - HP
garfinke@hplabsb.UUCP (Dan Garfinkel) (11/12/87)
> > Also note that if all windows are retained, saving only the obscured > > regions (as on the BLIT) saves *at most* one screenful of memory > > compared to saving whole windows. > > I may be missing something or have a different meaning to retaining only > obscured regions, but how can this be true? > > Just think about it. By saving only the obscured portions, you are in > effect using the frame buffer as an alternate to memory for storing those > pixels. You have only one screen, so the most savings you can expect over > saving entire windows is one screenful. The question is not what the total > is, but what the difference is. I guess I was missing something! I read the original response to mean you need only one screenful of memory if you were only saving obscured regions. Too many "saves" can get confusing... -Dan
bobr@zeus.UUCP (11/20/87)
In article <70700002@hplabsb.UUCP> garfinke@hplabsb.UUCP (Dan Garfinkel) writes: > Also note that if all windows are retained, saving only the obscured > regions (as on the BLIT) saves *at most* one screenful of memory > compared to saving whole windows. I may be missing something or have a different meaning to retaining only obscured regions, but how can this be true? Just think about it. By saving only the obscured portions, you are in effect using the frame buffer as an alternate to memory for storing those pixels. You have only one screen, so the most savings you can expect over saving entire windows is one screenful. The question is not what the total is, but what the difference is. -- Robert Reed, Tektronix CAE Systems Division, bobr@zeus.TEK