blob: 360af5332d90c3aeee78ce5c21de8727d719a825 [file] [log] [blame]
/****************************************************************************
*
* cffotypes.h
*
* Basic OpenType/CFF object type definitions (specification).
*
* Copyright (C) 2017-2020 by
* 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.
*
*/
#ifndef CFFOTYPES_H_
#define CFFOTYPES_H_
#include <ft2build.h>
#include <freetype/internal/ftobjs.h>
#include <freetype/internal/cfftypes.h>
#include <freetype/internal/tttypes.h>
#include <freetype/internal/services/svpscmap.h>
#include <freetype/internal/pshints.h>
FT_BEGIN_HEADER
typedef TT_Face CFF_Face;
/**************************************************************************
*
* @type:
* CFF_Size
*
* @description:
* A handle to an OpenType size object.
*/
typedef struct CFF_SizeRec_
{
FT_SizeRec root;
FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */
} CFF_SizeRec, *CFF_Size;
/**************************************************************************
*
* @type:
* CFF_GlyphSlot
*
* @description:
* A handle to an OpenType glyph slot object.
*/
typedef struct CFF_GlyphSlotRec_
{
FT_GlyphSlotRec root;
FT_Bool hint;
FT_Bool scaled;
FT_Fixed x_scale;
FT_Fixed y_scale;
} CFF_GlyphSlotRec, *CFF_GlyphSlot;
/**************************************************************************
*
* @type:
* CFF_Internal
*
* @description:
* The interface to the 'internal' field of `FT_Size`.
*/
typedef struct CFF_InternalRec_
{
PSH_Globals topfont;
PSH_Globals subfonts[CFF_MAX_CID_FONTS];
} CFF_InternalRec, *CFF_Internal;
/**************************************************************************
*
* Subglyph transformation record.
*/
typedef struct CFF_Transform_
{
FT_Fixed xx, xy; /* transformation matrix coefficients */
FT_Fixed yx, yy;
FT_F26Dot6 ox, oy; /* offsets */
} CFF_Transform;
FT_END_HEADER
#endif /* CFFOTYPES_H_ */
/* END */