Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!usc!snorkelwacker.mit.edu!bloom-beacon!dont-send-mail-to-path-lines From: dshr@eng.sun.COM (David Rosenthal) Newsgroups: comp.windows.x Subject: Re: PC X servers / backing store Message-ID: <9103032356.AA00215@devnull.Eng.Sun.COM> Date: 3 Mar 91 23:37:50 GMT Sender: daemon@athena.mit.edu (Mr Background) Organization: The Internet Lines: 44 > >> A problem encountered with both products is that if a graphics window > >> is overlaid ( e.g. by a menu ), the overlaid portion is not restored. > >> The suppliers of Grafit informed me that the X server implementation > >> probably did not support backing store - a requirement for their > >> package ( or for the HP Starbase/X implementation? ). > > > >Then their package is buggy. > This is absolutely untrue. Backing store is a feature just like colors, > visuals, shape extensions, pex and everything else. There is nothing > wrong with a package requiring properly working backstore for that > package to work. Sorry, but backing store is not a feature like colors or visuals. It is a *hint* to the server, which the server is at liberty to ignore at any time for any reason. To quote from the protocol specification (page 388 of the Digital Press 2nd edition): "A backing-store of WhenMapped advises the server that maintaining contents of obscured regions when the window is mapped would be benficial. A backing store of Always advises the server that maintaining contents even when the window is unmapped would be beneficial. ... While the server maintains contents, exposure events will not normally be generated, but the server may stop maintaining contents at any time." Note the "advises ... would be beneficial" wording, the note that exposure events "will not normally be generated", and the explicit warning that the server may stop maintaining contents at any time. The package in question, and any other X program that *depends* on not getting exposure events from windows with backing store, and any X program that *depends* on the save-under hint being observed, is indeed buggy. Its OK to work better if you don't get the exposure events; its not OK to break if you do. This is a very important point to understand. If we had been prepared to *require* the server to maintain backing store for windows and to make a number of other similar decisions during the design of X, we would have ended up with a completely different design which would have been faster and simpler but which would have consumed much more resource. It would, for example, have been improbable that an X-terminal or a PC X-server would have been a viable product had we taken this route. David.