Mercurial > hg > Game > Cerium
annotate freetype2/freetype/ftbbox.h @ 1963:6988e5478a8c draft
fix CudaScheduler
author | Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 12 Feb 2014 17:56:40 +0900 |
parents | a8ab91f49cac |
children |
rev | line source |
---|---|
1206
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 /***************************************************************************/ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 /* ftbbox.h */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 /* FreeType exact bbox computation (specification). */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 /* Copyright 1996-2001, 2003, 2007, 2011 by */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 /* This file is part of the FreeType project, and may only be used, */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 /* modified, and distributed under the terms of the FreeType project */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 /* this file you indicate that you have read the license and */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 /* understand and accept it fully. */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 /***************************************************************************/ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 /*************************************************************************/ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 /* This component has a _single_ role: to compute exact outline bounding */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 /* boxes. */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 /* It is separated from the rest of the engine for various technical */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 /* reasons. It may well be integrated in `ftoutln' later. */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 /*************************************************************************/ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 #ifndef __FTBBOX_H__ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31 #define __FTBBOX_H__ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 #include <ft2build.h> |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35 #include FT_FREETYPE_H |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 #ifdef FREETYPE_H |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 #error "freetype.h of FreeType 1 has been loaded!" |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 #error "Please fix the directory search order for header files" |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 #error "so that freetype.h of FreeType 2 is found first." |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 #endif |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 FT_BEGIN_HEADER |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 /*************************************************************************/ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49 /* <Section> */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50 /* outline_processing */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 /*************************************************************************/ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55 /*************************************************************************/ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 /* <Function> */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58 /* FT_Outline_Get_BBox */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
59 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
60 /* <Description> */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 /* Compute the exact bounding box of an outline. This is slower */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62 /* than computing the control box. However, it uses an advanced */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
63 /* algorithm which returns _very_ quickly when the two boxes */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
64 /* coincide. Otherwise, the outline Bézier arcs are traversed to */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
65 /* extract their extrema. */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
66 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
67 /* <Input> */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
68 /* outline :: A pointer to the source outline. */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70 /* <Output> */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 /* abbox :: The outline's exact bounding box. */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
73 /* <Return> */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
74 /* FreeType error code. 0~means success. */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
75 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
76 /* <Note> */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
77 /* If the font is tricky and the glyph has been loaded with */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 /* @FT_LOAD_NO_SCALE, the resulting BBox is meaningless. To get */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
79 /* reasonable values for the BBox it is necessary to load the glyph */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
80 /* at a large ppem value (so that the hinting instructions can */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
81 /* properly shift and scale the subglyphs), then extracting the BBox */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
82 /* which can be eventually converted back to font units. */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
83 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
84 FT_EXPORT( FT_Error ) |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
85 FT_Outline_Get_BBox( FT_Outline* outline, |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
86 FT_BBox *abbox ); |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
87 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
88 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
89 /* */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
90 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
91 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
92 FT_END_HEADER |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
93 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
94 #endif /* __FTBBOX_H__ */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
95 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
96 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
97 /* END */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
98 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
99 |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
100 /* Local Variables: */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
101 /* coding: utf-8 */ |
a8ab91f49cac
add freetype2,ft2build.h
Takao YONAMINE <e095763@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
102 /* End: */ |