From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Unify the Platforms: Cairo+FreeType+Harfbuzz Everywhere (except TTY) Date: Sun, 17 May 2020 18:55:23 +0300 Message-ID: <83lflqblp0.fsf@gnu.org> References: <20200517124125.000013a4@web.de> <97C7EAB7-10AB-4702-ABC8-EB6C1C50ABDB@gnu.org> <20200517165953.000044d2@web.de> Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="68230"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Julius Pfrommer Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun May 17 17:56:18 2020 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 1jaLeE-000Hdi-OD for ged-emacs-devel@m.gmane-mx.org; Sun, 17 May 2020 17:56:18 +0200 Original-Received: from localhost ([::1]:58320 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaLeD-0001QK-QI for ged-emacs-devel@m.gmane-mx.org; Sun, 17 May 2020 11:56:17 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51690) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaLdX-0000k9-Fe for emacs-devel@gnu.org; Sun, 17 May 2020 11:55:35 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:33023) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaLdX-000729-0j; Sun, 17 May 2020 11:55:35 -0400 Original-Received: from [176.228.60.248] (port=4527 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jaLdU-0004dY-IV; Sun, 17 May 2020 11:55:34 -0400 In-Reply-To: <20200517165953.000044d2@web.de> (message from Julius Pfrommer on Sun, 17 May 2020 16:59:53 +0200) 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:250616 Archived-At: > Date: Sun, 17 May 2020 16:59:53 +0200 > From: Julius Pfrommer > Cc: emacs-devel@gnu.org > > Let me phrase the question differently: Would it be okay to have a hard > dependency on the Cairo+FreeType+Harfbuzz (CFH) libraries, as they are > available everywhere? First, we need to establish that this is a solution, and for what problem(s). It is important to realize that the GUI backends we use handle much more than just drawing text, they need to be able to display GUI widgets, frame and window decorations (menu bar, tool bar, scroll bars, the frame title, etc.), and much more. Is the configuration you propose capable of doing all that? I don't think the answer will be full and definitive until "Someone" walks through all the APIs we implement in x/w32/ns/fns.c and x/w32/ns/term.c, and makes sure they all can be covered. Next, please be aware that we already made the decision to use HarfBuzz as our main text-shaping engine. X and w32 already use it; for NS someone has to write the code (and they are not very likely to do so because macOS users consider the native text shaping more feature-rich). Dropping the other font backends is a matter of time, but it could take a long time. In any case, the font backend is not the main issue here; in particular, the likes of FreeType are hardly even seen except on very low level of the code. It's the other aspects of GUI code that bothers me much more. > Even on Linux, this would unlock quite a few simplifications. I count > at least three font handling "backends" here. Down to 2 and one deprecated one on master. Bu again, font backends is a relatively easy problem, and it is being dealt with.