freetype-devel
[Top][All Lists]
Advanced

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

Re: [ft-devel] Unable to get MDRP value in Orthogonal mode in Developmen


From: Werner LEMBERG
Subject: Re: [ft-devel] Unable to get MDRP value in Orthogonal mode in Development
Date: Sat, 28 Mar 2015 06:09:42 +0100 (CET)

> I'm working with some project to develop some interfaces, I really
> liked your services and helpful documents of Fonts files and its
> interpreter, also to FontForge, I'm stuck at MDRP instruction, ...

I assume that you've read the documentation of this opcode in the
TrueType specification...

> ... I unable to understand how MDRP work in orthogonal mode, I've
> been keep looking Airal Font file with first three character #,% and
> &.

What do you mean with `orthogonal mode'?

> When i trying to debug this character with fontforge software,
> almost all instruction mainly studied but I cant understand how MDRP
> get new distance to move of point, please can you help me by saying
> which matrix formula applying and when with which points from this
> three points (Current Point/Original Point of RP0 and Original Point
> of points to be moved. just example any one of those characters,
> specially with & having point of 27 with RP0 = 22 in arial font
> file..

OK, let's have a look at glyph `&', MDRP instruction at bytecode
position 270 (this is ArialMT 5.06).  The freedom vector is (-0.77,
-0.62), pointing roughly to the lower left.  The point to move has
index 22, the reference point index 32.  In FontForge, if you compare
the black (unhinted) with the green (hinted) outline, you can see that
the original position of point 32 differs from the current one.  The
MDRP instruction looks at this difference and projects it onto the
freedom vector, then moving point 22 along the freedom vector (this
is, to the lower left) by this amount.

You can find the used code in FreeType file `src/truetype/ttinterp.c',
function `Ins_MDRP'.


    Werner

PNG image

PNG image


reply via email to

[Prev in Thread] Current Thread [Next in Thread]