Hi Ariel,  

Out of curiosity, I think you’re already using ICU, so why would you use 
libunibreak and not ICU’s line break iterator?

Thanks,
Vincent


On Sunday, February 9, 2014 at 18:01, Ariel Malka wrote:

> Hi Jeremy,
>  
> I have developed a solution based on Harfbuzz and ICU for rendering Unicode 
> text with C++ and OpenGL from the ground-up:
> https://github.com/arielm/Unicode
>  
> The topic of line-breaking is also on my agenda (more on the long term, 
> nothing urgent...)
> One of the directions I'm planning to check in the future: 
> https://github.com/adah1972/libunibreak
>  
> I wonder how do you handle topics like font-fallback, script-itemization and 
> BIDI, prior to shaping and line-breaking?
>  
> Regarding one of your questions, it's easy to pass to Harfbuzz some text 
> previously processed with ICU, as demonstrated here:  
> https://github.com/arielm/Unicode/blob/v4.0.0/Projects/Rendering/src/TextRun.h#L50
>  
> HTH,  
> Ariel
> http://chronotext.org
>  
>  
> On Sat, Feb 8, 2014 at 12:01 AM, Jeremy Moles <[email protected] 
> (mailto:[email protected])> wrote:
> > Hey guys! I'm working on a Python3-based OpenGL library and I want to use 
> > the union of Harfbuzz and libicu to do some (a small subset) of what Pango 
> > currently does. I cannot, unfortunately, simply use Pango, as its 
> > dependency chain will likely stop my clients' interest dead in its tracks. 
> > Further, there are some issues when customizing Pango's rendering model 
> > (and I'm not speaking without experience here, I've done it when I wrote 
> > osgPango) that aren't ideal to work with.
> >  
> > So, I would like to use hb and icu to accomplish some very basic layout in 
> > my OpenGL scenes (note: I will also be using Glyphy instead of my own 
> > rasterized SDF font textures too). I will need basic left|right|center 
> > alignment (potentitally justify, but it isn't a request yet), some basic 
> > markup support, etc.
> >  
> > I nearly have everything working locally, but the one area I'm having a lot 
> > of trouble with is knowing how--and in fact, WHOSE responsibility it is--to 
> > determine how to break large lines of text given my sizing constraints. 
> > This doesn't appear to be something harfbuzz attempts to do, but it may 
> > have helper functions nonetheless.
> >  
> > What I'm looking for are a few hints on how people (Behdad?) might tackle 
> > this problem. ALL text in this library gets converted in 
> > whitespace-normalized UTF8 using libicu and line breaks can only be FORCED 
> > by using <p/> or <br/> markup. Otherwise, all breaks should behave 
> > similarly to how they do in HTML.
> >  
> > If I feed my force-delimited lines of text (that is, break my input feed up 
> > by <br>/<p>) one huge chunk at a time to harfbuzz, I can get the extents 
> > for each glyph as if I had unlimited X coordinate space. I can use these 
> > extents to position as required by the calling function, but again, I'm 
> > having trouble determining where it is safe to break.
> >  
> > Is this something libicu can handle? Can harfbuzz make it easier?
> >  
> > NOTE: When I "whitespace normalize" my string before ever passing it 
> > harfbuzz, I use the UBRK API of libicu. There are also functions like:
> >  
> > u_isspace()
> >  
> > ...which look promising, but it expects a UChar32, which I do not know how 
> > to easily fetch while using harfbuzz's UTF8 functions, who operate on 
> > potential multibyte chars.
> >  
> > Thanks in advance!
> > _______________________________________________
> > HarfBuzz mailing list
> > [email protected] (mailto:[email protected])
> > http://lists.freedesktop.org/mailman/listinfo/harfbuzz
>  
>  
> _______________________________________________
> HarfBuzz mailing list
> [email protected] (mailto:[email protected])
> http://lists.freedesktop.org/mailman/listinfo/harfbuzz



_______________________________________________
HarfBuzz mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/harfbuzz

Reply via email to