misc/libfreetype/include/freetype/ftbbox.h
changeset 5172 88f2e05288ba
equal deleted inserted replaced
5171:f9283dc4860d 5172:88f2e05288ba
       
     1 /***************************************************************************/
       
     2 /*                                                                         */
       
     3 /*  ftbbox.h                                                               */
       
     4 /*                                                                         */
       
     5 /*    FreeType exact bbox computation (specification).                     */
       
     6 /*                                                                         */
       
     7 /*  Copyright 1996-2001, 2003, 2007, 2011 by                               */
       
     8 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
       
     9 /*                                                                         */
       
    10 /*  This file is part of the FreeType project, and may only be used,       */
       
    11 /*  modified, and distributed under the terms of the FreeType project      */
       
    12 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
       
    13 /*  this file you indicate that you have read the license and              */
       
    14 /*  understand and accept it fully.                                        */
       
    15 /*                                                                         */
       
    16 /***************************************************************************/
       
    17 
       
    18 
       
    19   /*************************************************************************/
       
    20   /*                                                                       */
       
    21   /* This component has a _single_ role: to compute exact outline bounding */
       
    22   /* boxes.                                                                */
       
    23   /*                                                                       */
       
    24   /* It is separated from the rest of the engine for various technical     */
       
    25   /* reasons.  It may well be integrated in `ftoutln' later.               */
       
    26   /*                                                                       */
       
    27   /*************************************************************************/
       
    28 
       
    29 
       
    30 #ifndef __FTBBOX_H__
       
    31 #define __FTBBOX_H__
       
    32 
       
    33 
       
    34 #include <ft2build.h>
       
    35 #include FT_FREETYPE_H
       
    36 
       
    37 #ifdef FREETYPE_H
       
    38 #error "freetype.h of FreeType 1 has been loaded!"
       
    39 #error "Please fix the directory search order for header files"
       
    40 #error "so that freetype.h of FreeType 2 is found first."
       
    41 #endif
       
    42 
       
    43 
       
    44 FT_BEGIN_HEADER
       
    45 
       
    46 
       
    47   /*************************************************************************/
       
    48   /*                                                                       */
       
    49   /* <Section>                                                             */
       
    50   /*    outline_processing                                                 */
       
    51   /*                                                                       */
       
    52   /*************************************************************************/
       
    53 
       
    54 
       
    55   /*************************************************************************/
       
    56   /*                                                                       */
       
    57   /* <Function>                                                            */
       
    58   /*    FT_Outline_Get_BBox                                                */
       
    59   /*                                                                       */
       
    60   /* <Description>                                                         */
       
    61   /*    Compute the exact bounding box of an outline.  This is slower      */
       
    62   /*    than computing the control box.  However, it uses an advanced      */
       
    63   /*    algorithm which returns _very_ quickly when the two boxes          */
       
    64   /*    coincide.  Otherwise, the outline Bézier arcs are traversed to     */
       
    65   /*    extract their extrema.                                             */
       
    66   /*                                                                       */
       
    67   /* <Input>                                                               */
       
    68   /*    outline :: A pointer to the source outline.                        */
       
    69   /*                                                                       */
       
    70   /* <Output>                                                              */
       
    71   /*    abbox   :: The outline's exact bounding box.                       */
       
    72   /*                                                                       */
       
    73   /* <Return>                                                              */
       
    74   /*    FreeType error code.  0~means success.                             */
       
    75   /*                                                                       */
       
    76   /* <Note>                                                                */
       
    77   /*    If the font is tricky and the glyph has been loaded with           */
       
    78   /*    @FT_LOAD_NO_SCALE, the resulting BBox is meaningless.  To get      */
       
    79   /*    reasonable values for the BBox it is necessary to load the glyph   */
       
    80   /*    at a large ppem value (so that the hinting instructions can        */
       
    81   /*    properly shift and scale the subglyphs), then extracting the BBox  */
       
    82   /*    which can be eventually converted back to font units.              */
       
    83   /*                                                                       */
       
    84   FT_EXPORT( FT_Error )
       
    85   FT_Outline_Get_BBox( FT_Outline*  outline,
       
    86                        FT_BBox     *abbox );
       
    87 
       
    88 
       
    89   /* */
       
    90 
       
    91 
       
    92 FT_END_HEADER
       
    93 
       
    94 #endif /* __FTBBOX_H__ */
       
    95 
       
    96 
       
    97 /* END */
       
    98 
       
    99 
       
   100 /* Local Variables: */
       
   101 /* coding: utf-8    */
       
   102 /* End:             */