[692] | 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 */
|
---|