• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:             */
103