Re: Pango manual rendering



On 14-08-01 05:53 PM, Edu García wrote:
Thank you for your response.

That's how I'm using the geometry right now, but I don't seem to get things
like alignment work. Even after setting a width on my layout, with right
alignment I get the exact same result as with left alignment (I assumed the
first glyph will get a very big X offset, to set the line start position, but
it's not happening)

I don't remember the details.  Check pango-renderer.c.  Perhaps a better
option is to subclass PangoRenderer for your application.


As for ligatures, is there any way of getting the underlying Harfbuzz handle
and do it there, even with some sort of hack?

Not right now.  If you want to disable them so badly and don't mind getting
yourself comfortable with gobject, then you can subclass PangoCairoFcFontMap
and override the fontset_key_substitute(), and in there set
PANGO_FC_FONT_FEATURES on the pattern...  You might need rather recent pango
and fontconfig for this to work.


Again, thank you for your responses!

On Aug 2, 2014 6:51 AM, "Behdad Esfahbod" <behdad behdad org
<mailto:behdad behdad org>> wrote:

    On 14-08-01 11:04 AM, Edu García wrote:
    > Hi,
    >
    > I want to use Pango for layout, but not for rendering. I have a proof of
    > concept that works, but I think it's not the right way of doing things :)
    >
    > I create a PangoLayout with my text, then get a PangoLayoutIter, then I
    start
    > calling next_line() on it until it returns FALSE. On every iteration, I
    get a
    > run (that returns a PangoGlyphItem) and iterate over the contained
    > PangoGlyphString.
    >
    > This works but, as I said, I think it's the wrong thing to do, I'm not
    sure if
    > depending on "next_line()" is a good idea, I'm not sure if there is a
    > correlation between that call and the call to "get_run()".

    I think that's how you are supposed to call it.


    > The second problem is that for every glyph, I get the
    PangoGlyphGeometry, but
    > the X and Y offsets are always 0. This might be just because the font's I've
    > tried work like that, but I just want to make sure.

    Keep accumulating the advance.  Just add X / Y offsets to the sum of advances
    of previous glyphs on the line, to get the position of current glyph.


    > Another unrelated question is, how can I disable ligatures using Pango?

    Currently you can't.


    > Sorry if this is a bit confusing, but there is little to no information
    about
    > what I'm trying to do.


    --
    behdad
    http://behdad.org/


-- 
behdad
http://behdad.org/


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]