2000-07-08 21:51:42 +02:00
|
|
|
/***************************************************************************/
|
|
|
|
/* */
|
2000-10-28 19:10:06 +02:00
|
|
|
/* t1objs.h */
|
2000-07-08 21:51:42 +02:00
|
|
|
/* */
|
2000-10-28 19:10:06 +02:00
|
|
|
/* Type 1 objects manager (specification). */
|
2000-07-08 21:51:42 +02:00
|
|
|
/* */
|
2006-01-13 15:53:28 +01:00
|
|
|
/* Copyright 1996-2001, 2002, 2006 by */
|
2000-07-08 21:51:42 +02: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-01-27 15:02:04 +01:00
|
|
|
|
2000-12-09 01:45:38 +01:00
|
|
|
#ifndef __T1OBJS_H__
|
|
|
|
#define __T1OBJS_H__
|
2000-01-27 15:02:04 +01:00
|
|
|
|
2000-12-08 17:17:16 +01:00
|
|
|
|
2000-12-08 03:42:29 +01:00
|
|
|
#include <ft2build.h>
|
|
|
|
#include FT_INTERNAL_OBJECTS_H
|
|
|
|
#include FT_CONFIG_CONFIG_H
|
|
|
|
#include FT_INTERNAL_TYPE1_TYPES_H
|
2000-01-27 15:02:04 +01:00
|
|
|
|
2000-12-08 17:17:16 +01:00
|
|
|
|
2000-12-08 03:42:29 +01:00
|
|
|
FT_BEGIN_HEADER
|
2000-01-27 15:02:04 +01:00
|
|
|
|
2000-12-08 17:17:16 +01:00
|
|
|
|
2000-01-27 15:02:04 +01:00
|
|
|
/* The following structures must be defined by the hinter */
|
2000-10-28 19:10:06 +02:00
|
|
|
typedef struct T1_Size_Hints_ T1_Size_Hints;
|
|
|
|
typedef struct T1_Glyph_Hints_ T1_Glyph_Hints;
|
2000-01-27 15:02:04 +01:00
|
|
|
|
2000-07-08 21:51:42 +02:00
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Type> */
|
2000-10-28 19:10:06 +02:00
|
|
|
/* T1_Driver */
|
2000-07-08 21:51:42 +02:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A handle to a Type 1 driver object. */
|
|
|
|
/* */
|
2000-10-28 19:10:06 +02:00
|
|
|
typedef struct T1_DriverRec_ *T1_Driver;
|
2000-01-27 15:02:04 +01:00
|
|
|
|
|
|
|
|
2000-07-08 21:51:42 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Type> */
|
2000-10-28 19:10:06 +02:00
|
|
|
/* T1_Size */
|
2000-07-08 21:51:42 +02:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A handle to a Type 1 size object. */
|
|
|
|
/* */
|
2000-10-28 19:10:06 +02:00
|
|
|
typedef struct T1_SizeRec_* T1_Size;
|
2000-01-27 15:02:04 +01:00
|
|
|
|
|
|
|
|
2000-07-08 21:51:42 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Type> */
|
2000-10-28 19:10:06 +02:00
|
|
|
/* T1_GlyphSlot */
|
2000-07-08 21:51:42 +02:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A handle to a Type 1 glyph slot object. */
|
|
|
|
/* */
|
2000-10-28 19:10:06 +02:00
|
|
|
typedef struct T1_GlyphSlotRec_* T1_GlyphSlot;
|
2000-01-27 15:02:04 +01:00
|
|
|
|
|
|
|
|
2000-07-08 21:51:42 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Type> */
|
2000-10-28 19:10:06 +02:00
|
|
|
/* T1_CharMap */
|
2000-07-08 21:51:42 +02:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A handle to a Type 1 character mapping object. */
|
|
|
|
/* */
|
|
|
|
/* <Note> */
|
|
|
|
/* The Type 1 format doesn't use a charmap but an encoding table. */
|
|
|
|
/* The driver is responsible for making up charmap objects */
|
|
|
|
/* corresponding to these tables. */
|
|
|
|
/* */
|
2000-10-28 19:10:06 +02:00
|
|
|
typedef struct T1_CharMapRec_* T1_CharMap;
|
2000-01-27 15:02:04 +01:00
|
|
|
|
|
|
|
|
2000-07-08 21:51:42 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* HERE BEGINS THE TYPE1 SPECIFIC STUFF */
|
|
|
|
/* */
|
|
|
|
/*************************************************************************/
|
2000-01-27 15:02:04 +01:00
|
|
|
|
2000-05-17 01:44:38 +02:00
|
|
|
|
2000-07-08 21:51:42 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Type> */
|
2000-10-28 19:10:06 +02:00
|
|
|
/* T1_SizeRec */
|
2000-07-08 21:51:42 +02:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* Type 1 size record. */
|
|
|
|
/* */
|
2000-10-28 19:10:06 +02:00
|
|
|
typedef struct T1_SizeRec_
|
2000-01-27 15:02:04 +01:00
|
|
|
{
|
2001-10-18 13:49:26 +02:00
|
|
|
FT_SizeRec root;
|
|
|
|
|
2000-10-28 19:10:06 +02:00
|
|
|
} T1_SizeRec;
|
2000-01-27 15:02:04 +01:00
|
|
|
|
|
|
|
|
2002-03-01 03:26:22 +01:00
|
|
|
FT_LOCAL( void )
|
2001-12-05 02:22:05 +01:00
|
|
|
T1_Size_Done( T1_Size size );
|
|
|
|
|
2002-03-01 03:26:22 +01:00
|
|
|
FT_LOCAL( 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
|
|
|
T1_Size_Request( T1_Size size );
|
2001-10-18 13:49:26 +02:00
|
|
|
|
2002-03-01 03:26:22 +01:00
|
|
|
FT_LOCAL( FT_Error )
|
2001-12-05 02:22:05 +01:00
|
|
|
T1_Size_Init( T1_Size size );
|
2001-10-18 13:49:26 +02:00
|
|
|
|
|
|
|
|
2000-07-08 21:51:42 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Type> */
|
2000-10-28 19:10:06 +02:00
|
|
|
/* T1_GlyphSlotRec */
|
2000-07-08 21:51:42 +02:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* Type 1 glyph slot record. */
|
|
|
|
/* */
|
2000-10-28 19:10:06 +02:00
|
|
|
typedef struct T1_GlyphSlotRec_
|
2000-01-27 15:02:04 +01:00
|
|
|
{
|
|
|
|
FT_GlyphSlotRec root;
|
|
|
|
|
2000-06-16 21:34:52 +02:00
|
|
|
FT_Bool hint;
|
|
|
|
FT_Bool scaled;
|
2000-05-17 01:44:38 +02:00
|
|
|
|
2000-06-16 21:34:52 +02:00
|
|
|
FT_Int max_points;
|
|
|
|
FT_Int max_contours;
|
2000-01-27 15:02:04 +01:00
|
|
|
|
|
|
|
FT_Fixed x_scale;
|
|
|
|
FT_Fixed y_scale;
|
|
|
|
|
2000-10-28 19:10:06 +02:00
|
|
|
} T1_GlyphSlotRec;
|
2000-01-27 15:02:04 +01:00
|
|
|
|
|
|
|
|
2002-03-01 03:26:22 +01:00
|
|
|
FT_LOCAL( FT_Error )
|
2001-10-18 13:49:26 +02:00
|
|
|
T1_Face_Init( FT_Stream stream,
|
2001-06-28 09:17:51 +02:00
|
|
|
T1_Face face,
|
|
|
|
FT_Int face_index,
|
|
|
|
FT_Int num_params,
|
|
|
|
FT_Parameter* params );
|
2000-01-27 15:02:04 +01:00
|
|
|
|
2002-03-01 03:26:22 +01:00
|
|
|
FT_LOCAL( void )
|
2001-10-18 13:49:26 +02:00
|
|
|
T1_Face_Done( T1_Face face );
|
|
|
|
|
2002-03-01 03:26:22 +01:00
|
|
|
FT_LOCAL( FT_Error )
|
2001-10-18 13:49:26 +02:00
|
|
|
T1_GlyphSlot_Init( T1_GlyphSlot slot );
|
|
|
|
|
2002-03-01 03:26:22 +01:00
|
|
|
FT_LOCAL( void )
|
2001-10-18 13:49:26 +02:00
|
|
|
T1_GlyphSlot_Done( T1_GlyphSlot slot );
|
2000-01-27 15:02:04 +01:00
|
|
|
|
2002-03-01 03:26:22 +01:00
|
|
|
FT_LOCAL( FT_Error )
|
2001-10-18 13:49:26 +02:00
|
|
|
T1_Driver_Init( T1_Driver driver );
|
2000-01-27 15:02:04 +01:00
|
|
|
|
2002-03-01 03:26:22 +01:00
|
|
|
FT_LOCAL( void )
|
2001-10-18 13:49:26 +02:00
|
|
|
T1_Driver_Done( T1_Driver driver );
|
2000-01-27 15:02:04 +01:00
|
|
|
|
2000-07-08 21:51:42 +02:00
|
|
|
|
2000-12-08 03:42:29 +01:00
|
|
|
FT_END_HEADER
|
2000-01-27 15:02:04 +01:00
|
|
|
|
2000-12-09 01:45:38 +01:00
|
|
|
#endif /* __T1OBJS_H__ */
|
2000-01-27 15:02:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
/* END */
|