Disabling auto-refresh of game list by default, as it is causing bugs sometimes
[open-ps2-loader.git] / thirdparty / freetype-2.3.12 / src / base / ftpfr.c
blobf9592bb1bba29b680f45a65ba2b6b75b99a933db
1 /***************************************************************************/
2 /* */
3 /* ftpfr.c */
4 /* */
5 /* FreeType API for accessing PFR-specific data (body). */
6 /* */
7 /* Copyright 2002, 2003, 2004, 2008 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 /***************************************************************************/
18 #include <ft2build.h>
19 #include FT_INTERNAL_OBJECTS_H
20 #include FT_SERVICE_PFR_H
23 /* check the format */
24 static FT_Service_PfrMetrics
25 ft_pfr_check( FT_Face face )
27 FT_Service_PfrMetrics service;
30 FT_FACE_LOOKUP_SERVICE( face, service, PFR_METRICS );
32 return service;
36 /* documentation is in ftpfr.h */
38 FT_EXPORT_DEF( FT_Error )
39 FT_Get_PFR_Metrics( FT_Face face,
40 FT_UInt *aoutline_resolution,
41 FT_UInt *ametrics_resolution,
42 FT_Fixed *ametrics_x_scale,
43 FT_Fixed *ametrics_y_scale )
45 FT_Error error = FT_Err_Ok;
46 FT_Service_PfrMetrics service;
49 if ( !face )
50 return FT_Err_Invalid_Argument;
52 service = ft_pfr_check( face );
53 if ( service )
55 error = service->get_metrics( face,
56 aoutline_resolution,
57 ametrics_resolution,
58 ametrics_x_scale,
59 ametrics_y_scale );
61 else
63 FT_Fixed x_scale, y_scale;
66 /* this is not a PFR font */
67 if ( aoutline_resolution )
68 *aoutline_resolution = face->units_per_EM;
70 if ( ametrics_resolution )
71 *ametrics_resolution = face->units_per_EM;
73 x_scale = y_scale = 0x10000L;
74 if ( face->size )
76 x_scale = face->size->metrics.x_scale;
77 y_scale = face->size->metrics.y_scale;
80 if ( ametrics_x_scale )
81 *ametrics_x_scale = x_scale;
83 if ( ametrics_y_scale )
84 *ametrics_y_scale = y_scale;
86 error = FT_Err_Unknown_File_Format;
89 return error;
93 /* documentation is in ftpfr.h */
95 FT_EXPORT_DEF( FT_Error )
96 FT_Get_PFR_Kerning( FT_Face face,
97 FT_UInt left,
98 FT_UInt right,
99 FT_Vector *avector )
101 FT_Error error;
102 FT_Service_PfrMetrics service;
105 if ( !face )
106 return FT_Err_Invalid_Argument;
108 service = ft_pfr_check( face );
109 if ( service )
110 error = service->get_kerning( face, left, right, avector );
111 else
112 error = FT_Get_Kerning( face, left, right,
113 FT_KERNING_UNSCALED, avector );
115 return error;
119 /* documentation is in ftpfr.h */
121 FT_EXPORT_DEF( FT_Error )
122 FT_Get_PFR_Advance( FT_Face face,
123 FT_UInt gindex,
124 FT_Pos *aadvance )
126 FT_Error error;
127 FT_Service_PfrMetrics service;
130 service = ft_pfr_check( face );
131 if ( service )
133 error = service->get_advance( face, gindex, aadvance );
135 else
136 /* XXX: TODO: PROVIDE ADVANCE-LOADING METHOD TO ALL FONT DRIVERS */
137 error = FT_Err_Invalid_Argument;
139 return error;
143 /* END */