1 /***************************************************************************/
5 /* FreeType Multiple Master font interface (specification). */
7 /* Copyright 1996-2000 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
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. */
16 /***************************************************************************/
22 #include <freetype/t1tables.h>
29 /*************************************************************************/
35 /* A simple structure used to model a given axis in design space for */
36 /* Multiple Masters fonts. */
39 /* name :: The axis's name. */
41 /* minimum :: The axis's minimum design coordinate. */
43 /* maximum :: The axis's maximum design coordinate. */
45 typedef struct FT_MM_Axis_
54 /*************************************************************************/
60 /* A structure used to model the axes and space of a Multiple Masters */
64 /* num_axis :: Number of axes. Cannot exceed 4. */
66 /* num_designs :: Number of designs; should ne normally 2^num_axis */
67 /* even though the Type 1 specification strangely */
68 /* allows for intermediate designs to be present. This */
69 /* number cannot exceed 16. */
71 /* axis :: A table of axis descriptors. */
73 typedef struct FT_Multi_Master_
77 FT_MM_Axis axis[T1_MAX_MM_AXIS];
82 typedef FT_Error (*FT_Get_MM_Func)( FT_Face face,
83 FT_Multi_Master* master );
85 typedef FT_Error (*FT_Set_MM_Design_Func)( FT_Face face,
89 typedef FT_Error (*FT_Set_MM_Blend_Func)( FT_Face face,
94 /*************************************************************************/
97 /* FT_Get_Multi_Master */
100 /* Retrieves the Multiple Master descriptor of a given font. */
103 /* face :: A handle to the source face. */
106 /* master :: The Multiple Masters descriptor. */
109 /* FreeType error code. 0 means success. */
111 FT_EXPORT_DEF( FT_Error ) FT_Get_Multi_Master( FT_Face face,
112 FT_Multi_Master* master );
115 /*************************************************************************/
118 /* FT_Set_MM_Design_Coordinates */
121 /* For Multiple Masters fonts, choose an interpolated font design */
122 /* through design coordinates. */
125 /* face :: A handle to the source face. */
127 /* num_coords :: The number of design coordinates (must be equal to */
128 /* the number of axes in the font). */
130 /* coords :: The design coordinates. */
133 /* FreeType error code. 0 means success. */
135 FT_EXPORT_DEF( FT_Error ) FT_Set_MM_Design_Coordinates(
141 /*************************************************************************/
144 /* FT_Set_MM_Blend_Coordinates */
147 /* For Multiple Masters fonts, choose an interpolated font design */
148 /* through normalized blend coordinates. */
151 /* face :: A handle to the source face. */
153 /* num_coords :: The number of design coordinates (must be equal to */
154 /* the number of axes in the font). */
156 /* coords :: The design coordinates (each one must be between 0 */
160 /* FreeType error code. 0 means success. */
162 FT_EXPORT_DEF( FT_Error ) FT_Set_MM_Blend_Coordinates(