From: Jason Rumney <jasonr@gnu.org>
To: Chong Yidong <cyd@stupidchicken.com>
Cc: emacs-devel@gnu.org
Subject: Re: Analysis of redisplay performance on Windows
Date: Sun, 27 Jul 2008 10:55:11 +0100 [thread overview]
Message-ID: <488C45FF.2040509@gnu.org> (raw)
In-Reply-To: <87od4kuis1.fsf@stupidchicken.com>
Chong Yidong wrote:
>> There may also be a problem with the setting of
>> row->contains_overlapping_glyphs_p on Windows. The above functions
>> should only be called when that is set, but after inserting debugging
>> code I can see them being called frequently even when using fonts that
>> contain no overlapping glyphs (confirmed by further debugging code in
>> w32font_text_metrics).
>
> But I don't understand why the problem of left_overwriting and
> right_overwriting, if that's indeed the culprit, would be specific to
> Windows.
That is why I suspect there may be a problem with the setting of
row->contains_overlapping_glyphs_p on Windows. We avoid calling those
functions if that variable is not set. It may also be much more
expensive to look up the glyph index points in Windows, that is the case
for obtaining text extents, so it wouldn't surprise me.
Another factor is that we do this all one character at a time, and each
time on Windows we select the font into the current GC, then reselect
the previously set font. This operation is also expensive, so it would
help to have functions in the font backend interface for selecting and
deselecting fonts. I already tried using prepare_face and done_face for
this, but the calls overlap - ie we prepare a second face without
calling done_face for the first.
next prev parent reply other threads:[~2008-07-27 9:55 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-27 3:07 Analysis of redisplay performance on Windows Chong Yidong
2008-07-27 9:55 ` Jason Rumney [this message]
2008-07-27 20:56 ` Chong Yidong
2008-07-27 21:30 ` Jason Rumney
2008-07-27 21:40 ` Chong Yidong
2008-07-27 21:53 ` Jason Rumney
2008-07-28 1:18 ` Chong Yidong
2008-07-28 3:06 ` Adrian Robert
2008-07-28 5:03 ` Chong Yidong
2008-07-28 7:04 ` Jason Rumney
2008-07-28 2:11 ` Kevin Yu
2008-07-28 4:24 ` YAMAMOTO Mitsuharu
2008-07-28 9:48 ` YAMAMOTO Mitsuharu
2008-07-30 21:51 ` Jason Rumney
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=488C45FF.2040509@gnu.org \
--to=jasonr@gnu.org \
--cc=cyd@stupidchicken.com \
--cc=emacs-devel@gnu.org \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.