[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#54646: 29.0.50; set-fontset-font and font clipping issues
From: |
Visuwesh |
Subject: |
bug#54646: 29.0.50; set-fontset-font and font clipping issues |
Date: |
Fri, 01 Apr 2022 18:40:30 +0530 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) |
[வெள்ளி ஏப்ரல் 01, 2022] Eli Zaretskii wrote:
>> From: Visuwesh <visuweshm@gmail.com>
>> Cc: Robert Pluim <rpluim@gmail.com>, 54646@debbugs.gnu.org
>> Date: Fri, 01 Apr 2022 17:08:59 +0530
>>
>> > I think at this point we need to establish whether we pass the same
>> > information to HarfBuzz in the "good" and the "bad" cases. In
>> > particular, we tell it how to scale the glyph metrics:
>> >
>> > hb_font_t *hb_font
>> > = font->driver->begin_hb_font
>> > ? font->driver->begin_hb_font (font, &position_unit)
>> > : NULL;
>> >
>> > The value of position_unit then affects the values returned in the
>> > Lisp glyph object used to display the grapheme cluster:
>> >
>> > xoff = lround (pos[i].x_offset * position_unit);
>> > yoff = - lround (pos[i].y_offset * position_unit);
>> > wadjust = lround (pos[i].x_advance * position_unit);
>> > if (xoff || yoff || wadjust != metrics.width)
>> > LGLYPH_SET_ADJUSTMENT (lglyph, CALLN (Fvector,
>> > make_fixnum (xoff),
>> > make_fixnum (yoff),
>> > make_fixnum (wadjust)));
>> >
>> > I'd be interested in what happens there in the "good" vs the "bad"
>> > cases.
>> >
>> > If we pass the same information to HarfBuzz, and it returns different
>> > results, then it's probably a problem in HarfBuzz.
>>
>> If you can give some instructions on how to get started, I can try
>> getting the value of position_unit in the good and the bad cases.
>
> I don't think I understand where to begin the instructions. Are you
> familiar with running Emacs under GDB and debugging the C code?
Unfortunately not, but the printf option sounds feasible. So I will do
that.
> If so, setting a breakpoint in the code which I quoted (it's in
> hbfont.c) and showing the values in both the "good" and the "bad"
> cases is what we need.
>
I get two matches for the first snippet: in hbfont_shape and in
hbfont_otf_capability. I assume I have to check the one in
hbfont_shape?
> Alternatively, you could add printf statements in that code which
> would output those values to stdout or stderr streams.
- bug#54646: 29.0.50; set-fontset-font and font clipping issues, Robert Pluim, 2022/04/01
- bug#54646: 29.0.50; set-fontset-font and font clipping issues, Visuwesh, 2022/04/01
- bug#54646: 29.0.50; set-fontset-font and font clipping issues, Eli Zaretskii, 2022/04/01
- bug#54646: 29.0.50; set-fontset-font and font clipping issues, Visuwesh, 2022/04/01
- bug#54646: 29.0.50; set-fontset-font and font clipping issues, Eli Zaretskii, 2022/04/01
- bug#54646: 29.0.50; set-fontset-font and font clipping issues, Visuwesh, 2022/04/03
- bug#54646: 29.0.50; set-fontset-font and font clipping issues, Eli Zaretskii, 2022/04/03
- bug#54646: 29.0.50; set-fontset-font and font clipping issues, Visuwesh, 2022/04/03
- bug#54646: 29.0.50; set-fontset-font and font clipping issues, Eli Zaretskii, 2022/04/03
- bug#54646: 29.0.50; set-fontset-font and font clipping issues, Visuwesh, 2022/04/03