[cairo] Custom UserFont sizing questions
Behdad Esfahbod
behdad at behdad.org
Wed Dec 10 15:28:32 PST 2008
Ian Britten wrote:
> Hi all,
> I'm down inside the 'render' function for my custom UserFont, and
> am struggling with some size/scale issues. I'm hoping someone can
> help explain what I'm seeing, and how to best address+simplify it.
>
> First though, if my render function simply draws my FT_Face using
> glyph_path(), then everything is sized ok. :) As such, I'm
> pretty sure I've got everything set up correctly in my higher-level
> code regarding the font matrix, context transformation, etc.
>
> However, I now need to render my face using raw FT calls.
Why exactly?
behdad
> I've
> got the code laid out and running, but with some some issues
> getting it sized/scaled correctly. (NB: All the other calling
> code is the same - It's just a different 'render' implementation)
>
> Basically, my (cairomm) render code looks like:
> FT_Set_Char_Size(face, 0, mmToPoint(115.238887) * 64,
> 72, 72);
> FT_Load_Glyph(face, glyph, load_flags);
> inContext->save();
> inContext->scale(0.001158/2.0, -0.001158/2.0);
> FT_Outline_Decompose(face->glyph->outline, &funcs, &data);
> inContext->restore()
> inContext->stroke();
>
> Now, as to the hard-coded numbers:
> - 115.23887 is the mm size my glyph should be rendered on the
> PDF output, from the higher-level calling code.
> - 0.001158 is the user size of my glyph (as set into the font
> matrix of the context). Again, from the calling code.
> - The 2.0 is unknown, and may not be exactly correct. I've
> just been flailing with it to get generally-correct results.
>
> Now,
> - Can someone explain the 2.0? I don't understand it...
> - I'm reasonably sure I can get those other numbers properly
> passed into my render function if necessary, but can someone
> suggest an approach that maybe doesn't require them? The
> 'render' docs talk about 'font space' and a size of 1.0, giving
> the impression that I maybe shouldn't need them, but I just
> can't seem to get it to work otherwise. :(
> Also, since I didn't need these numbers when just using
> glyph_path(), I'm inclined to think I shouldn't need them
> now either. I tried to trace though the glyph_path() code,
> but couldn't really find/understand what I needed...
>
> I know I'm in a pretty specialized piece of Cairo, and I'm
> doing something even more specialized, but I'm hoping someone
> out there might be familiar with the relevant pieces and can
> help explain+simplify!
> If anything is unclear, or if you need/want more detail, just
> ask...
>
> Many thanks for any help or suggestions!
> Ian
>
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo
>
More information about the cairo
mailing list