Index: third_party/freetype/include/ftstroke.h |
diff --git a/third_party/freetype/include/ftstroke.h b/third_party/freetype/include/ftstroke.h |
deleted file mode 100644 |
index bd311709f3470924b4bf56f21a03f83dbe3bdb7e..0000000000000000000000000000000000000000 |
--- a/third_party/freetype/include/ftstroke.h |
+++ /dev/null |
@@ -1,785 +0,0 @@ |
-/***************************************************************************/ |
-/* */ |
-/* ftstroke.h */ |
-/* */ |
-/* FreeType path stroker (specification). */ |
-/* */ |
-/* Copyright 2002-2006, 2008, 2009, 2011-2012, 2014 by */ |
-/* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
-/* */ |
-/* This file is part of the FreeType project, and may only be used, */ |
-/* modified, and distributed under the terms of the FreeType project */ |
-/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
-/* this file you indicate that you have read the license and */ |
-/* understand and accept it fully. */ |
-/* */ |
-/***************************************************************************/ |
- |
- |
-#ifndef __FT_STROKE_H__ |
-#define __FT_STROKE_H__ |
- |
-#include <ft2build.h> |
-#include FT_OUTLINE_H |
-#include FT_GLYPH_H |
- |
- |
-FT_BEGIN_HEADER |
- |
- |
- /************************************************************************ |
- * |
- * @section: |
- * glyph_stroker |
- * |
- * @title: |
- * Glyph Stroker |
- * |
- * @abstract: |
- * Generating bordered and stroked glyphs. |
- * |
- * @description: |
- * This component generates stroked outlines of a given vectorial |
- * glyph. It also allows you to retrieve the `outside' and/or the |
- * `inside' borders of the stroke. |
- * |
- * This can be useful to generate `bordered' glyph, i.e., glyphs |
- * displayed with a coloured (and anti-aliased) border around their |
- * shape. |
- * |
- * @order: |
- * FT_Stroker |
- * |
- * FT_Stroker_LineJoin |
- * FT_Stroker_LineCap |
- * FT_StrokerBorder |
- * |
- * FT_Outline_GetInsideBorder |
- * FT_Outline_GetOutsideBorder |
- * |
- * FT_Glyph_Stroke |
- * FT_Glyph_StrokeBorder |
- * |
- * FT_Stroker_New |
- * FT_Stroker_Set |
- * FT_Stroker_Rewind |
- * FT_Stroker_ParseOutline |
- * FT_Stroker_Done |
- * |
- * FT_Stroker_BeginSubPath |
- * FT_Stroker_EndSubPath |
- * |
- * FT_Stroker_LineTo |
- * FT_Stroker_ConicTo |
- * FT_Stroker_CubicTo |
- * |
- * FT_Stroker_GetBorderCounts |
- * FT_Stroker_ExportBorder |
- * FT_Stroker_GetCounts |
- * FT_Stroker_Export |
- * |
- */ |
- |
- |
- /************************************************************** |
- * |
- * @type: |
- * FT_Stroker |
- * |
- * @description: |
- * Opaque handle to a path stroker object. |
- */ |
- typedef struct FT_StrokerRec_* FT_Stroker; |
- |
- |
- /************************************************************** |
- * |
- * @enum: |
- * FT_Stroker_LineJoin |
- * |
- * @description: |
- * These values determine how two joining lines are rendered |
- * in a stroker. |
- * |
- * @values: |
- * FT_STROKER_LINEJOIN_ROUND :: |
- * Used to render rounded line joins. Circular arcs are used |
- * to join two lines smoothly. |
- * |
- * FT_STROKER_LINEJOIN_BEVEL :: |
- * Used to render beveled line joins. The outer corner of |
- * the joined lines is filled by enclosing the triangular |
- * region of the corner with a straight line between the |
- * outer corners of each stroke. |
- * |
- * FT_STROKER_LINEJOIN_MITER_FIXED :: |
- * Used to render mitered line joins, with fixed bevels if the |
- * miter limit is exceeded. The outer edges of the strokes |
- * for the two segments are extended until they meet at an |
- * angle. If the segments meet at too sharp an angle (such |
- * that the miter would extend from the intersection of the |
- * segments a distance greater than the product of the miter |
- * limit value and the border radius), then a bevel join (see |
- * above) is used instead. This prevents long spikes being |
- * created. FT_STROKER_LINEJOIN_MITER_FIXED generates a miter |
- * line join as used in PostScript and PDF. |
- * |
- * FT_STROKER_LINEJOIN_MITER_VARIABLE :: |
- * FT_STROKER_LINEJOIN_MITER :: |
- * Used to render mitered line joins, with variable bevels if |
- * the miter limit is exceeded. The intersection of the |
- * strokes is clipped at a line perpendicular to the bisector |
- * of the angle between the strokes, at the distance from the |
- * intersection of the segments equal to the product of the |
- * miter limit value and the border radius. This prevents |
- * long spikes being created. |
- * FT_STROKER_LINEJOIN_MITER_VARIABLE generates a mitered line |
- * join as used in XPS. FT_STROKER_LINEJOIN_MITER is an alias |
- * for FT_STROKER_LINEJOIN_MITER_VARIABLE, retained for |
- * backwards compatibility. |
- */ |
- typedef enum FT_Stroker_LineJoin_ |
- { |
- FT_STROKER_LINEJOIN_ROUND = 0, |
- FT_STROKER_LINEJOIN_BEVEL = 1, |
- FT_STROKER_LINEJOIN_MITER_VARIABLE = 2, |
- FT_STROKER_LINEJOIN_MITER = FT_STROKER_LINEJOIN_MITER_VARIABLE, |
- FT_STROKER_LINEJOIN_MITER_FIXED = 3 |
- |
- } FT_Stroker_LineJoin; |
- |
- |
- /************************************************************** |
- * |
- * @enum: |
- * FT_Stroker_LineCap |
- * |
- * @description: |
- * These values determine how the end of opened sub-paths are |
- * rendered in a stroke. |
- * |
- * @values: |
- * FT_STROKER_LINECAP_BUTT :: |
- * The end of lines is rendered as a full stop on the last |
- * point itself. |
- * |
- * FT_STROKER_LINECAP_ROUND :: |
- * The end of lines is rendered as a half-circle around the |
- * last point. |
- * |
- * FT_STROKER_LINECAP_SQUARE :: |
- * The end of lines is rendered as a square around the |
- * last point. |
- */ |
- typedef enum FT_Stroker_LineCap_ |
- { |
- FT_STROKER_LINECAP_BUTT = 0, |
- FT_STROKER_LINECAP_ROUND, |
- FT_STROKER_LINECAP_SQUARE |
- |
- } FT_Stroker_LineCap; |
- |
- |
- /************************************************************** |
- * |
- * @enum: |
- * FT_StrokerBorder |
- * |
- * @description: |
- * These values are used to select a given stroke border |
- * in @FT_Stroker_GetBorderCounts and @FT_Stroker_ExportBorder. |
- * |
- * @values: |
- * FT_STROKER_BORDER_LEFT :: |
- * Select the left border, relative to the drawing direction. |
- * |
- * FT_STROKER_BORDER_RIGHT :: |
- * Select the right border, relative to the drawing direction. |
- * |
- * @note: |
- * Applications are generally interested in the `inside' and `outside' |
- * borders. However, there is no direct mapping between these and the |
- * `left' and `right' ones, since this really depends on the glyph's |
- * drawing orientation, which varies between font formats. |
- * |
- * You can however use @FT_Outline_GetInsideBorder and |
- * @FT_Outline_GetOutsideBorder to get these. |
- */ |
- typedef enum FT_StrokerBorder_ |
- { |
- FT_STROKER_BORDER_LEFT = 0, |
- FT_STROKER_BORDER_RIGHT |
- |
- } FT_StrokerBorder; |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Outline_GetInsideBorder |
- * |
- * @description: |
- * Retrieve the @FT_StrokerBorder value corresponding to the |
- * `inside' borders of a given outline. |
- * |
- * @input: |
- * outline :: |
- * The source outline handle. |
- * |
- * @return: |
- * The border index. @FT_STROKER_BORDER_RIGHT for empty or invalid |
- * outlines. |
- */ |
- FT_EXPORT( FT_StrokerBorder ) |
- FT_Outline_GetInsideBorder( FT_Outline* outline ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Outline_GetOutsideBorder |
- * |
- * @description: |
- * Retrieve the @FT_StrokerBorder value corresponding to the |
- * `outside' borders of a given outline. |
- * |
- * @input: |
- * outline :: |
- * The source outline handle. |
- * |
- * @return: |
- * The border index. @FT_STROKER_BORDER_LEFT for empty or invalid |
- * outlines. |
- */ |
- FT_EXPORT( FT_StrokerBorder ) |
- FT_Outline_GetOutsideBorder( FT_Outline* outline ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_New |
- * |
- * @description: |
- * Create a new stroker object. |
- * |
- * @input: |
- * library :: |
- * FreeType library handle. |
- * |
- * @output: |
- * astroker :: |
- * A new stroker object handle. NULL in case of error. |
- * |
- * @return: |
- * FreeType error code. 0~means success. |
- */ |
- FT_EXPORT( FT_Error ) |
- FT_Stroker_New( FT_Library library, |
- FT_Stroker *astroker ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_Set |
- * |
- * @description: |
- * Reset a stroker object's attributes. |
- * |
- * @input: |
- * stroker :: |
- * The target stroker handle. |
- * |
- * radius :: |
- * The border radius. |
- * |
- * line_cap :: |
- * The line cap style. |
- * |
- * line_join :: |
- * The line join style. |
- * |
- * miter_limit :: |
- * The miter limit for the FT_STROKER_LINEJOIN_MITER_FIXED and |
- * FT_STROKER_LINEJOIN_MITER_VARIABLE line join styles, |
- * expressed as 16.16 fixed-point value. |
- * |
- * @note: |
- * The radius is expressed in the same units as the outline |
- * coordinates. |
- * |
- * This function calls @FT_Stroker_Rewind automatically. |
- */ |
- FT_EXPORT( void ) |
- FT_Stroker_Set( FT_Stroker stroker, |
- FT_Fixed radius, |
- FT_Stroker_LineCap line_cap, |
- FT_Stroker_LineJoin line_join, |
- FT_Fixed miter_limit ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_Rewind |
- * |
- * @description: |
- * Reset a stroker object without changing its attributes. |
- * You should call this function before beginning a new |
- * series of calls to @FT_Stroker_BeginSubPath or |
- * @FT_Stroker_EndSubPath. |
- * |
- * @input: |
- * stroker :: |
- * The target stroker handle. |
- */ |
- FT_EXPORT( void ) |
- FT_Stroker_Rewind( FT_Stroker stroker ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_ParseOutline |
- * |
- * @description: |
- * A convenience function used to parse a whole outline with |
- * the stroker. The resulting outline(s) can be retrieved |
- * later by functions like @FT_Stroker_GetCounts and @FT_Stroker_Export. |
- * |
- * @input: |
- * stroker :: |
- * The target stroker handle. |
- * |
- * outline :: |
- * The source outline. |
- * |
- * opened :: |
- * A boolean. If~1, the outline is treated as an open path instead |
- * of a closed one. |
- * |
- * @return: |
- * FreeType error code. 0~means success. |
- * |
- * @note: |
- * If `opened' is~0 (the default), the outline is treated as a closed |
- * path, and the stroker generates two distinct `border' outlines. |
- * |
- * If `opened' is~1, the outline is processed as an open path, and the |
- * stroker generates a single `stroke' outline. |
- * |
- * This function calls @FT_Stroker_Rewind automatically. |
- */ |
- FT_EXPORT( FT_Error ) |
- FT_Stroker_ParseOutline( FT_Stroker stroker, |
- FT_Outline* outline, |
- FT_Bool opened ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_BeginSubPath |
- * |
- * @description: |
- * Start a new sub-path in the stroker. |
- * |
- * @input: |
- * stroker :: |
- * The target stroker handle. |
- * |
- * to :: |
- * A pointer to the start vector. |
- * |
- * open :: |
- * A boolean. If~1, the sub-path is treated as an open one. |
- * |
- * @return: |
- * FreeType error code. 0~means success. |
- * |
- * @note: |
- * This function is useful when you need to stroke a path that is |
- * not stored as an @FT_Outline object. |
- */ |
- FT_EXPORT( FT_Error ) |
- FT_Stroker_BeginSubPath( FT_Stroker stroker, |
- FT_Vector* to, |
- FT_Bool open ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_EndSubPath |
- * |
- * @description: |
- * Close the current sub-path in the stroker. |
- * |
- * @input: |
- * stroker :: |
- * The target stroker handle. |
- * |
- * @return: |
- * FreeType error code. 0~means success. |
- * |
- * @note: |
- * You should call this function after @FT_Stroker_BeginSubPath. |
- * If the subpath was not `opened', this function `draws' a |
- * single line segment to the start position when needed. |
- */ |
- FT_EXPORT( FT_Error ) |
- FT_Stroker_EndSubPath( FT_Stroker stroker ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_LineTo |
- * |
- * @description: |
- * `Draw' a single line segment in the stroker's current sub-path, |
- * from the last position. |
- * |
- * @input: |
- * stroker :: |
- * The target stroker handle. |
- * |
- * to :: |
- * A pointer to the destination point. |
- * |
- * @return: |
- * FreeType error code. 0~means success. |
- * |
- * @note: |
- * You should call this function between @FT_Stroker_BeginSubPath and |
- * @FT_Stroker_EndSubPath. |
- */ |
- FT_EXPORT( FT_Error ) |
- FT_Stroker_LineTo( FT_Stroker stroker, |
- FT_Vector* to ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_ConicTo |
- * |
- * @description: |
- * `Draw' a single quadratic Bézier in the stroker's current sub-path, |
- * from the last position. |
- * |
- * @input: |
- * stroker :: |
- * The target stroker handle. |
- * |
- * control :: |
- * A pointer to a Bézier control point. |
- * |
- * to :: |
- * A pointer to the destination point. |
- * |
- * @return: |
- * FreeType error code. 0~means success. |
- * |
- * @note: |
- * You should call this function between @FT_Stroker_BeginSubPath and |
- * @FT_Stroker_EndSubPath. |
- */ |
- FT_EXPORT( FT_Error ) |
- FT_Stroker_ConicTo( FT_Stroker stroker, |
- FT_Vector* control, |
- FT_Vector* to ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_CubicTo |
- * |
- * @description: |
- * `Draw' a single cubic Bézier in the stroker's current sub-path, |
- * from the last position. |
- * |
- * @input: |
- * stroker :: |
- * The target stroker handle. |
- * |
- * control1 :: |
- * A pointer to the first Bézier control point. |
- * |
- * control2 :: |
- * A pointer to second Bézier control point. |
- * |
- * to :: |
- * A pointer to the destination point. |
- * |
- * @return: |
- * FreeType error code. 0~means success. |
- * |
- * @note: |
- * You should call this function between @FT_Stroker_BeginSubPath and |
- * @FT_Stroker_EndSubPath. |
- */ |
- FT_EXPORT( FT_Error ) |
- FT_Stroker_CubicTo( FT_Stroker stroker, |
- FT_Vector* control1, |
- FT_Vector* control2, |
- FT_Vector* to ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_GetBorderCounts |
- * |
- * @description: |
- * Call this function once you have finished parsing your paths |
- * with the stroker. It returns the number of points and |
- * contours necessary to export one of the `border' or `stroke' |
- * outlines generated by the stroker. |
- * |
- * @input: |
- * stroker :: |
- * The target stroker handle. |
- * |
- * border :: |
- * The border index. |
- * |
- * @output: |
- * anum_points :: |
- * The number of points. |
- * |
- * anum_contours :: |
- * The number of contours. |
- * |
- * @return: |
- * FreeType error code. 0~means success. |
- * |
- * @note: |
- * When an outline, or a sub-path, is `closed', the stroker generates |
- * two independent `border' outlines, named `left' and `right'. |
- * |
- * When the outline, or a sub-path, is `opened', the stroker merges |
- * the `border' outlines with caps. The `left' border receives all |
- * points, while the `right' border becomes empty. |
- * |
- * Use the function @FT_Stroker_GetCounts instead if you want to |
- * retrieve the counts associated to both borders. |
- */ |
- FT_EXPORT( FT_Error ) |
- FT_Stroker_GetBorderCounts( FT_Stroker stroker, |
- FT_StrokerBorder border, |
- FT_UInt *anum_points, |
- FT_UInt *anum_contours ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_ExportBorder |
- * |
- * @description: |
- * Call this function after @FT_Stroker_GetBorderCounts to |
- * export the corresponding border to your own @FT_Outline |
- * structure. |
- * |
- * Note that this function appends the border points and |
- * contours to your outline, but does not try to resize its |
- * arrays. |
- * |
- * @input: |
- * stroker :: |
- * The target stroker handle. |
- * |
- * border :: |
- * The border index. |
- * |
- * outline :: |
- * The target outline handle. |
- * |
- * @note: |
- * Always call this function after @FT_Stroker_GetBorderCounts to |
- * get sure that there is enough room in your @FT_Outline object to |
- * receive all new data. |
- * |
- * When an outline, or a sub-path, is `closed', the stroker generates |
- * two independent `border' outlines, named `left' and `right'. |
- * |
- * When the outline, or a sub-path, is `opened', the stroker merges |
- * the `border' outlines with caps. The `left' border receives all |
- * points, while the `right' border becomes empty. |
- * |
- * Use the function @FT_Stroker_Export instead if you want to |
- * retrieve all borders at once. |
- */ |
- FT_EXPORT( void ) |
- FT_Stroker_ExportBorder( FT_Stroker stroker, |
- FT_StrokerBorder border, |
- FT_Outline* outline ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_GetCounts |
- * |
- * @description: |
- * Call this function once you have finished parsing your paths |
- * with the stroker. It returns the number of points and |
- * contours necessary to export all points/borders from the stroked |
- * outline/path. |
- * |
- * @input: |
- * stroker :: |
- * The target stroker handle. |
- * |
- * @output: |
- * anum_points :: |
- * The number of points. |
- * |
- * anum_contours :: |
- * The number of contours. |
- * |
- * @return: |
- * FreeType error code. 0~means success. |
- */ |
- FT_EXPORT( FT_Error ) |
- FT_Stroker_GetCounts( FT_Stroker stroker, |
- FT_UInt *anum_points, |
- FT_UInt *anum_contours ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_Export |
- * |
- * @description: |
- * Call this function after @FT_Stroker_GetBorderCounts to |
- * export all borders to your own @FT_Outline structure. |
- * |
- * Note that this function appends the border points and |
- * contours to your outline, but does not try to resize its |
- * arrays. |
- * |
- * @input: |
- * stroker :: |
- * The target stroker handle. |
- * |
- * outline :: |
- * The target outline handle. |
- */ |
- FT_EXPORT( void ) |
- FT_Stroker_Export( FT_Stroker stroker, |
- FT_Outline* outline ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Stroker_Done |
- * |
- * @description: |
- * Destroy a stroker object. |
- * |
- * @input: |
- * stroker :: |
- * A stroker handle. Can be NULL. |
- */ |
- FT_EXPORT( void ) |
- FT_Stroker_Done( FT_Stroker stroker ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Glyph_Stroke |
- * |
- * @description: |
- * Stroke a given outline glyph object with a given stroker. |
- * |
- * @inout: |
- * pglyph :: |
- * Source glyph handle on input, new glyph handle on output. |
- * |
- * @input: |
- * stroker :: |
- * A stroker handle. |
- * |
- * destroy :: |
- * A Boolean. If~1, the source glyph object is destroyed |
- * on success. |
- * |
- * @return: |
- * FreeType error code. 0~means success. |
- * |
- * @note: |
- * The source glyph is untouched in case of error. |
- * |
- * Adding stroke may yield a significantly wider and taller glyph |
- * depending on how large of a radius was used to stroke the glyph. You |
- * may need to manually adjust horizontal and vertical advance amounts |
- * to account for this added size. |
- */ |
- FT_EXPORT( FT_Error ) |
- FT_Glyph_Stroke( FT_Glyph *pglyph, |
- FT_Stroker stroker, |
- FT_Bool destroy ); |
- |
- |
- /************************************************************** |
- * |
- * @function: |
- * FT_Glyph_StrokeBorder |
- * |
- * @description: |
- * Stroke a given outline glyph object with a given stroker, but |
- * only return either its inside or outside border. |
- * |
- * @inout: |
- * pglyph :: |
- * Source glyph handle on input, new glyph handle on output. |
- * |
- * @input: |
- * stroker :: |
- * A stroker handle. |
- * |
- * inside :: |
- * A Boolean. If~1, return the inside border, otherwise |
- * the outside border. |
- * |
- * destroy :: |
- * A Boolean. If~1, the source glyph object is destroyed |
- * on success. |
- * |
- * @return: |
- * FreeType error code. 0~means success. |
- * |
- * @note: |
- * The source glyph is untouched in case of error. |
- * |
- * Adding stroke may yield a significantly wider and taller glyph |
- * depending on how large of a radius was used to stroke the glyph. You |
- * may need to manually adjust horizontal and vertical advance amounts |
- * to account for this added size. |
- */ |
- FT_EXPORT( FT_Error ) |
- FT_Glyph_StrokeBorder( FT_Glyph *pglyph, |
- FT_Stroker stroker, |
- FT_Bool inside, |
- FT_Bool destroy ); |
- |
- /* */ |
- |
-FT_END_HEADER |
- |
-#endif /* __FT_STROKE_H__ */ |
- |
- |
-/* END */ |
- |
- |
-/* Local Variables: */ |
-/* coding: utf-8 */ |
-/* End: */ |