From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Drawing UI elements behind text Date: Thu, 28 Nov 2024 11:57:49 +0200 Message-ID: <861pyvel42.fsf@gnu.org> References: <641230ac-2dbc-42ac-a57e-acda77fe9296@imayhem.com> <8C55E590-E586-440A-89C5-0E5153518790@gmail.com> <78d3a7e7-f5a7-476b-8a9d-27beca44a94a@imayhem.com> <86plmgg2vx.fsf@gnu.org> <86bjy0fqqu.fsf@gnu.org> <943ad61e-9823-4dff-b8c0-d9d1b74ef676@imayhem.com> <861pywfnb2.fsf@gnu.org> <005e93b1-4b5b-4d59-9fc3-9bf9b9c29bdc@imayhem.com> <86v7w7etn9.fsf@gnu.org> <7127ca97-a1ce-4e46-af93-16ca849ff207@imayhem.com> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="28649"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Cecilio Pardo Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Nov 28 10:58:50 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tGbIP-0007CA-Be for ged-emacs-devel@m.gmane-mx.org; Thu, 28 Nov 2024 10:58:49 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tGbHX-00084D-Lz; Thu, 28 Nov 2024 04:57:55 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tGbHV-00083q-1v for emacs-devel@gnu.org; Thu, 28 Nov 2024 04:57:53 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tGbHU-0001am-7v; Thu, 28 Nov 2024 04:57:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=epYkITZTyW3qhHZN2mafaltrWTUfeXzVeTF64kzeDnM=; b=boOtq+J0flcg 60Bb8/1UZb7TiF3iNgU/3QUYE8X3y8RXjhOlhCHPlBHHLUhcaxmKnP3seGJ0mdAJQ+JKrbMUBcSFJ JZnbmv8n/cMCDkxtQiMm7xLOjhB+HnicAC1LH9V3z4ylpNbMTYuG9ncaFdAQXZsyLfjbgEJbEiy6j fEoQ6w0JsKnv+MiNDBpDQjGU+hPHDgYpaj7r5IsnsjmAd24asZbV9AWw/Lr2XVR9iJLJOGwqHIENz ny+A1HwLhpEPTYWO66Y/pr24KG5HoeJc8GLGj1AVuzQTiHwxfGxtbLHxe62vSak9qGrwn+UMOSV7D 0kjSHr/N9Nuqcd8VaGw3eg==; In-Reply-To: <7127ca97-a1ce-4e46-af93-16ca849ff207@imayhem.com> (message from Cecilio Pardo on Thu, 28 Nov 2024 09:43:21 +0100) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:325802 Archived-At: > Date: Thu, 28 Nov 2024 09:43:21 +0100 > Cc: emacs-devel@gnu.org > From: Cecilio Pardo > > On 28/11/2024 7:53, Eli Zaretskii wrote: > > Those (and other similar ones) are the scenarios where the display > > engine activates its non-trivial optimization methods, and the > > questions of interest related to that are: > > > > . do we need to disable some of the optimizations when these > > segments are on display (because their assumptions are > > incompatible with how these segments are drawn)? > > . how do these segments affect redisplay times in each such case, > > after we disable the optimizations, if any, that are incompatible > > with them? > > > > These questions are prerequisites for deciding whether we need to make > > this particular case faster by some special measures. > > The segments are drawn independently of redisplay, on top of its result, > without affecting it (so that the next redisplay finds it exactly as it > was). So no optimizations are disabled, and the time added by them is > independent of what redisplay had to do. I'm probably missing something: if Emacs uses the scroll_run_hook, which bitblts a portion of the screen's pixels, doesn't that move also the pixels of the segments? If not, does it mean those segments' pixels are not drawn on the screen, but somehow overlaid on it using some video driver trick?