20 #include FT_ADVANCES_H
21 #include FT_INTERNAL_OBJECTS_H
38 return FT_Err_Invalid_Size_Handle;
48 for ( nn = 0; nn <
count; nn++ )
49 advances[nn] =
FT_MulDiv( advances[nn], scale, 64 );
62 #define LOAD_ADVANCE_FAST_CHECK( flags ) \
63 ( flags & ( FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING ) || \
64 FT_LOAD_TARGET_MODE( flags ) == FT_RENDER_MODE_LIGHT )
79 return FT_Err_Invalid_Face_Handle;
81 if ( gindex >= (
FT_UInt)face->num_glyphs )
82 return FT_Err_Invalid_Glyph_Index;
84 func = face->driver->clazz->get_advances;
90 error =
func( face, gindex, 1, flags, padvance );
117 return FT_Err_Invalid_Face_Handle;
119 num = (
FT_UInt)face->num_glyphs;
122 return FT_Err_Invalid_Glyph_Index;
127 func = face->driver->clazz->get_advances;
130 error =
func( face, start, count, flags, padvances );
134 if ( error !=
FT_ERROR_BASE( FT_Err_Unimplemented_Feature ) )
141 return FT_Err_Unimplemented_Feature;
144 for ( nn = 0; nn <
count; nn++ )
152 ? face->glyph->advance.y << 10
153 : face->glyph->advance.x << 10;
#define FT_LOAD_VERTICAL_LAYOUT
#define LOAD_ADVANCE_FAST_CHECK(flags)
#define FT_LOAD_ADVANCE_ONLY
FT_Load_Glyph(FT_Face face, FT_UInt glyph_index, FT_Int32 load_flags)
FT_Get_Advance(FT_Face face, FT_UInt gindex, FT_Int32 load_flags, FT_Fixed *padvance)
FT_Error(* FT_Face_GetAdvancesFunc)(FT_Face face, FT_UInt first, FT_UInt count, FT_Int32 flags, FT_Fixed *advances)
FT_MulDiv(FT_Long a, FT_Long b, FT_Long c)
#define FT_ADVANCE_FLAG_FAST_ONLY
FT_Get_Advances(FT_Face face, FT_UInt start, FT_UInt count, FT_Int32 load_flags, FT_Fixed *padvances)
static FT_Error _ft_face_scale_advances(FT_Face face, FT_Fixed *advances, FT_UInt count, FT_Int32 flags)
GLenum GLenum GLenum GLenum GLenum scale
GLenum GLsizei GLsizei GLsizei GLsizei GLbitfield flags