unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Po Lu <luangruo@yahoo.com>
Cc: emacs-devel@gnu.org
Subject: Re: Stipples and scroll optimizations
Date: Sun, 08 May 2022 12:06:31 +0300	[thread overview]
Message-ID: <83ee14wfzc.fsf@gnu.org> (raw)
In-Reply-To: <871qx45ud0.fsf@yahoo.com> (message from Po Lu on Sun, 08 May 2022 15:58:03 +0800)

> 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	other threads:[~2022-05-08  9:06 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87a6bs5w05.fsf.ref@yahoo.com>
2022-05-08  7:22 ` Stipples and scroll optimizations Po Lu
2022-05-08  7:30   ` Eli Zaretskii
2022-05-08  7:34     ` Po Lu
2022-05-08  7:40       ` Eli Zaretskii
2022-05-08  7:58         ` Po Lu
2022-05-08  9:06           ` Eli Zaretskii [this message]
2022-05-08  9:20             ` Po Lu
2022-05-08 10:46               ` Eli Zaretskii
2022-05-08 10:59                 ` Po Lu
2022-05-08 11:29                   ` Eli Zaretskii
2022-05-08 11:46                     ` Po Lu
2022-05-08 11:07                 ` Po Lu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83ee14wfzc.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=luangruo@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).