1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* ftstroke.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* FreeType path stroker (specification). */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 7727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* Copyright 2002-2006, 2008, 2009, 2011-2012 by */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __FT_STROKE_H__ 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __FT_STROKE_H__ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h> 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_OUTLINE_H 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_GLYPH_H 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************ 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @section: 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * glyph_stroker 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @title: 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Glyph Stroker 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @abstract: 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Generating bordered and stroked glyphs. 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * This component generates stroked outlines of a given vectorial 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * glyph. It also allows you to retrieve the `outside' and/or the 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `inside' borders of the stroke. 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * This can be useful to generate `bordered' glyph, i.e., glyphs 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * displayed with a coloured (and anti-aliased) border around their 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * shape. 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @type: 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Opaque handler to a path stroker object. 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct FT_StrokerRec_* FT_Stroker; 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @enum: 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_LineJoin 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * These values determine how two joining lines are rendered 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * in a stroker. 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @values: 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_STROKER_LINEJOIN_ROUND :: 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Used to render rounded line joins. Circular arcs are used 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * to join two lines smoothly. 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_STROKER_LINEJOIN_BEVEL :: 78aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * Used to render beveled line joins. The outer corner of 79aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * the joined lines is filled by enclosing the triangular 80aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * region of the corner with a straight line between the 81aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * outer corners of each stroke. 82aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * 83aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * FT_STROKER_LINEJOIN_MITER_FIXED :: 84aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * Used to render mitered line joins, with fixed bevels if the 85aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * miter limit is exceeded. The outer edges of the strokes 86aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * for the two segments are extended until they meet at an 87aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * angle. If the segments meet at too sharp an angle (such 8841371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * that the miter would extend from the intersection of the 8941371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * segments a distance greater than the product of the miter 9041371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * limit value and the border radius), then a bevel join (see 9141371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * above) is used instead. This prevents long spikes being 9241371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * created. FT_STROKER_LINEJOIN_MITER_FIXED generates a miter 93aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * line join as used in PostScript and PDF. 94aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * 95aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * FT_STROKER_LINEJOIN_MITER_VARIABLE :: 96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_STROKER_LINEJOIN_MITER :: 97aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * Used to render mitered line joins, with variable bevels if 9841371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * the miter limit is exceeded. The intersection of the 9941371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * strokes is clipped at a line perpendicular to the bisector 10041371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * of the angle between the strokes, at the distance from the 10141371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * intersection of the segments equal to the product of the 10241371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * miter limit value and the border radius. This prevents 10341371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * long spikes being created. 10441371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * FT_STROKER_LINEJOIN_MITER_VARIABLE generates a mitered line 10541371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * join as used in XPS. FT_STROKER_LINEJOIN_MITER is an alias 10641371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier * for FT_STROKER_LINEJOIN_MITER_VARIABLE, retained for 107aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * backwards compatibility. 108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef enum FT_Stroker_LineJoin_ 110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 111aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner FT_STROKER_LINEJOIN_ROUND = 0, 112aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner FT_STROKER_LINEJOIN_BEVEL = 1, 113aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner FT_STROKER_LINEJOIN_MITER_VARIABLE = 2, 114aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner FT_STROKER_LINEJOIN_MITER = FT_STROKER_LINEJOIN_MITER_VARIABLE, 115aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner FT_STROKER_LINEJOIN_MITER_FIXED = 3 116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } FT_Stroker_LineJoin; 118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @enum: 123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_LineCap 124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * These values determine how the end of opened sub-paths are 127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * rendered in a stroke. 128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @values: 130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_STROKER_LINECAP_BUTT :: 131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The end of lines is rendered as a full stop on the last 132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * point itself. 133049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_STROKER_LINECAP_ROUND :: 135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The end of lines is rendered as a half-circle around the 136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * last point. 137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_STROKER_LINECAP_SQUARE :: 139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The end of lines is rendered as a square around the 140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * last point. 141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 142049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef enum FT_Stroker_LineCap_ 143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_STROKER_LINECAP_BUTT = 0, 145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_STROKER_LINECAP_ROUND, 146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_STROKER_LINECAP_SQUARE 147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } FT_Stroker_LineCap; 149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @enum: 154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_StrokerBorder 155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * These values are used to select a given stroke border 158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * in @FT_Stroker_GetBorderCounts and @FT_Stroker_ExportBorder. 159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @values: 161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_STROKER_BORDER_LEFT :: 162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Select the left border, relative to the drawing direction. 163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_STROKER_BORDER_RIGHT :: 165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Select the right border, relative to the drawing direction. 166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Applications are generally interested in the `inside' and `outside' 169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * borders. However, there is no direct mapping between these and the 170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `left' and `right' ones, since this really depends on the glyph's 171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * drawing orientation, which varies between font formats. 172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 173049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * You can however use @FT_Outline_GetInsideBorder and 174049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @FT_Outline_GetOutsideBorder to get these. 175049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 176049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef enum FT_StrokerBorder_ 177049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 178049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_STROKER_BORDER_LEFT = 0, 179049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_STROKER_BORDER_RIGHT 180049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 181049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } FT_StrokerBorder; 182049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 183049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 184049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 185049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 186049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 187049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Outline_GetInsideBorder 188049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 189049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 190049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Retrieve the @FT_StrokerBorder value corresponding to the 191049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `inside' borders of a given outline. 192049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 193049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 194049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * outline :: 195049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The source outline handle. 196049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 197049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 1980a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * The border index. @FT_STROKER_BORDER_RIGHT for empty or invalid 199049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * outlines. 200049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 201049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_StrokerBorder ) 202049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Outline_GetInsideBorder( FT_Outline* outline ); 203049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 204049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 205049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 206049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 207049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 208049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Outline_GetOutsideBorder 209049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 210049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 211049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Retrieve the @FT_StrokerBorder value corresponding to the 212049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `outside' borders of a given outline. 213049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 214049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 215049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * outline :: 216049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The source outline handle. 217049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 218049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 219049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The border index. @FT_STROKER_BORDER_LEFT for empty or invalid 220049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * outlines. 221049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 222049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_StrokerBorder ) 223049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Outline_GetOutsideBorder( FT_Outline* outline ); 224049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 225049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 226049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 227049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 228049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 229049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_New 230049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 231049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 232049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Create a new stroker object. 233049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 234049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 235049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * library :: 236049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FreeType library handle. 237049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 238049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @output: 239049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * astroker :: 240049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A new stroker object handle. NULL in case of error. 241049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 242049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 2430a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 244049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 245049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 246049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_New( FT_Library library, 247049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker *astroker ); 248049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 249049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 250049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 251049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 252049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 253049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_Set 254049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 255049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 256049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Reset a stroker object's attributes. 257049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 258049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 259049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 260049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target stroker handle. 261049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 262049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * radius :: 263049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The border radius. 264049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 265049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * line_cap :: 266049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The line cap style. 267049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 268049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * line_join :: 269049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The line join style. 270049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 271049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * miter_limit :: 272aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * The miter limit for the FT_STROKER_LINEJOIN_MITER_FIXED and 273aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner * FT_STROKER_LINEJOIN_MITER_VARIABLE line join styles, 274727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * expressed as 16.16 fixed-point value. 275049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 276049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 2770a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * The radius is expressed in the same units as the outline 278049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * coordinates. 279049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 280049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( void ) 281049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_Set( FT_Stroker stroker, 282049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed radius, 283049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_LineCap line_cap, 284049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_LineJoin line_join, 285049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed miter_limit ); 286049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 287049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 288049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 289049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 290049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 291049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_Rewind 292049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 293049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 294049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Reset a stroker object without changing its attributes. 295049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * You should call this function before beginning a new 296049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * series of calls to @FT_Stroker_BeginSubPath or 297049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @FT_Stroker_EndSubPath. 298049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 299049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 300049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 301049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target stroker handle. 302049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 303049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( void ) 304049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_Rewind( FT_Stroker stroker ); 305049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 306049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 307049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 308049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 309049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 310049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_ParseOutline 311049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 312049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 313049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A convenience function used to parse a whole outline with 314049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * the stroker. The resulting outline(s) can be retrieved 315049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * later by functions like @FT_Stroker_GetCounts and @FT_Stroker_Export. 316049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 317049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 318049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 319049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target stroker handle. 320049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 321049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * outline :: 322049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The source outline. 323049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 324049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * opened :: 3250a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * A boolean. If~1, the outline is treated as an open path instead 326049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * of a closed one. 327049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 328049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 3290a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 330049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 331049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 3320a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * If `opened' is~0 (the default), the outline is treated as a closed 3330a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * path, and the stroker generates two distinct `border' outlines. 334049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 3350a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * If `opened' is~1, the outline is processed as an open path, and the 3360a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * stroker generates a single `stroke' outline. 337049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 338049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * This function calls @FT_Stroker_Rewind automatically. 339049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 340049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 341049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_ParseOutline( FT_Stroker stroker, 342049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Outline* outline, 343049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool opened ); 344049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 345049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 346049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 347049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 348049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 349049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_BeginSubPath 350049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 351049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 352049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Start a new sub-path in the stroker. 353049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 354049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 355049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 356049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target stroker handle. 357049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 358049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * to :: 359049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A pointer to the start vector. 360049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 361049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * open :: 3620a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * A boolean. If~1, the sub-path is treated as an open one. 363049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 364049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 3650a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 366049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 367049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 368049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * This function is useful when you need to stroke a path that is 369049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * not stored as an @FT_Outline object. 370049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 371049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 372049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_BeginSubPath( FT_Stroker stroker, 373049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector* to, 374049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool open ); 375049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 376049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 377049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 378049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 379049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 380049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_EndSubPath 381049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 382049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 383049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Close the current sub-path in the stroker. 384049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 385049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 386049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 387049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target stroker handle. 388049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 389049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 3900a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 391049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 392049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 393049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * You should call this function after @FT_Stroker_BeginSubPath. 3940a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * If the subpath was not `opened', this function `draws' a 395049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * single line segment to the start position when needed. 396049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 397049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 398049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_EndSubPath( FT_Stroker stroker ); 399049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 400049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 401049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 402049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 403049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 404049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_LineTo 405049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 406049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 407049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `Draw' a single line segment in the stroker's current sub-path, 408049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * from the last position. 409049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 410049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 411049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 412049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target stroker handle. 413049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 414049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * to :: 415049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A pointer to the destination point. 416049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 417049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 4180a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 419049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 420049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 421049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * You should call this function between @FT_Stroker_BeginSubPath and 422049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @FT_Stroker_EndSubPath. 423049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 424049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 425049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_LineTo( FT_Stroker stroker, 426049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector* to ); 427049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 428049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 429049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 430049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 431049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 432049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_ConicTo 433049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 434049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 435049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `Draw' a single quadratic Bézier in the stroker's current sub-path, 436049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * from the last position. 437049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 438049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 439049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 440049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target stroker handle. 441049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 442049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * control :: 443049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A pointer to a Bézier control point. 444049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 445049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * to :: 446049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A pointer to the destination point. 447049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 448049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 4490a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 450049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 451049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 452049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * You should call this function between @FT_Stroker_BeginSubPath and 453049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @FT_Stroker_EndSubPath. 454049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 455049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 456049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_ConicTo( FT_Stroker stroker, 457049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector* control, 458049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector* to ); 459049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 460049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 461049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 462049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 463049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 464049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_CubicTo 465049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 466049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 467049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `Draw' a single cubic Bézier in the stroker's current sub-path, 468049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * from the last position. 469049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 470049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 471049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 472049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target stroker handle. 473049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 474049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * control1 :: 475049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A pointer to the first Bézier control point. 476049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 477049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * control2 :: 478049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A pointer to second Bézier control point. 479049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 480049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * to :: 481049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A pointer to the destination point. 482049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 483049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 4840a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 485049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 486049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 487049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * You should call this function between @FT_Stroker_BeginSubPath and 488049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @FT_Stroker_EndSubPath. 489049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 490049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 491049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_CubicTo( FT_Stroker stroker, 492049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector* control1, 493049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector* control2, 494049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector* to ); 495049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 496049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 497049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 498049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 499049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 500049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_GetBorderCounts 501049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 502049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 503049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Call this function once you have finished parsing your paths 5040a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * with the stroker. It returns the number of points and 505049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * contours necessary to export one of the `border' or `stroke' 506049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * outlines generated by the stroker. 507049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 508049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 509049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 510049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target stroker handle. 511049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 512049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * border :: 513049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The border index. 514049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 515049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @output: 516049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * anum_points :: 517049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The number of points. 518049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 519049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * anum_contours :: 520049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The number of contours. 521049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 522049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 5230a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 524049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 525049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 526049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * When an outline, or a sub-path, is `closed', the stroker generates 527049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * two independent `border' outlines, named `left' and `right'. 528049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 529049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * When the outline, or a sub-path, is `opened', the stroker merges 530049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * the `border' outlines with caps. The `left' border receives all 531049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * points, while the `right' border becomes empty. 532049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 533049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Use the function @FT_Stroker_GetCounts instead if you want to 534049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * retrieve the counts associated to both borders. 535049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 536049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 537049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_GetBorderCounts( FT_Stroker stroker, 538049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_StrokerBorder border, 539049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt *anum_points, 540049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt *anum_contours ); 541049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 542049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 543049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 544049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 545049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 546049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_ExportBorder 547049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 548049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 549049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Call this function after @FT_Stroker_GetBorderCounts to 550049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * export the corresponding border to your own @FT_Outline 551049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * structure. 552049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 5530a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * Note that this function appends the border points and 5540a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * contours to your outline, but does not try to resize its 555049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * arrays. 556049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 557049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 558049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 559049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target stroker handle. 560049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 561049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * border :: 562049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The border index. 563049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 564049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * outline :: 565049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target outline handle. 566049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 567049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 568049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Always call this function after @FT_Stroker_GetBorderCounts to 569049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * get sure that there is enough room in your @FT_Outline object to 570049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * receive all new data. 571049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 572049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * When an outline, or a sub-path, is `closed', the stroker generates 573049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * two independent `border' outlines, named `left' and `right' 574049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 575049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * When the outline, or a sub-path, is `opened', the stroker merges 576049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * the `border' outlines with caps. The `left' border receives all 577049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * points, while the `right' border becomes empty. 578049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 579049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Use the function @FT_Stroker_Export instead if you want to 580049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * retrieve all borders at once. 581049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 582049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( void ) 583049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_ExportBorder( FT_Stroker stroker, 584049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_StrokerBorder border, 585049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Outline* outline ); 586049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 587049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 588049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 589049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 590049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 591049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_GetCounts 592049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 593049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 594049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Call this function once you have finished parsing your paths 595049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * with the stroker. It returns the number of points and 596049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * contours necessary to export all points/borders from the stroked 597049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * outline/path. 598049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 599049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 600049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 601049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target stroker handle. 602049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 603049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @output: 604049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * anum_points :: 605049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The number of points. 606049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 607049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * anum_contours :: 608049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The number of contours. 609049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 610049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 6110a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 612049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 613049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 614049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_GetCounts( FT_Stroker stroker, 615049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt *anum_points, 616049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt *anum_contours ); 617049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 618049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 619049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 620049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 621049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 622049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_Export 623049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 624049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 625049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Call this function after @FT_Stroker_GetBorderCounts to 626295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner * export all borders to your own @FT_Outline structure. 627049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 6280a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * Note that this function appends the border points and 6290a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * contours to your outline, but does not try to resize its 630049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * arrays. 631049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 632049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 633049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 634049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target stroker handle. 635049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 636049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * outline :: 637049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The target outline handle. 638049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 639049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( void ) 640049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_Export( FT_Stroker stroker, 641049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Outline* outline ); 642049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 643049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 644049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 645049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 646049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 647049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Stroker_Done 648049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 649049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 650049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Destroy a stroker object. 651049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 652049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 653049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 654049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A stroker handle. Can be NULL. 655049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 656049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( void ) 657049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker_Done( FT_Stroker stroker ); 658049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 659049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 660049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 661049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 662049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 663049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Glyph_Stroke 664049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 665049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 666049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Stroke a given outline glyph object with a given stroker. 667049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 668049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @inout: 669049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * pglyph :: 670049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Source glyph handle on input, new glyph handle on output. 671049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 672049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 673049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 674049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A stroker handle. 675049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 676049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * destroy :: 6770a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * A Boolean. If~1, the source glyph object is destroyed 678049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * on success. 679049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 680049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 6810a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 682049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 683049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 684049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The source glyph is untouched in case of error. 685727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * 686727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * Adding stroke may yield a significantly wider and taller glyph 687727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * depending on how large of a radius was used to stroke the glyph. You 688727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * may need to manually adjust horizontal and vertical advance amounts 689727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * to account for this added size. 690049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 691049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 692049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Glyph_Stroke( FT_Glyph *pglyph, 693049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker stroker, 694049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool destroy ); 695049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 696049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 697049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************** 698049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 699049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 700049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Glyph_StrokeBorder 701049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 702049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 703049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Stroke a given outline glyph object with a given stroker, but 704049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * only return either its inside or outside border. 705049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 706049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @inout: 707049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * pglyph :: 708049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Source glyph handle on input, new glyph handle on output. 709049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 710049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 711049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * stroker :: 712049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A stroker handle. 713049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 714049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * inside :: 7150a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * A Boolean. If~1, return the inside border, otherwise 716049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * the outside border. 717049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 718049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * destroy :: 7190a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * A Boolean. If~1, the source glyph object is destroyed 720049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * on success. 721049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 722049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 7230a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 724049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 725049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 726049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The source glyph is untouched in case of error. 727727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * 728727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * Adding stroke may yield a significantly wider and taller glyph 729727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * depending on how large of a radius was used to stroke the glyph. You 730727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * may need to manually adjust horizontal and vertical advance amounts 731727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * to account for this added size. 732049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 733049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 734049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Glyph_StrokeBorder( FT_Glyph *pglyph, 735049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Stroker stroker, 736049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool inside, 737049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Bool destroy ); 738049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 739049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 740049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 741049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 742049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 743049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __FT_STROKE_H__ */ 744049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 745049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 746049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 747049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 748049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 749049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* Local Variables: */ 750049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* coding: utf-8 */ 751049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* End: */ 752