1 /****************************************************************************
5 * FreeType synthesizing code for emboldening and slanting
8 * Copyright (C) 2000-2023 by
9 * David Turner, Robert Wilhelm, and Werner Lemberg.
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.
20 /*************************************************************************/
21 /*************************************************************************/
22 /*************************************************************************/
23 /*************************************************************************/
24 /*************************************************************************/
26 /********* WARNING, THIS IS ALPHA CODE! THIS API *********/
27 /********* IS DUE TO CHANGE UNTIL STRICTLY NOTIFIED BY THE *********/
28 /********* FREETYPE DEVELOPMENT TEAM *********/
30 /*************************************************************************/
31 /*************************************************************************/
32 /*************************************************************************/
33 /*************************************************************************/
34 /*************************************************************************/
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. */
48 #include <freetype/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."
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. */
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! */
67 /* You can also call @FT_Outline_Get_CBox to get precise values. */
69 FT_GlyphSlot_Embolden( FT_GlyphSlot slot );
71 /* Precisely adjust the glyph weight either horizontally or vertically. */
72 /* The `xdelta` and `ydelta` values are fractions of the face Em size */
73 /* (in fixed-point format). Considering that a regular face would have */
74 /* stem widths on the order of 0.1 Em, a delta of 0.05 (0x0CCC) should */
75 /* be very noticeable. To increase or decrease the weight, use positive */
76 /* or negative values, respectively. */
78 FT_GlyphSlot_AdjustWeight( FT_GlyphSlot slot,
83 /* Slant an outline glyph to the right by about 12 degrees. */
85 FT_GlyphSlot_Oblique( FT_GlyphSlot slot );
87 /* Slant an outline glyph by a given sine of an angle. You can apply */
88 /* slant along either x- or y-axis by choosing a corresponding non-zero */
89 /* argument. If both slants are non-zero, some affine transformation */
92 FT_GlyphSlot_Slant( FT_GlyphSlot slot,
101 #endif /* FTSYNTH_H_ */