1999-12-17 00:11:37 +01:00
|
|
|
/***************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* sfnt.h */
|
|
|
|
/* */
|
|
|
|
/* High-level `sfnt' driver interface (specification). */
|
|
|
|
/* */
|
2006-01-13 15:53:28 +01:00
|
|
|
/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006 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-14 08:01:29 +01:00
|
|
|
|
2006-02-15 07:05:52 +01:00
|
|
|
/* load the font directory, i.e., the offset table and */
|
|
|
|
/* the table directory */
|
2006-02-14 08:01:29 +01:00
|
|
|
TT_Load_Table_Func load_font_dir;
|
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;
|
2006-02-14 08:25:57 +01:00
|
|
|
TT_Load_Metrics_Func load_hmtx;
|
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_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;
|
|
|
|
TT_Load_Table_Func load_name;
|
|
|
|
TT_Free_Table_Func free_name;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
/* optional tables */
|
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_kern;
|
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
|
|
|
|
2000-11-07 07:30:29 +01:00
|
|
|
/* see `ttload.h' */
|
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_bhed;
|
2000-11-07 07:30:29 +01:00
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
/* see `ttsbit.h' */
|
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_eblc;
|
|
|
|
TT_Free_Table_Func free_eblc;
|
|
|
|
|
2002-03-30 14:16:35 +01:00
|
|
|
TT_Set_SBit_Strike_Func set_sbit_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
|
|
|
TT_Load_Strike_Metrics_Func load_strike_metrics;
|
2004-04-13 23:08:17 +02:00
|
|
|
TT_Find_SBit_Image_Func find_sbit_image;
|
|
|
|
TT_Load_SBit_Metrics_Func load_sbit_metrics;
|
2002-03-30 14:16:35 +01:00
|
|
|
TT_Load_SBit_Image_Func load_sbit_image;
|
2000-05-17 01:44:38 +02:00
|
|
|
|
2005-03-01 03:13:50 +01:00
|
|
|
/* see `ttkern.h' */
|
2005-02-26 01:12:04 +01:00
|
|
|
TT_Face_GetKerningFunc get_kerning;
|
|
|
|
|
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_Get_Metrics_Func get_metrics;
|
|
|
|
|
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
|
|
|
|
|
|
|
} SFNT_Interface;
|
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
|
2002-02-28 17:10:29 +01:00
|
|
|
/* transitional */
|
|
|
|
typedef SFNT_Interface* SFNT_Service;
|
|
|
|
|
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 */
|