src/truetype/ttinterp.c


Log

Author Commit Date CI Message
Werner Lemberg 9eacbb81 2012-02-29T14:47:47 [truetype] Make SHC instruction behave similar to MS rasterizer. * src/truetype/ttinterp.c (Ins_SHC): Handle virtual contour in twilight zone.
Werner Lemberg d74285d1 2012-02-29T13:59:49 [truetype] Improve comments.
Werner Lemberg 22fff253 2012-02-26T08:47:20 Whitespace.
Werner Lemberg b4e06818 2012-02-11T20:56:10 [truetype] Fix Savannah bug #35466. Jump instructions are now bound to the current function. The MS Windows rasterizer behaves the same, as confirmed by Greg Hitchcock. * src/truetype/ttinterp.h (TT_CallRec): Add `Cur_End' element. * src/truetype/ttobjs.h (TT_DefRecord): Add `end' element. * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Check upper bound of jump address. (Ins_FDEF, Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns): Updated.
suzuki toshiya 1749d8bc 2012-01-17T02:00:24 Remove trailing spaces.
Tobias Ringström 21472de1 2012-01-04T18:27:16 [truetype] Fix IP instruction if x_ppem != y_ppem. * src/truetype/ttinterp.c (Ins_IP): Scale `orus' coordinates properly.
Werner Lemberg f4ec60fd 2011-10-25T20:25:32 [truetype] Fix MD instruction for twilight zone. * src/truetype/ttinterp.c (Ins_MD): Without this fix, the MD instruction applied to original coordinates of twilight points always returns zero.
Werner Lemberg bad0160c 2011-08-12T19:50:13 [truetype] Fix degenerate case in S{P,F,DP}VTL opcodes. * src/truetype/ttinterp.c (Ins_SxVTL): Handle p1 == p2 specially. (Ins_SDPVTL): Handle v1 == v2 specially.
Werner Lemberg 22e44e06 2011-08-05T09:57:17 [truetype] Remove incorrect comments.
Werner Lemberg f2573a06 2011-08-05T09:07:21 [truetype] Fix some comments in the bytecode interpreter. Thanks to Greg Hitchcock!
Werner Lemberg f1a981b5 2011-01-31T22:26:53 [truetype] Protect jump instructions against endless loops. * src/truetype/interp.c (DO_JROT, DO_JMPR, DO_JROF): Exit with error if offset is zero.
Werner Lemberg d6a213f8 2011-01-31T18:51:07 [truetype] Improve handling of invalid references. * 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.
Werner Lemberg 96f04564 2011-01-31T10:24:32 [truetype] Improve handling of stack underflow. * 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.
Werner Lemberg 0682251e 2011-01-30T16:38:09 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Fix tracing message.
LIU Sun-Liang c61b3596 2011-01-30T16:29:45 [truetype]: Fix behaviour of MIAP for invalid arguments. * src/truetype/ttinterp.c (Ins_MIAP): Set reference points even in case of error.
Werner Lemberg dcdb3167 2011-01-18T07:35:26 [truetype] Fix handling of MIRP instruction. 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.
Johnson Y. Yan 9073e7ce 2010-11-26T11:58:08 [truetype] Better multi-threading support. * src/truetype/ttinterp.c (TT_Load_Context): Reset glyph zone references.
suzuki toshiya 46c371c2 2010-10-25T00:14:13 Replace "%lx" for memory address by "%p", LLP64 platforms. On LLP64 platforms (e.g. Win64), long (32-bit) cannot cover the memory address (64-bit). Also the casts from the pointer type to long int should be removed to preserve the address correctly. * src/raster/ftraster.c (New_Profile): Replace "%lx" by "%p". (End_Profile) Ditto. * src/truetype/ttinterp.c (Init_Context): Ditto.
Werner Lemberg 0edf0986 2010-10-06T11:52:27 [truetype] Improve error handling of `SHZ' bytecode instruction. Problem reported by Chris Evans <scarybeasts@gmail.com>. * src/truetype/ttinterp.c (Ins_SHZ): Check `last_point'.
suzuki toshiya 5edc2f33 2010-10-01T08:15:55 Fix Savannah bug #31040. * src/truetype/ttinterp.c (free_buffer_in_size): Remove. (TT_RunIns): Updated.
suzuki toshiya db053ec9 2010-09-17T23:20:00 [truetype] Don't duplicate size->twilight structure to be freed. * src/truetype/ttinterp.c (free_buffer_in_size): Don't duplicate FT_GlyphZoneRec size->twilight to be freed. If duplicated, FT_FREE() erases the duplicated pointers only and leave original pointers. They can cause the double-free crash when the burst errors occur in TrueType interpreter and free_buffer_in_size() is invoked repeatedly. See Savannah bug #31040 for detail.
Werner Lemberg afd89d30 2010-09-15T13:02:35 Make bytecode debugging with FontForge work again. * src/truetype/ttinterp.c (TT_RunIns): Don't call `free_buffer_in_size' in case of error if a debugger is active.
Werner Lemberg 6abb9232 2010-09-14T09:02:10 Improve tracing messages. * src/truetype/ttinterp.c (TT_RunIns): Improve wording of tracing message. * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Add tracing message. * src/truetype/ttgload.c (tt_loader_init): Add tracing message. * src/cache/ftcsbits.c (ftc_snode_load): Emit tracing message if glyph doesn't fit into a small bitmap container.
Werner Lemberg 5220ef58 2010-09-13T07:32:22 Fix minor issues reported by <muktha.narayan@wipro.com>. * src/autofit/aflatin.c (af_latin_compute_stem_width): Remove redundant conditional check. * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Ditto. * src/cff/cffload.c (cff_encoding_load): Remove conditional check which always evaluates to `true'. * src/pshinter/pshalgo.c (ps_glyph_interpolate_strong_points): Ditto. * src/truetype/ttinterp.c (Ins_IUP): Ditto. * src/cid/cidgload.c (cid_slot_load_glyph): Don't check for NULL if value is already dereferenced. * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix check of `face'.
suzuki toshiya 0eb657b0 2010-08-31T13:29:05 [truetype] Decrease the trace level catching the interpreter error. * src/truetype/ttinterp.c (TT_RunIns): Decrease the trace level showing the error when the interpreter returns with an error, from FT_TRACE7() to FT_TRACE1().
suzuki toshiya 29e044a4 2010-08-31T01:23:30 [truetype] Prevent bytecode reuse after the interpretation error. * src/truetype/ttinterp.c (free_buffer_in_size): New function to free the buffer allocated during the interpretation of this glyph. (TT_RunIns): Unset FT_Face->size->{cvt_ready,bytecode_ready} if an error occurs in the bytecode interpretation. The interpretation of invalid bytecode may break the function definitions and referring them in later interpretation is danger. By unsetting these flags, `fpgm' and `prep' tables are executed again in next interpretation. Fix Savannah bug #30798, reported by Robert Swiecki.
Werner Lemberg 346f1867 2010-08-06T00:47:57 Fix Savannah bug #30657. * src/truetype/ttinterp.c (BOUNDSL): New macro. Change `BOUNDS' to `BOUNDSL' where appropriate. * src/truetype/ttinterp.h (TT_ExecContextRec): Fix type of `cvtSize'.
Werner Lemberg 888cd184 2010-07-08T07:29:42 Fix Savannah bug #30361. * src/truetype/ttinterp.c (Ins_IUP): Fix bounds check.
Werner Lemberg a2d225e3 2010-07-01T11:37:09 [truetype] Protect against code range underflow. * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Don't allow negative IP values.
Werner Lemberg 462ddb40 2010-07-01T11:28:43 [truetype] Add rudimentary tracing for bytecode instructions. * src/truetype/ttinterp.c (opcode_name) [FT_DEBUG_LEVEL_TRACE]: New array. (TT_RunIns): Trace opcodes.
Werner Lemberg 370aea80 2010-06-08T08:37:11 Formatting.
Werner Lemberg 6da023d1 2010-05-20T15:38:00 TrueType: Make FreeType ignore maxSizeOfInstructions in `maxp'. Acroread does the same. * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Call `Update_Max' to adjust size of instructions array if necessary and add a rough safety check. (load_truetype_glyph): Save `loader->byte_len' before recursive call. * src/truetype/ttinterp.h, src/truetype/ttinterp.c (Update_Max): Declare it as FT_LOCAL.
suzuki toshiya a1151420 2009-08-01T00:32:18 truetype: Check invalid function number in IDEF instruction.
suzuki toshiya d1c23082 2009-08-01T00:32:17 truetype: Check invalid function number in FDEF instruction.
suzuki toshiya 6dc27526 2009-08-01T00:32:15 truetype: Cast the numerical operands to 32-bit for LP64 systems.
suzuki toshiya 3b56c4d3 2009-08-01T00:32:15 truetype: Cast the project vector to 32-bit for LP64 system.
Werner Lemberg c6788a38 2009-06-07T13:09:21 Fix some potential out-of-memory crashes. * src/base/ftobjs.c (ft_glyphslot_done): Check `slot->internal'. * src/base/ftstream.c (FT_Stream_ReleaseFrame): Check `stream'. * src/truetype/ttinterp.c (TT_New_Context): Avoid double-free of `exec' in case of failure.
Werner Lemberg 1e5e7aa0 2009-01-25T16:27:04 Fix SCANCTRL handling in TTFs. Problem reported by Alexey Kryukov <anagnost@yandex.ru>. * src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling.
Werner Lemberg 1a5d561d 2008-11-29T22:50:24 * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c, src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c, src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c, src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c, src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings (Atari PureC).
Werner Lemberg 105721a5 2008-11-15T10:35:51 * src/truetype/ttinterp.c (tt_default_graphics_state): The default value for `scan_type' is zero, as confirmed by Greg Hitchcock from Microsoft. Problem reported by Michal Nowakowski <miszka@limes.com.pl>.
Werner Lemberg ce8853af 2008-06-24T11:19:03 * src/truetype/ttinterp. (Ins_SCANTYPE): Don't check rendering mode. * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph, Draw_Sweep): No-dropout mode is value 2, not value 0. (Draw_Sweep): Really skip dropout handling for no-dropout mode.
Werner Lemberg 5df5dbb7 2008-06-22T13:40:08 Enable access to the various dropout rules of the B&W rasterizer. Pass dropout rules from the TT bytecode interpreter to the rasterizer; temporarily this is enabled only if `USE_SCAN_CONVERSION_RULES' is defined. * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS, FT_OUTLINE_EXCLUDE_STUBS): New flags for for FT_Outline. * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the OpenType specification. Fix mode 4 computation. (Render_Glyph, Render_Gray_Glyph): Handle new outline flags. * src/truetype/ttgload.c (TT_Load_Glyph) [USE_SCAN_CONVERSION_RULES]: Convert scan conversion mode to FT_OUTLINE_XXX flags. * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
Werner Lemberg 7cb9ec0f 2008-06-09T20:49:29 * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and `private_len' unsigned. * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read it as such. (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned. * src/base/ftstream.c (FT_Stream_Skip): Reject negative values. * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis' for sane value. Fix typo. * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly. * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check `last_point'. * src/sfnt/ttload.c (tt_face_load_max_profile): Limit `maxTwilightPoints'.
Werner Lemberg d77e7229 2008-06-05T22:07:19 * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0' correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
Werner Lemberg 2b0b4221 2008-05-28T22:17:28 Cosmetic code changes.
Werner Lemberg c94fa669 2008-05-27T23:24:07 * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses original, unscaled input values. Confirmed by Greg Hitchcock from Microsoft.
Werner Lemberg 28464c48 2008-02-18T20:34:42 * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix from Savannah bug #22356.
David Turner 74cc0e9e 2007-06-30T22:54:12 * src/truetype/ttinterp.c: add missing variable initialization, gets rid of Valgrind fixes. * src/autofit/aflatin.c: get rid of an infinite loop in the case of degenerate fonts.
Werner Lemberg e12ed563 2007-06-17T05:31:23 * src/tools/ftrandom.c (font_size): New global variable. (TestFace): Use it. (main): Handle new option `--size' to set `font_size'. (Usage): Updated. Formatting.
David Turner 815911ae 2007-06-16T17:07:20 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): check the well-formedness of the contours array when loading a glyph * src/truetype/ttinterp.c (Ins_IP): check argument ranges to reject bogus operations properly
Werner Lemberg c793d90f 2007-06-01T20:51:11 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed, unused.
Werner Lemberg 94be20ea 2007-05-09T20:02:55 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix compiler warnings.
David Turner 3b242d36 2007-03-26T12:03:04 last (tiny) fix to the bytecode interpreter and code cleanup
Werner Lemberg c9f6c66f 2007-03-21T13:30:14 formatting
David Turner 64a9ef20 2007-03-18T07:35:08 another bytecode regression fix. Hopefully, this should be the latest
David Turner 74c34eba 2007-03-18T07:19:31 another bytecode interpreter regression fix
David Turner 89020d97 2007-03-17T17:48:57 fixing TrueType bytecode interpreter regression for HLB_____.TTF, needs more testing with other fonts
Werner Lemberg a091517a 2007-02-16T08:12:50 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable. * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
Werner Lemberg 3cd6cc24 2007-02-16T08:10:17 formatting
David Turner 2c4500e9 2007-02-14T15:08:47 improving TrueType bytecode interpreter to better match Windows behaviour on tricky cases... FIX_BYTECODE is now the default to allow large testing
Werner Lemberg c6a14086 2007-02-12T22:08:15 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler warnings. * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c (bdf_interpret_style): Ditto.
Werner Lemberg 406d25f3 2007-02-12T22:01:18 more formatting and copyright years
David Turner 72a0dd24 2007-02-12T15:24:51 some simplifications of the TrueType interpreter projection code (preliminaries to various interpreter fixes)
Werner Lemberg 6e87ed9f 2007-01-26T22:18:56 Spelling fixes from Alexei.
Werner Lemberg 555258ff 2007-01-21T09:46:37 * docs/CHANGES: Document SHZ fix. * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom points.
Werner Lemberg b4142d51 2007-01-17T12:45:26 Whitespace and spelling fixes from Alexei. Formatting, copyright years.
David Turner 22122729 2007-01-16T20:06:44 * src/autofit/aflatin.c, src/cff/cffdriver.c, src/truetype/ttobjs.c, src/truetype/ttinterp.c: fixing compiler warnings
Werner Lemberg 8c4120d0 2007-01-15T06:42:40 Fix various compiler warnings. * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h, src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h: s/index/strike_index/. * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/. * src/gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/. * src/truetype/ttinterp.c (Compute_Point_Displacement), src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly uninitialized variables.
Werner Lemberg 27cf9de1 2007-01-13T07:34:23 formatting, copyright years
David Turner e3654532 2007-01-13T00:19:18 * src/base/ftbitmap.c: fixing memory stomping bug in the bitmap embolderner when the pitch of the source bitmap is *much* larger than its width * src/truetype/ttinterp.c: fixing aliasing-related compilation warning
Werner Lemberg 2bad8ffb 2006-11-22T09:37:03 cosmetics
Werner Lemberg 82ee38e5 2006-11-20T09:19:26 formatting
David Turner 7bab6ae3 2006-11-13T11:25:06 * src/truetype/ttinterp.c: undefined the FIX_BYTECODE macro, since the interpreter "enhancements" are still too buggy for general use
David Turner 6aa260ce 2006-08-25T22:45:13 support for "automatic unpatented hinting" added we still need to determine the list of "trick" CJK fonts that are going to toggle the bytecode interpreter instead of the auto-hinter
Werner Lemberg 12342996 2006-08-19T11:18:09 formatting
David Turner 33f5f249 2006-08-16T16:50:55 * include/freetype/internal/ftgloadr.h, include/freetype/internal/tttypes.h, src/base/ftgloadr.c, src/base/ftobjs.c, src/truetype/ttgload.c, src/truetype/ttinterp.c, src/truetype/ttobjs.c: improvements to native TrueType hinting, this is a first try, controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c
Werner Lemberg a2da05c2 2006-06-25T06:27:27 Fix two hinting bugs as reported in http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html. * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add `first_point' member. * src/truetype/ttgload.c (tt_prepare_zone): Initialize `first_point'. (TT_Process_Composite_Glyph): Always untouch points. * src/truetype/ttinterp.c (Ins_SHC): Fix computation of `first_point' and `last_point' in case of composite glyphs. (Ins_IUP): Fix computation of `end_point'.
Werner Lemberg 8e6f8c4d 2006-02-17T08:07:09 Formatting, copyright years, documentation improvements.
Wu, Chia-I (吳佳一) 0d565fdc 2006-02-15T07:44:31 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove unused `max_points' and `max_contours'. * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update. * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused `max_components'. * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused `loadSize' and `loadStack'. * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context), src/sfnt/ttload.c (tt_face_load_maxp): Update. * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not defined. * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions. (finally!) For most OpenType tables, `tt_face_load_xxxx' simply loads the table and `face->root' is set later in `sfnt_load_face'. Here, we try to make this work for _all_ tables. * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c, src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and then exit. Error handling or setting face->root is done later in `sfnt_load_face'. Pretty trace messages. * src/sfnt/sfobjs.c (sfnt_load_face): Work harder. Mac bitmap-only fonts are not scalable. Check that `face->header.Units_Per_EM' is not zero. (LOAD_, LOADM_): Pretty trace messages. * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics from `eblc'. * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c (load_format_20, load_format_25, tt_face_get_ps_name): Use face->max_profile.numGlyphs, instead of face->root.num_glyphs.
Wu, Chia-I (吳佳一) ce34d122 2005-12-17T13:12:49 * src/truetype/ttinterp.c (Update_Max): Set current size of buffer correctly (so that memory debug system won't panic).
Werner Lemberg 674ba91f 2005-11-16T18:09:27 formatting
David Turner f7cc1814 2005-11-15T17:30:56 * src/base/fttrigon.c (ft_trig_prenorm): fixed a bug that created invalid computations, resulting in very weird bugs in TrueType bytecode hinted fonts * src/truetype/ttinterp.c: redefined FT_UNUSED_EXEC to not perform a structure copy each time. Wooot. !
Wu, Chia-I (吳佳一) d6d73989 2005-08-16T02:06:01 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright messages.
Wu, Chia-I (吳佳一) 0142e6af 2005-08-16T01:54:59 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context with slight changes. * src/truetype/ttobjs.h (tt_slot_init): New function. * src/truetype/ttobjs.c (tt_driver_init): Initialize execution context here. (tt_slot_init): New function to create extra points for the internal glyph loader. We then use it directly, instead of face's glyph loader, when loading glyph. * src/truetype/ttdriver.c: Use tt_slot_init for glyph slot initialization. (TT_Load_Glyph): Load flag dependencies are handled here. Return error if size is NULL. * src/truetype/ttgload.c: Heavy cleanup and refactor. (TT_Hint_Glyph): New funcion to hint a zone, prepared by caller. (TT_Process_Simple_Glyph): Use loader->pp's instead of recalculating. Use TT_Hint_Glyph. No need to save/restore loader->stream before/after TT_Vary_Get_Glyph_Deltas now. (TT_LOADER_SET_PP): New macro to calculate and set the four phantom points. (TT_Process_Composite_Component, TT_Process_Composite_Glyph, load_truetype_glyph): Refactor load_truetype_glyph into these three functions. Never set exec->glyphSize to 0. (close #13107) Forget glyph frame before calling TT_Process_Simple_Glyph. (TT_Load_Glyph, load_sbit_image, tt_loader_init): Refactor TT_Load_Glyph into these three functions. Set various fields of `glyph' here, instead of in load_truetype_glyph and compute_glyph_metrics.
Werner Lemberg 33febc0f 2004-10-09T07:07:43 * docs/CHANGES: Updated. Fix handling of NPUSHW if skipped in data stream. * src/truetype/ttinterp.c (opcode_length): Set value for NPUSHW to -2. (SkipCode, TT_RunIns): Use opcode_length value for computation of bytes to be skipped.
Werner Lemberg dea712b4 2004-08-07T15:08:33 `Activate' gray-scale specifing hinting within the TrueType bytecode interpreter. This is an experimental feature which should probably be made optional. * src/truetype/ttgload.c (TT_Process_Simple_Glyph, load_truetype_glyph): Move the code to set the pedantic_hinting flag to... (TT_Load_Glyph): Here. Set `grayscale' flag except for `FT_LOAD_TARGET_MONO'. * src/truetyep/ttinterp.c (Ins_GETINFO): Return MS rasterizer version 1.7. Return rotation and stretching info only if glyph is rotated or stretched, respectively. Handle grayscale info. * src/truetype/ttinterp.h (TT_ExecContextRec): Add `grayscale' member.
David Turner 5ab41363 2004-07-18T07:15:18 * include/freetype/cache/ftcglyph.h, src/cache/ftcglyph.c: fixed a dangling pointer bug that happened in very rare cases: i.e. when a new family object was destroyed by an out-of-memory condition during a glyph node initialization. The function FTC_Cache_Lookup would flush the cache and restart the lookup with a bad pointer. * src/cache/ftcmanag.c: fixed a cache flushing bug
Werner Lemberg dfa46199 2004-03-05T09:26:24 * Jamfile, vms_make.com, builds/win32/visualc/freetype.dsp, builds/win32/visualc/freetype/vcproj, include/freetype/ftmoderr.h: Add LZW module. * Jamfile.in: Removed. * docs/CHANGES: Updated. * include/freetype/internal/ftobjs.h: s/MIN/FT_MIN/, s/MAX/FT_MAX/, s/ABS/FT_ABS/. Updated all callers. * src/type1/t1load.c (parse_dict), src/pcf/pcfdrivr.c (PCF_Face_Init): Use FT_ERROR_BASE. Add support for PCF fonts compressed with LZW (extension .pcf.Z, created with `compress'). * include/freetype/config/ftoption.h, devel/ftoption.h (FT_CONFIG_OPTION_USE_LZW): New macro. * include/freetype/ftlzw.h: New file. * include/freetype/config/ftheader.h (FT_LZW_H): New macro for ftlzw.h. * src/lzw/*: New files. * src/pcf/pcfdrivr.c: Include FT_LZW_H. (PCF_Face_Init): Try LZW also. * src/gzip/ftgzip.c: s/0/Gzip_Err_Ok/ where appropriate. Beautify.
Werner Lemberg 6cda9c48 2004-01-22T09:07:12 * include/freetype/ftcache.h: Delete duplicated definition of FTC_FaceID. * src/cff/cffdrivr.c (cff_get_cmap_info): Call sfnt module's TT CMap Info service function if the cmap comes from sfnt. Return 0 if the cmap is sythesized in cff module. Formatting; updating copyright.
David Turner 4632fccb 2004-01-15T19:07:44 * include/freetype/internal/ftmemory.h, src/autohint/ahhint.c, src/base/ftgloadr.c, src/base/ftglyph.c, src/base/ftoutln.c, src/base/ftstroke.c, src/cff/cffload.c, src/truetype/ttgload.c, src/truetype/ttinterp.c: introducing the new FT_ARRAY_COPY and FT_ARRAY_MOVE macros to make copying arrays easier
David Turner 87c0d30f 2003-12-24T01:10:46 * include/freetype/fttypes.h src/autofit/afangles.c src/autofit/aflatin.c src/autohint/ahglyph.c src/autohint/ahhint.c src/base/ftcalc.c src/base/ftgloadr.c src/base/ftglyph.c src/base/ftobjs.c src/base/ftsynth.c src/base/fttrigon.c src/cff/cffgload.c src/cid/cidgload.c src/cid/cidload.c src/pfr/pfrgload.c src/pfr/pfrload.c src/pfr/pfrsbit.c src/psaux/psobjs.c src/pshinter/pshalgo.c src/pshinter/pshglob.c src/pshinter/pshrec.c src/raster/ftrend1.c src/sfnt/ttcmap0.c src/smooth/ftsmooth.c src/truetype/ttdriver.c src/truetype/ttgload.c src/truetype/ttinterp.c src/truetype/ttobjs.c src/type1/t1gload.c src/winfonts/winfnt.c: use of the FT_PAD_XXX and FT_PIX_XXX macros to avoid compiler warnings with very pedantic compilers. Hints: (x) & -64 will warn if (x) is not signed.. use (x) & ~63 instead !
Werner Lemberg d90b6738 2003-11-28T22:47:26 Documentation fix.
Werner Lemberg 9f051a7f 2003-11-25T18:15:56 * src/base/ftcalc.c (FT_MulDiv_No_Round): New function (32 and 64 bit version). * include/freetype/internal/ftcalc.h: Updated. * src/truetype/ttinterp.c (TT_MULDIV_NO_ROUND): New macro. (TT_INT64): Removed. (DO_DIV): Use TT_MULDIV_NO_ROUND. * src/pfr/pfrdrivr.c (pfr_get_metrics): Directly use metrics->x_scale and metrics->y_scale.
Werner Lemberg be67c4ef 2003-11-24T22:54:58 * src/truetype/ttinterp.c (CUR_Func_move_orig): New macro. (Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New functions. Similar to Direct_Move, Direct_Move_X, and Direct_Move_Y but without touching. (Compute_Funcs): Use new functions. (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, Round_Super_45): Fix rounding of value zero. (DO_DIV): Don't use TT_MULDIV. (Ins_SHC): This instruction actually touches the points. (Ins_MSIRP): Fix undocumented behaviour. * src/truetype/ttinterp.h (TT_ExecContextRec): Updated. * docs/VERSION.DLL: Updated. * src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and metrics->y_scale really precise. (FT_Load_Glyph): Update computation of linearHoriAdvance and linearVertAdvance. * src/true/type/ttinterp.c (Update_Max): Use FT_REALLOC.
David Turner 8b6db86b 2003-08-17T22:09:14 * include/freetype/config/ftoption.h, devel/ftoption.h, include/freetype/internal/ftobjs.h, include/freetype/internal/tttypes.h, src/truetype/ttinterp.c, src/truetype/ttobjs.c, src/truetype/ttobjs.h: changed the name of TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING to the simpler TT_CONFIG_OPTION_UNPATENTED_HINTING removed the macro TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING. Instead, the same effect can be used by setting a debug-hook with FT_DEBUG_HOOK_UNPATENTED_HINTING globally with FT_Set_Debug_Hook()
Werner Lemberg 6e9b3186 2003-06-10T10:54:33 * src/truetype/ttinterp.c (SetSuperRound) <0x30>: Follow Apple's TrueType specification. (Ins_MDRP, Ins_MIRP): Fix single width cut-in test.
Werner Lemberg 9a8e3211 2003-06-03T15:03:16 * src/truetype/ttinterp.c (Free_Project, CUR_Func_freeProj): Removed. Unused. Updated all callers.
Werner Lemberg f79a7ae0 2003-05-21T21:47:25 * src/gzip/ftgzip.c (ft_gzip_fil_io): Revert change from yesterday; it has already been fixed differently. * src/truetype/ttinterp.c (DO_SFVTL): Add missing braces around if-clause.
Werner Lemberg a3f4da8e 2003-04-29T13:23:47 Minor cleanups.
Graham Asher 3ea859f6 2003-04-25T11:40:46 Added the unpatented hinting system, which is compiled only if TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING is defined in ftoption.h