freetype2/include/freetype/internal/services/svttcmap.h

92 lines
2.3 KiB
C

/****************************************************************************
*
* svttcmap.h
*
* The FreeType TrueType/sfnt cmap extra information service.
*
* Copyright 2003-2018 by
* Masatake YAMATO, Redhat K.K.,
* 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.
*
*/
/* Development of this service is support of
Information-technology Promotion Agency, Japan. */
#ifndef SVTTCMAP_H_
#define SVTTCMAP_H_
#include FT_INTERNAL_SERVICE_H
#include FT_TRUETYPE_TABLES_H
FT_BEGIN_HEADER
#define FT_SERVICE_ID_TT_CMAP "tt-cmaps"
/**************************************************************************
*
* @Struct:
* TT_CMapInfo
*
* @Description:
* A structure used to store TrueType/sfnt specific cmap information
* which is not covered by the generic @FT_CharMap structure. This
* structure can be accessed with the @FT_Get_TT_CMap_Info function.
*
* @Fields:
* language ::
* The language ID used in Mac fonts. Definitions of values are in
* `ttnameid.h'.
*
* format ::
* The cmap format. OpenType 1.6 defines the formats 0 (byte
* encoding table), 2~(high-byte mapping through table), 4~(segment
* mapping to delta values), 6~(trimmed table mapping), 8~(mixed
* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented
* coverage), 13~(last resort font), and 14 (Unicode Variation
* Sequences).
*/
typedef struct TT_CMapInfo_
{
FT_ULong language;
FT_Long format;
} TT_CMapInfo;
typedef FT_Error
(*TT_CMap_Info_GetFunc)( FT_CharMap charmap,
TT_CMapInfo *cmap_info );
FT_DEFINE_SERVICE( TTCMaps )
{
TT_CMap_Info_GetFunc get_cmap_info;
};
#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \
static const FT_Service_TTCMapsRec class_ = \
{ \
get_cmap_info_ \
};
/* */
FT_END_HEADER
#endif /* SVTTCMAP_H_ */
/* END */