Vlad Petersen (vladimip@uniserve.com)
Tue, 19 Jan 1999 07:50:55 -0800
bbarnett@L8R.net wrote:
>
> On 19-Jan-99 Curt Sampson wrote:
> > On Tue, 19 Jan 1999 chef@mindlink.net wrote:
> >
> >> Does this mean that changing bit depth and virtual resolution necessitate
> >> terminating the server (and therefore all client apps) and then re-starting
> >> the server?
> >
> > Yes.
I think that the problem here is with the way XLib is designed. Just
like any high level language you use comes down to C, C++ and/or
assembly, any X toolkit APIs are usually some kind of a wrap-up around
Xlib calls. And the majority of common Xlib calls take X as the first
argument, which must be a valid pointer to the current display. (check
out /usr/include/X11/Xlib.h). Therefore, if you, say, have ten
applications running and you try to restart X, all those applications
will fail because X pointer will be invalid!
> >> Are the client apps unable to persist in the absence of the server, while
> >> the server is resetting itself?
> >
> > Yes. Some of the state of the client apps is stored in the server
> > itself. Windows is similar in this regard; programs that use the
> > GUI cannot persist when the GUI is shut down.
> >
> >> And just to piss everyone off...Windows can do it! What is different about
> >> the Windows GUI design that makes this possible?
> >
> > Windows has apparently implemented some hackery to deal with sending
> > resize messages to applications when the screen size changes, and
> > deal with applications that no longer have the number of colours
> > they did when they started. Note that Windows 95 didn't allow
> > changing colour depth, and even Windows 98 usually warns you that
> > some applications may not work correctly after the change.
> >
> >
>
> I must interject here, and mention that multiple screen sizes, with multiple
> depths, is not a new thing. You CAN change and/or add a screen of different
> depth, without effecting current applications.. the api just has to be set up
> to handle this.
> Let me put it another way. If the amiga, a 12 year old os can do it, then
> linux can do it. It has supported multiple screens, of multiple screen
> sizes/depths for over 12 years. Certainly X11 can do this, or there is
> something desperately wrong ;)
Right now X can't do it for the reason described above. However, for the
same reason X can do what other display environments cannot. Since Every
Xlib call is given its own X display pointer, every application on the
same machine can be displayed on different displays, or applications on
different machines can be displayed on the same screen, e.g. over the
network. I often use that feature of X when I am lazy to go to a
different system if I can just use X remotely. Other display
environments can't do that, at least not without expensive and bloated
additions.
Vlad
--
Vlad Petersen | <vladimip at uniserve dot com>
#include <disclaimer.h> | *Good pings come in small packets*
Vancouver, BC | Windows: for IQs smaller than 95
SIGSIG -- signature too long (core dumped)
This archive was generated by hypermail 2.0b3 on Tue 19 Jan 1999 - 07:51:16 PST