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 17:42:35 +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="6713"; 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 17:42:59 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 1s0kCZ-0001bp-B3 for ged-emacs-devel@m.gmane-mx.org; Sat, 27 Apr 2024 17:42:59 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s0kCL-0006Xb-Ar; Sat, 27 Apr 2024 11:42:45 -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 1s0kCI-0006XG-6f for emacs-devel@gnu.org; Sat, 27 Apr 2024 11:42:42 -0400 Original-Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s0kCG-00020W-FN; Sat, 27 Apr 2024 11:42:41 -0400 Original-Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-a55b3d57277so376564766b.2; Sat, 27 Apr 2024 08:42:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714232556; x=1714837356; 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=Oi4G5wrx8hMC9KDRqGi265e6rEGCX4egJ2CPL+Fju58=; b=WCM5aOPNOUoClQgaSN7WdhXRn8cm6sXq9k9maUR5Y5i8wTqys5vDOn41QrGaQbPt8/ Z7D5FqMpglOTC9nUk/7TbcoVlUmAISuixb9Y3LUiBhki2aQTmnp38f3JygcWVAfNWhdM aQeoB4B6T4r7fsfT5AqzqNXI8jiqO8vxPjyxnzapVH3r0ps6F0pkoKhLYenrFpKjb7EV DE0b5jtdo7qOtO1SqONx4r91HL+ytu+0UGryfDL6NXfMFqWWpsmFV8cIWcEoUZVW45IU H10mb7K3bYmQipydUJrN8NXIs7nTJOnqHeawqSrkRV/8913FS71knZcEFExdBU/1Bhee nILQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714232556; x=1714837356; 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=Oi4G5wrx8hMC9KDRqGi265e6rEGCX4egJ2CPL+Fju58=; b=RiF4Tmg6NCtCBGguJFjCKD9o/T4us+OhFrjEMpHyHts0uWHfMLLTQ8x5ugkrl4Du67 EyAi/F3zcEC8tlPlhNtGz5oT5t8Tjth7gVJC93kMmM0/SScJpOfzGZvL/Sc3IX53552f PT2hblxdil/LeHWEe8dX7QVxeFkSkSTTmPhlawZT5w4Rxqb+PVFXuYXAmykmGqYmXpxq Rma4tTFGl0Vnbyp5qwh/j6Z0M+bBlNCVbKIuOpf/wlGDS1y54d/Rk6DCOai+cE3Cdrrm zs0l3WbRd0PVAb1n3lp1axLWAZErXwOqd9SZ/MATz5/ytf77BKpytMmjii6Ix6zvk+KT H6jg== X-Forwarded-Encrypted: i=1; AJvYcCVYs0gRBwz3O7kQs15Rdq3WmAA3w4RQI0Mm+RFHktPQGqxQHeOiojvm4joyfjgVhyUuI0Xsw+gAYAS94krpBhCczgid X-Gm-Message-State: AOJu0YxmEjH8+E+F1UjuDpO2yxo7AB1Cy+TDAzTYPGtFnxM7COYf1kNa YCSZZDckS9ulVqGbf4ouxSZD56UqNAA2Kzpf9P5cWFa9U2zovtNF8Q40yg== X-Google-Smtp-Source: AGHT+IFyxg/bLAYubYdbmGhHt16eTibdNgV64eTlIU1M0zIA0Pjub5MSDgY3ut82TmmtAAbpX0fGnw== X-Received: by 2002:a17:906:414a:b0:a55:4d24:6f9a with SMTP id l10-20020a170906414a00b00a554d246f9amr3789483ejk.6.1714232556264; Sat, 27 Apr 2024 08:42:36 -0700 (PDT) Original-Received: from pro2.fritz.box (p4fe3ae42.dip0.t-ipconnect.de. [79.227.174.66]) by smtp.gmail.com with ESMTPSA id js9-20020a17090797c900b00a5884e0ad1asm5036681ejc.33.2024.04.27.08.42.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Apr 2024 08:42:35 -0700 (PDT) In-Reply-To: <86jzkivmrd.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 27 Apr 2024 18:38:46 +0300") Received-SPF: pass client-ip=2a00:1450:4864:20::636; envelope-from=gerd.moellmann@gmail.com; helo=mail-ej1-x636.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:318214 Archived-At: 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 font. > 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