[HarfBuzz] HarfBuzz for Indic scripts

Peter Hunter phunter at atex.com
Thu Sep 25 15:46:40 PDT 2008


I've been charged by my company with implementing a module to handle Indic languages in our typesetting system and I've been exploring the use of HarfBuzz to do that
Currently I've created interfaces between HarfBuzz library and ICU and Freetype and a trivial test program
If anyone's interested I can supply them as potential sample (and basic) usages
But I have a couple of questions

(1)The character metrics have a height,width,x,y,xoffset and yoffset
The height and width I'm comfortable width, but can anyone explain the x,y and  xoffset,yoffset pairs
I'm guessing that one of x,xoffset might be the leading side bearing and y,yoffset might be starting position relative to the baseline. But I'd appreciate actually knowing what they are

(2)The font I'm testing with doesn't appear to include much in the way of GPOS information, is there any way of defaulting the actions of the code so that vowel signs are correctly positioned. (In our current typesetting system if no combined character exists for accented characters then we position the accent over the midpoint of the character)

(3)Perhaps it's the way I'm calling the library, but I had a memory access problem in HARFBUZZ-SHAPER.CPP :: HB_OpenTypePosition where it does
memset(face->buffer->positions, 0, face->buffer->in_length*sizeof(HB_PositionRec));
immediately before
         glyphs_positioned = HB_GPOS_Apply_String(item->font, face->gpos, face->current_flags, face->buffer, false, false) != HB_Err_Not_Covered;
The problem was that face->buffer->positions was zero, but I did notice that HB_GPOS_Apply_String calls
_hb_buffer_clear_positions( buffer ) which allocates and clears the buffer->positions array
Does this mean that the memset(...) is redundant and could be removed

(4) Not so much of a problem, but we're a windows shop and neither I nor one of my associates were able to access the sources using GIT GUI or GitBash. Perhaps there's a firewall problem at this end. Is anyone aware of a similar problem

Thanks for such a readily usable product

Peter Hunter




More information about the HarfBuzz mailing list