| OLD | NEW |
| (Empty) |
| 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 /***************************************************************************/ | |
| 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 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 FT_END_HEADER | |
| 92 | |
| 93 #endif /* __FTBBOX_H__ */ | |
| 94 | |
| 95 | |
| 96 /* END */ | |
| 97 | |
| 98 | |
| 99 /* Local Variables: */ | |
| 100 /* coding: utf-8 */ | |
| 101 /* End: */ | |
| OLD | NEW |