From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Question about display engine Date: Tue, 03 Sep 2019 17:53:09 +0300 Message-ID: <83tv9t77oq.fsf@gnu.org> References: <83woexb3yu.fsf@gnu.org> <160dfd3f-60d4-8758-df65-2165c552f39e@gmx.at> <83zhjrakf9.fsf@gnu.org> <2aff0873-5d18-a4a0-eada-1ad0e632e753@gmx.at> <83mufr9gya.fsf@gnu.org> <03a80221-5222-9b8b-86a1-67cef18df463@gmx.at> <83zhjp937v.fsf@gnu.org> <8acd9fc1-e6ce-9a86-cfb6-e00a672c154a@gmx.at> <20190901122628.aynhzwwpvqbgyydh@Ergus> <20190902110504.zniyfmd7bi53iyxe@Ergus> <83zhjm7juc.fsf@gnu.org> <4663e760-a611-6c29-e0e2-69bde9da87b1@gmx.at> Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="19099"; mail-complaints-to="usenet@blaine.gmane.org" Cc: spacibba@aol.com, emacs-devel@gnu.org To: martin rudalics Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Sep 03 16:53:28 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i5ABS-0004oH-14 for ged-emacs-devel@m.gmane.org; Tue, 03 Sep 2019 16:53:26 +0200 Original-Received: from localhost ([::1]:47084 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5ABQ-0008L3-DB for ged-emacs-devel@m.gmane.org; Tue, 03 Sep 2019 10:53:24 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47816) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i5ABK-0008Kx-Ku for emacs-devel@gnu.org; Tue, 03 Sep 2019 10:53:19 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:54440) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1i5ABK-0006HT-5f; Tue, 03 Sep 2019 10:53:18 -0400 Original-Received: from [176.228.60.248] (port=2022 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1i5ABJ-0007Iq-JD; Tue, 03 Sep 2019 10:53:17 -0400 In-reply-to: <4663e760-a611-6c29-e0e2-69bde9da87b1@gmx.at> (message from martin rudalics on Tue, 3 Sep 2019 10:45:18 +0200) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:239812 Archived-At: > Cc: emacs-devel@gnu.org > From: martin rudalics > Date: Tue, 3 Sep 2019 10:45:18 +0200 > > > I don't think I understand why you are talking about face pointers. > > The iterator doesn't keep any face pointers, it keeps face IDs (which > > allow to obtain the face pointer, when needed, by using FACE_FROM_ID). > > > > So all you need is to have another face ID member in the iterator, to > > be used for extending past EOL; depending on how the :extend bits are > > set, that face ID may or may not be identical to the "normal" face ID, > > the one we have now and use for buffer text. > > But a face ID is only available after realizing a face. With a lazy > approach there might be no realized face yet and the iterator would > realize that face on the fly. What do you call "realize a face", exactly, and why do you think it is so expensive as to justify doing that lazily?