1 | /**************************************************************************** |
2 | * |
3 | * ftsynth.h |
4 | * |
5 | * FreeType synthesizing code for emboldening and slanting |
6 | * (specification). |
7 | * |
8 | * Copyright (C) 2000-2021 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 <freetype/freetype.h> |
49 | |
50 | #ifdef FREETYPE_H |
51 | #error "freetype.h of FreeType 1 has been loaded!" |
52 | #error "Please fix the directory search order for header files" |
53 | #error "so that freetype.h of FreeType 2 is found first." |
54 | #endif |
55 | |
56 | |
57 | FT_BEGIN_HEADER |
58 | |
59 | /* Embolden a glyph by a 'reasonable' value (which is highly a matter of */ |
60 | /* taste). This function is actually a convenience function, providing */ |
61 | /* a wrapper for @FT_Outline_Embolden and @FT_Bitmap_Embolden. */ |
62 | /* */ |
63 | /* For emboldened outlines the height, width, and advance metrics are */ |
64 | /* increased by the strength of the emboldening -- this even affects */ |
65 | /* mono-width fonts! */ |
66 | /* */ |
67 | /* You can also call @FT_Outline_Get_CBox to get precise values. */ |
68 | FT_EXPORT( void ) |
69 | FT_GlyphSlot_Embolden( FT_GlyphSlot slot ); |
70 | |
71 | /* Slant an outline glyph to the right by about 12 degrees. */ |
72 | FT_EXPORT( void ) |
73 | FT_GlyphSlot_Oblique( FT_GlyphSlot slot ); |
74 | |
75 | /* */ |
76 | |
77 | |
78 | FT_END_HEADER |
79 | |
80 | #endif /* FTSYNTH_H_ */ |
81 | |
82 | |
83 | /* END */ |
84 | |