misc/libfreetype/include/freetype/ftstroke.h
author Xeli
Fri, 17 Feb 2012 21:34:33 +0100
changeset 6701 58a43c2064ad
parent 5172 88f2e05288ba
permissions -rw-r--r--
the onScreenwidgets are multitouch now, frequently (alternating) tapping left and right still causes it to bug though, but you have to try hard to duplicate it, works ok for now
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5172
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     1
/***************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     2
/*                                                                         */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     3
/*  ftstroke.h                                                             */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     4
/*                                                                         */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     5
/*    FreeType path stroker (specification).                               */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     6
/*                                                                         */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     7
/*  Copyright 2002, 2003, 2004, 2005, 2006, 2008, 2009 by                  */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     8
/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     9
/*                                                                         */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    10
/*  This file is part of the FreeType project, and may only be used,       */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    11
/*  modified, and distributed under the terms of the FreeType project      */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    12
/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    13
/*  this file you indicate that you have read the license and              */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    14
/*  understand and accept it fully.                                        */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    15
/*                                                                         */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    16
/***************************************************************************/
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    17
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    18
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    19
#ifndef __FT_STROKE_H__
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    20
#define __FT_STROKE_H__
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    21
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    22
#include <ft2build.h>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    23
#include FT_OUTLINE_H
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    24
#include FT_GLYPH_H
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    25
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    26
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    27
FT_BEGIN_HEADER
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    28
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    29
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    30
 /************************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    31
  *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    32
  * @section:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    33
  *    glyph_stroker
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    34
  *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    35
  * @title:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    36
  *    Glyph Stroker
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    37
  *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    38
  * @abstract:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    39
  *    Generating bordered and stroked glyphs.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    40
  *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    41
  * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    42
  *    This component generates stroked outlines of a given vectorial
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    43
  *    glyph.  It also allows you to retrieve the `outside' and/or the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    44
  *    `inside' borders of the stroke.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    45
  *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    46
  *    This can be useful to generate `bordered' glyph, i.e., glyphs
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    47
  *    displayed with a coloured (and anti-aliased) border around their
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    48
  *    shape.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    49
  */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    50
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    51
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    52
 /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    53
  *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    54
  * @type:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    55
  *   FT_Stroker
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    56
  *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    57
  * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    58
  *   Opaque handler to a path stroker object.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    59
  */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    60
  typedef struct FT_StrokerRec_*  FT_Stroker;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    61
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    62
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    63
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    64
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    65
   * @enum:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    66
   *   FT_Stroker_LineJoin
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    67
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    68
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    69
   *   These values determine how two joining lines are rendered
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    70
   *   in a stroker.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    71
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    72
   * @values:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    73
   *   FT_STROKER_LINEJOIN_ROUND ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    74
   *     Used to render rounded line joins.  Circular arcs are used
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    75
   *     to join two lines smoothly.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    76
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    77
   *   FT_STROKER_LINEJOIN_BEVEL ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    78
   *     Used to render beveled line joins; i.e., the two joining lines
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    79
   *     are extended until they intersect.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    80
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    81
   *   FT_STROKER_LINEJOIN_MITER ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    82
   *     Same as beveled rendering, except that an additional line
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    83
   *     break is added if the angle between the two joining lines
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    84
   *     is too closed (this is useful to avoid unpleasant spikes
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    85
   *     in beveled rendering).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    86
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    87
  typedef enum  FT_Stroker_LineJoin_
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    88
  {
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    89
    FT_STROKER_LINEJOIN_ROUND = 0,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    90
    FT_STROKER_LINEJOIN_BEVEL,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    91
    FT_STROKER_LINEJOIN_MITER
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    92
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    93
  } FT_Stroker_LineJoin;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    94
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    95
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    96
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    97
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    98
   * @enum:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    99
   *   FT_Stroker_LineCap
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   100
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   101
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   102
   *   These values determine how the end of opened sub-paths are
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   103
   *   rendered in a stroke.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   104
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   105
   * @values:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   106
   *   FT_STROKER_LINECAP_BUTT ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   107
   *     The end of lines is rendered as a full stop on the last
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   108
   *     point itself.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   109
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   110
   *   FT_STROKER_LINECAP_ROUND ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   111
   *     The end of lines is rendered as a half-circle around the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   112
   *     last point.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   113
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   114
   *   FT_STROKER_LINECAP_SQUARE ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   115
   *     The end of lines is rendered as a square around the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   116
   *     last point.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   117
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   118
  typedef enum  FT_Stroker_LineCap_
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   119
  {
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   120
    FT_STROKER_LINECAP_BUTT = 0,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   121
    FT_STROKER_LINECAP_ROUND,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   122
    FT_STROKER_LINECAP_SQUARE
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   123
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   124
  } FT_Stroker_LineCap;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   125
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   126
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   127
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   128
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   129
   * @enum:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   130
   *   FT_StrokerBorder
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   131
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   132
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   133
   *   These values are used to select a given stroke border
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   134
   *   in @FT_Stroker_GetBorderCounts and @FT_Stroker_ExportBorder.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   135
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   136
   * @values:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   137
   *   FT_STROKER_BORDER_LEFT ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   138
   *     Select the left border, relative to the drawing direction.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   139
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   140
   *   FT_STROKER_BORDER_RIGHT ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   141
   *     Select the right border, relative to the drawing direction.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   142
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   143
   * @note:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   144
   *   Applications are generally interested in the `inside' and `outside'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   145
   *   borders.  However, there is no direct mapping between these and the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   146
   *   `left' and `right' ones, since this really depends on the glyph's
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   147
   *   drawing orientation, which varies between font formats.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   148
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   149
   *   You can however use @FT_Outline_GetInsideBorder and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   150
   *   @FT_Outline_GetOutsideBorder to get these.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   151
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   152
  typedef enum  FT_StrokerBorder_
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   153
  {
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   154
    FT_STROKER_BORDER_LEFT = 0,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   155
    FT_STROKER_BORDER_RIGHT
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   156
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   157
  } FT_StrokerBorder;
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   158
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   159
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   160
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   161
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   162
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   163
   *   FT_Outline_GetInsideBorder
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   164
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   165
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   166
   *   Retrieve the @FT_StrokerBorder value corresponding to the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   167
   *   `inside' borders of a given outline.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   168
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   169
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   170
   *   outline ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   171
   *     The source outline handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   172
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   173
   * @return:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   174
   *   The border index.  @FT_STROKER_BORDER_RIGHT for empty or invalid
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   175
   *   outlines.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   176
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   177
  FT_EXPORT( FT_StrokerBorder )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   178
  FT_Outline_GetInsideBorder( FT_Outline*  outline );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   179
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   180
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   181
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   182
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   183
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   184
   *   FT_Outline_GetOutsideBorder
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   185
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   186
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   187
   *   Retrieve the @FT_StrokerBorder value corresponding to the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   188
   *   `outside' borders of a given outline.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   189
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   190
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   191
   *   outline ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   192
   *     The source outline handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   193
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   194
   * @return:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   195
   *   The border index.  @FT_STROKER_BORDER_LEFT for empty or invalid
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   196
   *   outlines.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   197
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   198
  FT_EXPORT( FT_StrokerBorder )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   199
  FT_Outline_GetOutsideBorder( FT_Outline*  outline );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   200
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   201
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   202
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   203
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   204
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   205
   *   FT_Stroker_New
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   206
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   207
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   208
   *   Create a new stroker object.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   209
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   210
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   211
   *   library ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   212
   *     FreeType library handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   213
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   214
   * @output:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   215
   *   astroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   216
   *     A new stroker object handle.  NULL in case of error.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   217
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   218
   * @return:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   219
   *    FreeType error code.  0~means success.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   220
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   221
  FT_EXPORT( FT_Error )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   222
  FT_Stroker_New( FT_Library   library,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   223
                  FT_Stroker  *astroker );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   224
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   225
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   226
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   227
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   228
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   229
   *   FT_Stroker_Set
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   230
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   231
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   232
   *   Reset a stroker object's attributes.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   233
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   234
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   235
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   236
   *     The target stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   237
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   238
   *   radius ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   239
   *     The border radius.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   240
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   241
   *   line_cap ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   242
   *     The line cap style.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   243
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   244
   *   line_join ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   245
   *     The line join style.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   246
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   247
   *   miter_limit ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   248
   *     The miter limit for the FT_STROKER_LINEJOIN_MITER style,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   249
   *     expressed as 16.16 fixed point value.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   250
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   251
   * @note:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   252
   *   The radius is expressed in the same units as the outline
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   253
   *   coordinates.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   254
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   255
  FT_EXPORT( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   256
  FT_Stroker_Set( FT_Stroker           stroker,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   257
                  FT_Fixed             radius,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   258
                  FT_Stroker_LineCap   line_cap,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   259
                  FT_Stroker_LineJoin  line_join,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   260
                  FT_Fixed             miter_limit );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   261
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   262
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   263
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   264
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   265
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   266
   *   FT_Stroker_Rewind
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   267
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   268
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   269
   *   Reset a stroker object without changing its attributes.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   270
   *   You should call this function before beginning a new
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   271
   *   series of calls to @FT_Stroker_BeginSubPath or
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   272
   *   @FT_Stroker_EndSubPath.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   273
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   274
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   275
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   276
   *     The target stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   277
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   278
  FT_EXPORT( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   279
  FT_Stroker_Rewind( FT_Stroker  stroker );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   280
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   281
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   282
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   283
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   284
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   285
   *   FT_Stroker_ParseOutline
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   286
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   287
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   288
   *   A convenience function used to parse a whole outline with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   289
   *   the stroker.  The resulting outline(s) can be retrieved
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   290
   *   later by functions like @FT_Stroker_GetCounts and @FT_Stroker_Export.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   291
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   292
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   293
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   294
   *     The target stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   295
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   296
   *   outline ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   297
   *     The source outline.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   298
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   299
   *   opened ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   300
   *     A boolean.  If~1, the outline is treated as an open path instead
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   301
   *     of a closed one.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   302
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   303
   * @return:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   304
   *   FreeType error code.  0~means success.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   305
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   306
   * @note:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   307
   *   If `opened' is~0 (the default), the outline is treated as a closed
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   308
   *   path, and the stroker generates two distinct `border' outlines.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   309
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   310
   *   If `opened' is~1, the outline is processed as an open path, and the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   311
   *   stroker generates a single `stroke' outline.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   312
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   313
   *   This function calls @FT_Stroker_Rewind automatically.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   314
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   315
  FT_EXPORT( FT_Error )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   316
  FT_Stroker_ParseOutline( FT_Stroker   stroker,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   317
                           FT_Outline*  outline,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   318
                           FT_Bool      opened );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   319
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   320
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   321
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   322
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   323
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   324
   *   FT_Stroker_BeginSubPath
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   325
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   326
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   327
   *   Start a new sub-path in the stroker.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   328
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   329
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   330
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   331
   *     The target stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   332
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   333
   *   to ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   334
   *     A pointer to the start vector.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   335
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   336
   *   open ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   337
   *     A boolean.  If~1, the sub-path is treated as an open one.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   338
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   339
   * @return:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   340
   *   FreeType error code.  0~means success.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   341
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   342
   * @note:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   343
   *   This function is useful when you need to stroke a path that is
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   344
   *   not stored as an @FT_Outline object.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   345
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   346
  FT_EXPORT( FT_Error )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   347
  FT_Stroker_BeginSubPath( FT_Stroker  stroker,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   348
                           FT_Vector*  to,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   349
                           FT_Bool     open );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   350
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   351
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   352
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   353
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   354
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   355
   *   FT_Stroker_EndSubPath
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   356
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   357
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   358
   *   Close the current sub-path in the stroker.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   359
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   360
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   361
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   362
   *     The target stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   363
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   364
   * @return:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   365
   *   FreeType error code.  0~means success.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   366
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   367
   * @note:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   368
   *   You should call this function after @FT_Stroker_BeginSubPath.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   369
   *   If the subpath was not `opened', this function `draws' a
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   370
   *   single line segment to the start position when needed.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   371
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   372
  FT_EXPORT( FT_Error )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   373
  FT_Stroker_EndSubPath( FT_Stroker  stroker );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   374
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   375
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   376
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   377
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   378
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   379
   *   FT_Stroker_LineTo
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   380
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   381
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   382
   *   `Draw' a single line segment in the stroker's current sub-path,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   383
   *   from the last position.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   384
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   385
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   386
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   387
   *     The target stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   388
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   389
   *   to ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   390
   *     A pointer to the destination point.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   391
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   392
   * @return:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   393
   *   FreeType error code.  0~means success.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   394
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   395
   * @note:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   396
   *   You should call this function between @FT_Stroker_BeginSubPath and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   397
   *   @FT_Stroker_EndSubPath.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   398
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   399
  FT_EXPORT( FT_Error )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   400
  FT_Stroker_LineTo( FT_Stroker  stroker,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   401
                     FT_Vector*  to );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   402
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   403
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   404
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   405
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   406
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   407
   *   FT_Stroker_ConicTo
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   408
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   409
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   410
   *   `Draw' a single quadratic Bézier in the stroker's current sub-path,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   411
   *   from the last position.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   412
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   413
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   414
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   415
   *     The target stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   416
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   417
   *   control ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   418
   *     A pointer to a Bézier control point.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   419
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   420
   *   to ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   421
   *     A pointer to the destination point.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   422
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   423
   * @return:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   424
   *   FreeType error code.  0~means success.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   425
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   426
   * @note:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   427
   *   You should call this function between @FT_Stroker_BeginSubPath and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   428
   *   @FT_Stroker_EndSubPath.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   429
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   430
  FT_EXPORT( FT_Error )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   431
  FT_Stroker_ConicTo( FT_Stroker  stroker,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   432
                      FT_Vector*  control,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   433
                      FT_Vector*  to );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   434
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   435
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   436
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   437
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   438
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   439
   *   FT_Stroker_CubicTo
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   440
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   441
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   442
   *   `Draw' a single cubic Bézier in the stroker's current sub-path,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   443
   *   from the last position.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   444
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   445
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   446
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   447
   *     The target stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   448
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   449
   *   control1 ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   450
   *     A pointer to the first Bézier control point.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   451
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   452
   *   control2 ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   453
   *     A pointer to second Bézier control point.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   454
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   455
   *   to ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   456
   *     A pointer to the destination point.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   457
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   458
   * @return:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   459
   *   FreeType error code.  0~means success.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   460
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   461
   * @note:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   462
   *   You should call this function between @FT_Stroker_BeginSubPath and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   463
   *   @FT_Stroker_EndSubPath.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   464
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   465
  FT_EXPORT( FT_Error )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   466
  FT_Stroker_CubicTo( FT_Stroker  stroker,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   467
                      FT_Vector*  control1,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   468
                      FT_Vector*  control2,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   469
                      FT_Vector*  to );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   470
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   471
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   472
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   473
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   474
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   475
   *   FT_Stroker_GetBorderCounts
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   476
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   477
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   478
   *   Call this function once you have finished parsing your paths
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   479
   *   with the stroker.  It returns the number of points and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   480
   *   contours necessary to export one of the `border' or `stroke'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   481
   *   outlines generated by the stroker.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   482
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   483
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   484
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   485
   *     The target stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   486
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   487
   *   border ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   488
   *     The border index.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   489
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   490
   * @output:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   491
   *   anum_points ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   492
   *     The number of points.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   493
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   494
   *   anum_contours ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   495
   *     The number of contours.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   496
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   497
   * @return:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   498
   *   FreeType error code.  0~means success.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   499
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   500
   * @note:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   501
   *   When an outline, or a sub-path, is `closed', the stroker generates
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   502
   *   two independent `border' outlines, named `left' and `right'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   503
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   504
   *   When the outline, or a sub-path, is `opened', the stroker merges
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   505
   *   the `border' outlines with caps.  The `left' border receives all
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   506
   *   points, while the `right' border becomes empty.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   507
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   508
   *   Use the function @FT_Stroker_GetCounts instead if you want to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   509
   *   retrieve the counts associated to both borders.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   510
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   511
  FT_EXPORT( FT_Error )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   512
  FT_Stroker_GetBorderCounts( FT_Stroker        stroker,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   513
                              FT_StrokerBorder  border,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   514
                              FT_UInt          *anum_points,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   515
                              FT_UInt          *anum_contours );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   516
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   517
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   518
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   519
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   520
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   521
   *   FT_Stroker_ExportBorder
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   522
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   523
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   524
   *   Call this function after @FT_Stroker_GetBorderCounts to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   525
   *   export the corresponding border to your own @FT_Outline
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   526
   *   structure.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   527
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   528
   *   Note that this function appends the border points and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   529
   *   contours to your outline, but does not try to resize its
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   530
   *   arrays.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   531
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   532
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   533
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   534
   *     The target stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   535
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   536
   *   border ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   537
   *     The border index.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   538
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   539
   *   outline ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   540
   *     The target outline handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   541
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   542
   * @note:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   543
   *   Always call this function after @FT_Stroker_GetBorderCounts to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   544
   *   get sure that there is enough room in your @FT_Outline object to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   545
   *   receive all new data.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   546
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   547
   *   When an outline, or a sub-path, is `closed', the stroker generates
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   548
   *   two independent `border' outlines, named `left' and `right'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   549
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   550
   *   When the outline, or a sub-path, is `opened', the stroker merges
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   551
   *   the `border' outlines with caps. The `left' border receives all
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   552
   *   points, while the `right' border becomes empty.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   553
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   554
   *   Use the function @FT_Stroker_Export instead if you want to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   555
   *   retrieve all borders at once.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   556
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   557
  FT_EXPORT( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   558
  FT_Stroker_ExportBorder( FT_Stroker        stroker,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   559
                           FT_StrokerBorder  border,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   560
                           FT_Outline*       outline );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   561
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   562
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   563
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   564
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   565
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   566
   *   FT_Stroker_GetCounts
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   567
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   568
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   569
   *   Call this function once you have finished parsing your paths
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   570
   *   with the stroker.  It returns the number of points and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   571
   *   contours necessary to export all points/borders from the stroked
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   572
   *   outline/path.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   573
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   574
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   575
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   576
   *     The target stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   577
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   578
   * @output:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   579
   *   anum_points ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   580
   *     The number of points.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   581
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   582
   *   anum_contours ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   583
   *     The number of contours.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   584
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   585
   * @return:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   586
   *   FreeType error code.  0~means success.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   587
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   588
  FT_EXPORT( FT_Error )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   589
  FT_Stroker_GetCounts( FT_Stroker  stroker,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   590
                        FT_UInt    *anum_points,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   591
                        FT_UInt    *anum_contours );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   592
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   593
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   594
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   595
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   596
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   597
   *   FT_Stroker_Export
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   598
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   599
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   600
   *   Call this function after @FT_Stroker_GetBorderCounts to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   601
   *   export all borders to your own @FT_Outline structure.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   602
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   603
   *   Note that this function appends the border points and
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   604
   *   contours to your outline, but does not try to resize its
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   605
   *   arrays.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   606
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   607
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   608
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   609
   *     The target stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   610
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   611
   *   outline ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   612
   *     The target outline handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   613
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   614
  FT_EXPORT( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   615
  FT_Stroker_Export( FT_Stroker   stroker,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   616
                     FT_Outline*  outline );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   617
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   618
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   619
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   620
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   621
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   622
   *   FT_Stroker_Done
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   623
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   624
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   625
   *   Destroy a stroker object.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   626
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   627
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   628
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   629
   *     A stroker handle.  Can be NULL.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   630
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   631
  FT_EXPORT( void )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   632
  FT_Stroker_Done( FT_Stroker  stroker );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   633
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   634
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   635
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   636
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   637
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   638
   *   FT_Glyph_Stroke
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   639
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   640
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   641
   *   Stroke a given outline glyph object with a given stroker.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   642
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   643
   * @inout:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   644
   *   pglyph ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   645
   *     Source glyph handle on input, new glyph handle on output.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   646
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   647
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   648
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   649
   *     A stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   650
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   651
   *   destroy ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   652
   *     A Boolean.  If~1, the source glyph object is destroyed
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   653
   *     on success.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   654
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   655
   * @return:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   656
   *    FreeType error code.  0~means success.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   657
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   658
   * @note:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   659
   *   The source glyph is untouched in case of error.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   660
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   661
  FT_EXPORT( FT_Error )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   662
  FT_Glyph_Stroke( FT_Glyph    *pglyph,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   663
                   FT_Stroker   stroker,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   664
                   FT_Bool      destroy );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   665
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   666
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   667
  /**************************************************************
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   668
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   669
   * @function:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   670
   *   FT_Glyph_StrokeBorder
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   671
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   672
   * @description:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   673
   *   Stroke a given outline glyph object with a given stroker, but
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   674
   *   only return either its inside or outside border.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   675
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   676
   * @inout:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   677
   *   pglyph ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   678
   *     Source glyph handle on input, new glyph handle on output.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   679
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   680
   * @input:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   681
   *   stroker ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   682
   *     A stroker handle.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   683
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   684
   *   inside ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   685
   *     A Boolean.  If~1, return the inside border, otherwise
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   686
   *     the outside border.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   687
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   688
   *   destroy ::
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   689
   *     A Boolean.  If~1, the source glyph object is destroyed
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   690
   *     on success.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   691
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   692
   * @return:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   693
   *    FreeType error code.  0~means success.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   694
   *
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   695
   * @note:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   696
   *   The source glyph is untouched in case of error.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   697
   */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   698
  FT_EXPORT( FT_Error )
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   699
  FT_Glyph_StrokeBorder( FT_Glyph    *pglyph,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   700
                         FT_Stroker   stroker,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   701
                         FT_Bool      inside,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   702
                         FT_Bool      destroy );
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   703
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   704
 /* */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   705
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   706
FT_END_HEADER
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   707
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   708
#endif /* __FT_STROKE_H__ */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   709
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   710
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   711
/* END */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   712
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   713
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   714
/* Local Variables: */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   715
/* coding: utf-8    */
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   716
/* End:             */