diff options
| author | Charles.Forsyth <devnull@localhost> | 2006-12-22 17:07:39 +0000 |
|---|---|---|
| committer | Charles.Forsyth <devnull@localhost> | 2006-12-22 17:07:39 +0000 |
| commit | 37da2899f40661e3e9631e497da8dc59b971cbd0 (patch) | |
| tree | cbc6d4680e347d906f5fa7fca73214418741df72 /libfreetype/fttype1.c | |
| parent | 54bc8ff236ac10b3eaa928fd6bcfc0cdb2ba46ae (diff) | |
20060303a
Diffstat (limited to 'libfreetype/fttype1.c')
| -rw-r--r-- | libfreetype/fttype1.c | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/libfreetype/fttype1.c b/libfreetype/fttype1.c new file mode 100644 index 00000000..d8b18864 --- /dev/null +++ b/libfreetype/fttype1.c @@ -0,0 +1,87 @@ +/***************************************************************************/ +/* */ +/* fttype1.c */ +/* */ +/* FreeType utility file for PS names support (body). */ +/* */ +/* Copyright 2002 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. */ +/* */ +/***************************************************************************/ + + +#include <ft2build.h> +#include FT_INTERNAL_TYPE1_TYPES_H +#include FT_INTERNAL_TYPE42_TYPES_H +#include FT_INTERNAL_OBJECTS_H + + + /* documentation is in t1tables.h */ + + FT_EXPORT_DEF( FT_Error ) + FT_Get_PS_Font_Info( FT_Face face, + PS_FontInfoRec* afont_info ) + { + PS_FontInfo font_info = NULL; + FT_Error error = FT_Err_Invalid_Argument; + const char* driver_name; + + + if ( face && face->driver && face->driver->root.clazz ) + { + driver_name = face->driver->root.clazz->module_name; + if ( ft_strcmp( driver_name, "type1" ) == 0 ) + font_info = &((T1_Face)face)->type1.font_info; + else if ( ft_strcmp( driver_name, "t1cid" ) == 0 ) + font_info = &((CID_Face)face)->cid.font_info; + else if ( ft_strcmp( driver_name, "type42" ) == 0 ) + font_info = &((T42_Face)face)->type1.font_info; + } + if ( font_info != NULL ) + { + *afont_info = *font_info; + error = FT_Err_Ok; + } + + return error; + } + + + /* XXX: Bad hack, but I didn't want to change several drivers here. */ + + /* documentation is in t1tables.h */ + + FT_EXPORT_DEF( FT_Int ) + FT_Has_PS_Glyph_Names( FT_Face face ) + { + FT_Int result = 0; + const char* driver_name; + + + if ( face && face->driver && face->driver->root.clazz ) + { + /* Currently, only the type1, type42, and cff drivers provide */ + /* reliable glyph names... */ + + /* We could probably hack the TrueType driver to recognize */ + /* certain cases where the glyph names are most certainly */ + /* correct (e.g. using a 20 or 22 format `post' table), but */ + /* this will probably happen later... */ + + driver_name = face->driver->root.clazz->module_name; + result = ( ft_strcmp( driver_name, "type1" ) == 0 || + ft_strcmp( driver_name, "type42" ) == 0 || + ft_strcmp( driver_name, "cff" ) == 0 ); + } + + return result; + } + + +/* END */ |
