1 /***************************************************************************/
2 /* */
3 /* fttype1.c */
4 /* */
5 /* FreeType utility file for PS names support (body). */
6 /* */
7 /* Copyright 2002-2004, 2011 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9 /* */
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. */
15 /* */
16 /***************************************************************************/
17
18
19 #include <ft2build.h>
20 #include FT_INTERNAL_OBJECTS_H
21 #include FT_INTERNAL_SERVICE_H
22 #include FT_SERVICE_POSTSCRIPT_INFO_H
23
24
25 /* documentation is in t1tables.h */
26
27 FT_EXPORT_DEF( FT_Error )
FT_Get_PS_Font_Info(FT_Face face,PS_FontInfoRec * afont_info)28 FT_Get_PS_Font_Info( FT_Face face,
29 PS_FontInfoRec* afont_info )
30 {
31 FT_Error error = FT_Err_Invalid_Argument;
32
33
34 if ( face )
35 {
36 FT_Service_PsInfo service = NULL;
37
38
39 FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO );
40
41 if ( service && service->ps_get_font_info )
42 error = service->ps_get_font_info( face, afont_info );
43 }
44
45 return error;
46 }
47
48
49 /* documentation is in t1tables.h */
50
51 FT_EXPORT_DEF( FT_Int )
FT_Has_PS_Glyph_Names(FT_Face face)52 FT_Has_PS_Glyph_Names( FT_Face face )
53 {
54 FT_Int result = 0;
55 FT_Service_PsInfo service = NULL;
56
57
58 if ( face )
59 {
60 FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO );
61
62 if ( service && service->ps_has_glyph_names )
63 result = service->ps_has_glyph_names( face );
64 }
65
66 return result;
67 }
68
69
70 /* documentation is in t1tables.h */
71
72 FT_EXPORT_DEF( FT_Error )
FT_Get_PS_Font_Private(FT_Face face,PS_PrivateRec * afont_private)73 FT_Get_PS_Font_Private( FT_Face face,
74 PS_PrivateRec* afont_private )
75 {
76 FT_Error error = FT_Err_Invalid_Argument;
77
78
79 if ( face )
80 {
81 FT_Service_PsInfo service = NULL;
82
83
84 FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO );
85
86 if ( service && service->ps_get_font_private )
87 error = service->ps_get_font_private( face, afont_private );
88 }
89
90 return error;
91 }
92
93 /* documentation is in t1tables.h */
94 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)95 FT_Get_PS_Font_Value( FT_Face face,
96 PS_Dict_Keys key,
97 FT_UInt idx,
98 void *value,
99 FT_Long value_len )
100 {
101 FT_Int result = 0;
102 FT_Service_PsInfo service = NULL;
103
104 if ( face )
105 {
106 FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO );
107 if ( service && service->ps_get_font_value )
108 result = service->ps_get_font_value( face, key, idx,
109 value, value_len );
110 }
111 return result;
112 }
113
114 /* END */
115