summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2011-04-04* src/base/ftcalc.c (FT_MulFix): Produce more efficient assembly.HEADmasterJames Cloos1-17/+3
Improve the version of FT_MulFix() which is used when a sixty-four bit interger type is available.
2011-04-04Fix formatting of autofit debug dumps.Werner Lemberg2-9/+9
* src/autofit/afhints.c (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Adjust column widths.
2011-04-02Cosmetics.Werner Lemberg1-1/+1
2011-04-02Whitespace, typo.Werner Lemberg1-4/+4
2011-03-30* src/autofit/aftypes.h (AF_OutlineRec): Removed, unused.Werner Lemberg1-25/+0
2011-03-28Cosmetics.Werner Lemberg2-8/+8
2011-03-26Copyright.Werner Lemberg1-1/+1
2011-03-24* src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 256.Werner Lemberg1-4/+2
This limit is given on p. 37 of Adobe Tech Note #5014.
2011-03-23* src/truetype/ttpload.c(tt_face_load_loca): Fix mismatch warning.Werner Lemberg1-6/+7
2011-03-21Typo.Werner Lemberg1-1/+1
2011-03-20* src/sfnt/sfobjs.c (sfnt_open_font): Check number of TTC subfonts.Werner Lemberg1-3/+14
2011-03-19More C++ compilation fixes.Werner Lemberg1-0/+26
* src/autofit/afhints.c (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, af_glyph_hints_dump_edges) [__cplusplus]: Protect with `extern "C"'.
2011-03-19C++ compilation fixes.Werner Lemberg2-4/+8
* src/autofit/aflatin.c (af_latin_hints_apply), src/autofit/afcjk.c (af_cjk_hints_apply): Use cast for `dim'.
2011-03-17A better fix for Savannah bug #32671.Alexei Podtelezhnikov1-10/+3
* src/smooth/ftgrays.c (gray_render_conic): Clean up code and replace WHILE loop with a more natural DO-WHILE construct.
2011-03-16* src/base/ftstroke.c (FT_StrokerRec): Remove unused `valid' field.Werner Lemberg1-2/+1
Suggested by Graham Asher.
2011-03-09Make FT_Sfnt_Table_Info return the number of SFNT tables.Werner Lemberg1-7/+12
* src/sfnt/sfdriver.c (sfnt_table_info): Implement it. * include/freetype/tttables.h: Update documentation. * docs/CHANGES: Updated.
2011-03-07Fix Savannah bug #27988.Bram Tassyns1-0/+48
* src/cff/cffobjs.c (remove_style): New function. (cff_face_init): Use it to strip off the style part of the family name.
2011-03-07Quick fix for Savannah bug #32671.Werner Lemberg1-1/+1
This isn't the optimal solution yet, but it restores the previous rendering quality (more or less). * src/smooth/ftgrays.c (gray_render_conic): Do more splitting.
2011-03-06Fix autohinting fallback.Werner Lemberg1-0/+3
* src/base/ftobjs.c (FT_Load_Glyph): Assure that we only check TTFs, ignoring CFF-based OTFs.
2011-03-06Whitespace.Werner Lemberg1-2/+2
2011-03-02Add AF_CONFIG_OPTION_USE_WARPER to control the autofit warper.Werner Lemberg9-24/+24
* devel/ftoption.h, include/freetype/config/ftoption.h (AF_CONFIG_OPTION_USE_WARPER): New macro. * src/autofit/aftypes.h (AF_USE_WARPER): Remove. * src/autofit/*: s/AF_USE_WARPER/AF_CONFIG_OPTION_USE_WARPER/. * src/autofit/afwarp.c [!AF_CONFIG_OPTION_USE_WARPER]: Replace dummy variable assignment with a typedef.
2011-02-26[autofit] More comments, formatting, whitespace.Werner Lemberg1-104/+171
2011-02-26[autofit] Slight simplifications.Werner Lemberg1-30/+26
* src/autofit/aflatin.c (af_latin_hints_link_segments): Remove test which always returns false. (af_latin_hints_compute_blue_edges): Remove redundant assignment.
2011-02-26[autofit] Some comments. Whitespace.Werner Lemberg3-25/+37
2011-02-24[autofit] Comment out unused code.Werner Lemberg2-3/+11
* src/autofit/aflatin.c, src/autofit/aflatin2.c (af_latin_hints_compute_edges): Do it.
2011-02-24* src/autofit/afhints.h (AF_GlyphHints): Remove unused field.Werner Lemberg1-2/+0
2011-02-22[autofit] Add ASCII drawing for better explanation.Werner Lemberg1-1/+24
2011-02-20[cache] Fix an off-by-one bug in FTC_Manager_RemoveFaceID().suzuki toshiya1-1/+1
Found by <ychen1392001@yahoo.com.cn>, see detail in http://lists.gnu.org/archive/html/freetype/2011-01/msg00023.html * src/cache/ftccache.c (FTC_Cache_RemoveFaceID): Check the node buckets[cache->p + cache->mask] too.
2011-02-20[autofit] Document warper.Werner Lemberg2-4/+31
2011-02-19Fall back to autohinting if a TTF/OTF doesn't contain any bytecode.Kevin Kofler1-7/+10
This is Savannah patch #7471. * src/base/ftobjs.c (FT_Load_Glyph): Implement it.
2011-02-19[cff] Fix subset prefix removal.John Tytgat1-2/+2
* src/cff/cffobjs.c (remove_subset_prefix): Update length after subset prefix removal.
2011-02-16[autofit] Add a lot of comments and do some minor formatting.Werner Lemberg2-62/+215
2011-02-03* src/autofit/afdummy.c: Include `aferrors.h'.Werner Lemberg1-0/+1
Problem reported by Chris Liddel <chris.liddell@artifex.com>.
2011-02-01[cff] Ignore unknown operators in charstrings.Werner Lemberg1-5/+5
Patch suggested by Miles.Lau <sunliang_liu@foxitsoftware.com>. * src/cff/cffgload.c (cff_decoder_parse_charstrings): Emit tracing message for unknown operators and continue instead of exiting with a syntax error.
2011-02-01[truetype] FT_LOAD_PEDANTIC now affects `prep' and `fpgm' also.Werner Lemberg3-20/+35
* src/truetype/ttgload.c (tt_loader_init): Handle `FT_LOAD_PEDANTIC'. * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep, tt_size_init_bytecode, tt_size_ready_bytecode): New argument to handle pedantic mode. * src/truetype/ttobjs.h: Updated.
2011-01-31[truetype] Protect jump instructions against endless loops.Werner Lemberg1-21/+27
* src/truetype/interp.c (DO_JROT, DO_JMPR, DO_JROF): Exit with error if offset is zero.
2011-01-31[truetype] Improve handling of invalid references.Werner Lemberg1-43/+50
* src/truetype/interp.c: Set even more TT_Err_Invalid_Reference error codes only if pedantic hinting is active. At the same time, try to provide sane values which hopefully allow useful continuation. Exception to this is CALL and LOOPCALL – due to possible stack corruption it is necessary to bail out.
2011-01-31[truetype] Improve handling of stack underflow.Werner Lemberg1-13/+36
* src/truetype/ttinterp.c (TT_RunIns, Ins_FLIPPT, Ins_DELTAP, Ins_DELTAC): Exit with error only if `pedantic_hinting' is set. Otherwise, try to do something sane.
2011-01-30Whitespace.Werner Lemberg1-2/+3
2011-01-30* src/sfnt/ttmtx.c (tt_face_load_hmtx): Fix tracing message.Werner Lemberg2-4/+3
2011-01-30[truetype]: Fix behaviour of MIAP for invalid arguments.LIU Sun-Liang1-1/+2
* src/truetype/ttinterp.c (Ins_MIAP): Set reference points even in case of error.
2011-01-23[autofit] Some formatting and clean-ups.Werner Lemberg5-61/+59
2011-01-18[truetype] Fix handling of MIRP instruction.Werner Lemberg1-1/+15
Thanks to Greg Hitchcock who explained the issue. * src/truetype/ttinterp.c (Ins_MIRP): Replace a `>=' operator with `>' since the description in the specification is incorrect. This fixes, for example, glyph `two' in font `Helvetica Neue LT Com 65 medium' at 15ppem.
2011-01-15[raster] Make bbox handling the same as with Microsoft's rasterizer.Werner Lemberg1-0/+8
Right before B/W rasterizing, the bbox gets simply rounded to integers. This fixes, for example, glyph `three' in font `Helvetica Neue LT Com 65 Medium' at 11ppem. Thanks to Greg Hitchcock who explained this behaviour. * src/raster/ftrend1.c (ft_raster1_render): Implement it.
2011-01-14[raster] Add undocumented drop-out rule to the other bbox side also.Werner Lemberg1-3/+9
* src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement it.
2011-01-13[raster] Reduce jitter value.Werner Lemberg1-2/+24
This catches a rendering problem with glyph `x' from Tahoma at 10ppem. It seems that the increase of the precision in the change from 2009-06-11 makes a larger jitter value unnecessary. * src/raster/ftraster.c (Set_High_Precision): Implement it.
2011-01-13[raster] Handle drop-outs at glyph borders according to Microsoft.Werner Lemberg1-0/+10
If a drop-out rule would switch on a pixel outside of the glyph's bounding box, use the right (or top) pixel instead. This is an undocumented feature, but some fonts like `Helvetica Neue LT Com 65 Medium' heavily rely on it. Thanks to Greg Hitchcock who explained this behaviour. * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement it.
2011-01-13Cleanup/formatting.Werner Lemberg10-36/+46
2011-01-09[cache] Fix Savannah bug #31923, patch drafted by Harsha.suzuki toshiya2-0/+47
When a node comparator changes the cached nodes during the search of a node matching with queried properties, the pointers obtained before the functon should be updated to prevent the dereference to freed or reallocated nodes. To minimize the rescan of the linked list, the update is executed when the comparator notifies the change of cached nodes. This change depends previous change: 38b272ffbbdaae276d636aec4ef84af407d16181 * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Rescan the top node if the cached nodes are changed. * src/cache/ftccache.c (FTC_Cache_Lookup): Ditto.
2011-01-09[cache] Notice if a cache query induced the node list change.suzuki toshiya9-20/+53
Some node comparators (comparing the cache node content and the properties specified by the query) can flush the cache node to prevent the cache inflation. The change may invalidate the pointers to the node obtained before the node comparison, so the change should be noticed to the caller. The problem caused by the cache node changing is reported by Harsha, see Savannah bug #31923. * src/cache/ftccache.h (FTC_Node_CompareFunc): Add new argument `FT_Bool* list_changed' to indicate the change of the cached nodes to the caller. (FTC_CACHE_LOOKUP_CMP): Watch the change of the cached nodes by `_list_changed'. (FTC_CACHE_TRYLOOP_END): Take new macro argument `_list_changed' and update it when FTC_Manager_FlushN() flushes any nodes. * src/cache/ftccback.h (ftc_snode_compare): Updated to fit with new FTC_Node_CompareFunc type. (ftc_gnode_compare): Ditto. * src/cache/ftcbasic.c: Include FT_INTERNAL_OBJECTS_H to use TRUE/FALSE macros. (ftc_basic_gnode_compare_faceid): New argument `FT_Bool* list_changed' to indicate the change of the cache nodes, anyway, it is always FALSE. * src/cache/ftccmap.c: Include FT_INTERNAL_OBJECTS_H to use TRUE/FALSE macros. (ftc_cmap_node_compare): New argument `FT_Bool* list_changed' to indicate the change of the cache nodes, anyway, it is always FALSE. (ftc_cmap_node_remove_faceid): Ditto. * src/cache/ftccache.c (FTC_Cache_NewNode): Pass a NULL pointer to FTC_CACHE_TRYLOOP_END(), because the result is not needed. (FTC_Cache_Lookup): Watch the change of the cache nodes by `list_changed'. (FTC_Cache_RemoveFaceID): Ditto. * src/cache/ftcglyph.c: Include FT_INTERNAL_OBJECTS_H to use TRUE/FALSE macros. (ftc_gnode_compare): New argument `FT_Bool* list_changed' to indicate the change of the cache nodes, anyway, it is always FALSE. (FTC_GNode_Compare): New argument `FT_Bool* list_changed' to be passed to ftc_gnode_compare(). * src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto. * src/cache/ftcsbits.c (ftc_snode_compare): New argument `FT_Bool* list_changed' to indicate the change of the cache nodes, anyway. It is updated by FTC_CACHE_TRYLOOP(). (FTC_SNode_Compare): New argument `FT_Bool* list_changed' to be passed to ftc_snode_compare(). * src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto.