[HarfBuzz] Alternate/random glyphs
Jonathan Kew
jfkthame at gmail.com
Fri Feb 14 17:21:20 UTC 2020
On 14/02/2020 15:50, Aleš Mlakar wrote:
> Hey Simon,
> I think it doesn't use rand feature, because it never gets to that part
> of the code or at least not to the random_number() function which is the
> only rng function I could find in Harfbuzz :D.
HarfBuzz will only use this if the font has a 'rand' feature with an
AlternateSubstFormat1 subtable, to pick from among the available
alternates for a glyph. You could try dumping the font's GSUB table
(e.g. with fonttools) to see what's actually in there.
It's entirely possible for a font's 'rand' feature to be implemented in
some other way, such as a collection of contextual substitutions; then
no real (pseudo-)randomness is involved.
JK
> I did some debugging and it goes into some coverage functions inside
> hb-ot-layout-common.hh from hb-ot-layout-gsub-table.hh, it's too deep
> for me to be able to understand it though.
> So, as far as I can understand all of this either one of Indesign or
> Harfbuzz is doing it wrong.
>
> Best,
> Ales
>
>
> On Fri, Feb 14, 2020 at 1:04 PM Simon Cozens <simon at simon-cozens.org
> <mailto:simon at simon-cozens.org>> wrote:
>
> On 12/02/2020 19:28, Aleš Mlakar wrote:
> > I did a quick debug through that part of HarfBuzz and it seems it's
> > doing lookups and never gets to the random code.
>
> OpenType randomization on the whole isn't *really* random. Most fonts
> implement pseudo-random selection of alternate glyphs by going
> through a
> series of lookup rules (see e.g. the bottom of
> http://opentypecookbook.com/common-techniques.html ). As you can see,
> none of the techniques there actually use any source of randomness;
> they
> just apply deterministic rules to the input stream.
>
> There *is* a "rand" feature in the OpenType standard, which asks the
> shaper for non-deterministic random selection, but for this to work,
> two
> things need to be in place: the shaper needs to support it, and the
> font
> needs to define it. Harfbuzz as a shaper supports it, but no others do.
> Because of this, few fonts define it.
>
> Even then, Harfbuzz's random number implementation is only pseudorandom
> with a fixed random seed, so you get the same results each time anyway.
>
> I don't know whether Daft Brush uses the "rand" feature. It probably
> doesn't. Although if you are seeing differences between harfbuzz and
> InDesign, it might be that it does.
>
> In short it is down to the font.
>
> S
>
>
>
> --
> Aleš Mlakar,
> Programmer/Consultant
> *am.bits*
>
> _______________________________________________
> HarfBuzz mailing list
> HarfBuzz at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/harfbuzz
>
More information about the HarfBuzz
mailing list