* include/freetype/internal/tfm.h: - Add TFM_FontInfoRec to accomodate TFM metric data. - Define TFM_ParserRec to parse the metric data from input `tfm' file. - Define TFM_ServiceRec to provide functions to do it.GSoC-2018-parth
parent
b36649fd86
commit
146b7febbd
2 changed files with 140 additions and 0 deletions
@ -0,0 +1,138 @@ |
||||
/****************************************************************************
|
||||
* |
||||
* tfm.h |
||||
* |
||||
* Auxiliary functions and data structures related to TFM metric files |
||||
* (specification). |
||||
* |
||||
* Copyright 1996-2018 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 TFM_H_ |
||||
#define TFM_H_ |
||||
|
||||
|
||||
#include <ft2build.h> |
||||
#include FT_INTERNAL_OBJECTS_H |
||||
#include FT_INTERNAL_HASH_H |
||||
#include FT_INTERNAL_TRUETYPE_TYPES_H |
||||
|
||||
|
||||
|
||||
FT_BEGIN_HEADER |
||||
|
||||
|
||||
/*************************************************************************/ |
||||
/*************************************************************************/ |
||||
/*************************************************************************/ |
||||
/*** ***/ |
||||
/*** ***/ |
||||
/*** TFM FONT INFORMATION STRUCTURES ***/ |
||||
/*** ***/ |
||||
/*** ***/ |
||||
/*************************************************************************/ |
||||
/*************************************************************************/ |
||||
/*************************************************************************/ |
||||
|
||||
typedef struct TFM_FontInfoRec_ |
||||
{ |
||||
/* Font Info */ |
||||
FT_ULong cs; |
||||
/* Metrics */ |
||||
FT_ULong ds; |
||||
FT_UInt design_size; |
||||
FT_UInt slant; |
||||
FT_UInt begin_char, end_char; |
||||
FT_Long *width, *height, *depth; |
||||
/* Font bounding box */ |
||||
FT_UInt font_bbx_w, font_bbx_h; |
||||
FT_UInt font_bbx_xoff, font_bbx_yoff; |
||||
|
||||
} TFM_FontInfoRec, *TFM_FontInfo; |
||||
|
||||
/*************************************************************************/ |
||||
/*************************************************************************/ |
||||
/***** *****/ |
||||
/***** TFM PARSER *****/ |
||||
/***** *****/ |
||||
/*************************************************************************/ |
||||
/*************************************************************************/ |
||||
|
||||
typedef struct TFM_ParserRec_* TFM_Parser; |
||||
|
||||
/**************************************************************************
|
||||
* |
||||
* @struct: |
||||
* TFM_ParserRec |
||||
* |
||||
* @description: |
||||
* An TFM_Parser is a parser for the TFM files. |
||||
* |
||||
* @fields: |
||||
* memory :: |
||||
* The object used for memory operations (alloc and |
||||
* realloc). |
||||
* |
||||
* stream :: |
||||
* This is an FT_Stream object. |
||||
* |
||||
* FontInfo :: |
||||
* The result will be stored here. |
||||
*/ |
||||
typedef struct TFM_ParserRec_ |
||||
{ |
||||
FT_Memory memory; |
||||
FT_Stream stream; |
||||
|
||||
TFM_FontInfo FontInfo; |
||||
|
||||
void* user_data; /* To be checked for compatibility */ |
||||
|
||||
} TFM_ParserRec; |
||||
|
||||
|
||||
/*************************************************************************/ |
||||
/*************************************************************************/ |
||||
/***** *****/ |
||||
/***** TFM Module Interface *****/ |
||||
/***** *****/ |
||||
/*************************************************************************/ |
||||
/*************************************************************************/ |
||||
|
||||
typedef struct TFM_ServiceRec_ |
||||
{ |
||||
FT_Error |
||||
(*init)( TFM_Parser parser, |
||||
FT_Memory memory, |
||||
FT_Stream stream ); |
||||
|
||||
FT_Error |
||||
(*parse_metrics)( TFM_Parser parser ); |
||||
|
||||
FT_Error |
||||
(*parse_kern)( TFM_Parser parser ); |
||||
|
||||
void |
||||
(*done)( TFM_Parser parser ); |
||||
|
||||
} TFM_ServiceRec, *TFM_Service; |
||||
|
||||
/* backward compatible type definition */ |
||||
typedef TFM_ServiceRec TFM_Interface; |
||||
|
||||
|
||||
FT_END_HEADER |
||||
|
||||
#endif /* PSAUX_H_ */ |
||||
|
||||
|
||||
/* END */ |
Loading…
Reference in new issue