Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 8f09eb5c | 2018-07-17 21:45:24 | Allow FT_ENCODING_NONE for `FT_Select_Charmap'. This is a valid encoding tag for BDF, PCF, and Windows FNT, and there is no reason to disallow it for these formats. * src/base/ftobjs.c (FT_Select_Charmap): Implement it. | ||
| 9f15370e | 2018-07-12 07:31:26 | * src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'. Taken from patch #9667, written by Steve Langasek <vorlon@debian.org>. This fixes a build failure (most probably a bug in gcc) on ppc64el when building with -O3. | ||
| b532d7ce | 2018-07-05 23:13:35 | Fix typo (#54238). * src/base/ftcolor.c (FT_Palette_Set_Foreground_Color) [!TT_CONFIG_OPTION_COLOR_LAYERS]: Add return value. | ||
| 29f05fd0 | 2018-07-04 11:49:47 | Fix 32bit build warnings (#54239). * src/base/ftbitmap.c (FT_Bitmap_Blend): Add casts to avoid signed vs. unsigned comparisons. * srb/sfnt/ttcolr.c (tt_face_get_colr_layer): Ditto. | ||
| 4e3b2473 | 2018-07-02 11:41:44 | Make `FT_Get_Color_Glyph_Layer' return FT_Bool. * include/freetype/freetype.h, src/base/ftobjs.c (FT_Get_Color_Glyph_Layer, FT_Render_Glyph_Internal): Updated. * include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func), src/sfnt/ttcolr.h, src/sfnt/ttcolr.c (tt_face_get_colr_layer): Updated. | ||
| f6ccb524 | 2018-07-01 12:31:57 | * src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function. Reported by Behdad. | ||
| 1fc776b5 | 2018-06-28 21:42:26 | * src/base/fttrigon.c (FT_Tan): Improve accuracy. (FT_Vector_Rotate): Simplify. | ||
| 4f11209f | 2018-06-28 21:31:35 | * src/base/ftobjs.c (FT_Set_Charmap): Robustify. | ||
| cc333390 | 2018-06-24 06:22:48 | New base function `FT_Matrix_Check' (#54019). * src/base/ftcalc.c (FT_Matrix_Check): New base function to properly reject degenerate font matrices. * include/freetype/internal/ftcalc.h: Updated. * src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c (cid_parse_font_matrix), src/type1/t1load.c (t1_parse_font_matrix), src/type42/t42parse.c (t42_parse_font_matrix): Use `FT_Matrix_Check'. | ||
| d7393e22 | 2018-06-23 17:25:58 | Fix typo. Reported by Behdad. * src/base/ftcolor.c (FT_Palette_Data_Get) [!TT_CONFIG_OPTION_COLOR_LAYERS]: s/apalette/apalette_data/. | ||
| b1a3c59f | 2018-06-17 22:33:29 | [base] Introduce `FT_New_Glyph'. This function facilitates access to full capabilities of FreeType rendering engine for custom glyphs. This can be quite useful for consistent rendering of mathematical and chemical formulas, e.g. https://bugs.chromium.org/p/chromium/issues/detail?id=757078 * include/freetype/ftglyph.h, src/base/ftglyph.c (FT_New_Glyph): New function. | ||
| da846919 | 2018-06-17 09:30:05 | [base] Add tracing for `FT_Bitmap_Blend'. * include/freetype/internal/fttrace.h (trace_bitmap): New enumeration. * src/base/ftbitmap.c (FT_COMPONENT): Define. (FT_Bitmap_Blend): Add `FT_TRACE5' calls. | ||
| e361cc6a | 2018-06-17 09:13:37 | s/trace_bitmap/trace_checksum/. * include/freetype/internal/fttrace.h: s/bitmap/checksum/. * src/base/ftobjs.c (FT_COMPONENT): s/trace_bitmap/trace_checksum/. Adjust code. | ||
| 9d8e6c29 | 2018-06-16 10:11:58 | * src/base/ftbitmap.c (FT_Bitmap_Blend): Avoid integer overflow. | ||
| 68bc56f8 | 2018-06-16 09:39:29 | Add `FT_Bitmap_Blend' API. Still missing: Support for negative bitmap pitch and subpixel offset of source bitmap. * include/freetype/ftbitmap.h, src/base/ftbitmap.c (FT_Bitmap_Blend): New function. | ||
| 9b31c446 | 2018-06-14 21:30:43 | Replace `FT_Get_GlyphLayers' with `FT_Get_Color_Glyph_Layer'. This avoids any additional allocation of COLR related structures in a glyph slot. * include/freetype/freetype.h (FT_Glyph_Layer, FT_Glyph_LayerRec, FT_Get_GlyphLayers): Removed. * include/freetype/internal/ftobjs.h (FT_Colr_InternalRec): Removed. (FT_Slot_InternalRec): Remove `color_layers'. * include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func): Removed. (SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Remove `load_colr_layer'. * src/base/ftobjs.c (ft_glyph_slot_done): Updated. (FT_Render_Glyph_Internal): Use `FT_Get_Color_Glyph_Layer'. (FT_Get_GlyphLayers): Removed. * src/sfnt/sfdriver.c (sfnt_interface): Updated. * src/sfnt/ttcolr.c (tt_face_load_colr_layers): Removed. * src/sfnt/ttcolr.h: Updated. * src/truetype/ttgload.c (TT_Load_Glyph): Updated. | ||
| f9d05eb3 | 2018-06-14 21:02:49 | Provide iterative API to access `COLR' data. This solution doesn't store any data in an `FT_GlyphSlot' object. * include/freetype/freetype.h (FT_LayerIterator): New structure. (FT_Get_Color_Glyph_Layer): New function. * include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func): New function type. (SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it. * src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Implement it. * src/sfnt/ttcolr.c (tt_face_get_colr_layer): New function. * src/sfnt/ttcolr.h: Updated. * src/sfnt/sfdriver.c (sfnt_interface): Updated. | ||
| 33ac83e3 | 2018-06-14 21:00:23 | Add glyph index and glyph load flags to glyph slot. * include/freetype/freetype.h (FT_GlyphSlotRec): Rename unused `reserved' field to `glyph_index'. * include/freetype/internal/ftobjs.h (FT_Slot_InternalRec): Add `load_flags' field. * src/base/ftobjs.c (FT_Load_Glyph): Set new fields. | ||
| 45145d34 | 2018-06-12 06:02:59 | Finish CPAL/COLR support (3/4). * src/base/ftcolor.c: Include FT_INTERNAL_SFNT_H. (FT_Palette_Select, FT_Palette_Set_Foreground_Color): Implement functions. | ||
| d8b8b6e3 | 2018-06-10 21:37:15 | s/FT_Palette/FT_Palette_Data/, s/palette/palette_data/. * include/freetype/ftcolor.h, include/freetype/internal/tttypes.h, src/base/ftcolor.c, src/sfnt/sfobjs.c, src/sfnt/ttcolr.c: Updated. | ||
| 6732f055 | 2018-06-10 09:12:24 | Implement `FT_Palette_Get'. * src/base/ftcolor.c: New file. * src/base/Jamefile (_sources), src/base/rules.mk (BASE_SRC), src/base/ftbase.c: Add `ftcolor.c'. | ||
| 8f1ed548 | 2018-06-07 02:48:48 | [base] API for Harmony LCD rendering. This introduces `FT_Library_SetLcdGeometry' for setting up arbitrary LCD subpixel geometry including non-striped patterns. * src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): New function. * include/freetype/ftlcdfil.h: Document it. * include/freetype/freetype.h: Minor. * include/freetype/ftchapters.h: Minor. | ||
| 78d85b9c | 2018-06-04 18:42:29 | Restore missing comment lines and other minor fixes | ||
| 9ac9060d | 2018-06-03 09:01:17 | [GSoC] src/*.*: Convert block comments to `light' style. This monster commit was created by applying Nikhil's scripts `docconverter.py' and `markify.py' to all C header and source files, followed up by minor manual clean-up. No change in functionality, of course. I used commit f7419907bc6044b9b7057f9789866426c804ba82 from https://github.com/nikramakrishnan/freetype-docs.git. | ||
| ae2cd1b7 | 2018-05-30 09:34:57 | Various minor color fixes. * include/freetype/config/ftheader.h (FT_COLOR_H): New macro. * include/freetype/internal/ftobjs.h (FT_Colr_Internal): Change type of `load_flags' to `FT_Int32'. * include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func): Change type of `idx' to `FT_UInt'. (TT_Blend_Colr_Func): Change type of `color_index' to `FT_UInt'. * src/base/ftobjs.c (FT_Render_Glyph_Internal): Change type of `load_flags' to `FT_Int32'. * src/sfnt/ttcolr.c (find_base_glyph_record, tt_face_load_colr_layers): Change type of `glyph_id' to `FT_UInt'. (tt_face_find_color, tt_face_colr_blend_layer): Change type of `color_index' to `FT_UInt'. Fix signedness and type issues. * src/sfnt/ttcolr.h: Updated. | ||
| 7b73cb07 | 2018-05-24 22:38:24 | [smooth] Formalize Harmony LCD rendering. This generalizes magic outline shifts that make Harmony LCD rendering work in terms of precise two-dimensional RGB subpixel positions. These coordinates are now set in time of the `smooth' module initialization and later used to shift a glyph outline for rendering. FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V use the same coordinates. The letter, however, rotates them before using. The LCD bitmap padding is also calculated using these coordinates. * include/freetype/internal/ftobjs.h (FT_LibraryRec): New array field `lcd_geometry'. * src/base/ftlcdfil.c (ft_lcd_padding): Reworked. * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Updated accordingly. * src/smooth/ftsmooth.c [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING] (ft_smooth_init): Initialize `lcd_geometry'. (ft_smooth_render_generic): Formalize outline shifts. | ||
| 583dabf2 | 2018-05-16 20:37:43 | Add function `FT_Get_GlyphLayers' to access `COLR' table data. * include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec): Move this structure to... * include/freetype/freetype.h (FT_Glyph_LayerRec): ... this header file. (FT_Glyph_Layer): New typedef. Update code to use it where appropriate. * src/base/ftobjs.c (FT_Get_GlyphLayers): New function. | ||
| f1458d2e | 2018-05-15 21:47:18 | [base] Fix mono bitmap presetting (#53896). It is rather fundamental to set monochrome bitmap based on rounded CBox because the b/w rasterizer turns on pixels when their centers are inside the glyph outline. The dropout control is unpredictable and can distort narrow glyphs if the bitmap is too wide. Reported by Chris Liddell. * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): If BBox boundaries are too close, adjust them before rounding. | ||
| 5fd12564 | 2018-05-15 11:30:49 | Grammar fixes. | ||
| 2dd20916 | 2018-05-15 09:05:53 | [sfnt] If `COLR' is present, don't assume that all glyphs use it. * src/sfnt/ttcolr.c (tt_face_load_colr_layers): Return FT_Err_Ok if current glyph is not a `COLR' base glyph. * src/truetype/ttgload.c (TT_Load_Glyph): Don't allocate `color_layers' if there are no color layers. | ||
| 06820637 | 2018-05-14 09:45:16 | * src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'. | ||
| c5a8a535 | 2018-05-14 09:42:20 | Provide dummy functions if `TT_CONFIG_OPTION_SFNT_NAMES' is not set. * src/base/ftsnames.c [!TT_CONFIG_OPTION_SFNT_NAMES]: Implement it. | ||
| 1b2abda9 | 2018-05-13 10:58:49 | * src/base/ftobjs.c (FT_Load_Glyph): Improve tracing. | ||
| f04d8175 | 2018-05-13 03:25:09 | [sfnt] Preliminary support of coloured layer outlines. This commit enables OpenType's COLR/CPAL table handling; a typical application are color emojis that can be scaled to any size. If the color palette does not exist or is invalid, the rendering step rasterizes the outline instead. The current implementation assumes that the foreground is black. Enable this by defining option TT_CONFIG_OPTION_COLOR_LAYERS. There are still some issues with metrics; additionally, an API to fetch color layers is missing. * devel/ftoption.h, include/freetype/config/ftoption.h (TT_CONFIG_OPTION_COLOR_LAYERS): New macro. * include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec, FT_Colr_InternalRec): New structures. (FT_Slot_InternalRec): Add `color_layers' field. * include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func, TT_Blend_Colr_Func): New function types. (SFNT_Interface): Add `load_colr', `free_colr', `load_colr_layer', and `colr_blend' fields. * include/freetype/internal/tttypes.h (TT_FaceRec): Add `colr_and_cpal' field. * include/freetype/internal/tttags. (TTAG_COLR, TTAG_CPAL): New macros. * src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: New files. * src/base/ftobjs.c (ft_glyphslot_done, FT_Render_Glyph_Internal): Handle glyph color layers. * src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttcolr.c'. * src/sfnt/sfdriver.c: Include `ttcolr.h'. (PUT_COLOR_LAYERS): New macro. Update call to `FT_DEFINE_SFNT_INTERFACE'. * src/sfnt/sfnt.c: Include `ttcolr.c'. * src/sfnt/sfobjs.c (sfnt_load_face): Load `COLR' and `CPAL' tables. (sfnt_done_face): Updated. * src/truetype/ttgload.c (TT_Load_Glyph): Handle color layers. | ||
| 95149592 | 2018-05-02 20:27:48 | Remove FT_CONFIG_OPTION_PIC and related code. */* [FT_CONFIG_OPTION_PIC]: Remove all code guarded by this preprocessor symbol. */*: Replace `XXX_GET' macros (which could be either a function in PIC mode or an array in non-PIC mode) with `xxx' arrays. * include/freetype/internal/ftpic.h, src/autofit/afpic.c, src/autofit/afpic.h, src/base/basepic.c, src/base/basepic.h, src/base/ftpic.c, src/cff/cffpic.c, src/cff/cffpic.h, src/pshinter/pshpic.c, src/pshinter/pshpic.h, src/psnames/pspic.c, src/psnames/pspic.h, src/raster/rastpic.c, src/raster/rastpic.h, src/sfnt/sfntpic.c, src/sfnt/sfntpic.h, src/smooth/ftspic.c, src/smooth/ftspic.h, src/truetype/ttpic.c, src/truetype/ttpic.h: Removed. | ||
| 86bc8a95 | 2018-05-01 20:27:24 | * Version 2.9.1 released. ========================= Tag sources with `VER-2-9-1'. * docs/VERSION.TXT: Add entry for version 2.9.1. * docs/CHANGES: Updated. * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, src/base/ftver.rc, builds/windows/vc2005/index.html, builds/windows/vc2008/freetype.vcproj, builds/windows/vc2008/index.html, builds/windows/vc2010/freetype.vcxproj, builds/windows/vc2010/index.html, builds/windows/visualc/freetype.dsp, builds/windows/visualc/freetype.vcproj, builds/windows/visualc/index.html, builds/windows/visualce/freetype.dsp, builds/windows/visualce/freetype.vcproj, builds/windows/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.9/2.9.1/, s/29/291/. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. * builds/unix/configure.raw (version_info): Set to 22:1:16. * CMakeLists.txt (VERSION_PATCH): Set to 1. * include/freetype/ftgasp.h: Use FT_BEGIN_HEADER and FT_END_HEADER. | ||
| 2157d8fa | 2018-04-24 10:29:19 | [base] Avoid undefined behaviour in lcd filtering code (#53727). * src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy): Ensure `height > 0'. | ||
| 67697d00 | 2018-04-22 21:15:10 | * src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing. | ||
| 3b88576b | 2018-04-22 17:22:35 | [base] Fix bitmap emboldening. Bug introduced after release 2.8. * src/base/ftbitmap.c (ft_bitmap_assure_buffer): We use `FT_QALLOC_MULT', which doesn't zero out the buffer. Adjust the bitmap copying code to take care of this fact. | ||
| c2e2a8e5 | 2018-04-22 17:13:50 | Revert "[base] Fix bitmap copying where the new pitch is smaller." This reverts commit c0f1adedcfaad4f7d2fe912ff4b2933845d61d93. | ||
| c0f1aded | 2018-04-22 11:44:24 | [base] Fix bitmap copying where the new pitch is smaller. * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Handle it. | ||
| 733a21bd | 2018-03-05 23:37:17 | Make `ftlcdfil.c' part of the `base' module. `ftobjs.c' needs `ft_lcd_padding'. Problem reported by duhuanpeng <548708880@qq.com>. * modules.cfg (BASE_EXTENSIONS): Don't include `ftlcdfil.c'. * src/base/ftbase.c: Include `ftlcdfil.c'. * src/base/rules.mk (BASE_SRC): Add `ftlcdfil.c'. * src/base/Jamfile (_sources): Adjusted. * docs/INSTALL.ANY: Updated. | ||
| f4a35316 | 2018-03-05 20:45:12 | Make `ftfntfmt.c' part of the `base' module. `ftobjs.c' needs `FT_Get_Font_Format'. Problem reported by duhuanpeng <548708880@qq.com>. * modules.cfg (BASE_EXTENSIONS): Don't include `ftfntfmt.c'. * src/base/ftbase.c: Include `ftfntfmt.c'. * src/base/rules.mk (BASE_SRC): Add `ftfntfmt.c'. * src/base/Jamfile (_sources): Adjusted. * docs/INSTALL.ANY: Updated. | ||
| 6ce66856 | 2018-01-18 21:29:48 | * src/base/ftver.rc: Fix mingw-w64 compilation. | ||
| 4b8ccc56 | 2018-01-18 04:32:52 | [build] Enable VERSIONINFO resource for Cygwin/MinGW. * builds/unix/configure.raw: Check for resource compiler. * builds/unix/unix-cc.in: Conditionally set up resource compiler. * builds/freetype.mk: Add conditional rule for `ftver.rc'. * src/base/ftver.rc: Copyright notice and year update. | ||
| fd8000f0 | 2018-01-18 03:58:34 | [build] Move VERSIONINFO resource. * builds/windows/vc2010/freetype.vcxproj: Updated. * builds/windows/ftver.rc: Move file from here... * src/base/ftver.rc: ... to here. | ||
| 3758aed7 | 2018-01-06 08:39:36 | Add `FT_Done_MM_Var'. This is necessary in case the application's memory routines differ from FreeType. A typical example is a Python application on Windows that calls FreeType compiled as a DLL via the `ctypes' interface. * include/freetype/ftmm.h, src/base/ftmm.c (FT_Done_MM_Var): Declare and define. * docs/CHANGES: Updated. | ||
| 0a0c2256 | 2018-01-02 09:33:57 | Update copyright year. | ||
| 14cd0734 | 2017-12-27 08:59:46 | Fix compiler warnings. * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Make `pitch' and `new_pitch' unsigned. * src/base/ftpsprop.c: Include FT_INTERNAL_POSTSCRIPT_PROPS_H. | ||
| 3cc88e2e | 2017-12-27 08:19:09 | Fixes for `make multi'. * include/freetype/internal/ftpsprop.h: Use `FT_BASE_CALLBACK'. (ps_property_get): Harmonize declaration with corresponding function typedef. * include/freety[e/internal/fttrace.h: Add `trace_psprops'. * src/base/ftpsprop.c: Include necessary header files. (FT_COMPONENT): Define. (ps_property_set): Tag with `FT_BASE_CALLBACK_DEF'. (ps_property_get): Tag with `FT_BASE_CALLBACK_DEF'. Harmonize declaration with corresponding function typedef. | ||
| dd6330d7 | 2017-12-27 08:06:47 | Add missing ChangeLog entry, copyright notices, whitespace, formatting. | ||
| a956e36c | 2017-12-25 12:34:37 | Move PostScript drivers' property handlers to `base' This reduces the amount of duplicated code across PostScript drivers. * src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c ({cff,cid,t1}_property_{get,set}): Moved to... * include/freetype/internal/ftpsprop.h: ...this new file. (ps_property_{get,set}): New functions to replace moved ones. * src/base/ftpsprop.c: Implement above functions. * include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_PROPS_H): New macro. * src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: Updated. * src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated. | ||
| 08cd62de | 2017-12-20 22:06:19 | Speed up FT_Set_Var_{Design,Blend}_Coordinates if curr == new. We exit early if the current design or blend coordinates are identical to the new ones. * src/truetype/ttgxvar.c (tt_set_mm_blend, TT_Set_Var_Design): Implement it, returning internal error code -1 if there will be no variation change. * src/type1/t1load.c (t1_set_mm_blend): Ditto. * src/base/ftmm.c (FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Updated. | ||
| 068a7a03 | 2017-12-18 20:34:05 | * src/*/*: Only use `ft_' and `FT_' variants of stdc library stuff. | ||
| 7d3dfcd4 | 2017-12-17 08:19:51 | Fix incorrect advance width scaling (#52683). * src/base/ftadvance.c (FT_Get_Advances): Always respect the FT_LOAD_NO_SCALE flag if present. | ||
| 2c048a8a | 2017-12-11 19:24:30 | Fix compiler warning (#52640). * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Remove unused variable. | ||
| 98ba0c4a | 2017-12-08 18:38:41 | New `ftdriver.h' file, covering all driver modules. This reduces redundancy and increases synergy; it also reduces the number of header files. * include/freetype/config/ftheader.h (FT_DRIVER_H): New macro. (FT_AUTOHINTER_H, FT_CFF_DRIVER_H, FT_TRUETYPE_DRIVER_H, FT_PCF_DRIVER_H, FT_TYPE1_DRIVER_H): Make them aliases to FT_DRIVER_H. * include/freetype/ftautoh.h, include/freetype/ftcffdrv.h, include/freetype/ftpcfdrv.h, include/freetype/ftt1drv.h, include/freetype/ftttdrv.h: Replaced with... * include/freetype/ftdriver.h: ...this new file. (FT_CFF_HINTING_ADOBE, FT_T1_HINTING_ADOBE): Renamed to... (FT_HINTING_ADOBE): ... this new macro. (FT_CFF_HINTING_FREETYPE, FT_T1_HINTING_FREETYPE): Renamed to... (FT_HINTING_FREETYPE): ... this new macro. * src/*/*: Updated accordingly. | ||
| e1090c60 | 2017-12-08 09:54:36 | Fix access to uninitalized memory (#52613). Also reported as https://bugs.chromium.org/p/chromium/issues/detail?id=791317 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): If increasing the bitmap size needs a larger bitmap buffer, assure that the new memory areas are initialized also. | ||
| 87ddad20 | 2017-12-04 20:43:30 | Update or fix links to use the https protocol instead of http. | ||
| 2f1863cf | 2017-11-23 20:40:52 | Silence unused function warnings. Some static function declarations cause unused function warnings if certain config options are turned off via `ftoption.h'. * src/base/ftbase.h, src/base/ftrfork.c, src/sfnt/ttbdf.h, src/truetype/ttgxvar.h: Add #ifdef guards around these sections. | ||
| a364e38a | 2017-11-14 07:54:53 | Use Adobe hinting engine for `light' hinting of both CFF and Type 1. Since Ewald Hew factored the Adobe hinting engine out of the CFF driver code, we can now use it on Type 1 (and CID) font formats, as both have the same hinting philosophy. This change activates the Adobe hinter when in LIGHT mode, and therefore always unless explicitly asking for the auto-hinter. This makes LIGHT behavior consistent with CFF fonts. As of this commit, the hinting engine table looks as follows. LIGHT NORMAL ------------------------- TrueType Auto v40 CFF Adobe Adobe Type 1 Adobe Adobe | ||
| 8f5568bf | 2017-11-06 21:42:46 | * src/base/ftobjs.c (FT_Load_Glyph): Relocate condition. | ||
| d74440a3 | 2017-10-20 16:27:33 | [base] Improve tracing in FT_Load_Glyph, FT_*_Size. * src/base/ftobjs.c (FT_Load_Glyph): Tag tracing messages with function name, glyph index, and load flags. (FT_Select_Metrics, FT_Request_Metrics): Remove all tracing. (FT_Select_Size, FT_Request_Size): Improve tracing. | ||
| c10e7800 | 2017-10-18 23:05:51 | [base] Improve tracing in FT_Render_Glyph. * src/base/ftobjs.c (FT_Render_Glyph_Internal): Add total coverage calculations and downgrade Netpbm dump to bitmap:7. | ||
| ccb0f799 | 2017-10-15 14:19:13 | [base, cff] Fix MSVC warnings. * src/base/ftobjs.c (FT_New_Library): C4702: unreachable code. (ft_glyphslot_preset_bitmap): C4244: possible loss of data. * src/cff/cffload.c (cff_blend_doBlend): C4244: possible loss of data. Turn `sum' into unsigned. | ||
| 6bea49e0 | 2017-10-14 22:45:11 | [base] Netpbm image tracing. * src/base/ftobjs.c (FT_Load_Glyph): Trace bitmap size. (FT_Render_Glyph_Internal): Trace bitmap in Netpbm format. * src/smooth/ftgrays.c (gray_sweep): Sweep remnants of span tracing. | ||
| 64985519 | 2017-10-09 07:45:03 | * src/base/ftoutln.c (FT_Outline_Translate): Fix integer overflow. Reported as https://bugs.chromium.org/p/chromium/issues/detail?id=772775 | ||
| b7e43f7d | 2017-10-08 11:58:39 | * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Integer overflows. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3579 | ||
| dd8539ef | 2017-10-07 11:40:03 | New function `FT_Set_Named_Instance'. No effect yet. * src/base/ftmm.c (FT_Set_Named_Instance): New function. * include/freetype/ftmm.h: Updated. | ||
| c3083e45 | 2017-10-05 14:32:24 | * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Fix integer overflow. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3539 | ||
| 9b549fa6 | 2017-09-30 16:36:28 | [base,cff,cid] Whitespace, formatting. | ||
| c8d8e158 | 2017-09-30 14:28:58 | Signedness fixes in bitmap presetting. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3514. * src/raster/ftrend1.c (ft_raster1_render): Exlicitly signed height. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Explicitly unsigned subtraction. | ||
| c26f7f97 | 2017-09-29 00:13:19 | Bitmap metrics presetting [2/2]. * src/base/ftobjs.c (FT_Load_Glyph): Preset the bitmap metrics when appropriate but `FT_Render_Glyph' is not called. * include/freetype/freetype.h (FT_GlyphSlotRec): Document the change. | ||
| 61d1818b | 2017-09-28 00:20:50 | Bitmap metrics presetting [1/2]. This mainly just extracts the code for presetting the bitmap metrics from the monochrome, grayscale, and LCD renderers into a separate function. * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): New function that calculates prespective bitmap metrics for the given rendering mode. * include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap): Declare it. * src/base/ftlcdfil.c (ft_lcd_padding): New helper function that adds padding to CBox taking into account pecularities of LCD rendering. * include/freetype/ftlcdfil.h (ft_lcd_padding): Declare it. * src/raster/ftrend1.c (ft_raster1_render): Reworked to use `ft_glyphslot_preset_bitmap'. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. (ft_smooth_render_lcd, ft_smooth_render_lcd): The pixel_mode setting is moved to `ft_glyphslot_preset_bitmap'. | ||
| 02e80da6 | 2017-09-24 22:18:34 | Tweak per-face LCD filtering controls. Thing are simpler with a NULL-function pointer. * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New pointer to the filter function. (FT_LibraryRec): Remove unused `lcd_filter'. (FT_Bitmap_LcdFilterFunc, ft_lcd_filter_fir): Move from here... * include/freetype/ftlcdfil.h (FT_Bitmap_LcdFilterFunc, ft_lcd_filter_fir): ... to here. * src/base/ftobjs.c (ft_open_face_internal): NULL-initialize the per-face filter. (FT_Face_Properties): Set it. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Simplify. * src/base/ftlcdfil.c (ft_lcd_filter_fir, FT_Libary_SetLcdFilter): Minor. | ||
| 39ce3ac4 | 2017-09-16 19:08:17 | * Version 2.8.1 released. ========================= Tag sources with `VER-2-8-1'. * docs/VERSION.TXT: Add entry for version 2.8.1. * docs/CHANGES: Updated. * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, builds/windows/vc2005/index.html, builds/windows/vc2008/freetype.vcproj, builds/windows/vc2008/index.html, builds/windows/vc2010/freetype.vcxproj, builds/windows/vc2010/index.html, builds/windows/visualc/freetype.dsp, builds/windows/visualc/freetype.vcproj, builds/windows/visualc/index.html, builds/windows/visualce/freetype.dsp, builds/windows/visualce/freetype.vcproj, builds/windows/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.8/2.8.1/, s/28/281/. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. * builds/unix/configure.raw (version_info): Set to 21:0:15. * CMakeLists.txt (VERSION_PATCH): Set to 1. | ||
| 3ef59e59 | 2017-09-09 01:28:24 | [base] Remove a check for resource ID in the resource fork driver. LastResort.dfont has a marginal resource ID 0xFFFF for sfnt resource. Inside Macintosh: More Macintosh Toolbox, `Resource IDs' (1-46), tells that some IDs are reserved and should not be used. FreeType2 just uses resource ID to sort the fragmented resource. To accept the marginal fonts, the checking is removed. * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Remove res_id validity check, fix a trace message format. | ||
| 22a7f5b8 | 2017-09-07 22:36:02 | Branding fixes. | ||
| a3dd6d99 | 2017-09-05 23:02:04 | Fix multiple calls of `FT_Bitmap_Convert'. The documentation of `FT_Bitmap_Convert' says that multiple calls do proper reallocation of the target FT_Bitmap object. However, this failed for the sequence non-empty bitmap empty bitmap non-empty bitmap Reason was that `FT_Bitmap_Convert' only reallocated the bitmap buffer if it became too small; it didn't make the buffer smaller. For an empty bitmap following a non-empty one, only the buffer dimension got set to zero, without deallocation. If the next call was a non-empty buffer again, an assertion in `ft_mem_qrealloc' was triggered. * src/base/ftbitmap.c (FT_Bitmap_Convert): Always reallocate target buffer to the correct size. * docs/CHANGES: Document it. | ||
| f0898b92 | 2017-08-25 21:40:01 | Swap `ALLOC_MULT' arguments (#51833). * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Updated. * src/winfonts/winfnt.c (FNT_Load_Glyph): Updated. * src/raster/ftrend1.c (ft_raster1_render): Updated. | ||
| bd28952e | 2017-08-22 08:41:03 | [base] Don't zero out allocated memory twice (#51816). Patch applied from bug report. * src/base/ftutil.c (ft_mem_qrealloc): Use low-level allocation to avoid unnecessary overhead. | ||
| f2e121ab | 2017-08-10 12:56:50 | [base] Minor API improvement for default variation axis setting. * src/base/ftmm.c (FT_Set_MM_Design_Coordinates, FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Allow coords==NULL if num_coords==0. * docs/CHANGES: Updated. | ||
| f43b3094 | 2017-08-05 18:22:17 | [base, truetype] New function `FT_Get_Var_Axis_Flags'. The reserved `flags' field got a value in OpenType version 1.8.2; unfortunately, the public `FT_Var_Axis' structure misses the corresponding element. Since we can't add a new field, we add an access function. * src/base/ftmm.c (FT_Get_Var_Axis_Flags): New function. * include/freetype/ftmm.h (FT_VAR_AXIS_FLAG_HIDDEN): New macro. Updated. * src/truetype/ttgxvar.c (TT_Get_MM_Var): Increase allocated memory of `mmvar' to hold axis flags. Fill the axis flags array. * docs/CHANGES: Updated. | ||
| fe0a7d9d | 2017-07-13 10:25:42 | [base] Fix memory leak. Reported as https://bugs.chromium.org/p/chromium/issues/detail?id=738362 * src/base/ftglyph.c (FT_Get_Glyph): Do proper deallocation in case of error. | ||
| 134de096 | 2017-07-12 22:16:37 | [base] Integer overflow. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2573 * src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Use FT_PIX_CEIL_LONG and FT_PIX_ROUND_LONG. | ||
| c56d8851 | 2017-07-03 22:49:07 | * src/base/ftlcdfil.c (ft_lcd_filter_fir): Improve code. | ||
| 7819aeb6 | 2017-06-28 22:57:41 | Avoid Microsoft compiler warnings (#51331). While clang's sanitizer recommends a cast to unsigned for safe negation (to handle -INT_MIN), both MSVC and Visualc emit warning C4146 if an unsigned value gets negated. * include/freetype/internal/ftcalc.h (NEG_LONG, NEG_INT32), src/base/ftcalc.c (FT_MOVE_SIGN): Replace negation with a subtraction. | ||
| dde8f5ab | 2017-06-27 06:16:04 | [truetype] Integer overflows. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2384 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2391 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_DivFix): Use NEG_LONG. * src/truetype/ttinterp.c (Ins_SxVTL): Use NEG_LONG. | ||
| 7b727833 | 2017-06-17 23:28:14 | [base, smooth] LCD filtering cleanups. * src/base/ftlcdlil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy): Clean up, start filtering from the bottom-left origin. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Updated. | ||
| 2c4fba9c | 2017-06-10 11:03:41 | * src/base/ftcalc.c (FT_DivFix): Fix embarrassing typo. Bug introduced 2017-05-28. | ||
| dcd8de27 | 2017-06-09 11:21:58 | */*: Remove `OVERFLOW_' prefix. This increases readability. | ||
| addb2ddd | 2017-06-03 21:05:42 | [base, cff, truetype] Integer overflows. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2060 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2062 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2063 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2068 * src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Use OVERFLOW_ADD_LONG and OVERFLOW_SUB_LONG. * src/cff/cf2blues.c (cf2_blues_capture), src/cff/cf2hints.c (cf2_hintmap_adjustHints): Use OVERFLOW_SUB_INT32. * src/truetype/ttgload.c (compute_glyph_metrics): User OVERFLOW_SUB_LONG. * src/truetype/ttinterp.c (Direct_Move, Direct_Move_Orig, Direct_Move_X, Direct_Move_Y, Direct_Move_Orig_X, Direct_Move_Orig_Y, Move_Zp2_Point, Ins_MSIRP): Use OVERFLOW_ADD_LONG and OVERFLOW_SUB_LONG. | ||
| 0ad32623 | 2017-06-01 17:00:37 | * src/base/ftglyph.c (FT_Get_Glyph): Check `slot->advance'. | ||
| fbe2fe4c | 2017-05-29 13:29:28 | Handle some integer overflow run-time errors (#46149, #48979). This commit (mainly for 32bit CPUs) is the first of a series of similar commits to handle known integer overflows. Basically, all of them are harmless, since they affect rendering of glyphs only, not posing security threats. It is expected that fuzzying will show up more overflows, to be fixed in due course. The idea is to mark places where overflows can occur, using macros that simply cast to unsigned integers, because overflow arithmetic is well defined in this case. Doing so suppresses run-time errors of sanitizers without adding computational overhead. * include/freetype/internal/ftcalc.h (OVERFLOW_ADD_INT, OVERFLOW_SUB_INT, OVERFLOW_MUL_INT, OVERFLOW_ADD_LONG, OVERFLOW_SUB_LONG, OVERFLOW_MUL_LONG): New macros. * src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_Matrix_Multiply, FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled, ft_corner_orientation): Use new macros. * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use new macros. | ||
| 93572190 | 2017-05-28 07:20:09 | Fix negation of INT_MIN and LONG_MIN (#46149). * src/base/ftcalc.c (FT_MOVE_SIGN): Add argument to pass unsigned value, to be used as the result. (FT_MulDiv, FT_MulDiv_No_Round, FT_DivFix, FT_MulFix, FT_Vector_NormLen): Updated. | ||
| ab2599ea | 2017-05-20 00:35:21 | [smooth] Implement minimal dynamic padding for LCD filtering. Extra bitmap padding for LCD filtering depends on the filter. The default 5-tap filter needs 2 extra subpixels. The light 3-tap filter needs only 1 extra subpixel. This space could be already available due to rounding. In order to optimize the padding, we now expand CBox for the given filter weights before rounding. This change breakes current Skia (and Firefox). * include/freetype/internal/ftobjs.h (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Remove `lcd_extra' field. * src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights, FT_Library_SetLcdFilter): Remove `lcd_extra' initializations. * src/smooth/ftsmooth.c (ft_smooth_render_generic): Implement dymanic LCD padding. | ||
| e99b26aa | 2017-05-14 21:57:27 | Remove remnants of raster pool. * include/freetype/internal/ftobjs.h (FT_LibraryRec): Remove `raster_pool' and `raster_pool_size' fields. * src/base/ftobjs.c (FT_New_Library), src/raster/ftrend1.c (ft_raster1_init), src/smooth/ftsmooth.c (ft_smooth_init): Updated. | ||
| 8cd31eb7 | 2017-05-03 23:54:29 | */*: s/backwards compatibility/backward compatibility/. | ||
| ba40054c | 2017-05-02 12:32:19 | [autofit] Remove `slight' auto-hint mode again. A poll on freetype-devel favoured changes directly applied to `light'. * include/freetype/freetype.h (FT_LOAD_TARGET_SLIGHT, FT_RENDER_MODE_SLIGHT): Removed. * src/autofit/afcjk.c (af_cjk_hints_init), src/autofit/aflatin.c (af_latin_hints_init), src/autofit/aflatin2.c (af_latin2_hints_init): Revert change from 2017-04-22. * src/autofit/afloader.c (af_loader_load_glyph) Remove references to FT_RENDER_MODE_SLIGHT. [AF_CONFIG_OPTION_TT_SIZE_METRICS]: Enable TrueType-like metrics unconditionally. * src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Revert change from 2017-04-22. * src/base/ftobjs.c (FT_Load_Glyph): Revert change from 2017-04-22. * src/pshinter/pshalgo.c (ps_hints_apply): Revert change from 2017-04-22. * src/smooth/ftsmooth.c (ft_smooth_render): Revert change from 2017-04-22. * docs/CHANGES: Updated. | ||
| 7abf0cb7 | 2017-04-30 17:25:11 | [autofit] Fix metrics computation. Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de> and Nikolaus Waxweiler <madigens@gmail.com>. * src/base/ftobjs.c (FT_Request_Size): Trigger recomputation of auto-hinter metrics. Without this change, multiple size changing calls for a single face fail. |