| /***************************************************************************/ |
| /* */ |
| /* fttype1.c */ |
| /* */ |
| /* FreeType utility file for PS names support (body). */ |
| /* */ |
| /* Copyright 2002-2015 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_DEBUG_H |
| #include FT_INTERNAL_OBJECTS_H |
| #include FT_INTERNAL_SERVICE_H |
| #include FT_SERVICE_POSTSCRIPT_INFO_H |
| |
| |
| /* documentation is in t1tables.h */ |
| |
| FT_EXPORT_DEF( FT_Error ) |
| FT_Get_PS_Font_Info( FT_Face face, |
| PS_FontInfoRec* afont_info ) |
| { |
| FT_Error error; |
| FT_Service_PsInfo service; |
| |
| |
| if ( !face ) |
| return FT_THROW( Invalid_Face_Handle ); |
| |
| if ( !afont_info ) |
| return FT_THROW( Invalid_Argument ); |
| |
| FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO ); |
| |
| if ( service && service->ps_get_font_info ) |
| error = service->ps_get_font_info( face, afont_info ); |
| else |
| error = FT_THROW( Invalid_Argument ); |
| |
| return error; |
| } |
| |
| |
| /* documentation is in t1tables.h */ |
| |
| FT_EXPORT_DEF( FT_Int ) |
| FT_Has_PS_Glyph_Names( FT_Face face ) |
| { |
| FT_Int result = 0; |
| FT_Service_PsInfo service; |
| |
| |
| if ( face ) |
| { |
| FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO ); |
| |
| if ( service && service->ps_has_glyph_names ) |
| result = service->ps_has_glyph_names( face ); |
| } |
| |
| return result; |
| } |
| |
| |
| /* documentation is in t1tables.h */ |
| |
| FT_EXPORT_DEF( FT_Error ) |
| FT_Get_PS_Font_Private( FT_Face face, |
| PS_PrivateRec* afont_private ) |
| { |
| FT_Error error; |
| FT_Service_PsInfo service; |
| |
| |
| if ( !face ) |
| return FT_THROW( Invalid_Face_Handle ); |
| |
| if ( !afont_private ) |
| return FT_THROW( Invalid_Argument ); |
| |
| FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO ); |
| |
| if ( service && service->ps_get_font_private ) |
| error = service->ps_get_font_private( face, afont_private ); |
| else |
| error = FT_THROW( Invalid_Argument ); |
| |
| return error; |
| } |
| |
| |
| /* documentation is in t1tables.h */ |
| |
| FT_EXPORT_DEF( FT_Long ) |
| FT_Get_PS_Font_Value( FT_Face face, |
| PS_Dict_Keys key, |
| FT_UInt idx, |
| void *value, |
| FT_Long value_len ) |
| { |
| FT_Int result = 0; |
| FT_Service_PsInfo service = NULL; |
| |
| |
| if ( face ) |
| { |
| FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO ); |
| |
| if ( service && service->ps_get_font_value ) |
| result = service->ps_get_font_value( face, key, idx, |
| value, value_len ); |
| } |
| |
| return result; |
| } |
| |
| |
| /* END */ |