1999-12-17 00:11:37 +01:00
|
|
|
/***************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* sfnt.h */
|
|
|
|
/* */
|
|
|
|
/* High-level `sfnt' driver interface (specification). */
|
|
|
|
/* */
|
2013-05-10 07:58:47 +02:00
|
|
|
/* Copyright 1996-2006, 2009, 2012-2013 by */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* 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. */
|
|
|
|
/* */
|
|
|
|
/***************************************************************************/
|
|
|
|
|
|
|
|
|
2000-12-01 00:12:33 +01:00
|
|
|
#ifndef __SFNT_H__
|
|
|
|
#define __SFNT_H__
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2000-12-09 01:45:38 +01:00
|
|
|
|
|
|
|
#include <ft2build.h>
|
|
|
|
#include FT_INTERNAL_DRIVER_H
|
|
|
|
#include FT_INTERNAL_TRUETYPE_TYPES_H
|
|
|
|
|
2000-08-01 15:17:04 +02:00
|
|
|
|
2000-12-01 00:12:33 +01:00
|
|
|
FT_BEGIN_HEADER
|
2000-08-01 15:17:04 +02:00
|
|
|
|
2000-12-09 01:45:38 +01:00
|
|
|
|
2000-05-27 00:13:17 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
|
|
|
/* TT_Init_Face_Func */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2006-02-15 07:05:52 +01:00
|
|
|
/* First part of the SFNT face object initialization. This finds */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* the face in a SFNT file or collection, and load its format tag in */
|
|
|
|
/* face->format_tag. */
|
2000-05-27 00:13:17 +02:00
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* stream :: The input stream. */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* */
|
2000-05-27 00:13:17 +02:00
|
|
|
/* face :: A handle to the target face object. */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* */
|
|
|
|
/* face_index :: The index of the TrueType font, if we are opening a */
|
2000-05-27 00:13:17 +02:00
|
|
|
/* collection. */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* */
|
|
|
|
/* num_params :: The number of additional parameters. */
|
|
|
|
/* */
|
|
|
|
/* params :: Optional additional parameters. */
|
2000-05-27 00:13:17 +02:00
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* FreeType error code. 0 means success. */
|
|
|
|
/* */
|
|
|
|
/* <Note> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* The stream cursor must be at the font file's origin. */
|
|
|
|
/* */
|
|
|
|
/* This function recognizes fonts embedded in a `TrueType */
|
|
|
|
/* collection'. */
|
2000-05-27 00:13:17 +02:00
|
|
|
/* */
|
|
|
|
/* Once the format tag has been validated by the font driver, it */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* should then call the TT_Load_Face_Func() callback to read the rest */
|
|
|
|
/* of the SFNT tables in the object. */
|
2000-05-27 00:13:17 +02:00
|
|
|
/* */
|
2001-06-28 19:49:10 +02:00
|
|
|
typedef FT_Error
|
|
|
|
(*TT_Init_Face_Func)( FT_Stream stream,
|
|
|
|
TT_Face face,
|
|
|
|
FT_Int face_index,
|
|
|
|
FT_Int num_params,
|
|
|
|
FT_Parameter* params );
|
2000-05-27 00:13:17 +02:00
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
|
2000-05-27 00:13:17 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
|
|
|
/* TT_Load_Face_Func */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2006-02-15 07:05:52 +01:00
|
|
|
/* Second part of the SFNT face object initialization. This loads */
|
|
|
|
/* the common SFNT tables (head, OS/2, maxp, metrics, etc.) in the */
|
|
|
|
/* face object. */
|
2000-05-27 00:13:17 +02:00
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* stream :: The input stream. */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* */
|
2000-05-27 00:13:17 +02:00
|
|
|
/* face :: A handle to the target face object. */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* */
|
|
|
|
/* face_index :: The index of the TrueType font, if we are opening a */
|
2000-05-27 00:13:17 +02:00
|
|
|
/* collection. */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* */
|
|
|
|
/* num_params :: The number of additional parameters. */
|
|
|
|
/* */
|
|
|
|
/* params :: Optional additional parameters. */
|
2000-05-27 00:13:17 +02:00
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* FreeType error code. 0 means success. */
|
|
|
|
/* */
|
|
|
|
/* <Note> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* This function must be called after TT_Init_Face_Func(). */
|
2000-05-27 00:13:17 +02:00
|
|
|
/* */
|
2001-06-28 19:49:10 +02:00
|
|
|
typedef FT_Error
|
|
|
|
(*TT_Load_Face_Func)( FT_Stream stream,
|
|
|
|
TT_Face face,
|
|
|
|
FT_Int face_index,
|
|
|
|
FT_Int num_params,
|
|
|
|
FT_Parameter* params );
|
2000-05-27 00:13:17 +02:00
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
|
2000-05-27 00:13:17 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
|
|
|
/* TT_Done_Face_Func */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A callback used to delete the common SFNT data from a face. */
|
|
|
|
/* */
|
|
|
|
/* <Input> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* face :: A handle to the target face object. */
|
2000-05-27 00:13:17 +02:00
|
|
|
/* */
|
|
|
|
/* <Note> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* This function does NOT destroy the face object. */
|
2000-05-27 00:13:17 +02:00
|
|
|
/* */
|
2001-06-28 19:49:10 +02:00
|
|
|
typedef void
|
|
|
|
(*TT_Done_Face_Func)( TT_Face face );
|
2000-05-27 00:13:17 +02:00
|
|
|
|
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
|
|
|
/* TT_Load_Any_Func */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2006-01-13 15:53:28 +01:00
|
|
|
/* Load any font table into client memory. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* face :: The face object to look for. */
|
|
|
|
/* */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* tag :: The tag of table to load. Use the value 0 if you want */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* to access the whole font file, else set this parameter */
|
|
|
|
/* to a valid TrueType table tag that you can forge with */
|
|
|
|
/* the MAKE_TT_TAG macro. */
|
|
|
|
/* */
|
|
|
|
/* offset :: The starting offset in the table (or the file if */
|
|
|
|
/* tag == 0). */
|
|
|
|
/* */
|
|
|
|
/* length :: The address of the decision variable: */
|
|
|
|
/* */
|
|
|
|
/* If length == NULL: */
|
|
|
|
/* Loads the whole table. Returns an error if */
|
|
|
|
/* `offset' == 0! */
|
|
|
|
/* */
|
|
|
|
/* If *length == 0: */
|
|
|
|
/* Exits immediately; returning the length of the given */
|
|
|
|
/* table or of the font file, depending on the value of */
|
|
|
|
/* `tag'. */
|
|
|
|
/* */
|
|
|
|
/* If *length != 0: */
|
|
|
|
/* Loads the next `length' bytes of table or font, */
|
|
|
|
/* starting at offset `offset' (in table or font too). */
|
|
|
|
/* */
|
|
|
|
/* <Output> */
|
|
|
|
/* buffer :: The address of target buffer. */
|
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* TrueType error code. 0 means success. */
|
|
|
|
/* */
|
2001-06-28 19:49:10 +02:00
|
|
|
typedef FT_Error
|
|
|
|
(*TT_Load_Any_Func)( TT_Face face,
|
|
|
|
FT_ULong tag,
|
|
|
|
FT_Long offset,
|
|
|
|
FT_Byte *buffer,
|
|
|
|
FT_ULong* length );
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
|
2004-04-13 23:08:17 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
|
|
|
/* TT_Find_SBit_Image_Func */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2006-01-13 15:53:28 +01:00
|
|
|
/* Check whether an embedded bitmap (an `sbit') exists for a given */
|
2004-04-13 23:08:17 +02:00
|
|
|
/* glyph, at a given strike. */
|
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* face :: The target face object. */
|
|
|
|
/* */
|
|
|
|
/* glyph_index :: The glyph index. */
|
|
|
|
/* */
|
|
|
|
/* strike_index :: The current strike index. */
|
|
|
|
/* */
|
|
|
|
/* <Output> */
|
|
|
|
/* arange :: The SBit range containing the glyph index. */
|
|
|
|
/* */
|
|
|
|
/* astrike :: The SBit strike containing the glyph index. */
|
|
|
|
/* */
|
|
|
|
/* aglyph_offset :: The offset of the glyph data in `EBDT' table. */
|
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* FreeType error code. 0 means success. Returns */
|
|
|
|
/* SFNT_Err_Invalid_Argument if no sbit exists for the requested */
|
|
|
|
/* glyph. */
|
|
|
|
/* */
|
|
|
|
typedef FT_Error
|
|
|
|
(*TT_Find_SBit_Image_Func)( TT_Face face,
|
|
|
|
FT_UInt glyph_index,
|
|
|
|
FT_ULong strike_index,
|
|
|
|
TT_SBit_Range *arange,
|
|
|
|
TT_SBit_Strike *astrike,
|
|
|
|
FT_ULong *aglyph_offset );
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
|
|
|
/* TT_Load_SBit_Metrics_Func */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2006-01-13 15:53:28 +01:00
|
|
|
/* Get the big metrics for a given embedded bitmap. */
|
2004-04-13 23:08:17 +02:00
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* stream :: The input stream. */
|
|
|
|
/* */
|
|
|
|
/* range :: The SBit range containing the glyph. */
|
|
|
|
/* */
|
|
|
|
/* <Output> */
|
|
|
|
/* big_metrics :: A big SBit metrics structure for the glyph. */
|
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* FreeType error code. 0 means success. */
|
|
|
|
/* */
|
|
|
|
/* <Note> */
|
|
|
|
/* The stream cursor must be positioned at the glyph's offset within */
|
|
|
|
/* the `EBDT' table before the call. */
|
|
|
|
/* */
|
|
|
|
/* If the image format uses variable metrics, the stream cursor is */
|
|
|
|
/* positioned just after the metrics header in the `EBDT' table on */
|
|
|
|
/* function exit. */
|
|
|
|
/* */
|
|
|
|
typedef FT_Error
|
|
|
|
(*TT_Load_SBit_Metrics_Func)( FT_Stream stream,
|
|
|
|
TT_SBit_Range range,
|
|
|
|
TT_SBit_Metrics metrics );
|
|
|
|
|
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
|
|
|
/* TT_Load_SBit_Image_Func */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2006-01-13 15:53:28 +01:00
|
|
|
/* Load a given glyph sbit image from the font resource. This also */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* returns its metrics. */
|
|
|
|
/* */
|
|
|
|
/* <Input> */
|
2003-12-27 22:44:18 +01:00
|
|
|
/* face :: */
|
|
|
|
/* The target face object. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2003-12-27 22:44:18 +01:00
|
|
|
/* strike_index :: */
|
|
|
|
/* The strike index. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2003-12-27 22:44:18 +01:00
|
|
|
/* glyph_index :: */
|
|
|
|
/* The current glyph index. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2003-12-27 22:44:18 +01:00
|
|
|
/* load_flags :: */
|
|
|
|
/* The current load flags. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2003-12-27 22:44:18 +01:00
|
|
|
/* stream :: */
|
|
|
|
/* The input stream. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Output> */
|
2003-12-27 22:44:18 +01:00
|
|
|
/* amap :: */
|
|
|
|
/* The target pixmap. */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* */
|
2003-12-27 22:44:18 +01:00
|
|
|
/* ametrics :: */
|
|
|
|
/* A big sbit metrics structure for the glyph image. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Return> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* FreeType error code. 0 means success. Returns an error if no */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* glyph sbit exists for the index. */
|
|
|
|
/* */
|
|
|
|
/* <Note> */
|
|
|
|
/* The `map.buffer' field is always freed before the glyph is loaded. */
|
|
|
|
/* */
|
2001-06-28 19:49:10 +02:00
|
|
|
typedef FT_Error
|
2002-03-30 14:16:35 +01:00
|
|
|
(*TT_Load_SBit_Image_Func)( TT_Face face,
|
|
|
|
FT_ULong strike_index,
|
|
|
|
FT_UInt glyph_index,
|
|
|
|
FT_UInt load_flags,
|
|
|
|
FT_Stream stream,
|
|
|
|
FT_Bitmap *amap,
|
2002-03-14 12:26:29 +01:00
|
|
|
TT_SBit_MetricsRec *ametrics );
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2000-11-07 07:30:29 +01:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
|
|
|
/* TT_Set_SBit_Strike_Func */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2006-01-13 15:53:28 +01:00
|
|
|
/* Select an sbit strike for a given size request. */
|
2000-11-07 07:30:29 +01:00
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* face :: The target face object. */
|
|
|
|
/* */
|
* include/freetype/internal/sfnt.h (SFNT_Interface): New method
`load_strike_metrics' used to load the strike's metrics.
* src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
* src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
* src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
nominal size unless it is obviously incorrect.
* include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
FNT driver.
Introduce new size selection interface.
* include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec_):
Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
`select_size'.
* include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
(FT_Select_Size, FT_Request_Size): API additions to export the new
size selection interface.
* src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
`FT_Request_Size'.
* include/freetype/internal/ftobjs.h (FT_Match_Size),
src/base/ftobjs.c (FT_Match_Size): New function to match a size
request against `available_sizes'. Drivers supporting bitmap strikes
can use this function to implement `request_size'.
* src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
Update to new size selection interface.
* src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
selection interface.
Make `strike_index' FT_ULong and always defined.
Use `load_strike_metrics' provided by SFNT interface.
2006-01-13 13:21:31 +01:00
|
|
|
/* req :: The size request. */
|
2000-11-07 07:30:29 +01:00
|
|
|
/* */
|
|
|
|
/* <Output> */
|
|
|
|
/* astrike_index :: The index of the sbit strike. */
|
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* FreeType error code. 0 means success. Returns an error if no */
|
|
|
|
/* sbit strike exists for the selected ppem values. */
|
|
|
|
/* */
|
2001-06-28 19:49:10 +02:00
|
|
|
typedef FT_Error
|
* include/freetype/internal/sfnt.h (SFNT_Interface): New method
`load_strike_metrics' used to load the strike's metrics.
* src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
* src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
* src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
nominal size unless it is obviously incorrect.
* include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
FNT driver.
Introduce new size selection interface.
* include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec_):
Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
`select_size'.
* include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
(FT_Select_Size, FT_Request_Size): API additions to export the new
size selection interface.
* src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
`FT_Request_Size'.
* include/freetype/internal/ftobjs.h (FT_Match_Size),
src/base/ftobjs.c (FT_Match_Size): New function to match a size
request against `available_sizes'. Drivers supporting bitmap strikes
can use this function to implement `request_size'.
* src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
Update to new size selection interface.
* src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
selection interface.
Make `strike_index' FT_ULong and always defined.
Use `load_strike_metrics' provided by SFNT interface.
2006-01-13 13:21:31 +01:00
|
|
|
(*TT_Set_SBit_Strike_Func)( TT_Face face,
|
|
|
|
FT_Size_Request req,
|
|
|
|
FT_ULong* astrike_index );
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
|
|
|
/* TT_Load_Strike_Metrics_Func */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2006-01-13 15:53:28 +01:00
|
|
|
/* Load the metrics of a given strike. */
|
* include/freetype/internal/sfnt.h (SFNT_Interface): New method
`load_strike_metrics' used to load the strike's metrics.
* src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
* src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
* src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
nominal size unless it is obviously incorrect.
* include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
FNT driver.
Introduce new size selection interface.
* include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec_):
Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
`select_size'.
* include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
(FT_Select_Size, FT_Request_Size): API additions to export the new
size selection interface.
* src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
`FT_Request_Size'.
* include/freetype/internal/ftobjs.h (FT_Match_Size),
src/base/ftobjs.c (FT_Match_Size): New function to match a size
request against `available_sizes'. Drivers supporting bitmap strikes
can use this function to implement `request_size'.
* src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
Update to new size selection interface.
* src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
selection interface.
Make `strike_index' FT_ULong and always defined.
Use `load_strike_metrics' provided by SFNT interface.
2006-01-13 13:21:31 +01:00
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* face :: The target face object. */
|
|
|
|
/* */
|
|
|
|
/* strike_index :: The strike index. */
|
|
|
|
/* */
|
|
|
|
/* <Output> */
|
|
|
|
/* metrics :: the metrics of the strike. */
|
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* FreeType error code. 0 means success. Returns an error if no */
|
|
|
|
/* such sbit strike exists. */
|
|
|
|
/* */
|
|
|
|
typedef FT_Error
|
|
|
|
(*TT_Load_Strike_Metrics_Func)( TT_Face face,
|
|
|
|
FT_ULong strike_index,
|
|
|
|
FT_Size_Metrics* metrics );
|
2000-11-07 07:30:29 +01:00
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
|
|
|
/* TT_Get_PS_Name_Func */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2006-01-13 15:53:28 +01:00
|
|
|
/* Get the PostScript glyph name of a glyph. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Input> */
|
2002-04-01 16:25:28 +02:00
|
|
|
/* idx :: The glyph index. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* PSname :: The address of a string pointer. Will be NULL in case */
|
|
|
|
/* of error, otherwise it is a pointer to the glyph name. */
|
|
|
|
/* */
|
|
|
|
/* You must not modify the returned string! */
|
|
|
|
/* */
|
|
|
|
/* <Output> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* FreeType error code. 0 means success. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2001-06-28 19:49:10 +02:00
|
|
|
typedef FT_Error
|
|
|
|
(*TT_Get_PS_Name_Func)( TT_Face face,
|
2002-04-01 16:25:28 +02:00
|
|
|
FT_UInt idx,
|
2001-06-28 19:49:10 +02:00
|
|
|
FT_String** PSname );
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* TT_Load_Metrics_Func */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2006-02-15 07:05:52 +01:00
|
|
|
/* Load a metrics table, which is a table with a horizontal and a */
|
|
|
|
/* vertical version. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* face :: A handle to the target face object. */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* stream :: The input stream. */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* */
|
Clean up the SFNT_Interface. Table loading functions are now named
after the tables' tags; `hdmx' is TrueType-specific and thus the code
is moved to the truetype module; `get_metrics' is moved here from the
truetype module so that the code can be shared with the cff module.
This pass involves no real changes. That is, the code is moved
verbatim mostly. The only exception is the return value of
`tt_face_get_metrics'.
* include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
* src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Metrics-related tables' loading
and parsing code is moved here.
Move `tt_face_get_metrics' here from the truetype module. The return
value is changed from `void' to `FT_Error'.
* include/freetype/internal/fttrace.h: New trace: ttmtx.
* src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
parsing code is moved here.
New function `tt_face_load_prep' splitted from `tt_face_load_fpgm'.
`tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
* src/cff/cffgload.c, src/cff/cffobjs.c: Update.
* src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
2006-02-14 07:40:10 +01:00
|
|
|
/* vertical :: A boolean flag. If set, load the vertical one. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Return> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* FreeType error code. 0 means success. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2001-06-28 19:49:10 +02:00
|
|
|
typedef FT_Error
|
|
|
|
(*TT_Load_Metrics_Func)( TT_Face face,
|
|
|
|
FT_Stream stream,
|
|
|
|
FT_Bool vertical );
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
|
Clean up the SFNT_Interface. Table loading functions are now named
after the tables' tags; `hdmx' is TrueType-specific and thus the code
is moved to the truetype module; `get_metrics' is moved here from the
truetype module so that the code can be shared with the cff module.
This pass involves no real changes. That is, the code is moved
verbatim mostly. The only exception is the return value of
`tt_face_get_metrics'.
* include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
* src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Metrics-related tables' loading
and parsing code is moved here.
Move `tt_face_get_metrics' here from the truetype module. The return
value is changed from `void' to `FT_Error'.
* include/freetype/internal/fttrace.h: New trace: ttmtx.
* src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
parsing code is moved here.
New function `tt_face_load_prep' splitted from `tt_face_load_fpgm'.
`tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
* src/cff/cffgload.c, src/cff/cffobjs.c: Update.
* src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
2006-02-14 07:40:10 +01:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
|
|
|
/* TT_Get_Metrics_Func */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* Load the horizontal or vertical header in a face object. */
|
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* face :: A handle to the target face object. */
|
|
|
|
/* */
|
|
|
|
/* stream :: The input stream. */
|
|
|
|
/* */
|
|
|
|
/* vertical :: A boolean flag. If set, load vertical metrics. */
|
|
|
|
/* */
|
|
|
|
/* <Return> */
|
|
|
|
/* FreeType error code. 0 means success. */
|
|
|
|
/* */
|
|
|
|
typedef FT_Error
|
|
|
|
(*TT_Get_Metrics_Func)( TT_Face face,
|
|
|
|
FT_Bool vertical,
|
|
|
|
FT_UInt gindex,
|
|
|
|
FT_Short* abearing,
|
|
|
|
FT_UShort* aadvance );
|
|
|
|
|
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* TT_Load_Table_Func */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2006-01-13 15:53:28 +01:00
|
|
|
/* Load a given TrueType table. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Input> */
|
|
|
|
/* face :: A handle to the target face object. */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* stream :: The input stream. */
|
|
|
|
/* */
|
|
|
|
/* <Return> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* FreeType error code. 0 means success. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Note> */
|
2006-02-15 07:05:52 +01:00
|
|
|
/* The function uses `face->goto_table' to seek the stream to the */
|
|
|
|
/* start of the table, except while loading the font directory. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2001-06-28 19:49:10 +02:00
|
|
|
typedef FT_Error
|
|
|
|
(*TT_Load_Table_Func)( TT_Face face,
|
|
|
|
FT_Stream stream );
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <FuncType> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* TT_Free_Table_Func */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2006-01-13 15:53:28 +01:00
|
|
|
/* Free a given TrueType table. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
/* <Input> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* face :: A handle to the target face object. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
2001-06-28 19:49:10 +02:00
|
|
|
typedef void
|
|
|
|
(*TT_Free_Table_Func)( TT_Face face );
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2005-03-01 03:13:50 +01:00
|
|
|
|
|
|
|
/*
|
|
|
|
* @functype:
|
|
|
|
* TT_Face_GetKerningFunc
|
|
|
|
*
|
|
|
|
* @description:
|
|
|
|
* Return the horizontal kerning value between two glyphs.
|
|
|
|
*
|
|
|
|
* @input:
|
|
|
|
* face :: A handle to the source face object.
|
|
|
|
* left_glyph :: The left glyph index.
|
|
|
|
* right_glyph :: The right glyph index.
|
|
|
|
*
|
|
|
|
* @return:
|
|
|
|
* The kerning value in font units.
|
|
|
|
*/
|
2005-02-26 01:12:04 +01:00
|
|
|
typedef FT_Int
|
2005-03-01 03:13:50 +01:00
|
|
|
(*TT_Face_GetKerningFunc)( TT_Face face,
|
|
|
|
FT_UInt left_glyph,
|
|
|
|
FT_UInt right_glyph );
|
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Struct> */
|
|
|
|
/* SFNT_Interface */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* This structure holds pointers to the functions used to load and */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* free the basic tables that are required in a `sfnt' font file. */
|
|
|
|
/* */
|
|
|
|
/* <Fields> */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* Check the various xxx_Func() descriptions for details. */
|
1999-12-17 00:11:37 +01:00
|
|
|
/* */
|
|
|
|
typedef struct SFNT_Interface_
|
|
|
|
{
|
2002-03-31 13:18:15 +02:00
|
|
|
TT_Loader_GotoTableFunc goto_table;
|
2000-05-17 01:44:38 +02:00
|
|
|
|
2002-03-30 14:16:35 +01:00
|
|
|
TT_Init_Face_Func init_face;
|
|
|
|
TT_Load_Face_Func load_face;
|
|
|
|
TT_Done_Face_Func done_face;
|
* include/freetype/ftmm.h, include/freetype/ftmodule.h,
include/freetype/tttables.h, include/freetype/config/ftconfig.h,
include/freetype/internal/ftobjs.h,
include/freetype/internal/ftserv.h,
include/freetype/internal/internal.h,
include/freetype/internal/sfnt.h,
include/freetype/internal/tttypes.h,
include/freetype/internal/services/bdf.h,
include/freetype/internal/services/glyfdict.h,
include/freetype/internal/services/multmast.h,
include/freetype/internal/services/postname.h,
include/freetype/internal/services/sfnt.h,
include/freetype/internal/services/xf86name.h,
src/base/ftbdf.c, src/base/ftmm.c, src/base/ftobjs.c,
src/base/ftxf86.c, src/bdf/bdfdrivr.c, src/cff/cffdrivr.c,
src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/sfnt/sfdriver.c,
src/truetype/ttdriver.c, src/type1/t1driver.c, src/type42/t42drivr.c:
heavy internal modifications to introduce the concept of
"module services". This is the first step towards a massive
simplification of the engine's internals, in order to
get rid of various numbers of hacks.
Note that this changes will break source & binary compatibility
for authors of external font drivers.
Maybe 2.1.6 will be called 2.2.0 after all :-)
2003-09-11 21:51:54 +02:00
|
|
|
FT_Module_Requester get_interface;
|
2000-10-31 21:42:18 +01:00
|
|
|
|
2002-03-30 14:16:35 +01:00
|
|
|
TT_Load_Any_Func load_any;
|
2006-02-17 09:07:09 +01:00
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
/* these functions are called by `load_face' but they can also */
|
|
|
|
/* be called from external modules, if there is a need to do so */
|
Clean up the SFNT_Interface. Table loading functions are now named
after the tables' tags; `hdmx' is TrueType-specific and thus the code
is moved to the truetype module; `get_metrics' is moved here from the
truetype module so that the code can be shared with the cff module.
This pass involves no real changes. That is, the code is moved
verbatim mostly. The only exception is the return value of
`tt_face_get_metrics'.
* include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
* src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Metrics-related tables' loading
and parsing code is moved here.
Move `tt_face_get_metrics' here from the truetype module. The return
value is changed from `void' to `FT_Error'.
* include/freetype/internal/fttrace.h: New trace: ttmtx.
* src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
parsing code is moved here.
New function `tt_face_load_prep' splitted from `tt_face_load_fpgm'.
`tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
* src/cff/cffgload.c, src/cff/cffobjs.c: Update.
* src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
2006-02-14 07:40:10 +01:00
|
|
|
TT_Load_Table_Func load_head;
|
|
|
|
TT_Load_Metrics_Func load_hhea;
|
|
|
|
TT_Load_Table_Func load_cmap;
|
|
|
|
TT_Load_Table_Func load_maxp;
|
2002-03-30 14:16:35 +01:00
|
|
|
TT_Load_Table_Func load_os2;
|
Clean up the SFNT_Interface. Table loading functions are now named
after the tables' tags; `hdmx' is TrueType-specific and thus the code
is moved to the truetype module; `get_metrics' is moved here from the
truetype module so that the code can be shared with the cff module.
This pass involves no real changes. That is, the code is moved
verbatim mostly. The only exception is the return value of
`tt_face_get_metrics'.
* include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
* src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Metrics-related tables' loading
and parsing code is moved here.
Move `tt_face_get_metrics' here from the truetype module. The return
value is changed from `void' to `FT_Error'.
* include/freetype/internal/fttrace.h: New trace: ttmtx.
* src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
parsing code is moved here.
New function `tt_face_load_prep' splitted from `tt_face_load_fpgm'.
`tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
* src/cff/cffgload.c, src/cff/cffobjs.c: Update.
* src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
2006-02-14 07:40:10 +01:00
|
|
|
TT_Load_Table_Func load_post;
|
* builds/amiga/src/base/ftsystem.c, devel/ftoption.h
include/freetype/ftcache.h, include/freetype/ftoutln.h,
include/freetype/cache/ftccache.h, include/freetype/cache/ftccmap.h,
include/freetype/config/ftoption.h, include/freetype/internal/ftcalc.h,
include/freetype/internal/ftdriver.h,
include/freetype/internal/ftmemory.h,
include/freetype/internal/ftobjs.h, include/freetype/internal/ftrfork.h,
include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
include/freetype/internal/t1types.h, include/freetype/internal/tttypes.h,
src/base/ftcalc.c, src/base/ftdbgmem.c, src/base/ftobjs.c,
src/base/ftsystem.c, src/base/ftutil.c, src/bdf/bdfdrivr.c,
src/cache/ftccache.c, src/cache/ftccback.h, src/cache/ftccmap.c,
src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
massive changes to the internals to respect the internal object layouts
and exported functions of FreeType 2.1.7. Note that the cache sub-system
cannot be fully retrofitted, unfortunately.
2006-02-16 23:45:31 +01:00
|
|
|
|
Clean up the SFNT_Interface. Table loading functions are now named
after the tables' tags; `hdmx' is TrueType-specific and thus the code
is moved to the truetype module; `get_metrics' is moved here from the
truetype module so that the code can be shared with the cff module.
This pass involves no real changes. That is, the code is moved
verbatim mostly. The only exception is the return value of
`tt_face_get_metrics'.
* include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
* src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Metrics-related tables' loading
and parsing code is moved here.
Move `tt_face_get_metrics' here from the truetype module. The return
value is changed from `void' to `FT_Error'.
* include/freetype/internal/fttrace.h: New trace: ttmtx.
* src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
parsing code is moved here.
New function `tt_face_load_prep' splitted from `tt_face_load_fpgm'.
`tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
* src/cff/cffgload.c, src/cff/cffobjs.c: Update.
* src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
2006-02-14 07:40:10 +01:00
|
|
|
TT_Load_Table_Func load_name;
|
|
|
|
TT_Free_Table_Func free_name;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2006-02-17 09:07:09 +01:00
|
|
|
/* this field was called `load_kerning' up to version 2.1.10 */
|
|
|
|
TT_Load_Table_Func load_kern;
|
* builds/amiga/src/base/ftsystem.c, devel/ftoption.h
include/freetype/ftcache.h, include/freetype/ftoutln.h,
include/freetype/cache/ftccache.h, include/freetype/cache/ftccmap.h,
include/freetype/config/ftoption.h, include/freetype/internal/ftcalc.h,
include/freetype/internal/ftdriver.h,
include/freetype/internal/ftmemory.h,
include/freetype/internal/ftobjs.h, include/freetype/internal/ftrfork.h,
include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
include/freetype/internal/t1types.h, include/freetype/internal/tttypes.h,
src/base/ftcalc.c, src/base/ftdbgmem.c, src/base/ftobjs.c,
src/base/ftsystem.c, src/base/ftutil.c, src/bdf/bdfdrivr.c,
src/cache/ftccache.c, src/cache/ftccback.h, src/cache/ftccmap.c,
src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
massive changes to the internals to respect the internal object layouts
and exported functions of FreeType 2.1.7. Note that the cache sub-system
cannot be fully retrofitted, unfortunately.
2006-02-16 23:45:31 +01:00
|
|
|
|
2002-03-30 14:16:35 +01:00
|
|
|
TT_Load_Table_Func load_gasp;
|
|
|
|
TT_Load_Table_Func load_pclt;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2006-02-17 09:07:09 +01:00
|
|
|
/* see `ttload.h'; this field was called `load_bitmap_header' up to */
|
|
|
|
/* version 2.1.10 */
|
|
|
|
TT_Load_Table_Func load_bhed;
|
2000-11-07 07:30:29 +01:00
|
|
|
|
2002-03-30 14:16:35 +01:00
|
|
|
TT_Load_SBit_Image_Func load_sbit_image;
|
2006-02-17 09:07:09 +01:00
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
/* see `ttpost.h' */
|
2002-03-30 14:16:35 +01:00
|
|
|
TT_Get_PS_Name_Func get_psname;
|
|
|
|
TT_Free_Table_Func free_psnames;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2006-02-17 09:07:09 +01:00
|
|
|
/* starting here, the structure differs from version 2.1.7 */
|
* builds/amiga/src/base/ftsystem.c, devel/ftoption.h
include/freetype/ftcache.h, include/freetype/ftoutln.h,
include/freetype/cache/ftccache.h, include/freetype/cache/ftccmap.h,
include/freetype/config/ftoption.h, include/freetype/internal/ftcalc.h,
include/freetype/internal/ftdriver.h,
include/freetype/internal/ftmemory.h,
include/freetype/internal/ftobjs.h, include/freetype/internal/ftrfork.h,
include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
include/freetype/internal/t1types.h, include/freetype/internal/tttypes.h,
src/base/ftcalc.c, src/base/ftdbgmem.c, src/base/ftobjs.c,
src/base/ftsystem.c, src/base/ftutil.c, src/bdf/bdfdrivr.c,
src/cache/ftccache.c, src/cache/ftccback.h, src/cache/ftccmap.c,
src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
massive changes to the internals to respect the internal object layouts
and exported functions of FreeType 2.1.7. Note that the cache sub-system
cannot be fully retrofitted, unfortunately.
2006-02-16 23:45:31 +01:00
|
|
|
|
2006-02-17 09:07:09 +01:00
|
|
|
/* this field was introduced in version 2.1.8, named `get_psname' */
|
* builds/amiga/src/base/ftsystem.c, devel/ftoption.h
include/freetype/ftcache.h, include/freetype/ftoutln.h,
include/freetype/cache/ftccache.h, include/freetype/cache/ftccmap.h,
include/freetype/config/ftoption.h, include/freetype/internal/ftcalc.h,
include/freetype/internal/ftdriver.h,
include/freetype/internal/ftmemory.h,
include/freetype/internal/ftobjs.h, include/freetype/internal/ftrfork.h,
include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
include/freetype/internal/t1types.h, include/freetype/internal/tttypes.h,
src/base/ftcalc.c, src/base/ftdbgmem.c, src/base/ftobjs.c,
src/base/ftsystem.c, src/base/ftutil.c, src/bdf/bdfdrivr.c,
src/cache/ftccache.c, src/cache/ftccback.h, src/cache/ftccmap.c,
src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
massive changes to the internals to respect the internal object layouts
and exported functions of FreeType 2.1.7. Note that the cache sub-system
cannot be fully retrofitted, unfortunately.
2006-02-16 23:45:31 +01:00
|
|
|
TT_Face_GetKerningFunc get_kerning;
|
|
|
|
|
2006-02-17 09:07:09 +01:00
|
|
|
/* new elements introduced after version 2.1.10 */
|
* builds/amiga/src/base/ftsystem.c, devel/ftoption.h
include/freetype/ftcache.h, include/freetype/ftoutln.h,
include/freetype/cache/ftccache.h, include/freetype/cache/ftccmap.h,
include/freetype/config/ftoption.h, include/freetype/internal/ftcalc.h,
include/freetype/internal/ftdriver.h,
include/freetype/internal/ftmemory.h,
include/freetype/internal/ftobjs.h, include/freetype/internal/ftrfork.h,
include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
include/freetype/internal/t1types.h, include/freetype/internal/tttypes.h,
src/base/ftcalc.c, src/base/ftdbgmem.c, src/base/ftobjs.c,
src/base/ftsystem.c, src/base/ftutil.c, src/bdf/bdfdrivr.c,
src/cache/ftccache.c, src/cache/ftccback.h, src/cache/ftccmap.c,
src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
massive changes to the internals to respect the internal object layouts
and exported functions of FreeType 2.1.7. Note that the cache sub-system
cannot be fully retrofitted, unfortunately.
2006-02-16 23:45:31 +01:00
|
|
|
|
|
|
|
/* load the font directory, i.e., the offset table and */
|
|
|
|
/* the table directory */
|
|
|
|
TT_Load_Table_Func load_font_dir;
|
|
|
|
TT_Load_Metrics_Func load_hmtx;
|
2007-01-16 07:11:27 +01:00
|
|
|
|
* builds/amiga/src/base/ftsystem.c, devel/ftoption.h
include/freetype/ftcache.h, include/freetype/ftoutln.h,
include/freetype/cache/ftccache.h, include/freetype/cache/ftccmap.h,
include/freetype/config/ftoption.h, include/freetype/internal/ftcalc.h,
include/freetype/internal/ftdriver.h,
include/freetype/internal/ftmemory.h,
include/freetype/internal/ftobjs.h, include/freetype/internal/ftrfork.h,
include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
include/freetype/internal/t1types.h, include/freetype/internal/tttypes.h,
src/base/ftcalc.c, src/base/ftdbgmem.c, src/base/ftobjs.c,
src/base/ftsystem.c, src/base/ftutil.c, src/bdf/bdfdrivr.c,
src/cache/ftccache.c, src/cache/ftccback.h, src/cache/ftccmap.c,
src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
massive changes to the internals to respect the internal object layouts
and exported functions of FreeType 2.1.7. Note that the cache sub-system
cannot be fully retrofitted, unfortunately.
2006-02-16 23:45:31 +01:00
|
|
|
TT_Load_Table_Func load_eblc;
|
|
|
|
TT_Free_Table_Func free_eblc;
|
2007-01-16 07:11:27 +01:00
|
|
|
|
* builds/amiga/src/base/ftsystem.c, devel/ftoption.h
include/freetype/ftcache.h, include/freetype/ftoutln.h,
include/freetype/cache/ftccache.h, include/freetype/cache/ftccmap.h,
include/freetype/config/ftoption.h, include/freetype/internal/ftcalc.h,
include/freetype/internal/ftdriver.h,
include/freetype/internal/ftmemory.h,
include/freetype/internal/ftobjs.h, include/freetype/internal/ftrfork.h,
include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
include/freetype/internal/t1types.h, include/freetype/internal/tttypes.h,
src/base/ftcalc.c, src/base/ftdbgmem.c, src/base/ftobjs.c,
src/base/ftsystem.c, src/base/ftutil.c, src/bdf/bdfdrivr.c,
src/cache/ftccache.c, src/cache/ftccback.h, src/cache/ftccmap.c,
src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
massive changes to the internals to respect the internal object layouts
and exported functions of FreeType 2.1.7. Note that the cache sub-system
cannot be fully retrofitted, unfortunately.
2006-02-16 23:45:31 +01:00
|
|
|
TT_Set_SBit_Strike_Func set_sbit_strike;
|
|
|
|
TT_Load_Strike_Metrics_Func load_strike_metrics;
|
2007-01-16 07:11:27 +01:00
|
|
|
|
* builds/amiga/src/base/ftsystem.c, devel/ftoption.h
include/freetype/ftcache.h, include/freetype/ftoutln.h,
include/freetype/cache/ftccache.h, include/freetype/cache/ftccmap.h,
include/freetype/config/ftoption.h, include/freetype/internal/ftcalc.h,
include/freetype/internal/ftdriver.h,
include/freetype/internal/ftmemory.h,
include/freetype/internal/ftobjs.h, include/freetype/internal/ftrfork.h,
include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
include/freetype/internal/t1types.h, include/freetype/internal/tttypes.h,
src/base/ftcalc.c, src/base/ftdbgmem.c, src/base/ftobjs.c,
src/base/ftsystem.c, src/base/ftutil.c, src/bdf/bdfdrivr.c,
src/cache/ftccache.c, src/cache/ftccback.h, src/cache/ftccmap.c,
src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
massive changes to the internals to respect the internal object layouts
and exported functions of FreeType 2.1.7. Note that the cache sub-system
cannot be fully retrofitted, unfortunately.
2006-02-16 23:45:31 +01:00
|
|
|
TT_Get_Metrics_Func get_metrics;
|
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
} SFNT_Interface;
|
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
|
2002-02-28 17:10:29 +01:00
|
|
|
/* transitional */
|
|
|
|
typedef SFNT_Interface* SFNT_Service;
|
|
|
|
|
Position Independent Code (PIC) support in sfnt driver.
* include/freetype/internal/services/svbdf.h add macros to init
instances of FT_Service_BDFRec.
* include/freetype/internal/services/svgldict.h add macros to init
instances of FT_Service_GlyphDictRec.
* include/freetype/internal/services/svpostnm.h add macros to init
instances of FT_Service_PsFontNameRec.
* include/freetype/internal/services/svsfnt.h add macros to init
instances of FT_Service_SFNT_TableRec.
* include/freetype/internal/services/svttcmap.h add macros to init
instances of FT_Service_TTCMapsRec.
* include/freetype/internal/sfnt.h add macros to init
instances of SFNT_Interface.
* src/sfnt/sfdriver.h declare sfnt_module_class using macros from
ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
functions will be declared.
* src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined
the following structs:
sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name
tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface,
sfnt_module_class, and sfnt_services array
will have functions to init or create and destroy them
instead of being allocated in the global scope.
And macros will be used from sfntpic.h in order to access them
from the pic_container.
* src/sfnt/ttcmap.h add macros to init
instances of TT_CMap_ClassRec.
* src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined
the following structs:
tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec
tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec,
tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array
will have functions to init or create and destroy them
instead of being allocated in the global scope.
And macros will be used from sfntpic.h in order to access them
from the pic_container.
The content of tt_cmap_classes is now described in the
new file 'ttcmapc.h'.
New Files:
* src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt
driver and macros to access them.
* src/sfnt/sfntpic.c implement functions to allocate, destroy and
initialize PIC globals for sfnt driver.
* src/sfnt/ttcmapc.h describing the content of
tt_cmap_classes allocated in ttcmap.c
* src/sfnt/sfnt.c add new file to build: sfntpic.c.
* src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c.
2009-04-05 17:08:32 +02:00
|
|
|
#ifndef FT_CONFIG_OPTION_PIC
|
|
|
|
|
2013-05-10 07:58:47 +02:00
|
|
|
#define FT_DEFINE_SFNT_INTERFACE( \
|
|
|
|
class_, \
|
|
|
|
goto_table_, \
|
|
|
|
init_face_, \
|
|
|
|
load_face_, \
|
|
|
|
done_face_, \
|
|
|
|
get_interface_, \
|
|
|
|
load_any_, \
|
|
|
|
load_head_, \
|
|
|
|
load_hhea_, \
|
|
|
|
load_cmap_, \
|
|
|
|
load_maxp_, \
|
|
|
|
load_os2_, \
|
|
|
|
load_post_, \
|
|
|
|
load_name_, \
|
|
|
|
free_name_, \
|
|
|
|
load_kern_, \
|
|
|
|
load_gasp_, \
|
|
|
|
load_pclt_, \
|
|
|
|
load_bhed_, \
|
|
|
|
load_sbit_image_, \
|
|
|
|
get_psname_, \
|
|
|
|
free_psnames_, \
|
|
|
|
get_kerning_, \
|
|
|
|
load_font_dir_, \
|
|
|
|
load_hmtx_, \
|
|
|
|
load_eblc_, \
|
|
|
|
free_eblc_, \
|
|
|
|
set_sbit_strike_, \
|
|
|
|
load_strike_metrics_, \
|
|
|
|
get_metrics_ ) \
|
|
|
|
static const SFNT_Interface class_ = \
|
|
|
|
{ \
|
|
|
|
goto_table_, \
|
|
|
|
init_face_, \
|
|
|
|
load_face_, \
|
|
|
|
done_face_, \
|
|
|
|
get_interface_, \
|
|
|
|
load_any_, \
|
|
|
|
load_head_, \
|
|
|
|
load_hhea_, \
|
|
|
|
load_cmap_, \
|
|
|
|
load_maxp_, \
|
|
|
|
load_os2_, \
|
|
|
|
load_post_, \
|
|
|
|
load_name_, \
|
|
|
|
free_name_, \
|
|
|
|
load_kern_, \
|
|
|
|
load_gasp_, \
|
|
|
|
load_pclt_, \
|
|
|
|
load_bhed_, \
|
|
|
|
load_sbit_image_, \
|
|
|
|
get_psname_, \
|
|
|
|
free_psnames_, \
|
|
|
|
get_kerning_, \
|
|
|
|
load_font_dir_, \
|
|
|
|
load_hmtx_, \
|
|
|
|
load_eblc_, \
|
|
|
|
free_eblc_, \
|
|
|
|
set_sbit_strike_, \
|
|
|
|
load_strike_metrics_, \
|
|
|
|
get_metrics_, \
|
Position Independent Code (PIC) support in sfnt driver.
* include/freetype/internal/services/svbdf.h add macros to init
instances of FT_Service_BDFRec.
* include/freetype/internal/services/svgldict.h add macros to init
instances of FT_Service_GlyphDictRec.
* include/freetype/internal/services/svpostnm.h add macros to init
instances of FT_Service_PsFontNameRec.
* include/freetype/internal/services/svsfnt.h add macros to init
instances of FT_Service_SFNT_TableRec.
* include/freetype/internal/services/svttcmap.h add macros to init
instances of FT_Service_TTCMapsRec.
* include/freetype/internal/sfnt.h add macros to init
instances of SFNT_Interface.
* src/sfnt/sfdriver.h declare sfnt_module_class using macros from
ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
functions will be declared.
* src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined
the following structs:
sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name
tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface,
sfnt_module_class, and sfnt_services array
will have functions to init or create and destroy them
instead of being allocated in the global scope.
And macros will be used from sfntpic.h in order to access them
from the pic_container.
* src/sfnt/ttcmap.h add macros to init
instances of TT_CMap_ClassRec.
* src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined
the following structs:
tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec
tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec,
tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array
will have functions to init or create and destroy them
instead of being allocated in the global scope.
And macros will be used from sfntpic.h in order to access them
from the pic_container.
The content of tt_cmap_classes is now described in the
new file 'ttcmapc.h'.
New Files:
* src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt
driver and macros to access them.
* src/sfnt/sfntpic.c implement functions to allocate, destroy and
initialize PIC globals for sfnt driver.
* src/sfnt/ttcmapc.h describing the content of
tt_cmap_classes allocated in ttcmap.c
* src/sfnt/sfnt.c add new file to build: sfntpic.c.
* src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c.
2009-04-05 17:08:32 +02:00
|
|
|
};
|
|
|
|
|
2012-01-16 18:00:24 +01:00
|
|
|
#else /* FT_CONFIG_OPTION_PIC */
|
Position Independent Code (PIC) support in sfnt driver.
* include/freetype/internal/services/svbdf.h add macros to init
instances of FT_Service_BDFRec.
* include/freetype/internal/services/svgldict.h add macros to init
instances of FT_Service_GlyphDictRec.
* include/freetype/internal/services/svpostnm.h add macros to init
instances of FT_Service_PsFontNameRec.
* include/freetype/internal/services/svsfnt.h add macros to init
instances of FT_Service_SFNT_TableRec.
* include/freetype/internal/services/svttcmap.h add macros to init
instances of FT_Service_TTCMapsRec.
* include/freetype/internal/sfnt.h add macros to init
instances of SFNT_Interface.
* src/sfnt/sfdriver.h declare sfnt_module_class using macros from
ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
functions will be declared.
* src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined
the following structs:
sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name
tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface,
sfnt_module_class, and sfnt_services array
will have functions to init or create and destroy them
instead of being allocated in the global scope.
And macros will be used from sfntpic.h in order to access them
from the pic_container.
* src/sfnt/ttcmap.h add macros to init
instances of TT_CMap_ClassRec.
* src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined
the following structs:
tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec
tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec,
tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array
will have functions to init or create and destroy them
instead of being allocated in the global scope.
And macros will be used from sfntpic.h in order to access them
from the pic_container.
The content of tt_cmap_classes is now described in the
new file 'ttcmapc.h'.
New Files:
* src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt
driver and macros to access them.
* src/sfnt/sfntpic.c implement functions to allocate, destroy and
initialize PIC globals for sfnt driver.
* src/sfnt/ttcmapc.h describing the content of
tt_cmap_classes allocated in ttcmap.c
* src/sfnt/sfnt.c add new file to build: sfntpic.c.
* src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c.
2009-04-05 17:08:32 +02:00
|
|
|
|
2012-07-29 13:15:53 +02:00
|
|
|
#define FT_INTERNAL( a, a_ ) \
|
|
|
|
clazz->a = a_;
|
|
|
|
|
2013-05-10 07:58:47 +02:00
|
|
|
#define FT_DEFINE_SFNT_INTERFACE( \
|
|
|
|
class_, \
|
|
|
|
goto_table_, \
|
|
|
|
init_face_, \
|
|
|
|
load_face_, \
|
|
|
|
done_face_, \
|
|
|
|
get_interface_, \
|
|
|
|
load_any_, \
|
|
|
|
load_head_, \
|
|
|
|
load_hhea_, \
|
|
|
|
load_cmap_, \
|
|
|
|
load_maxp_, \
|
|
|
|
load_os2_, \
|
|
|
|
load_post_, \
|
|
|
|
load_name_, \
|
|
|
|
free_name_, \
|
|
|
|
load_kern_, \
|
|
|
|
load_gasp_, \
|
|
|
|
load_pclt_, \
|
|
|
|
load_bhed_, \
|
|
|
|
load_sbit_image_, \
|
|
|
|
get_psname_, \
|
|
|
|
free_psnames_, \
|
|
|
|
get_kerning_, \
|
|
|
|
load_font_dir_, \
|
|
|
|
load_hmtx_, \
|
|
|
|
load_eblc_, \
|
|
|
|
free_eblc_, \
|
|
|
|
set_sbit_strike_, \
|
|
|
|
load_strike_metrics_, \
|
|
|
|
get_metrics_ ) \
|
|
|
|
void \
|
|
|
|
FT_Init_Class_ ## class_( FT_Library library, \
|
|
|
|
SFNT_Interface* clazz ) \
|
|
|
|
{ \
|
|
|
|
FT_UNUSED( library ); \
|
|
|
|
\
|
|
|
|
clazz->goto_table = goto_table_; \
|
|
|
|
clazz->init_face = init_face_; \
|
|
|
|
clazz->load_face = load_face_; \
|
|
|
|
clazz->done_face = done_face_; \
|
|
|
|
clazz->get_interface = get_interface_; \
|
|
|
|
clazz->load_any = load_any_; \
|
|
|
|
clazz->load_head = load_head_; \
|
|
|
|
clazz->load_hhea = load_hhea_; \
|
|
|
|
clazz->load_cmap = load_cmap_; \
|
|
|
|
clazz->load_maxp = load_maxp_; \
|
|
|
|
clazz->load_os2 = load_os2_; \
|
|
|
|
clazz->load_post = load_post_; \
|
|
|
|
clazz->load_name = load_name_; \
|
|
|
|
clazz->free_name = free_name_; \
|
|
|
|
clazz->load_kern = load_kern_; \
|
|
|
|
clazz->load_gasp = load_gasp_; \
|
|
|
|
clazz->load_pclt = load_pclt_; \
|
|
|
|
clazz->load_bhed = load_bhed_; \
|
|
|
|
clazz->load_sbit_image = load_sbit_image_; \
|
|
|
|
clazz->get_psname = get_psname_; \
|
|
|
|
clazz->free_psnames = free_psnames_; \
|
|
|
|
clazz->get_kerning = get_kerning_; \
|
|
|
|
clazz->load_font_dir = load_font_dir_; \
|
|
|
|
clazz->load_hmtx = load_hmtx_; \
|
|
|
|
clazz->load_eblc = load_eblc_; \
|
|
|
|
clazz->free_eblc = free_eblc_; \
|
|
|
|
clazz->set_sbit_strike = set_sbit_strike_; \
|
|
|
|
clazz->load_strike_metrics = load_strike_metrics_; \
|
|
|
|
clazz->get_metrics = get_metrics_; \
|
2012-01-16 18:00:24 +01:00
|
|
|
}
|
Position Independent Code (PIC) support in sfnt driver.
* include/freetype/internal/services/svbdf.h add macros to init
instances of FT_Service_BDFRec.
* include/freetype/internal/services/svgldict.h add macros to init
instances of FT_Service_GlyphDictRec.
* include/freetype/internal/services/svpostnm.h add macros to init
instances of FT_Service_PsFontNameRec.
* include/freetype/internal/services/svsfnt.h add macros to init
instances of FT_Service_SFNT_TableRec.
* include/freetype/internal/services/svttcmap.h add macros to init
instances of FT_Service_TTCMapsRec.
* include/freetype/internal/sfnt.h add macros to init
instances of SFNT_Interface.
* src/sfnt/sfdriver.h declare sfnt_module_class using macros from
ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
functions will be declared.
* src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined
the following structs:
sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name
tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface,
sfnt_module_class, and sfnt_services array
will have functions to init or create and destroy them
instead of being allocated in the global scope.
And macros will be used from sfntpic.h in order to access them
from the pic_container.
* src/sfnt/ttcmap.h add macros to init
instances of TT_CMap_ClassRec.
* src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined
the following structs:
tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec
tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec,
tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array
will have functions to init or create and destroy them
instead of being allocated in the global scope.
And macros will be used from sfntpic.h in order to access them
from the pic_container.
The content of tt_cmap_classes is now described in the
new file 'ttcmapc.h'.
New Files:
* src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt
driver and macros to access them.
* src/sfnt/sfntpic.c implement functions to allocate, destroy and
initialize PIC globals for sfnt driver.
* src/sfnt/ttcmapc.h describing the content of
tt_cmap_classes allocated in ttcmap.c
* src/sfnt/sfnt.c add new file to build: sfntpic.c.
* src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c.
2009-04-05 17:08:32 +02:00
|
|
|
|
2012-01-16 18:00:24 +01:00
|
|
|
#endif /* FT_CONFIG_OPTION_PIC */
|
2002-03-30 14:16:35 +01:00
|
|
|
|
2000-12-01 00:12:33 +01:00
|
|
|
FT_END_HEADER
|
2000-08-01 15:17:04 +02:00
|
|
|
|
2000-12-01 00:12:33 +01:00
|
|
|
#endif /* __SFNT_H__ */
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
|
|
|
|
/* END */
|