[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Xl1200 as x server



    Date: Mon, 6 Aug 90 13:20 PDT
    From: TYSON@Warbucks.AI.SRI.COM (Mabry Tyson)

    Gee, does this mean that I can grab the bitmap of the window and
    manipulate it (in a reasonable amount of time)?  I think not.  That's
    something we did quite easily up until 7.4 ECO 3 or so.  That didn't require
    much wizardry.

If you were manipulating the memory-mapped bitmap as an optimization,
the optimization should be made conditional on the screen being
memory-mapped, since it's a pessimization for remote screens.

	An analogy from a more common communication environment is ASCII
	terminals.  Going from an ordinary Lispm console to an X terminal is
	like going from a hardwired terminal to one connected by a modem.
	Programs that just send and receive ASCII don't care what kind of wire
	it goes over.

    I will point out that modems (like X) doesn't have the bandwidth that
    hardwired lines (or non-X, non-embedded window systems) have.  

The speed is orthogonal from the connection mechanism.  Our hardwired
terminals here are at 4800 bps, while our dialup lines go up to 9600
bps!  If a program chooses a different user interface style based on
bandwidth it should look at the actual speed, not make judgements from
the type of connection.

								   That's why
    some things can't be done that way.  Response time is too slow.

I wasn't addressing performance in my description of the mechanism for
implementing Lispm windows on top of X windows.  Yes, there are some
performance implications, and they are documented.  On the other hand,
there are also performance improvements available when using remote
screens; for instance, off-screen bitmaps can be kept on the remote
host, which might have faster BITBLT hardware than the Lispm, and scan
conversion and character generation are normally done by the remote
system (even if the remote system isn't faster than the Lispm this can
speed things up because the output can be done asynchronously).  There
are new operations documented that make some of these capabilities
available in a generic way.

And there are some things you just can't do, although most of them
involve undocumented mechanisms.  For instance, all the hacks that play
games with the area of the screen outside the regular windows (GC
thermometers, network traffic bar, etc.) break on remote screens.
                                                barmar