emacs-devel
[Top][All Lists]
Advanced

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

Re: Stipples and scroll optimizations


From: Eli Zaretskii
Subject: Re: Stipples and scroll optimizations
Date: Sun, 08 May 2022 12:06:31 +0300

> From: Po Lu <luangruo@yahoo.com>
> Cc: emacs-devel@gnu.org
> Date: Sun, 08 May 2022 15:58:03 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > I think doing this is x_draw_glyph_string is too late, because that is
> > called after the test for applicability of scrolling_window was
> > already done, no?
> 
> I meant to do the test beforehand, i.e. to the glyphs in the "previous"
> glyph matrix, and to use its results when comparing that matrix to the
> desired matrix in scrolling_window.

Sorry, I don't understand: what is the "previous" glyph matrix, and
how can you use it for this test?

> > Is the fact that some of the glyphs in a glyph-row use stipple easily
> > detectable by scanning the row's glyphs?  If so, update_window could
> > do that, just before it calls scrolling_window, and refrain from doing
> > so.
> 
> No, whether or not a stipple is actually used is only known with
> complete certainty to x_draw_glyph_string (and some of the functions
> that it calls.)

Really?  I see that 'struct face' has a 'stipple' member, which is set
in realize_gui_face, and that happens when we realize the face, long
before x_draw_glyph_string is called.  And each glyph in a glyph_row
has a face_id member, which allows you to get at the corresponding
face structure.  Why cannot you use this to detect glyph_row's that
use stipples?  The only type of glyph whose stipple is ignored is the
cursor glyph, and that hardly matters for your purposes here, no?



reply via email to

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