modules/freetype2/include/ftbbox.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /***************************************************************************/
     2 /*                                                                         */
     3 /*  ftbbox.h                                                               */
     4 /*                                                                         */
     5 /*    FreeType exact bbox computation (specification).                     */
     6 /*                                                                         */
     7 /*  Copyright 1996-2001, 2003, 2007, 2011, 2013 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 /***************************************************************************/
    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   /*************************************************************************/
    30 #ifndef __FTBBOX_H__
    31 #define __FTBBOX_H__
    34 #include <ft2build.h>
    35 #include FT_FREETYPE_H
    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
    44 FT_BEGIN_HEADER
    47   /*************************************************************************/
    48   /*                                                                       */
    49   /* <Section>                                                             */
    50   /*    outline_processing                                                 */
    51   /*                                                                       */
    52   /*************************************************************************/
    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 that 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 );
    89   /* */
    92 FT_END_HEADER
    94 #endif /* __FTBBOX_H__ */
    97 /* END */
   100 /* Local Variables: */
   101 /* coding: utf-8    */
   102 /* End:             */

mercurial