< prev index next >

src/java.desktop/share/native/libfreetype/include/freetype/ftbbox.h

Print this page


   1 /***************************************************************************/
   2 /*                                                                         */
   3 /*  ftbbox.h                                                               */
   4 /*                                                                         */
   5 /*    FreeType exact bbox computation (specification).                     */
   6 /*                                                                         */
   7 /*  Copyright 1996-2018 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 that returns _very_ quickly when the two boxes           */
  64   /*    coincide.  Otherwise, the outline Bezier 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 FT_END_HEADER
  92 
  93 #endif /* FTBBOX_H_ */
  94 
  95 
  96 /* END */
  97 
  98 
  99 /* Local Variables: */
 100 /* coding: utf-8    */
 101 /* End:             */
   1 /****************************************************************************
   2  *
   3  * ftbbox.h
   4  *
   5  *   FreeType exact bbox computation (specification).
   6  *
   7  * Copyright (C) 1996-2019 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 than
  62    *   computing the control box.  However, it uses an advanced algorithm
  63    *   that returns _very_ quickly when the two boxes coincide.  Otherwise,
  64    *   the outline Bezier arcs are traversed to extract their extrema.
  65    *
  66    * @input:
  67    *   outline ::
  68    *     A pointer to the source outline.
  69    *
  70    * @output:
  71    *   abbox ::
  72    *     The outline's exact bounding box.
  73    *
  74    * @return:
  75    *   FreeType error code.  0~means success.
  76    *
  77    * @note:
  78    *   If the font is tricky and the glyph has been loaded with
  79    *   @FT_LOAD_NO_SCALE, the resulting BBox is meaningless.  To get
  80    *   reasonable values for the BBox it is necessary to load the glyph at a
  81    *   large ppem value (so that the hinting instructions can properly shift
  82    *   and scale the subglyphs), then extracting the BBox, which can be
  83    *   eventually converted back to font units.
  84    */
  85   FT_EXPORT( FT_Error )
  86   FT_Outline_Get_BBox( FT_Outline*  outline,
  87                        FT_BBox     *abbox );
  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:             */
< prev index next >