1 | /***************************************************************************/ |
2 | /* */ |
3 | /* ftsynth.h */ |
4 | /* */ |
5 | /* FreeType synthesizing code for emboldening and slanting */ |
6 | /* (specification). */ |
7 | /* */ |
8 | /* Copyright 2000-2018 by */ |
9 | /* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
10 | /* */ |
11 | /* This file is part of the FreeType project, and may only be used, */ |
12 | /* modified, and distributed under the terms of the FreeType project */ |
13 | /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
14 | /* this file you indicate that you have read the license and */ |
15 | /* understand and accept it fully. */ |
16 | /* */ |
17 | /***************************************************************************/ |
18 | |
19 | |
20 | /*************************************************************************/ |
21 | /*************************************************************************/ |
22 | /*************************************************************************/ |
23 | /*************************************************************************/ |
24 | /*************************************************************************/ |
25 | /********* *********/ |
26 | /********* WARNING, THIS IS ALPHA CODE! THIS API *********/ |
27 | /********* IS DUE TO CHANGE UNTIL STRICTLY NOTIFIED BY THE *********/ |
28 | /********* FREETYPE DEVELOPMENT TEAM *********/ |
29 | /********* *********/ |
30 | /*************************************************************************/ |
31 | /*************************************************************************/ |
32 | /*************************************************************************/ |
33 | /*************************************************************************/ |
34 | /*************************************************************************/ |
35 | |
36 | |
37 | /* Main reason for not lifting the functions in this module to a */ |
38 | /* `standard' API is that the used parameters for emboldening and */ |
39 | /* slanting are not configurable. Consider the functions as a */ |
40 | /* code resource that should be copied into the application and */ |
41 | /* adapted to the particular needs. */ |
42 | |
43 | |
44 | #ifndef FTSYNTH_H_ |
45 | #define FTSYNTH_H_ |
46 | |
47 | |
48 | #include <ft2build.h> |
49 | #include FT_FREETYPE_H |
50 | |
51 | #ifdef FREETYPE_H |
52 | #error "freetype.h of FreeType 1 has been loaded!" |
53 | #error "Please fix the directory search order for header files" |
54 | #error "so that freetype.h of FreeType 2 is found first." |
55 | #endif |
56 | |
57 | |
58 | FT_BEGIN_HEADER |
59 | |
60 | /* Embolden a glyph by a `reasonable' value (which is highly a matter of */ |
61 | /* taste). This function is actually a convenience function, providing */ |
62 | /* a wrapper for @FT_Outline_Embolden and @FT_Bitmap_Embolden. */ |
63 | /* */ |
64 | /* For emboldened outlines the height, width, and advance metrics are */ |
65 | /* increased by the strength of the emboldening -- this even affects */ |
66 | /* mono-width fonts! */ |
67 | /* */ |
68 | /* You can also call @FT_Outline_Get_CBox to get precise values. */ |
69 | FT_EXPORT( void ) |
70 | FT_GlyphSlot_Embolden( FT_GlyphSlot slot ); |
71 | |
72 | /* Slant an outline glyph to the right by about 12 degrees. */ |
73 | FT_EXPORT( void ) |
74 | FT_GlyphSlot_Oblique( FT_GlyphSlot slot ); |
75 | |
76 | /* */ |
77 | |
78 | |
79 | FT_END_HEADER |
80 | |
81 | #endif /* FTSYNTH_H_ */ |
82 | |
83 | |
84 | /* END */ |
85 | |