2000-07-19 04:59:31 +02:00
|
|
|
/***************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* t1types.h */
|
|
|
|
/* */
|
|
|
|
/* Basic Type1/Type2 type definitions and interface (specification */
|
|
|
|
/* only). */
|
|
|
|
/* */
|
2006-01-12 09:12:27 +01:00
|
|
|
/* Copyright 1996-2001, 2002, 2003, 2004, 2006 by */
|
2000-07-19 04:59:31 +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. */
|
|
|
|
/* */
|
|
|
|
/***************************************************************************/
|
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2000-12-01 00:12:33 +01:00
|
|
|
#ifndef __T1TYPES_H__
|
|
|
|
#define __T1TYPES_H__
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2000-12-09 01:45:38 +01:00
|
|
|
|
2002-05-21 16:13:01 +02:00
|
|
|
#include <ft2build.h>
|
2000-12-09 01:45:38 +01:00
|
|
|
#include FT_TYPE1_TABLES_H
|
2001-10-18 13:49:26 +02:00
|
|
|
#include FT_INTERNAL_POSTSCRIPT_HINTS_H
|
2003-09-30 07:39:35 +02:00
|
|
|
#include FT_INTERNAL_SERVICE_H
|
* include/freetype/internal/bdftypes.h: removed obsolete header
* include/freetype/internal/cfftypes.h, src/cff/cfftypes.h,
src/cff/cffload.h, src/cff/cffobjs.h, src/cff/cffparse.h,
include/freetype/internal/services/svbdf.h: moving "cfftypes.h" from
'include/freetype/internal' to 'src/cff' since no other modules needs
to known about these types
* include/freetype/internal/t42types.h,
include/freetype/internal/internal.h, src/type42/t42objs.h,
src/type42/t42drivr.c, src/type42/t42types.h: moving "t42types.h" from
'include/freetype/internal' to 'src/type42' since no other modules needs
to known about these types
* src/gzip/infblock.c: removing compiler warning
* include/freetype/internal/services/svpsinfo.h,
include/freetype/internal/ftserv.h, src/cff/cffdrivr.c,
src/cid/ciddrivr.c, src/type1/t1driver.c, src/type42/t42drivr.c,
src/base/fttype1.c: migrating to FT_SERVICE_ID_POSTSCRIPT_INFO defined
in "svpsinfo.h", removing some sad hacks.
2003-10-29 22:43:52 +01:00
|
|
|
#include FT_SERVICE_POSTSCRIPT_CMAPS_H
|
2000-12-01 00:12:33 +01:00
|
|
|
|
2001-12-05 02:22:05 +01:00
|
|
|
|
2000-12-01 00:12:33 +01:00
|
|
|
FT_BEGIN_HEADER
|
2000-08-01 15:17:04 +02:00
|
|
|
|
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/*************************************************************************/
|
|
|
|
/*************************************************************************/
|
|
|
|
/*** ***/
|
|
|
|
/*** ***/
|
|
|
|
/*** REQUIRED TYPE1/TYPE2 TABLES DEFINITIONS ***/
|
|
|
|
/*** ***/
|
|
|
|
/*** ***/
|
|
|
|
/*************************************************************************/
|
|
|
|
/*************************************************************************/
|
|
|
|
/*************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Struct> */
|
2002-02-28 19:59:37 +01:00
|
|
|
/* T1_EncodingRec */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* */
|
|
|
|
/* <Description> */
|
* INSTALL: Revised.
* builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
builds/win32/w32-bccd.mk: Revised.
* include/freetype/config/ftbuild.h,
include/freetype/internal/internal.h: Revised.
* include/freetype/ftimage.h: Updated to new header inclusion scheme.
* builds/toplevel.mk (.PHONY): Adding `distclean'.
* builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
`setup'.
* INSTALL: Slightly updated the quick starter documentation to
include IDE compilation, prevent against BSD Make, and specify "make
setup" instead of a single "make" for build configuration.
* include/config/ftbuild.h, include/internal/internal.h: Added new
configuration files used to determine the location of all public,
configuration, and internal header files for FreeType 2. Modified
all headers under "include/freetype" to reflect this change. Note
that we still need to change the library source files themselves
though.
builds/win32/detect.mk: Added new files to support compilation with
the free Borland C++ command-line compiler. Modified the detection
rules to recognize the new "bcc32" target in "make setup bcc32".
src/truetype/ttobjs.c, src/truetype/ttgload.c,
src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
didn't really like. Basically, this compiler complains when FT_UInt
is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
in these cases).
2000-12-01 18:25:58 +01:00
|
|
|
/* A structure modeling a custom encoding. */
|
2000-07-19 04:59:31 +02:00
|
|
|
/* */
|
|
|
|
/* <Fields> */
|
|
|
|
/* num_chars :: The number of character codes in the encoding. */
|
|
|
|
/* Usually 256. */
|
|
|
|
/* */
|
|
|
|
/* code_first :: The lowest valid character code in the encoding. */
|
|
|
|
/* */
|
|
|
|
/* code_last :: The highest valid character code in the encoding. */
|
|
|
|
/* */
|
|
|
|
/* char_index :: An array of corresponding glyph indices. */
|
|
|
|
/* */
|
|
|
|
/* char_name :: An array of corresponding glyph names. */
|
|
|
|
/* */
|
2002-02-28 19:59:37 +01:00
|
|
|
typedef struct T1_EncodingRecRec_
|
2000-01-27 14:56:02 +01:00
|
|
|
{
|
2000-07-19 04:59:31 +02:00
|
|
|
FT_Int num_chars;
|
|
|
|
FT_Int code_first;
|
|
|
|
FT_Int code_last;
|
2000-01-27 14:56:02 +01:00
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
FT_UShort* char_index;
|
|
|
|
FT_String** char_name;
|
2000-01-27 14:56:02 +01:00
|
|
|
|
2002-02-28 19:59:37 +01:00
|
|
|
} T1_EncodingRec, *T1_Encoding;
|
2000-01-27 14:56:02 +01:00
|
|
|
|
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
typedef enum T1_EncodingType_
|
2000-01-27 14:56:02 +01:00
|
|
|
{
|
2002-02-28 19:59:37 +01:00
|
|
|
T1_ENCODING_TYPE_NONE = 0,
|
|
|
|
T1_ENCODING_TYPE_ARRAY,
|
|
|
|
T1_ENCODING_TYPE_STANDARD,
|
|
|
|
T1_ENCODING_TYPE_ISOLATIN1,
|
2002-05-12 21:59:17 +02:00
|
|
|
T1_ENCODING_TYPE_EXPERT
|
2000-01-27 14:56:02 +01:00
|
|
|
|
|
|
|
} T1_EncodingType;
|
|
|
|
|
|
|
|
|
2002-02-28 19:59:37 +01:00
|
|
|
typedef struct T1_FontRec_
|
1999-12-17 00:11:37 +01:00
|
|
|
{
|
2002-03-30 14:16:35 +01:00
|
|
|
PS_FontInfoRec font_info; /* font info dictionary */
|
|
|
|
PS_PrivateRec private_dict; /* private dictionary */
|
|
|
|
FT_String* font_name; /* top-level dictionary */
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2000-01-27 14:56:02 +01:00
|
|
|
T1_EncodingType encoding_type;
|
2002-02-28 19:59:37 +01:00
|
|
|
T1_EncodingRec encoding;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
FT_Byte* subrs_block;
|
|
|
|
FT_Byte* charstrings_block;
|
|
|
|
FT_Byte* glyph_names_block;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
FT_Int num_subrs;
|
|
|
|
FT_Byte** subrs;
|
2003-12-09 03:12:14 +01:00
|
|
|
FT_PtrDist* subrs_len;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
FT_Int num_glyphs;
|
|
|
|
FT_String** glyph_names; /* array of glyph names */
|
|
|
|
FT_Byte** charstrings; /* array of glyph charstrings */
|
2003-12-09 03:12:14 +01:00
|
|
|
FT_PtrDist* charstrings_len;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2003-10-22 22:24:47 +02:00
|
|
|
FT_Byte paint_type;
|
2000-07-19 04:59:31 +02:00
|
|
|
FT_Byte font_type;
|
|
|
|
FT_Matrix font_matrix;
|
2000-08-17 03:09:06 +02:00
|
|
|
FT_Vector font_offset;
|
2000-07-19 04:59:31 +02:00
|
|
|
FT_BBox font_bbox;
|
|
|
|
FT_Long font_id;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2003-10-22 22:24:47 +02:00
|
|
|
FT_Fixed stroke_width;
|
2000-05-17 01:44:38 +02:00
|
|
|
|
2002-02-28 19:59:37 +01:00
|
|
|
} T1_FontRec, *T1_Font;
|
2000-05-17 01:44:38 +02:00
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2002-02-28 19:59:37 +01:00
|
|
|
typedef struct CID_SubrsRec_
|
2000-06-01 05:27:48 +02:00
|
|
|
{
|
|
|
|
FT_UInt num_subrs;
|
|
|
|
FT_Byte** code;
|
2000-10-31 21:42:18 +01:00
|
|
|
|
2002-02-28 19:59:37 +01:00
|
|
|
} CID_SubrsRec, *CID_Subrs;
|
2000-06-01 05:27:48 +02:00
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/*************************************************************************/
|
|
|
|
/*************************************************************************/
|
|
|
|
/*** ***/
|
|
|
|
/*** ***/
|
|
|
|
/*** ORIGINAL T1_FACE CLASS DEFINITION ***/
|
|
|
|
/*** ***/
|
|
|
|
/*** ***/
|
|
|
|
/*************************************************************************/
|
|
|
|
/*************************************************************************/
|
|
|
|
/*************************************************************************/
|
|
|
|
|
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
typedef struct T1_FaceRec_* T1_Face;
|
2000-06-01 05:27:48 +02:00
|
|
|
typedef struct CID_FaceRec_* CID_Face;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
typedef struct T1_FaceRec_
|
1999-12-17 00:11:37 +01:00
|
|
|
{
|
2006-01-12 09:12:27 +01:00
|
|
|
FT_FaceRec root;
|
|
|
|
T1_FontRec type1;
|
|
|
|
const void* psnames;
|
|
|
|
const void* psaux;
|
|
|
|
const void* afm_data;
|
|
|
|
FT_CharMapRec charmaprecs[2];
|
|
|
|
FT_CharMap charmaps[2];
|
|
|
|
PS_UnicodesRec unicode_map;
|
1999-12-17 00:11:37 +01:00
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
/* support for Multiple Masters fonts */
|
2006-01-12 09:12:27 +01:00
|
|
|
PS_Blend blend;
|
2003-09-29 22:33:37 +02:00
|
|
|
|
2001-12-05 02:22:05 +01:00
|
|
|
/* since FT 2.1 - interface to PostScript hinter */
|
2006-01-12 09:12:27 +01:00
|
|
|
const void* pshinter;
|
2000-05-24 23:12:02 +02:00
|
|
|
|
1999-12-17 00:11:37 +01:00
|
|
|
} T1_FaceRec;
|
|
|
|
|
|
|
|
|
2000-07-19 04:59:31 +02:00
|
|
|
typedef struct CID_FaceRec_
|
2000-06-01 05:27:48 +02:00
|
|
|
{
|
2002-03-30 14:16:35 +01:00
|
|
|
FT_FaceRec root;
|
|
|
|
void* psnames;
|
|
|
|
void* psaux;
|
|
|
|
CID_FaceInfoRec cid;
|
|
|
|
void* afm_data;
|
2004-01-23 20:52:40 +01:00
|
|
|
FT_Byte* binary_data; /* used if hex data has been converted */
|
|
|
|
FT_Stream cid_stream;
|
2002-03-30 14:16:35 +01:00
|
|
|
CID_Subrs subrs;
|
2003-09-29 22:33:37 +02:00
|
|
|
|
2001-12-20 10:36:21 +01:00
|
|
|
/* since FT 2.1 - interface to PostScript hinter */
|
2002-03-30 14:16:35 +01:00
|
|
|
void* pshinter;
|
2000-10-31 21:42:18 +01:00
|
|
|
|
2000-06-01 05:27:48 +02:00
|
|
|
} CID_FaceRec;
|
|
|
|
|
2000-06-27 07:58:22 +02: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 /* __T1TYPES_H__ */
|
2000-06-27 07:58:22 +02:00
|
|
|
|
|
|
|
|
|
|
|
/* END */
|