Go to file
Alexei Podtelezhnikov 65d6572105 [truetype] Scale F_dot_P down.
The dot product between freeVector and projVector or cosine of
the angle between these FT_F2Dot14 unit vectors used to be scaled up
by 4 and routinely occupied 32 bits in an FT_Long field F_dot_P.
This patch scales the value down by 2^14 instead, which simplifies
its use throughout the bytecode interpreter.

This does not lead to the loss of precision because the lower bits
are unreliable anyway. Consider two unit vectors (1,0) and (.6,.8)
for which the true value of F_dot_P is .6 * 0x40000000 = 0x26666666.
These vectors are stored as (0x4000,0) and (0x2666,0x3333) after
rounding and F_dot_P is assigned 0x26660000. The lower bits were
already lost while rounding the unit vector components.

Besides code simplification, this change can lead to better
performance when FT_MulDiv with the scaled-down F_dot_P is less
likely to use the costly 64-bit path. We are not changing the type
of F_dot_P to FT_F2Dot14 at this point.

* src/truetype/ttinterp.c (Compute_Funcs): Scale F_dot_P down by 14
bits and modify its use accordingly.
(Direct_Move, Direct_Move_Orig, Compute_Point_Displacement): Modify
the use of F_dot_P field.
* src/truetype/ttobjs.c (tt_size_run_fpgm): Change arbitrary
assignment of F_dot_P to its theoretical maximum in case we decide
to scale back its type later.
2012-12-10 06:59:29 -05:00
builds [configure] Preserve customized `ftoption.h'. 2012-11-30 13:45:47 +01:00
devel [truetype] Support subpixel hinting. 2012-06-18 10:36:06 +02:00
docs [doc] Minor improvements. 2012-11-30 15:29:33 +01:00
include Improve documentation of Unicode IVS handling. 2012-11-04 17:25:29 +01:00
objs Ignore *.o and *.a files. 2011-03-20 18:28:31 +01:00
src [truetype] Scale F_dot_P down. 2012-12-10 06:59:29 -05:00
.gitignore We no longer use CVS. 2010-01-23 16:19:33 +01:00
.mailmap Add .mailmap file. 2012-12-08 12:30:37 +01:00
ChangeLog [truetype] Scale F_dot_P down. 2012-12-10 06:59:29 -05:00
ChangeLog.20 Add one more example to the documentation of FT_Glyph_To_Bitmap. 2008-08-06 09:09:41 +00:00
ChangeLog.21 Formatting, copyright years. 2008-07-27 06:27:21 +00:00
ChangeLog.22 Formatting, copyright years. 2008-07-27 06:27:21 +00:00
ChangeLog.23 Fix ChangeLogs. 2010-08-29 06:04:51 +09:00
Jamfile * Version 2.4.10 released. 2012-06-15 06:45:12 +02:00
Jamrules
Makefile * Makefile, *.mk: Use `?=' where appropriate. 2006-02-01 07:52:11 +00:00
README * Version 2.4.10 released. 2012-06-15 06:45:12 +02:00
README.git Typo. 2010-07-12 21:25:01 +02:00
autogen.sh Set the executable bit of autogen.sh. 2011-11-29 23:56:23 +01:00
configure Whitespace. 2011-12-02 20:22:04 +01:00
modules.cfg Add new error code FT_Err_Missing_Module. 2011-11-26 13:38:26 +01:00
version.sed Put version information into the configure script. Reported by Paul 2006-05-08 07:10:29 +00:00
vms_make.com typo 2007-02-12 14:35:15 +00:00

README

  FreeType 2.4.10
  ===============

  Please   read   the  docs/CHANGES   file,   it  contains   IMPORTANT
  INFORMATION.

  Read the files `docs/INSTALL' for installation instructions.

  See the  file `docs/LICENSE.TXT'  for the available licenses.   Note
  that we use ranges (`2008-2010') for copyright years also instead of
  listing individual years (`2008, 2009, 2010').

  The FreeType 2 API reference is located in `docs/reference'; use the
  file   `ft2-doc.html'   as   the   top  entry   point.    Additional
  documentation is available as a separate package from our sites.  Go
  to

    http://download.savannah.gnu.org/releases/freetype/

  and download one of the following files.

    freetype-doc-2.4.10.tar.bz2
    freetype-doc-2.4.10.tar.gz
    ftdoc2410.zip


  Bugs
  ====

  Please report bugs  by e-mail to `freetype-devel@nongnu.org'.  Don't
  forget to  send a  detailed explanation of  the problem --  there is
  nothing  worse than  receiving a  terse message  that only  says `it
  doesn't work'.

  Alternatively, you may submit a bug report at

    https://savannah.nongnu.org/bugs/?group=freetype


  Enjoy!


    The FreeType Team

----------------------------------------------------------------------

Copyright 2006-2011 by
David Turner, Robert Wilhelm, and Werner Lemberg.

This  file is  part of  the FreeType  project, and  may only  be used,
modified,  and distributed  under the  terms of  the  FreeType project
license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
this file you  indicate that you have read  the license and understand
and accept it fully.


--- end of README ---