summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Instead of individual properties. Just use one thathooks-via-module-propertyMoazin Khatti2019-07-183-37/+18
| | | | takes pointer to the hooks structure.
* Use `FT_Property_Set' to set the hooks. One less API function.Moazin Khatti2019-07-173-135/+81
|
* Public interface should remain same whetherMoazin Khatti2019-07-176-10/+15
| | | | `FT_CONFIG_OPTION_SVG' is set or not.
* Added `FT_CONFIG_OPTION_SVG'.Moazin Khatti2019-07-1713-22/+80
|
* Documentation formatting improvement.Moazin Khatti2019-07-114-39/+36
|
* Better naming used.Moazin Khatti2019-07-117-67/+68
|
* Forgot an `else', fix that.Moazin Khatti2019-07-111-0/+1
|
* Memory allocation for `state' of renderer should be performedMoazin Khatti2019-07-114-42/+9
| | | | on the SVG port side not the FT size. Minor doc fixes.
* Remove unnecessary code from `FT_Render_Glyph_Internal'.Moazin Khatti2019-07-111-9/+5
|
* Let FT handle the memory management for rendering port's stateMoazin Khatti2019-07-115-35/+126
| | | | | | | | | | | | | | | | | | | | | | | | | and the image buffer. State has been moved inside the library structure. A new hook function has been added to query the size needed for the state structure and this allocation is performed by FT. Memory alloc. for the image buffer is also being done by FT so that it can later free it easily. * include/freetype/svgrenderer.h: Small doc fixes. Addition of two new hooks. `SVG_Lib_Get_State_Size' and `SVG_Lib_Get_Buffer_Size'. * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Small bug fix. Memory was being initialized before library. * src/base/ftobjs.c (FT_Set_Svg_Hooks): Adjust the code for new hook functions. * src/svg/ftsvg.c: Adjust the code for new hook functions. Perform all memory allocations needed by the rendering port from FreeType side. * src/svg/svgtypes.c: Add the new hooks in the hook structure.
* Store the rendering port's state in library.Moazin Khatti2019-07-114-14/+41
| | | | | Before this commit, the state of a rendering port was being held globally. Now, it'll be stored in library->svg_renderer_state.
* Minor fixes.Moazin Khatti2019-07-1115-36/+49
|
* Add `start_glyph_id' and `end_glyph_id'.Moazin Khatti2019-07-114-2/+38
| | | | | | These two fields are added to `FT_SvgGlyphRec' and `FT_SVG_DocumentRec'. This is to allow the rendering port to create a caching mechanism.
* Add a `units_per_EM' field.Moazin Khatti2019-07-114-0/+34
| | | | | | | | | A field `units_per_EM' is added to `FT_SVG_DocumentRec' and `FT_SvgGlyphRec'. This is needed because the renderer needs this info to properly scale the SVGs if the viewbox width and height differ from `face->units_per_EM'. Face object can't be accessed because of the restrictions put by `FT_Glyph_To_Bitmap' thus this has to be provided separately just like `metrics'.
* Do proper memory freeing to prevent leaks.Moazin Khatti2019-07-114-4/+28
| | | | | | | | | | | | | | * include/freetype/internal/ftobjs.h: Create a new flag named `FT_GLYPH_OWN_GZIP_SVG' to indicate that `svg_document' in `slot->other' is GZIP compressed and has to be freed later. * src/base/ftglyph.c: Minor styling. * src/base/ftobjs.c: Add code to free memory that was previously allocated for storing GZIP compressed SVG documents. * src/sfnt/ttsvg.c: Set the `FT_GLYPH_OWN_GZIP_SVG' flag if the document is GZIP compressed.
* Minor. Add documentation.Moazin Khatti2019-07-112-0/+5
|
* * src/sfnt/ttsvg.c (tt_face_load_svg_doc): Minor fix. Don't returnMoazin Khatti2019-07-111-1/+0
| | | | immediately in case of Gzip compressed SVG documents.
* Properly free memory of SVG document referenced in `slot->other'.Moazin Khatti2019-07-113-5/+24
| | | | | | | | | | | | | | | | * include/freetype/freetype.h: Add `FT_FACE_FLAG_SVG' to indicate the presence of an SVG table in the face. * src/base/ftobjs.c (ft_glyphslot_init): Allocate memory for `FT_SVG_Document' in `slot->other' if an SVG table exists in the face. (ft_glyphslot_clear): Clear `slot->other' only if the font doesn't have an SVG table. (ft_glyphslot_done): Free the memory at `slot->other' if the face has an SVG table. * src/base/ttsvg.c (tt_face_load_svg): Set `FT_FACE_FLAG_SVG'. (tt_face_load_svg_doc): Don't allocate the memory.
* Enable FreeType memory debugger.Moazin Khatti2019-07-111-1/+1
|
* [cache] Consider `FT_GLYPH_FORMAT_SVG' a valid format.Moazin Khatti2019-07-111-1/+2
|
* Minor changes.Moazin Khatti2019-07-112-2/+11
| | | | | | | | | | | | * src/base/ftobjs.c (FT_Load_Glyph): Use the recrusive call with `FT_LOAD_NO_SCALE' so that the loaded data is unscaled. * src/base/ftobjs.c (FT_Render_Glyph_Internal): Change the format to bitmap once an SVG glyph is successfully rendered. * src/sfnt/ttsvg.c (tt_face_load_svg_doc): Make sure metrics are grabbed. Scale `horiAdvance' and `vertAdvance' properly and convert them to 26.6 format.
* Adds support for SVG glyphs to Glyph Management API.Moazin Khatti2019-07-112-0/+202
|
* Make sure `FT_Set_Svg_Hooks' is exported properly.Moazin Khatti2019-07-111-1/+1
|
* Adds size information to `FT_SVG_DocumentRec'.Moazin Khatti2019-07-111-2/+3
| | | | | | | | | | | This is necessary because the document itself contains no sizing information. Outline glyphs encapsulate the sizing information in the outlines by scaling them. That is not possible here. One could access them from the face object reference inside a glyph slot, but when the function `FT_Glyph_To_Bitmap' creates a dummy slot it can not put a face object reference in it. Thus, it's better to store the size information here.
* [ot-svg] Create an SVG Document structure for use in `other' fieldMoazin Khatti2019-07-114-11/+68
| | | | of `FT_GlyphSlot'.
* Removes trailing white spaces.Moazin Khatti2019-07-115-19/+19
|
* Reverts the changes made in the structure of `TT_GlyphSlot'Moazin Khatti2019-07-115-98/+51
|
* [ot-svg] Silly mistake fix.Moazin Khatti2019-07-113-12/+9
| | | | | Instead of an `FT_Library' instance, `FT_Module' is supposed to be passed.
* Minor. Better documentation. Adds TODOs for letter.Moazin Khatti2019-07-117-31/+82
|
* [ot-svg] Creates hooks mechanism in SVG Renderer.Moazin Khatti2019-07-115-11/+217
| | | | | | | | | | | | | | | * include/freetype/config/ftheader.h: New macro `FT_SVG_RENDERER_H' for `freetype/svgrenderer.h'. * include/freetype/svgrenderer.h: New file to store SVG specific function types, SVG interface and `FT_Set_Svg_Hooks'. * src/base/ftobjs.c: Adds implementation of `FT_Set_Svg_Hooks'. * src/svg/ftsvg.c: Creates `svg_renderer_interface'. * src/svg/svgtypes.c: Moves hook function types to `FT_SVG_RENDERER_H'. Adds a hook for svg rendering. Temporary.
* Barebones of an SVG rendering module and making it part of the build systemMoazin Khatti2019-07-119-1/+282
|
* Support OT-SVG fonts with CFF outlinesMoazin Khatti2019-07-113-18/+26
|
* Very crude way to handle SVG data with only TTF outlined OT fonts. Gonna ↵Moazin Khatti2019-07-117-52/+202
| | | | revert soon.
* Added FT_GLYPH_FORMAT_SVGMoazin Khatti2019-07-111-1/+7
|
* Created Svg type and the load/free funcs inside sfnt interfaceMoazin Khatti2019-07-117-3/+178
|
* Added the SVG tagMoazin Khatti2019-07-111-0/+1
|
* turned on trace mode and added tags file in gitignoreMoazin Khatti2019-07-112-1/+2
|
* [psaux] (2/2) Handle fonts that use SEAC for ligatures (#56580).Werner Lemberg2019-07-042-6/+23
| | | | | | The same as previous commit but for the old engine. * src/psaux/t1decode.c (t1operator_seac): Implement it.
* [psaux] (1/2) Handle fonts that use SEAC for ligatures (#56580).Chris Liddell2019-07-042-6/+37
| | | | | | | | | | | | | | | | | | | As originally intended, a Type 1 SEAC charstring would be used for an accented glyph (like `acaron' or `uumlaut'), where the advance width of the SEAC glyph is the same as that of the `base' glyph (like `a' or `u'). In this case it is not uncommon for the SEAC glyph to not use an (H)SBW opcode of its own but to rely on the value from the base glyph. However, out-of-spec fonts also use SEAC glyphs for ligatures (like `oe' or `fi'), and in those cases the overall advance width is greater than that of the `base' glyph. For this reason we have to allow that the SEAC glyph can have an (H)SBW value of its own, and if it has, retain this value, rather than the one from the base glyph. * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escSEAC>: Implement it.
* * Version 2.10.1 released.VER-2-10-1Werner Lemberg2019-07-0120-156/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | ========================== Tag sources with `VER-2-10-1'. * docs/VERSION.TXT: Add entry for version 2.10.1. * README, Jamfile (RefDoc), src/base/ftver.rc, 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.10.0/2.10.1/, s/2100/2101/. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. * builds/unix/configure.raw (version_info): Set to 23:1:17. * CMakeLists.txt (VERSION_PATCH): Set to 1. * include/freetype/fterrors.h (FT_Error_String): Fix C++ compilation.
* * src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Fix inequality.Alexei Podtelezhnikov2019-06-262-2/+8
| | | | Reported by Armin Hasitzka.
* Doc polishing.Alexei Podtelezhnikov2019-06-223-6/+7
|
* Minor.Alexei Podtelezhnikov2019-06-191-1/+1
|
* docs/CHANGES: Updated.Werner Lemberg2019-06-191-0/+5
|
* * src/tools/apinames.c: Formatting, minor edits.Werner Lemberg2019-06-162-204/+241
|
* [autofit] Disable hinting if no blue zones are available (#56450).Werner Lemberg2019-06-163-7/+64
| | | | | | | | | | | | * src/autofit/afglobal.c (af_face_global_get_metrics): Start again (with dummy hinter module) if no blue zones are present. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Change signature to return error code. If no blue zones are found, update `glyph_styles' array to hold AF_STYLE_NONE_DFLT instead of the current style. (af_latin_metrics_init): Return internal error code if no blue zones are found.
* Towards better VMS support.Werner Lemberg2019-06-165-2/+40
| | | | | | | | | | More to come. * builds/vms/LIBS.OPT_IA64, builds/vms/_LINK.OPT_IA64, builds/vms/vmslib.dat: New files provided by Jouk Jansen <joukj@hrem.nano.tudelft.nl>. * builds/vms/ftconfig.h: Update, also from Jouk.
* * src/autofit/aflatin.c (af_latin_metrics_init_widths): Minor.Werner Lemberg2019-06-132-0/+8
|
* Add memory access macro summary.Werner Lemberg2019-06-131-0/+11
|
* [smooth] Restore the span buffering for direct mode only.Alexei Podtelezhnikov2019-06-132-6/+39
| | | | | | | | | | | | The buffer size FT_MAX_GRAY_SPANS is set to 10 spans, which should be enough to cover the entire scanline for simple glyphs in most cases: each slightly slanted edge needs up to two spans, plus a filling span in-between. This is not new, we used to do it before cb4388783cecc. * src/smooth/ftgrays.c (gray_TWorker): Add `spans' and `num_spans'. (gray_hline, gray_sweep): Implement the span buffering. (gray_raster_render): Use negative `num_spans' to avoid the direct mode.