| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
|
|
|
|
| |
Problem reported by Robin Watts <robin.watts@artifex.com>.
* src/base/ftoutln.c (FT_Outline_New_Internal): Ensure that
`numContours' and `numPoints' fit into FT_Outline's `n_points' and
`n_contours', respectively.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
==========================
Tag sources with `VER-2-4-11'.
* docs/CHANGES, docs/release: Updated.
* docs/VERSION.DLL: Update documentation and bump version number to
2.4.11.
* README, Jamfile (RefDoc),
builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj,
builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
builds/win32/visualce/freetype.vcproj,
builds/win32/visualce/index.html,
builds/wince/vc2005-ce/freetype.vcproj,
builds/wince/vc2005-ce/index.html,
builds/wince/vc2008-ce/freetype.vcproj,
builds/wince/vc2008-ce/index.html: s/2.4.10/2.4.11/, s/2410/2411/.
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
* builds/unix/configure.raw (version_info): Set to 16:0:10.
* builds/toplevel.mk (dist): Don't include `.mailmap'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
FreeType used to rely on a 24-step iteration CORDIC algorithm to
calculate trigonometric functions and rotate vectors. It turns out
that once the vector is in the right half-plane, the initial rotation
by 63 degrees is not necessary. The algorithm is perfectly capable
to converge to any angle starting from the second 45 degree rotation.
This patch removes the first rotation and makes it a 23-step CORDIC
algorithm.
* src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macro
values.
(ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Remove initial
rotation.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* src/base/fttrrigon.c (ft_trig_pseudo_polarize): Align algorithm
with `ft_trig_pseudo_rotate'.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Use
`logical not' operator instead of negation. The idea is that `~'
returns exactly the data type enforced by the cast to a pointer (be
it 32bit or 64bit or whatever), while a negative integer has not
this flexibility.
* src/cache/ftccmap.c (FTC_CMAP_UNKNOWN): Ditto.
* src/truetype/ttgxvar.c (ALL_POINTS, TT_Get_MM_Var): Ditto.
* src/type/t1load.c (T1_Get_MM_Var): Ditto.
(parse_blend_axis_types): Use cast.
* src/bdf/bdflib.c (_bdf_readstream): Use cast.
|
|\
| |
| |
| |
| | |
Conflicts:
src/truetype/ttinterp.c
|
| | |
|
|/ |
|
|
|
|
| |
* src/sfnt/ttload.c (tt_face_load_gasp): Avoid memory leak.
|
|
|
|
|
|
|
| |
Since the initial commit (ebe85f59) the value of FT_TRIG_SCALE has
always been slightly less than the correct value, which has been
given in the comment as a hexadecimal. As a result, vector lengths
were underestimated and rotated vectors were shortened.
|
|
|
|
|
| |
* src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize
negative second parameter of `ENCODING' field also.
|
|
|
|
|
| |
* src/bdf/bdflib.c (_bdf_parse_glyphs): Use correct array size for
checking `glyph_enc'.
|
|
|
|
|
|
| |
* src/bdf/bdflib.c (_bdf_parse_start): Reset `props_size' to zero in
case of allocation error; this value gets used in a loop in
`bdf_free_font'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
* src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Correctly set
`limit' value.
|
| |
|
|
|
|
|
|
| |
* src/truetype/ttinterp.c (Current_Ratio): Put unit vector
components as the second TT_MulFix14 arguments. This is required
on 16-bit systems.
|
|
|
|
|
|
|
| |
* src/truetype/ttinterp.c (TT_DivFix14): New macro.
(Normalize): Use it here.
(Current_Ratio): Use TT_MulFix14 instead of FT_MulDiv.
(Ins_SHPIX): Cancel out two TT_MulFix14 calls.
|
|
|
|
|
| |
* src/truetype/ttinterp.c: Use explicit calls to FT_MulDiv,
FT_MulFix, and FT_DivFix instead of macros.
|
|
|
|
|
|
|
|
| |
This is Savannah bug #37856.
* src/pshinter/pshglob.c (psh_calc_max_height): New function.
(psh_globals_new): Use it to limit BlueScale value to
`1 / max_of_blue_zone_heights'.
|
| |
|
|
|
|
|
|
| |
* src/truetype/ttgxvar.c: Updated.
* src/truetype/ttobjs.c: Updated.
* src/type1/t1load.c: Updated.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Problem reported by Del Merritt <del@alum.mit.edu>.
* builds/unix/configure.raw <cpp computation of bit length>: Don't
remove existing FreeType configuration files.
|
|
|
|
|
|
|
| |
The bug report also contains a patch.
* src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Really fix
change from 2012-09-17.
|
| |
|
|
|
|
|
|
| |
* src/cid/cidload.c (cid_parse_font_matrix): Updated.
* src/type1/t1load.c (t1_parse_font_matrix): Updated.
* src/type42/t42parse.c (t42_parse_font_matrix): Updated.
|
|
|
|
|
| |
* src/base/ftstroke.c: Replace nested FT_DivFix and FT_MulFix with
FT_MulDiv.
|
| |
|
|
|
|
| |
* src/base/ftoutln.c (FT_Outline_EmboldenXY): Use FT_MulDiv.
|
|
|
|
|
| |
* src/autofit/aflatin.c (af_latin_metrics_init_widths): Add some
FT_TRACE calls.
|
|
|
|
|
|
|
|
| |
* src/cff/cffload.c (cff_font_load): Separate subfont and face
index handling to load both pure CFFs with multiple subfonts and
OTCs (with multiple faces where each face holds exactly one
subfont).
* src/cff/cffobjs.c (cff_face_init): Updated.
|
|
|
|
|
| |
* src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Fix
loop.
|
|
|
|
|
|
| |
* src/autofit/aflatin.c (af_latin_hint_edges)
[FT_DEBUG_LEVEL_TRACE]: Count number of actions and emit something
if there weren't any.
|
| |
|
| |
|
|
|
|
|
| |
* src/base/ftoutln.c (FT_Outline_EmboldenXY): Threshold emboldening
strength when it leads to segment collapse.
|
|
|
|
|
|
| |
* src/base/ftoutln.c (FT_Outline_EmboldenXY): Replace sequential
calls to FT_MulFix and FT_DivFix with FT_MulDiv.
Mention that bisectors are used to figure out the shift direction.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* src/autofit/aftypes.h (AF_ScriptClassRec): Add `standard_char'
member.
(AF_DEFINE_SCRIPT_CLASS): Updated.
* src/autofit/aflatin.c (af_latin_metrics_init_widths): Use it.
(af_latin_metrics_init, af_latin_script_class): Updated.
* src/autofit/aflatin.c (af_latin2_metrics_init_widths): Use it.
(af_latin2_metrics_init, af_latin2_script_class): Updated.
* src/autofit/afcjk.c (af_cjk_metrics_init_widths): Use it.
(af_cjk_metrics_init, af_cjk_script_class): Updated.
* src/autofit/afindic.c(af_indic_metrics_init,
af_indic_script_class): Updated.
* src/autofit/afcjk.h, src/autofit/aflatin.h: Updated.
* src/autofit/afdummy.c: Updated.
|
|
|
|
|
| |
* src/autofit/aflatin.c (af_latin_metrics_init): Implement it, to be
in sync with `af_face_globals_compute_script_coverage)'.
|
|
|
|
|
|
|
|
| |
* src/psaux/psconv.c (PS_Conv_Strtol): Always parse complete number,
even in case of overflow.
(PS_Conv_ToInt): Only increase cursor if parsing was successful.
(PS_Conv_ToFixed): Ditto.
Trace underflow and data error.
|