1/***************************************************************************/ 2/* */ 3/* ftmac.h */ 4/* */ 5/* Additional Mac-specific API. */ 6/* */ 7/* Copyright 1996-2018 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 35FT_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 */ 63 /* compiled 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 :: A handle to the library resource. */ 78 /* */ 79 /* <Input> */ 80 /* fond :: A FOND resource. */ 81 /* */ 82 /* face_index :: Only supported for the -1 `sanity check' special */ 83 /* case. */ 84 /* */ 85 /* <Output> */ 86 /* aface :: A handle to a new face object. */ 87 /* */ 88 /* <Return> */ 89 /* FreeType error code. 0~means success. */ 90 /* */ 91 /* <Notes> */ 92 /* This function can be used to create @FT_Face objects from fonts */ 93 /* that are installed in the system as follows. */ 94 /* */ 95 /* { */ 96 /* fond = GetResource( 'FOND', fontName ); */ 97 /* error = FT_New_Face_From_FOND( library, fond, 0, &face ); */ 98 /* } */ 99 /* */ 100 FT_EXPORT( FT_Error ) 101 FT_New_Face_From_FOND( FT_Library library, 102 Handle fond, 103 FT_Long face_index, 104 FT_Face *aface ) 105 FT_DEPRECATED_ATTRIBUTE; 106 107 108 /*************************************************************************/ 109 /* */ 110 /* <Function> */ 111 /* FT_GetFile_From_Mac_Name */ 112 /* */ 113 /* <Description> */ 114 /* Return an FSSpec for the disk file containing the named font. */ 115 /* */ 116 /* <Input> */ 117 /* fontName :: Mac OS name of the font (e.g., Times New Roman */ 118 /* Bold). */ 119 /* */ 120 /* <Output> */ 121 /* pathSpec :: FSSpec to the file. For passing to */ 122 /* @FT_New_Face_From_FSSpec. */ 123 /* */ 124 /* face_index :: Index of the face. For passing to */ 125 /* @FT_New_Face_From_FSSpec. */ 126 /* */ 127 /* <Return> */ 128 /* FreeType error code. 0~means success. */ 129 /* */ 130 FT_EXPORT( FT_Error ) 131 FT_GetFile_From_Mac_Name( const char* fontName, 132 FSSpec* pathSpec, 133 FT_Long* face_index ) 134 FT_DEPRECATED_ATTRIBUTE; 135 136 137 /*************************************************************************/ 138 /* */ 139 /* <Function> */ 140 /* FT_GetFile_From_Mac_ATS_Name */ 141 /* */ 142 /* <Description> */ 143 /* Return an FSSpec for the disk file containing the named font. */ 144 /* */ 145 /* <Input> */ 146 /* fontName :: Mac OS name of the font in ATS framework. */ 147 /* */ 148 /* <Output> */ 149 /* pathSpec :: FSSpec to the file. For passing to */ 150 /* @FT_New_Face_From_FSSpec. */ 151 /* */ 152 /* face_index :: Index of the face. For passing to */ 153 /* @FT_New_Face_From_FSSpec. */ 154 /* */ 155 /* <Return> */ 156 /* FreeType error code. 0~means success. */ 157 /* */ 158 FT_EXPORT( FT_Error ) 159 FT_GetFile_From_Mac_ATS_Name( const char* fontName, 160 FSSpec* pathSpec, 161 FT_Long* face_index ) 162 FT_DEPRECATED_ATTRIBUTE; 163 164 165 /*************************************************************************/ 166 /* */ 167 /* <Function> */ 168 /* FT_GetFilePath_From_Mac_ATS_Name */ 169 /* */ 170 /* <Description> */ 171 /* Return a pathname of the disk file and face index for given font */ 172 /* name that is handled by ATS framework. */ 173 /* */ 174 /* <Input> */ 175 /* fontName :: Mac OS name of the font in ATS framework. */ 176 /* */ 177 /* <Output> */ 178 /* path :: Buffer to store pathname of the file. For passing */ 179 /* to @FT_New_Face. The client must allocate this */ 180 /* buffer before calling this function. */ 181 /* */ 182 /* maxPathSize :: Lengths of the buffer `path' that client allocated. */ 183 /* */ 184 /* face_index :: Index of the face. For passing to @FT_New_Face. */ 185 /* */ 186 /* <Return> */ 187 /* FreeType error code. 0~means success. */ 188 /* */ 189 FT_EXPORT( FT_Error ) 190 FT_GetFilePath_From_Mac_ATS_Name( const char* fontName, 191 UInt8* path, 192 UInt32 maxPathSize, 193 FT_Long* face_index ) 194 FT_DEPRECATED_ATTRIBUTE; 195 196 197 /*************************************************************************/ 198 /* */ 199 /* <Function> */ 200 /* FT_New_Face_From_FSSpec */ 201 /* */ 202 /* <Description> */ 203 /* Create a new face object from a given resource and typeface index */ 204 /* using an FSSpec to the font file. */ 205 /* */ 206 /* <InOut> */ 207 /* library :: A handle to the library resource. */ 208 /* */ 209 /* <Input> */ 210 /* spec :: FSSpec to the font file. */ 211 /* */ 212 /* face_index :: The index of the face within the resource. The */ 213 /* first face has index~0. */ 214 /* <Output> */ 215 /* aface :: A handle to a new face object. */ 216 /* */ 217 /* <Return> */ 218 /* FreeType error code. 0~means success. */ 219 /* */ 220 /* <Note> */ 221 /* @FT_New_Face_From_FSSpec is identical to @FT_New_Face except */ 222 /* it accepts an FSSpec instead of a path. */ 223 /* */ 224 FT_EXPORT( FT_Error ) 225 FT_New_Face_From_FSSpec( FT_Library library, 226 const FSSpec *spec, 227 FT_Long face_index, 228 FT_Face *aface ) 229 FT_DEPRECATED_ATTRIBUTE; 230 231 232 /*************************************************************************/ 233 /* */ 234 /* <Function> */ 235 /* FT_New_Face_From_FSRef */ 236 /* */ 237 /* <Description> */ 238 /* Create a new face object from a given resource and typeface index */ 239 /* using an FSRef to the font file. */ 240 /* */ 241 /* <InOut> */ 242 /* library :: A handle to the library resource. */ 243 /* */ 244 /* <Input> */ 245 /* spec :: FSRef to the font file. */ 246 /* */ 247 /* face_index :: The index of the face within the resource. The */ 248 /* first face has index~0. */ 249 /* <Output> */ 250 /* aface :: A handle to a new face object. */ 251 /* */ 252 /* <Return> */ 253 /* FreeType error code. 0~means success. */ 254 /* */ 255 /* <Note> */ 256 /* @FT_New_Face_From_FSRef is identical to @FT_New_Face except */ 257 /* it accepts an FSRef instead of a path. */ 258 /* */ 259 FT_EXPORT( FT_Error ) 260 FT_New_Face_From_FSRef( FT_Library library, 261 const FSRef *ref, 262 FT_Long face_index, 263 FT_Face *aface ) 264 FT_DEPRECATED_ATTRIBUTE; 265 266 /* */ 267 268 269FT_END_HEADER 270 271 272#endif /* FTMAC_H_ */ 273 274 275/* END */ 276