OLD | NEW |
| (Empty) |
1 /***************************************************************************/ | |
2 /* */ | |
3 /* ftgasp.c */ | |
4 /* */ | |
5 /* Access of TrueType's `gasp' table (body). */ | |
6 /* */ | |
7 /* Copyright 2007 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 #include "../../include/ft2build.h" | |
20 #include "../../include/freetype/ftgasp.h" | |
21 #include "../../include/freetype/internal/tttypes.h" | |
22 | |
23 | |
24 FT_EXPORT_DEF( FT_Int ) | |
25 FT_Get_Gasp( FT_Face face, | |
26 FT_UInt ppem ) | |
27 { | |
28 FT_Int result = FT_GASP_NO_TABLE; | |
29 | |
30 | |
31 if ( face && FT_IS_SFNT( face ) ) | |
32 { | |
33 TT_Face ttface = (TT_Face)face; | |
34 | |
35 | |
36 if ( ttface->gasp.numRanges > 0 ) | |
37 { | |
38 TT_GaspRange range = ttface->gasp.gaspRanges; | |
39 TT_GaspRange range_end = range + ttface->gasp.numRanges; | |
40 | |
41 | |
42 while ( ppem > range->maxPPEM ) | |
43 { | |
44 range++; | |
45 if ( range >= range_end ) | |
46 goto Exit; | |
47 } | |
48 | |
49 result = range->gaspFlag; | |
50 | |
51 /* ensure that we don't have spurious bits */ | |
52 if ( ttface->gasp.version == 0 ) | |
53 result &= 3; | |
54 } | |
55 } | |
56 Exit: | |
57 return result; | |
58 } | |
59 | |
60 | |
61 /* END */ | |
OLD | NEW |