[comp.emacs] smooth scrolling

worley@compass.UUCP (Dale Worley) (08/03/89)

    From: Dave Cohrs <dave@cs.wisc.edu>

    That may be more efficient on an ascii terminal (I doubt it), but on a
    bitmapped display, it is always ALWAYS cheaper to clean up a single line
    that to scroll the entire window all over the place.

    Below are two functions, (smooth-scroll-up) and (smooth-scroll-down)
    that solve the problem without trying to hack the update optimizer.

Yargh!  Why don't you fix the padding specifications in your termcap
(and solve the problem *everywhere*), rather than putting information
about the display in scroll-up and scroll-down?

Dale
--
Dale Worley, Compass, Inc.                      worley@compass.com

worley@compass.UUCP (Dale Worley) (08/04/89)

   From: Dave Cohrs <dave@cs.wisc.edu>
   Date: Thu, 03 Aug 89 12:51:04 CDT

   > Yargh!  Why don't you fix the padding specifications in your termcap
   > (and solve the problem *everywhere*), rather than putting information
   > about the display in scroll-up and scroll-down?

   What termcap?  What padding specifications?

It's sort of amusing that the X support doesn't use a termcap.  It
really should, since different X servers may have wildly different
speeds for various operations.

   The workaround I sent is meant especially for use with emacs under X11,
   or any under window system for that matter, where emacs opens up a raw
   window (emacs under Suntools doesn't match this criterion).  In that
   case, it doesn't use termcap to put the characters up on the screen.
   There's no termcap entry for a raw window.

Well, you didn't mention that you were concerned with X.  As far as I
know, the *only* time Emacs doesn't use a termcap entry is under X.
Working in a Suntools shop, it didn't immediately occur to me that
this complaint was X-specific.

   The only thing I could fix would be the optimization code -- no thanks.
   BTW -- I only noticed the problem when scrolling.

Umm, yes, but there are several different operations that cause
scrolling.  For instance, C-u C-u C-u C-u C-n will probably scroll
your screen.

Dale
--
Dale Worley, Compass, Inc.                      worley@compass.com
No one hates so bitterly as the lazy and poor contemplating the
energetic and prosperous.

dave@CS.WISC.EDU (Dave Cohrs) (08/04/89)

Your points are well taken.  I agree that there should be a termcap
equivalent for window systems, but there ain't.  I wonder what rms would
say about that.

> Umm, yes, but there are several different operations that cause
> scrolling.  For instance, C-u C-u C-u C-u C-n will probably scroll
> your screen.

I just tried that.  The minibuffer clears when I type the first C-u.
I'm sure there are other commands that could cause the same behavior,
but I haven't used them, at least not at the time that it causes ugly
screen updates.

dave

dave@CS.WISC.EDU (Dave Cohrs) (08/04/89)

> Emacs attempts to optimize things by sending the smallest number of
> characters to the screen.

That's what you think.  You must not have seen my followup (maybe it
really didn't go out to the list).

I USE emacs under X11 (and I apologize for not making that obvious in my
original posting)!  Emacs doesn't use TERMCAP when running under X11.
It opens a raw window.  Because there's not TERMCAP, there's no way I
can fix the padding.  When running under X11, emacs doesn't calculate
costs for anything, so it thinks that scrolling is infinitely fast, or
some such stupid thing, while it should think that scrolling, even one
single line, is the slowest possible operation it could perform, given
the rule that it should send "the smallest number of characters to the
screen".  Perhaps in my ample free time :-) I will attempt to correct
this the right way, by fixing the code.

As Dale Worley pointed out, there needs to be a TERMCAP equivalent for
window systems, because different systems have different performance
characteristics.  A window system, even a version of X11, with backing
store and a graphics accelerator would probably scroll quickly.
Unforunately, the version I use has no backing store, and no graphics
accelerator.

Doesn't anyone else out there use emacs under X?

dave cohrs

dsill@relay.nswc.navy.mil (Dave Sill) (08/05/89)

In article <8908041447.AA03238@romano.cs.wisc.edu>, dave@CS (Dave Cohrs) writes:
> :
>I USE emacs under X11 (and I apologize for not making that obvious in my
>original posting)!  Emacs doesn't use TERMCAP when running under X11.
>It opens a raw window.  Because there's not TERMCAP, there's no way I
>can fix the padding.  When running under X11, emacs doesn't calculate
>costs for anything, so it thinks that scrolling is infinitely fast, or
>some such stupid thing, while it should think that scrolling, even one
>single line, is the slowest possible operation it could perform, given
>the rule that it should send "the smallest number of characters to the
>screen".  Perhaps in my ample free time :-) I will attempt to correct
>this the right way, by fixing the code.

Good luck.  How do you expect to allow for differences between the
speeds of different display servers?  I've been using emacs under X
for a couple months now on a diskless Sun 2 (ssslloooowwww) and, more
recently, on and NCD-16 (zippy).  I don't recall the Sun ever being
especially slow scrolling.  And the NCD seems to scroll faster than
the eye can see.  Whatever you're using is apparently especially poor
at it.

>As Dale Worley pointed out, there needs to be a TERMCAP equivalent for
>window systems, because different systems have different performance
>characteristics.  A window system, even a version of X11, with backing
>store and a graphics accelerator would probably scroll quickly.
>Unforunately, the version I use has no backing store, and no graphics
>accelerator.

My NCD only has 1.5 MB.  I have backing store disabled.

>Doesn't anyone else out there use emacs under X?

Perhaps the lack of general complaints about emacs under X implies
that your situation is atypical.

(I'm running 18.54 emacs under X11R2 on a 4.3 '780 and a couple of
Pyramids.)

jr@bbn.com (John Robinson) (08/05/89)

In article <56@ark1.nswc.navy.mil>, dsill@relay (Dave Sill) writes:
>				   I don't recall the Sun ever being
>especially slow scrolling.  And the NCD seems to scroll faster than
>the eye can see.  Whatever you're using is apparently especially poor
>at it.

Some color Suns are pretty slow at scrolling.  No doubt the vast
majority of us use b&w ones, though.
--
/jr, nee John Robinson     Life did not take over the globe by combat,
jr@bbn.com or bbn!jr          but by networking -- Lynn Margulis

rich@sendai.sendai.ann-arbor.mi.us (K. Richard Magill) (08/07/89)

In article <8908041447.AA03238@romano.cs.wisc.edu> dave@CS.WISC.EDU (Dave Cohrs) writes:

   Doesn't anyone else out there use emacs under X?

routinely.  few of us seem to have that complaint.  I'd like to know
more about your server before I agree that emacs has a problem.  What
kind of server and machine are you running on?  Where is the client
emacs?

--
rich.

jv@mh.nl (Johan Vromans) (08/07/89)

In article <8908041447.AA03238@romano.cs.wisc.edu> dave@CS.WISC.EDU (Dave Cohrs) writes:

>                       When running under X11, emacs doesn't calculate
> costs for anything, so it thinks that scrolling is infinitely fast, or
> some such stupid thing ...

Doesn't appear to me something you would "fix" with a entry in some
TERMCAP-alike database. It looks like a bug to me.

> As Dale Worley pointed out, there needs to be a TERMCAP equivalent for
> window systems ...
Good grief - No! TermCap was fine to handle all sorts of terminal
ideosyncracies. My hope is to get rid of this with X.

> Doesn't anyone else out there use emacs under X?
Yep, I'm experimenting with it. Currently, I doesn't recognize all of
my keys (like Shift/Fxxx on a LK201 keyboard), and sometimes the process
"disappears" (without warning, sign nor coredump). But I like the
mouse support.

--
Johan Vromans				       jv@mh.nl via internet backbones
Multihouse Automatisering bv		       uucp: ..!{mcvax,hp4nl}!mh.nl!jv
Doesburgweg 7, 2803 PL Gouda, The Netherlands  phone/fax: +31 1820 62944/62500
------------------------ "Arms are made for hugging" -------------------------