From: "Gerd Möllmann" <gerd.moellmann@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: eller.helmut@gmail.com, emacs-devel@gnu.org
Subject: Re: Building the igc branch on MS-Windows
Date: Sat, 27 Apr 2024 18:37:12 +0200 [thread overview]
Message-ID: <m2sez6g3t3.fsf@pro2.fritz.box> (raw)
In-Reply-To: <m21q6qhkwk.fsf@pro2.fritz.box> ("Gerd Möllmann"'s message of "Sat, 27 Apr 2024 17:42:35 +0200")
Gerd Möllmann <gerd.moellmann@gmail.com> writes:
> Eli Zaretskii <eliz@gnu.org> writes:
>
>>> From: Gerd Möllmann <gerd.moellmann@gmail.com>
>>> Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
>>> Date: Sat, 27 Apr 2024 17:29:44 +0200
>>>
>>> Helmut Eller <eller.helmut@gmail.com> writes:
>>>
>>> >> 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?
>>>
>>> I think I spider. Unbelievable. Whoever did that should be shot. No
>>> that's too mild. He shall use Visual C++ for one year :-).
>>>
>>> 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
I have randomly reverted and reapplied commits and fix_font is gone
again. Sorry for the chaos, seems I'm a bit tired.
next prev parent reply other threads:[~2024-04-27 16:37 UTC|newest]
Thread overview: 116+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-24 15:06 Building the igc branch on MS-Windows Eli Zaretskii
2024-04-24 15:20 ` Gerd Möllmann
2024-04-24 16:07 ` Eli Zaretskii
2024-04-24 16:48 ` Gerd Möllmann
2024-04-24 16:59 ` Gerd Möllmann
2024-04-24 19:09 ` Eli Zaretskii
2024-04-24 19:44 ` Gerd Möllmann
2024-04-25 5:38 ` Eli Zaretskii
2024-04-25 6:17 ` Gerd Möllmann
2024-04-25 4:54 ` Helmut Eller
2024-04-25 5:30 ` Eli Zaretskii
2024-04-25 6:38 ` Helmut Eller
2024-04-25 7:39 ` Gerd Möllmann
2024-04-25 10:34 ` Eli Zaretskii
2024-04-25 11:09 ` Eli Zaretskii
2024-04-25 11:16 ` Eli Zaretskii
2024-04-25 11:59 ` Gerd Möllmann
2024-04-25 13:22 ` Eli Zaretskii
2024-04-25 13:29 ` Gerd Möllmann
2024-04-25 11:55 ` Gerd Möllmann
2024-04-25 13:29 ` Eli Zaretskii
2024-04-25 14:00 ` Gerd Möllmann
2024-04-25 14:34 ` Eli Zaretskii
2024-04-25 14:40 ` Gerd Möllmann
2024-04-25 12:35 ` Helmut Eller
2024-04-25 12:40 ` Gerd Möllmann
2024-04-26 7:18 ` Helmut Eller
2024-04-26 7:38 ` Gerd Möllmann
2024-04-26 7:41 ` Eli Zaretskii
2024-04-26 8:11 ` Gerd Möllmann
2024-04-26 9:13 ` Helmut Eller
2024-04-26 9:31 ` Gerd Möllmann
2024-04-26 10:55 ` Eli Zaretskii
2024-04-26 11:27 ` Po Lu
2024-04-26 13:04 ` Gerd Möllmann
2024-04-26 13:42 ` Po Lu
2024-04-26 13:46 ` Gerd Möllmann
2024-04-26 14:35 ` Gerd Möllmann
2024-04-26 10:35 ` Eli Zaretskii
2024-04-26 10:56 ` Gerd Möllmann
2024-04-26 11:25 ` Eli Zaretskii
2024-04-26 11:38 ` Po Lu
2024-04-26 12:58 ` Gerd Möllmann
2024-04-26 14:49 ` Eli Zaretskii
2024-04-26 14:53 ` Gerd Möllmann
2024-04-27 0:21 ` Po Lu
2024-04-27 6:13 ` Eli Zaretskii
2024-04-27 6:48 ` Gerd Möllmann
2024-04-27 7:13 ` Eli Zaretskii
2024-04-26 12:58 ` Gerd Möllmann
2024-04-26 15:11 ` Eli Zaretskii
2024-04-26 15:27 ` Gerd Möllmann
2024-04-26 11:32 ` Eli Zaretskii
2024-04-26 13:09 ` Gerd Möllmann
2024-04-26 13:12 ` Gerd Möllmann
2024-04-26 15:01 ` Helmut Eller
2024-04-26 15:30 ` Gerd Möllmann
2024-04-26 15:39 ` Eli Zaretskii
2024-04-26 17:03 ` Gerd Möllmann
2024-04-26 18:24 ` Helmut Eller
2024-04-26 18:37 ` Gerd Möllmann
2024-04-26 16:57 ` Gerd Möllmann
2024-04-26 18:11 ` Helmut Eller
2024-04-26 18:30 ` Gerd Möllmann
2024-04-26 20:45 ` Helmut Eller
2024-04-27 4:22 ` Gerd Möllmann
2024-04-27 5:18 ` Ihor Radchenko
2024-04-27 5:26 ` Gerd Möllmann
2024-04-27 5:54 ` Ihor Radchenko
2024-04-27 6:07 ` Gerd Möllmann
2024-04-27 6:31 ` Gerd Möllmann
2024-04-27 6:22 ` Eli Zaretskii
2024-04-27 6:29 ` Ihor Radchenko
2024-04-27 7:11 ` Eli Zaretskii
2024-04-27 7:40 ` Ihor Radchenko
2024-04-27 6:45 ` Gerd Möllmann
2024-04-27 6:11 ` Eli Zaretskii
2024-04-27 6:58 ` Eli Zaretskii
2024-04-27 7:17 ` Eli Zaretskii
2024-04-27 8:38 ` Gerd Möllmann
2024-04-27 11:15 ` Eli Zaretskii
2024-04-27 12:09 ` Gerd Möllmann
2024-04-27 12:33 ` Eli Zaretskii
2024-04-27 12:37 ` Eli Zaretskii
2024-04-27 13:26 ` Gerd Möllmann
2024-04-27 14:54 ` Eli Zaretskii
2024-04-27 15:25 ` Gerd Möllmann
2024-04-27 15:40 ` Eli Zaretskii
2024-04-27 15:47 ` Helmut Eller
2024-04-27 15:48 ` Gerd Möllmann
2024-04-27 7:23 ` Gerd Möllmann
2024-04-27 7:33 ` Eli Zaretskii
2024-04-27 9:04 ` Gerd Möllmann
2024-04-27 11:44 ` Eli Zaretskii
2024-04-27 12:07 ` Eli Zaretskii
2024-04-27 12:41 ` Gerd Möllmann
2024-04-27 13:23 ` Gerd Möllmann
2024-04-27 12:32 ` Gerd Möllmann
2024-04-27 14:11 ` Gerd Möllmann
2024-04-27 14:47 ` Eli Zaretskii
2024-04-27 15:09 ` Gerd Möllmann
2024-04-27 15:15 ` Helmut Eller
2024-04-27 15:29 ` Gerd Möllmann
2024-04-27 15:38 ` Eli Zaretskii
2024-04-27 15:42 ` Gerd Möllmann
2024-04-27 16:37 ` Gerd Möllmann [this message]
2024-04-27 15:23 ` Gerd Möllmann
2024-04-28 6:31 ` Eli Zaretskii
2024-04-28 6:44 ` Gerd Möllmann
2024-04-27 7:17 ` Gerd Möllmann
2024-04-27 12:11 ` Helmut Eller
2024-04-27 12:32 ` Eli Zaretskii
2024-04-27 13:41 ` Helmut Eller
2024-04-26 8:12 ` Helmut Eller
2024-04-26 8:57 ` Gerd Möllmann
2024-04-26 10:39 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m2sez6g3t3.fsf@pro2.fritz.box \
--to=gerd.moellmann@gmail.com \
--cc=eliz@gnu.org \
--cc=eller.helmut@gmail.com \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.