summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Formatting, minor internal documentation improvement.Werner Lemberg2012-12-232-13/+18
|
* * src/tools/cordic.py: Bring up to date with trigonometric core.Alexei Podtelezhnikov2012-12-212-54/+12
|
* Check parameters of `FT_Outline_New'.Werner Lemberg2012-12-213-0/+18
| | | | | | | | 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.
* * Version 2.4.11 released.VER-2-4-11Werner Lemberg2012-12-2025-250/+323
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ========================== 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'.
* [base] Improve trigonometric core.Alexei Podtelezhnikov2012-12-202-41/+27
| | | | | | | | | | | | | | | 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/ftobjs.c (ft_property_do): Fix compiler warning.Werner Lemberg2012-12-202-0/+6
|
* Formatting.Werner Lemberg2012-12-201-2/+3
|
* * src/base/ftrfork.c (FT_Raccess_Guess): Switch to FT_Int counters.Alexei Podtelezhnikov2012-12-192-2/+6
|
* [base] Clean up trigonometric core.Alexei Podtelezhnikov2012-12-192-25/+29
| | | | | * src/base/fttrrigon.c (ft_trig_pseudo_polarize): Align algorithm with `ft_trig_pseudo_rotate'.
* [truetype] Minor performance enhancement.Infinality2012-12-182-4/+10
|
* [truetype] Remove unusued code and variables.Infinality2012-12-172-32/+24
|
* Various compiler warning fixes.Werner Lemberg2012-12-176-13/+28
| | | | | | | | | | | | | * 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.
* Merge branch 'master' of ssh://git.sv.nongnu.org/srv/git/freetype/freetype2Infinality2012-12-161-1/+0
|\ | | | | | | | | Conflicts: src/truetype/ttinterp.c
| * [truetype] Remove dead code.Alexei Podtelezhnikov2012-12-161-90/+0
| |
* | [truetype ] Remove unusued code. Add minor fixes.Infinality2012-12-166-142/+119
|/
* [sfnt] Fix Savannah bug #37936.Werner Lemberg2012-12-162-4/+10
| | | | * src/sfnt/ttload.c (tt_face_load_gasp): Avoid memory leak.
* [base] Fix 11-year old bug.Alexei Podtelezhnikov2012-12-152-1/+12
| | | | | | | 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.
* [bdf] Fix Savannah bug #37907.Werner Lemberg2012-12-152-5/+15
| | | | | * src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize negative second parameter of `ENCODING' field also.
* [bdf] Fix Savannah bug #37906.Werner Lemberg2012-12-152-2/+10
| | | | | * src/bdf/bdflib.c (_bdf_parse_glyphs): Use correct array size for checking `glyph_enc'.
* [bdf] Fix Savannah bug #37905.Werner Lemberg2012-12-152-0/+11
| | | | | | * 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'.
* [truetype] Scale F_dot_P down.Alexei Podtelezhnikov2012-12-103-26/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Formatting.Alexei Podtelezhnikov2012-12-091-32/+17
|
* [type1] Another fix for 2012-09-17 commit.Johnson Y. Yan2012-12-092-6/+14
| | | | | * src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Correctly set `limit' value.
* Add .mailmap file.Werner Lemberg2012-12-081-0/+7
|
* [truetype] Tweak the previous commit.Alexei Podtelezhnikov2012-12-062-5/+13
| | | | | | * src/truetype/ttinterp.c (Current_Ratio): Put unit vector components as the second TT_MulFix14 arguments. This is required on 16-bit systems.
* [truetype] Microoptimizations in bytecode interpreter.Alexei Podtelezhnikov2012-12-062-12/+29
| | | | | | | * 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.
* [truetype] Cosmetic improvement in bytecode interpreter.Alexei Podtelezhnikov2012-12-052-39/+42
| | | | | * src/truetype/ttinterp.c: Use explicit calls to FT_MulDiv, FT_MulFix, and FT_DivFix instead of macros.
* [pshinter] Clamp BlueScale value.John Tytgat2012-12-052-2/+59
| | | | | | | | 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'.
* Formatting.Werner Lemberg2012-12-051-2/+4
|
* [truetype, type1] Revise the use of FT_MulDiv.Alexei Podtelezhnikov2012-12-014-56/+32
| | | | | | * src/truetype/ttgxvar.c: Updated. * src/truetype/ttobjs.c: Updated. * src/type1/t1load.c: Updated.
* [doc] Minor improvements.Del Merritt2012-11-302-9/+14
|
* Minor.Werner Lemberg2012-11-301-1/+1
|
* [configure] Preserve customized `ftoption.h'.Werner Lemberg2012-11-302-3/+18
| | | | | | | 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.
* [type1] Fix Savannah bug #37831.Werner Lemberg2012-11-292-1/+11
| | | | | | | The bug report also contains a patch. * src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Really fix change from 2012-09-17.
* [truetype] Fix formatting and typo.Alexei Podtelezhnikov2012-11-282-3/+6
|
* [cid, type1, type42] Clean up units_per_EM calculations.Alexei Podtelezhnikov2012-11-274-9/+16
| | | | | | * 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.
* [ftstroke] Minor improvement.Alexei Podtelezhnikov2012-11-272-5/+11
| | | | | * src/base/ftstroke.c: Replace nested FT_DivFix and FT_MulFix with FT_MulDiv.
* * src/base/fttrigon.c (ft_trig_downscale): Make 64bit version work.Werner Lemberg2012-11-172-7/+16
|
* [base] Fix integer overflows in dd5718c7d67a.Alexei Podtelezhnikov2012-11-152-2/+8
| | | | * src/base/ftoutln.c (FT_Outline_EmboldenXY): Use FT_MulDiv.
* [autofit] Trace stem widths.Werner Lemberg2012-11-152-0/+32
| | | | | * src/autofit/aflatin.c (af_latin_metrics_init_widths): Add some FT_TRACE calls.
* [cff] Add support for OpenType Collections (OTC).Werner Lemberg2012-11-133-22/+44
| | | | | | | | * 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.
* [autofit] Minor improvement.Werner Lemberg2012-11-122-2/+9
| | | | | * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Fix loop.
* [autofit] Improve tracing.Werner Lemberg2012-11-102-3/+53
| | | | | | * src/autofit/aflatin.c (af_latin_hint_edges) [FT_DEBUG_LEVEL_TRACE]: Count number of actions and emit something if there weren't any.
* Improve documentation of Unicode IVS handling.Werner Lemberg2012-11-043-18/+15
|
* Add example for FT_Get_Sfnt_Table.Werner Lemberg2012-11-041-1/+11
|
* [base] Fortify emboldening code against egregious distortions.Alexei Podtelezhnikov2012-11-042-3/+24
| | | | | * src/base/ftoutln.c (FT_Outline_EmboldenXY): Threshold emboldening strength when it leads to segment collapse.
* [base] Clean up emboldening code and improve comments there.Alexei Podtelezhnikov2012-11-032-5/+14
| | | | | | * 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.
* [autofit] Add standard character to `AF_ScriptClassRec' structure.Werner Lemberg2012-10-2411-43/+74
| | | | | | | | | | | | | | | | | | | | | | * 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.
* [autofit] Only use Unicode CMap.Werner Lemberg2012-10-242-21/+8
| | | | | * src/autofit/aflatin.c (af_latin_metrics_init): Implement it, to be in sync with `af_face_globals_compute_script_coverage)'.
* [psaux] Improve parsing of invalid numbers.Werner Lemberg2012-10-212-46/+128
| | | | | | | | * 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.