1 | /***************************************************************************/
|
---|
2 | /* */
|
---|
3 | /* ftbbox.h */
|
---|
4 | /* */
|
---|
5 | /* FreeType exact bbox computation (specification). */
|
---|
6 | /* */
|
---|
7 | /* Copyright 1996-2001, 2003 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 | /* Computes 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 Bezier arcs are walked over 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 | FT_EXPORT( FT_Error )
|
---|
77 | FT_Outline_Get_BBox( FT_Outline* outline,
|
---|
78 | FT_BBox *abbox );
|
---|
79 |
|
---|
80 |
|
---|
81 | /* */
|
---|
82 |
|
---|
83 |
|
---|
84 | FT_END_HEADER
|
---|
85 |
|
---|
86 | #endif /* __FTBBOX_H__ */
|
---|
87 |
|
---|
88 |
|
---|
89 | /* END */
|
---|