Hash :
11187206
Author :
Date :
2000-05-26T17:13:23
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
/***************************************************************************/
/* */
/* ftmm.h */
/* */
/* FreeType Multiple-Master interface. */
/* */
/* */
/* Copyright 1996-2000 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used */
/* modified and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
#ifndef FTMM_H
#define FTMM_H
#include <freetype/t1tables.h>
#ifdef __cplusplus
extern "C" {
#endif
/**********************************************************************
*
* <Struct>
* FT_MM_Axis
*
* <Description>
* A simple structure used to model a given axis in design space
* for multiple masters fonts..
*
* <Fields>
* name :: axis' name
* minimum :: axis' minimum design coordinate
* maximum :: axis's maximum design coordinate
*
*/
typedef struct FT_MM_Axis_
{
FT_String* name;
FT_Long minimum;
FT_Long maximum;
} FT_MM_Axis;
/**********************************************************************
*
* <Struct>
* FT_Multi_Master
*
* <Description>
* A structure used to model the axis and space of a multiple
* masters font.
*
* <Fields>
* num_axis :: number of axis. cannot exceed 4
*
* num_designs :: number of designs, should ne normally 2^num_axis
* even though the Type 1 specification strangely
* allows for intermediate designs to be present
* this number cannot exceed 16
*
* axis :: an table of axis descriptors..
*
*/
typedef struct FT_Multi_Master_
{
FT_UInt num_axis;
FT_UInt num_designs;
FT_MM_Axis axis[ T1_MAX_MM_AXIS ];
} FT_Multi_Master;
typedef FT_Error (*FT_Get_MM_Func)( FT_Face face, FT_Multi_Master* master );
typedef FT_Error (*FT_Set_MM_Design_Func)( FT_Face face,
FT_UInt num_coords,
FT_Long* coords );
typedef FT_Error (*FT_Set_MM_Blend_Func)( FT_Face face,
FT_UInt num_coords,
FT_Long* coords );
/*************************************************************************
*
* <Function>
* FT_Get_Multi_Master
*
* <Description>
* Retrieves the multiple master descriptor of a given font
*
* <Input>
* face :: handle to source face
*
* <Output>
* master :: multiple masters descriptor
*
* <Return>
* Error code. 0 means success.
*
*/
FT_EXPORT_DEF(FT_Error) FT_Get_Multi_Master( FT_Face face,
FT_Multi_Master* master );
/*************************************************************************
*
* <Function>
* FT_Set_MM_Design_Coordinates
*
* <Description>
* For multiple masters fonts, choose an interpolated font design
* through design coordinates
*
* <Input>
* face :: handle to source face
* num_coords :: number of design coordinates (must be equal to the
* number of axis in the font).
* coords :: design coordinates
*
* <Return>
* Error code. 0 means success.
*
*/
FT_EXPORT_DEF(FT_Error) FT_Set_MM_Design_Coordinates( FT_Face face,
FT_UInt num_coords,
FT_Long* coords );
/*************************************************************************
*
* <Function>
* FT_Set_MM_Blend_Coordinates
*
* <Description>
* For multiple masters fonts, choose an interpolated font design
* through normalized blend coordinates
*
* <Input>
* face :: handle to source face
* num_coords :: number of design coordinates (must be equal to the
* number of axis in the font).
* coords :: design coordinates (each one must be between 0 and 1.0)
*
* <Return>
* Error code. 0 means success.
*
*/
FT_EXPORT_DEF(FT_Error) FT_Set_MM_Blend_Coordinates( FT_Face face,
FT_UInt num_coords,
FT_Fixed* coords );
#ifdef __cplusplus
}
#endif
#endif /* FTMM_H */
/* END */