291 lines
7.6 KiB
C
291 lines
7.6 KiB
C
|
/****************************************************************************
|
||
|
*
|
||
|
* ftmac.h
|
||
|
*
|
||
|
* Additional Mac-specific API.
|
||
|
*
|
||
|
* Copyright (C) 1996-2020 by
|
||
|
* Just van Rossum, 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.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
|
||
|
/****************************************************************************
|
||
|
*
|
||
|
* NOTE: Include this file after `FT_FREETYPE_H` and after any
|
||
|
* Mac-specific headers (because this header uses Mac types such as
|
||
|
* 'Handle', 'FSSpec', 'FSRef', etc.)
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
|
||
|
#ifndef FTMAC_H_
|
||
|
#define FTMAC_H_
|
||
|
|
||
|
|
||
|
#include <ft2build.h>
|
||
|
|
||
|
|
||
|
FT_BEGIN_HEADER
|
||
|
|
||
|
|
||
|
/* gcc-3.1 and later can warn about functions tagged as deprecated */
|
||
|
#ifndef FT_DEPRECATED_ATTRIBUTE
|
||
|
#if defined( __GNUC__ ) && \
|
||
|
( ( __GNUC__ >= 4 ) || \
|
||
|
( ( __GNUC__ == 3 ) && ( __GNUC_MINOR__ >= 1 ) ) )
|
||
|
#define FT_DEPRECATED_ATTRIBUTE __attribute__(( deprecated ))
|
||
|
#else
|
||
|
#define FT_DEPRECATED_ATTRIBUTE
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
|
||
|
/**************************************************************************
|
||
|
*
|
||
|
* @section:
|
||
|
* mac_specific
|
||
|
*
|
||
|
* @title:
|
||
|
* Mac Specific Interface
|
||
|
*
|
||
|
* @abstract:
|
||
|
* Only available on the Macintosh.
|
||
|
*
|
||
|
* @description:
|
||
|
* The following definitions are only available if FreeType is compiled
|
||
|
* on a Macintosh.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
|
||
|
/**************************************************************************
|
||
|
*
|
||
|
* @function:
|
||
|
* FT_New_Face_From_FOND
|
||
|
*
|
||
|
* @description:
|
||
|
* Create a new face object from a FOND resource.
|
||
|
*
|
||
|
* @inout:
|
||
|
* library ::
|
||
|
* A handle to the library resource.
|
||
|
*
|
||
|
* @input:
|
||
|
* fond ::
|
||
|
* A FOND resource.
|
||
|
*
|
||
|
* face_index ::
|
||
|
* Only supported for the -1 'sanity check' special case.
|
||
|
*
|
||
|
* @output:
|
||
|
* aface ::
|
||
|
* A handle to a new face object.
|
||
|
*
|
||
|
* @return:
|
||
|
* FreeType error code. 0~means success.
|
||
|
*
|
||
|
* @example:
|
||
|
* This function can be used to create @FT_Face objects from fonts that
|
||
|
* are installed in the system as follows.
|
||
|
*
|
||
|
* ```
|
||
|
* fond = GetResource( 'FOND', fontName );
|
||
|
* error = FT_New_Face_From_FOND( library, fond, 0, &face );
|
||
|
* ```
|
||
|
*/
|
||
|
FT_EXPORT( FT_Error )
|
||
|
FT_New_Face_From_FOND( FT_Library library,
|
||
|
Handle fond,
|
||
|
FT_Long face_index,
|
||
|
FT_Face *aface )
|
||
|
FT_DEPRECATED_ATTRIBUTE;
|
||
|
|
||
|
|
||
|
/**************************************************************************
|
||
|
*
|
||
|
* @function:
|
||
|
* FT_GetFile_From_Mac_Name
|
||
|
*
|
||
|
* @description:
|
||
|
* Return an FSSpec for the disk file containing the named font.
|
||
|
*
|
||
|
* @input:
|
||
|
* fontName ::
|
||
|
* Mac OS name of the font (e.g., Times New Roman Bold).
|
||
|
*
|
||
|
* @output:
|
||
|
* pathSpec ::
|
||
|
* FSSpec to the file. For passing to @FT_New_Face_From_FSSpec.
|
||
|
*
|
||
|
* face_index ::
|
||
|
* Index of the face. For passing to @FT_New_Face_From_FSSpec.
|
||
|
*
|
||
|
* @return:
|
||
|
* FreeType error code. 0~means success.
|
||
|
*/
|
||
|
FT_EXPORT( FT_Error )
|
||
|
FT_GetFile_From_Mac_Name( const char* fontName,
|
||
|
FSSpec* pathSpec,
|
||
|
FT_Long* face_index )
|
||
|
FT_DEPRECATED_ATTRIBUTE;
|
||
|
|
||
|
|
||
|
/**************************************************************************
|
||
|
*
|
||
|
* @function:
|
||
|
* FT_GetFile_From_Mac_ATS_Name
|
||
|
*
|
||
|
* @description:
|
||
|
* Return an FSSpec for the disk file containing the named font.
|
||
|
*
|
||
|
* @input:
|
||
|
* fontName ::
|
||
|
* Mac OS name of the font in ATS framework.
|
||
|
*
|
||
|
* @output:
|
||
|
* pathSpec ::
|
||
|
* FSSpec to the file. For passing to @FT_New_Face_From_FSSpec.
|
||
|
*
|
||
|
* face_index ::
|
||
|
* Index of the face. For passing to @FT_New_Face_From_FSSpec.
|
||
|
*
|
||
|
* @return:
|
||
|
* FreeType error code. 0~means success.
|
||
|
*/
|
||
|
FT_EXPORT( FT_Error )
|
||
|
FT_GetFile_From_Mac_ATS_Name( const char* fontName,
|
||
|
FSSpec* pathSpec,
|
||
|
FT_Long* face_index )
|
||
|
FT_DEPRECATED_ATTRIBUTE;
|
||
|
|
||
|
|
||
|
/**************************************************************************
|
||
|
*
|
||
|
* @function:
|
||
|
* FT_GetFilePath_From_Mac_ATS_Name
|
||
|
*
|
||
|
* @description:
|
||
|
* Return a pathname of the disk file and face index for given font name
|
||
|
* that is handled by ATS framework.
|
||
|
*
|
||
|
* @input:
|
||
|
* fontName ::
|
||
|
* Mac OS name of the font in ATS framework.
|
||
|
*
|
||
|
* @output:
|
||
|
* path ::
|
||
|
* Buffer to store pathname of the file. For passing to @FT_New_Face.
|
||
|
* The client must allocate this buffer before calling this function.
|
||
|
*
|
||
|
* maxPathSize ::
|
||
|
* Lengths of the buffer `path` that client allocated.
|
||
|
*
|
||
|
* face_index ::
|
||
|
* Index of the face. For passing to @FT_New_Face.
|
||
|
*
|
||
|
* @return:
|
||
|
* FreeType error code. 0~means success.
|
||
|
*/
|
||
|
FT_EXPORT( FT_Error )
|
||
|
FT_GetFilePath_From_Mac_ATS_Name( const char* fontName,
|
||
|
UInt8* path,
|
||
|
UInt32 maxPathSize,
|
||
|
FT_Long* face_index )
|
||
|
FT_DEPRECATED_ATTRIBUTE;
|
||
|
|
||
|
|
||
|
/**************************************************************************
|
||
|
*
|
||
|
* @function:
|
||
|
* FT_New_Face_From_FSSpec
|
||
|
*
|
||
|
* @description:
|
||
|
* Create a new face object from a given resource and typeface index
|
||
|
* using an FSSpec to the font file.
|
||
|
*
|
||
|
* @inout:
|
||
|
* library ::
|
||
|
* A handle to the library resource.
|
||
|
*
|
||
|
* @input:
|
||
|
* spec ::
|
||
|
* FSSpec to the font file.
|
||
|
*
|
||
|
* face_index ::
|
||
|
* The index of the face within the resource. The first face has
|
||
|
* index~0.
|
||
|
* @output:
|
||
|
* aface ::
|
||
|
* A handle to a new face object.
|
||
|
*
|
||
|
* @return:
|
||
|
* FreeType error code. 0~means success.
|
||
|
*
|
||
|
* @note:
|
||
|
* @FT_New_Face_From_FSSpec is identical to @FT_New_Face except it
|
||
|
* accepts an FSSpec instead of a path.
|
||
|
*/
|
||
|
FT_EXPORT( FT_Error )
|
||
|
FT_New_Face_From_FSSpec( FT_Library library,
|
||
|
const FSSpec *spec,
|
||
|
FT_Long face_index,
|
||
|
FT_Face *aface )
|
||
|
FT_DEPRECATED_ATTRIBUTE;
|
||
|
|
||
|
|
||
|
/**************************************************************************
|
||
|
*
|
||
|
* @function:
|
||
|
* FT_New_Face_From_FSRef
|
||
|
*
|
||
|
* @description:
|
||
|
* Create a new face object from a given resource and typeface index
|
||
|
* using an FSRef to the font file.
|
||
|
*
|
||
|
* @inout:
|
||
|
* library ::
|
||
|
* A handle to the library resource.
|
||
|
*
|
||
|
* @input:
|
||
|
* spec ::
|
||
|
* FSRef to the font file.
|
||
|
*
|
||
|
* face_index ::
|
||
|
* The index of the face within the resource. The first face has
|
||
|
* index~0.
|
||
|
* @output:
|
||
|
* aface ::
|
||
|
* A handle to a new face object.
|
||
|
*
|
||
|
* @return:
|
||
|
* FreeType error code. 0~means success.
|
||
|
*
|
||
|
* @note:
|
||
|
* @FT_New_Face_From_FSRef is identical to @FT_New_Face except it accepts
|
||
|
* an FSRef instead of a path.
|
||
|
*/
|
||
|
FT_EXPORT( FT_Error )
|
||
|
FT_New_Face_From_FSRef( FT_Library library,
|
||
|
const FSRef *ref,
|
||
|
FT_Long face_index,
|
||
|
FT_Face *aface )
|
||
|
FT_DEPRECATED_ATTRIBUTE;
|
||
|
|
||
|
/* */
|
||
|
|
||
|
|
||
|
FT_END_HEADER
|
||
|
|
||
|
|
||
|
#endif /* FTMAC_H_ */
|
||
|
|
||
|
|
||
|
/* END */
|