1 /**************************************************************************** 2 * 3 * ftmac.h 4 * 5 * Additional Mac-specific API. 6 * 7 * Copyright (C) 1996-2019 by 8 * Just van Rossum, 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 /**************************************************************************** 20 * 21 * NOTE: Include this file after `FT_FREETYPE_H` and after any 22 * Mac-specific headers (because this header uses Mac types such as 23 * 'Handle', 'FSSpec', 'FSRef', etc.) 24 * 25 */ 26 27 28 #ifndef FTMAC_H_ 29 #define FTMAC_H_ 30 31 32 #include <ft2build.h> 33 34 35 FT_BEGIN_HEADER 36 37 38 /* gcc-3.1 and later can warn about functions tagged as deprecated */ 39 #ifndef FT_DEPRECATED_ATTRIBUTE 40 #if defined( __GNUC__ ) && \ 41 ( ( __GNUC__ >= 4 ) || \ 42 ( ( __GNUC__ == 3 ) && ( __GNUC_MINOR__ >= 1 ) ) ) 43 #define FT_DEPRECATED_ATTRIBUTE __attribute__(( deprecated )) 44 #else 45 #define FT_DEPRECATED_ATTRIBUTE 46 #endif 47 #endif 48 49 50 /************************************************************************** 51 * 52 * @section: 53 * mac_specific 54 * 55 * @title: 56 * Mac Specific Interface 57 * 58 * @abstract: 59 * Only available on the Macintosh. 60 * 61 * @description: 62 * The following definitions are only available if FreeType is compiled 63 * on a Macintosh. 64 * 65 */ 66 67 68 /************************************************************************** 69 * 70 * @function: 71 * FT_New_Face_From_FOND 72 * 73 * @description: 74 * Create a new face object from a FOND resource. 75 * 76 * @inout: 77 * library :: 78 * A handle to the library resource. 79 * 80 * @input: 81 * fond :: 82 * A FOND resource. 83 * 84 * face_index :: 85 * Only supported for the -1 'sanity check' special case. 86 * 87 * @output: 88 * aface :: 89 * A handle to a new face object. 90 * 91 * @return: 92 * FreeType error code. 0~means success. 93 * 94 * @example: 95 * This function can be used to create @FT_Face objects from fonts that 96 * are installed in the system as follows. 97 * 98 * ``` 99 * fond = GetResource( 'FOND', fontName ); 100 * error = FT_New_Face_From_FOND( library, fond, 0, &face ); 101 * ``` 102 */ 103 FT_EXPORT( FT_Error ) 104 FT_New_Face_From_FOND( FT_Library library, 105 Handle fond, 106 FT_Long face_index, 107 FT_Face *aface ) 108 FT_DEPRECATED_ATTRIBUTE; 109 110 111 /************************************************************************** 112 * 113 * @function: 114 * FT_GetFile_From_Mac_Name 115 * 116 * @description: 117 * Return an FSSpec for the disk file containing the named font. 118 * 119 * @input: 120 * fontName :: 121 * Mac OS name of the font (e.g., Times New Roman Bold). 122 * 123 * @output: 124 * pathSpec :: 125 * FSSpec to the file. For passing to @FT_New_Face_From_FSSpec. 126 * 127 * face_index :: 128 * Index of the face. For passing to @FT_New_Face_From_FSSpec. 129 * 130 * @return: 131 * FreeType error code. 0~means success. 132 */ 133 FT_EXPORT( FT_Error ) 134 FT_GetFile_From_Mac_Name( const char* fontName, 135 FSSpec* pathSpec, 136 FT_Long* face_index ) 137 FT_DEPRECATED_ATTRIBUTE; 138 139 140 /************************************************************************** 141 * 142 * @function: 143 * FT_GetFile_From_Mac_ATS_Name 144 * 145 * @description: 146 * Return an FSSpec for the disk file containing the named font. 147 * 148 * @input: 149 * fontName :: 150 * Mac OS name of the font in ATS framework. 151 * 152 * @output: 153 * pathSpec :: 154 * FSSpec to the file. For passing to @FT_New_Face_From_FSSpec. 155 * 156 * face_index :: 157 * Index of the face. For passing to @FT_New_Face_From_FSSpec. 158 * 159 * @return: 160 * FreeType error code. 0~means success. 161 */ 162 FT_EXPORT( FT_Error ) 163 FT_GetFile_From_Mac_ATS_Name( const char* fontName, 164 FSSpec* pathSpec, 165 FT_Long* face_index ) 166 FT_DEPRECATED_ATTRIBUTE; 167 168 169 /************************************************************************** 170 * 171 * @function: 172 * FT_GetFilePath_From_Mac_ATS_Name 173 * 174 * @description: 175 * Return a pathname of the disk file and face index for given font name 176 * that is handled by ATS framework. 177 * 178 * @input: 179 * fontName :: 180 * Mac OS name of the font in ATS framework. 181 * 182 * @output: 183 * path :: 184 * Buffer to store pathname of the file. For passing to @FT_New_Face. 185 * The client must allocate this buffer before calling this function. 186 * 187 * maxPathSize :: 188 * Lengths of the buffer `path` that client allocated. 189 * 190 * face_index :: 191 * Index of the face. For passing to @FT_New_Face. 192 * 193 * @return: 194 * FreeType error code. 0~means success. 195 */ 196 FT_EXPORT( FT_Error ) 197 FT_GetFilePath_From_Mac_ATS_Name( const char* fontName, 198 UInt8* path, 199 UInt32 maxPathSize, 200 FT_Long* face_index ) 201 FT_DEPRECATED_ATTRIBUTE; 202 203 204 /************************************************************************** 205 * 206 * @function: 207 * FT_New_Face_From_FSSpec 208 * 209 * @description: 210 * Create a new face object from a given resource and typeface index 211 * using an FSSpec to the font file. 212 * 213 * @inout: 214 * library :: 215 * A handle to the library resource. 216 * 217 * @input: 218 * spec :: 219 * FSSpec to the font file. 220 * 221 * face_index :: 222 * The index of the face within the resource. The first face has 223 * index~0. 224 * @output: 225 * aface :: 226 * A handle to a new face object. 227 * 228 * @return: 229 * FreeType error code. 0~means success. 230 * 231 * @note: 232 * @FT_New_Face_From_FSSpec is identical to @FT_New_Face except it 233 * accepts an FSSpec instead of a path. 234 */ 235 FT_EXPORT( FT_Error ) 236 FT_New_Face_From_FSSpec( FT_Library library, 237 const FSSpec *spec, 238 FT_Long face_index, 239 FT_Face *aface ) 240 FT_DEPRECATED_ATTRIBUTE; 241 242 243 /************************************************************************** 244 * 245 * @function: 246 * FT_New_Face_From_FSRef 247 * 248 * @description: 249 * Create a new face object from a given resource and typeface index 250 * using an FSRef to the font file. 251 * 252 * @inout: 253 * library :: 254 * A handle to the library resource. 255 * 256 * @input: 257 * spec :: 258 * FSRef to the font file. 259 * 260 * face_index :: 261 * The index of the face within the resource. The first face has 262 * index~0. 263 * @output: 264 * aface :: 265 * A handle to a new face object. 266 * 267 * @return: 268 * FreeType error code. 0~means success. 269 * 270 * @note: 271 * @FT_New_Face_From_FSRef is identical to @FT_New_Face except it accepts 272 * an FSRef instead of a path. 273 */ 274 FT_EXPORT( FT_Error ) 275 FT_New_Face_From_FSRef( FT_Library library, 276 const FSRef *ref, 277 FT_Long face_index, 278 FT_Face *aface ) 279 FT_DEPRECATED_ATTRIBUTE; 280 281 /* */ 282 283 284 FT_END_HEADER 285 286 287 #endif /* FTMAC_H_ */ 288 289 290 /* END */ 291