[FREETYPE]
[reactos.git] / reactos / lib / 3rdparty / freetype / include / freetype / ftcffdrv.h
1 /***************************************************************************/
2 /* */
3 /* ftcffdrv.h */
4 /* */
5 /* FreeType API for controlling the CFF driver (specification only). */
6 /* */
7 /* Copyright 2013 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 #ifndef __FTCFFDRV_H__
20 #define __FTCFFDRV_H__
21
22 #include <ft2build.h>
23 #include FT_FREETYPE_H
24
25 #ifdef FREETYPE_H
26 #error "freetype.h of FreeType 1 has been loaded!"
27 #error "Please fix the directory search order for header files"
28 #error "so that freetype.h of FreeType 2 is found first."
29 #endif
30
31
32 FT_BEGIN_HEADER
33
34
35 /**************************************************************************
36 *
37 * @section:
38 * cff_driver
39 *
40 * @title:
41 * The CFF driver
42 *
43 * @abstract:
44 * Controlling the CFF driver module.
45 *
46 * @description:
47 * While FreeType's CFF driver doesn't expose API functions by itself,
48 * it is possible to control its behaviour with @FT_Property_Set and
49 * @FT_Property_Get. The following lists the available properties
50 * together with the necessary macros and structures.
51 *
52 * The CFF driver's module name is `cff'.
53 *
54 */
55
56
57 /**************************************************************************
58 *
59 * @property:
60 * hinting-engine
61 *
62 * @description:
63 * Thanks to Adobe, which contributed a new hinting (and parsing)
64 * engine, an application can select between `freetype' and `adobe' if
65 * compiled with CFF_CONFIG_OPTION_OLD_ENGINE. If this configuration
66 * macro isn't defined, `hinting-engine' does nothing.
67 *
68 * The default engine is `freetype' if CFF_CONFIG_OPTION_OLD_ENGINE is
69 * defined, and `adobe' otherwise.
70 *
71 * The following example code demonstrates how to select Adobe's hinting
72 * engine (omitting the error handling).
73 *
74 * {
75 * FT_Library library;
76 * FT_Face face;
77 * FT_UInt hinting_engine = FT_CFF_HINTING_ADOBE;
78 *
79 *
80 * FT_Init_FreeType( &library );
81 *
82 * FT_Property_Set( library, "cff",
83 * "hinting-engine", &hinting_engine );
84 * }
85 *
86 * @note:
87 * This property can be used with @FT_Property_Get also.
88 *
89 */
90
91
92 /**************************************************************************
93 *
94 * @enum:
95 * FT_CFF_HINTING_XXX
96 *
97 * @description:
98 * A list of constants used for the @hinting-engine property to select
99 * the hinting engine for CFF fonts.
100 *
101 * @values:
102 * FT_CFF_HINTING_FREETYPE ::
103 * Use the old FreeType hinting engine.
104 *
105 * FT_CFF_HINTING_ADOBE ::
106 * Use the hinting engine contributed by Adobe.
107 *
108 */
109 #define FT_CFF_HINTING_FREETYPE 0
110 #define FT_CFF_HINTING_ADOBE 1
111
112
113 /**************************************************************************
114 *
115 * @property:
116 * no-stem-darkening
117 *
118 * @description:
119 * By default, the Adobe CFF engine darkens stems at smaller sizes,
120 * regardless of hinting, to enhance contrast. Setting this property,
121 * stem darkening gets switched off.
122 *
123 * Note that stem darkening is never applied if @FT_LOAD_NO_SCALE is set.
124 *
125 * {
126 * FT_Library library;
127 * FT_Face face;
128 * FT_Bool no_stem_darkening = TRUE;
129 *
130 *
131 * FT_Init_FreeType( &library );
132 *
133 * FT_Property_Set( library, "cff",
134 * "no-stem-darkening", &no_stem_darkening );
135 * }
136 *
137 * @note:
138 * This property can be used with @FT_Property_Get also.
139 *
140 */
141
142
143 /* */
144
145 FT_END_HEADER
146
147
148 #endif /* __FTCFFDRV_H__ */
149
150
151 /* END */