emacs-devel
[Top][All Lists]
Advanced

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

Re: Future of display engine and lines


From: Eli Zaretskii
Subject: Re: Future of display engine and lines
Date: Sat, 23 Oct 2021 10:10:30 +0300

> From: Richard Stallman <rms@gnu.org>
> Date: Fri, 22 Oct 2021 19:47:13 -0400
> Cc: galex-713@galex-713.eu, emacs-devel@gnu.org
> 
> Buffer display currently works with a structure which is a series of
> display lines.  On a graphics display, each window has its own set of
> display lines, Redisplay fills in the window's display lines top to
> botton based on the text in the buffer.

That's correct.

> It could have multiple segments for each display line, and fill up
> one series of segments going vertically down from point A,
> then the next series of segments going vertically down from point B,
> and so on.

Perhaps I misunderstand what "multiple columns" mean, then.  Doesn't
it mean that buffer text is displayed in separate rectangular
portions, like this:

   aaaaaaaaaaaa bbbbbbbb ccccccc    xxx xxxxxxxx xxxxxxxxxxxx
   dddddddd eeeeeeee fffffff ggg    yyyyyy yyyyyyyyy yyyyyyyy
   hhhhhhhh iiiiiiiiii jjjj kkkk    zzzzzzzzz zzzzzzzzzz zzzz

where buffer position of the first "xxx" follows the buffer position
of the last "kkkk"?  If so, where in the above picture are your points
A and B?

> It would be considerable work, but it would not require much change
> in the data structure of a buffer itself.

Actually, I believe that any significant improvement in the Emacs
display engine would almost certainly need a redesign of the buffer
text data structure, because most current limitations of redisplay
basically follow from the fact that buffer text is a single
unstructured stream of bytes (forget about the gap, it's immaterial
for this purpose).  So if we are going to enhance the display engine,
I'd be for redesigning the buffer text first and foremost, and in that
redesign allow up front intrinsic support for some display features
such as this one.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]