From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Gerd_M=C3=B6llmann?= Newsgroups: gmane.emacs.devel Subject: Re: Building the igc branch on MS-Windows Date: Sat, 27 Apr 2024 18:37:12 +0200 Message-ID: References: <86il063imh.fsf@gnu.org> <867cgkz7e2.fsf@gnu.org> <87r0esdv7o.fsf@gmail.com> <87le50dmec.fsf@gmail.com> <8734r7etu1.fsf@gmail.com> <86il03xrlz.fsf@gnu.org> <868r0zxpfr.fsf@gnu.org> <861q6rxnst.fsf@gnu.org> <86wmojuj0m.fsf@gnu.org> <86mspevp4m.fsf@gnu.org> <877cgidegz.fsf@gmail.com> <86jzkivmrd.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30578"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: eller.helmut@gmail.com, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Apr 27 18:37:55 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 1s0l3h-0007l2-Bh for ged-emacs-devel@m.gmane-mx.org; Sat, 27 Apr 2024 18:37:53 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s0l3B-0003iI-At; Sat, 27 Apr 2024 12:37:21 -0400 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 1s0l38-0003hj-O6 for emacs-devel@gnu.org; Sat, 27 Apr 2024 12:37:18 -0400 Original-Received: from mail-ed1-x52a.google.com ([2a00:1450:4864:20::52a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s0l37-0003Kn-3A; Sat, 27 Apr 2024 12:37:18 -0400 Original-Received: by mail-ed1-x52a.google.com with SMTP id 4fb4d7f45d1cf-57230faeb81so2162716a12.0; Sat, 27 Apr 2024 09:37:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714235834; x=1714840634; darn=gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4I9TCtGfrSWOlMwvDXFXWsfKLtR48Gh6sVGJBkCrDzs=; b=W/Gwf4LXIKr1IYa3cBErcbxkrfMSTXNMOPzH1t4v5jEOh6T7YJpP/pWriZUvKAg98R cl2z+yUEDNtE2H3mQUgjDkLbqqkpP7m7jFDT8jNplsbUOoKvAUjHIXfVlozx8fQxLc2c YWujxPqOVCcBi9ppGOVflU5hwyQL59zIkMiqqTYDYwbAZBXmlmOt/52E1vjMpPxPKUyA /8sFrJMP9MvzSYPIOq27fR+THdKRMzy4Wq2eOawOt6DDTwXCtL//7eV0TlqfNSkzpuVs p2a3zy+afA9kg/znWihP6Vhl2lWa8TsMGkGLmMAL0KZuiY+AbKxcaFdIezqA7g2v6X/h HCIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714235834; x=1714840634; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4I9TCtGfrSWOlMwvDXFXWsfKLtR48Gh6sVGJBkCrDzs=; b=Kb7jXj7ElGuZf+1qgWSEY9W0Ea7/jKFESyzDGN0yC0+l/Ku6SJadfgBiXgRQ8u8DQC iw0z4rSjpJVfPmlJk+XDf+YMh2scTcHxAomall7dUY1KQslMSJ2ilU77vJwcvwLzWCQY LxJ9kit+dpdhIKsDKz3yJFuO6E/ODs8opYA8k5HAJDlaIzd3jRKCv5paY5eKQgt6VKoZ Yu4ontytAjslmMEPs3sbIa1voYQgdCEAeuAsDuA0z5Zd64CHAxPlcKtFuO+tAFQG+yTc 0/MFAei5TwiuDu4igGtLX/xbztoh2QLbDVz9+vz0ll0d8oCiKTetKw91/RhInoup4dHX 2BpA== X-Forwarded-Encrypted: i=1; AJvYcCVzwiKtzH1otL6/W8f3qayaCkRVaUyyKljfcml8OgTQNRiF54swJStsNVnoRYGEHijnDjzjuijHHf3caYuN1/OkHNk5 X-Gm-Message-State: AOJu0YwEiLKFRqrGOIGP6O1nTlnM0K+UjmPKh6icKWwcd8zHL8HP4ZOZ vPHsTUtVKGL1L1C+yaApNywfP7vdluDDU/qWOCvosCs0W7ADmXmoFB7ynA== X-Google-Smtp-Source: AGHT+IE4QicUWqoHXtGGk6mOEz0ZlTd3DThDxgxzFOKwRIeL6VPDPzJIIm3w4orB+FCsXyoC1KX5PQ== X-Received: by 2002:a50:ba88:0:b0:570:3bb:e099 with SMTP id x8-20020a50ba88000000b0057003bbe099mr5381334ede.1.1714235833875; Sat, 27 Apr 2024 09:37:13 -0700 (PDT) Original-Received: from pro2.fritz.box (p4fe3ae42.dip0.t-ipconnect.de. [79.227.174.66]) by smtp.gmail.com with ESMTPSA id fd25-20020a056402389900b00572678527e6sm1129419edb.59.2024.04.27.09.37.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Apr 2024 09:37:13 -0700 (PDT) In-Reply-To: ("Gerd =?utf-8?Q?M=C3=B6llman?= =?utf-8?Q?n=22's?= message of "Sat, 27 Apr 2024 17:42:35 +0200") Received-SPF: pass client-ip=2a00:1450:4864:20::52a; envelope-from=gerd.moellmann@gmail.com; helo=mail-ed1-x52a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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:318217 Archived-At: Gerd M=C3=B6llmann writes: > Eli Zaretskii writes: > >>> From: Gerd M=C3=B6llmann >>> Cc: Eli Zaretskii , emacs-devel@gnu.org >>> Date: Sat, 27 Apr 2024 17:29:44 +0200 >>>=20 >>> Helmut Eller writes: >>>=20 >>> >> But its contents are weird >>> > >>> > In pdumper: >>> > >>> > /* There are three kinds of font objects that all use PVEC_FONT, >>> > distinguished by their size. Font specs and entities are >>> > harmless data carriers that we can dump like other Lisp >>> > objects. Fonts themselves are window-system-specific and >>> > need to be recreated on each startup. */ >>> > >>> > could this be the reason? >>>=20 >>> I think I spider. Unbelievable. Whoever did that should be shot. No >>> that's too mild. He shall use Visual C++ for one year :-). >>>=20 >>> Good catch! Thanks Helmut! >> >> There's more, I think. font.h says this near the end of 'struct font': >> >> /* Font-driver for the font. */ >> struct font_driver const *driver; >> >> /* There are more members in this structure, but they are private >> to the font-driver. */ >> }; >> >> And indeed, w32font.h does this: >> >> /* The actual structure for a w32 font, that can be cast to struct fon= t. >> The Uniscribe backend extends this. */ >> struct w32font_info >> { >> struct font font; >> TEXTMETRICW metrics; >> unsigned int glyph_idx; >> struct w32_metric_cache **cached_metrics; >> int n_cache_blocks; >> HFONT hfont; >> }; >> >> And then w32uniscribe.c does >> >> /* Extension of w32font_info used by Uniscribe and HarfBuzz backends. = */ >> struct uniscribe_font_info >> { >> struct w32font_info w32_font; >> /* This is used by the Uniscribe backend as a pointer to the script >> cache, and by the HarfBuzz backend as a pointer to a hb_font_t >> object. */ >> void *cache; >> /* This is used by the HarfBuzz backend to store the font scale. */ >> double scale; >> }; > > And > > #ifdef NS_IMPL_GNUSTEP > /* this extends font backend font */ > struct nsfont_info > { > struct font font; > > char *name; /* PostScript name, uniquely identifies on NS systems */ > > /* The following metrics are stored as float rather than int. */ > > float width; /* Maximum advance for the font. */ > float height; > float underpos; > float underwidth; > float size; > #ifdef __OBJC__ > NSFont *nsfont; > #else /* ! OBJC */ > void *nsfont; > #endif > char bold, ital; /* convenience flags */ > char synthItal; > XCharStruct max_bounds; > /* We compute glyph codes and metrics on-demand in blocks of 256 indexed > by hibyte, lobyte. */ > unsigned int **glyphs; /* map Unicode index to glyph */ > struct font_metrics **metrics; > }; > #endif I have randomly reverted and reapplied commits and fix_font is gone again. Sorry for the chaos, seems I'm a bit tired.