This commit was generated by cvs2svn to compensate for changes in r2038,
which included commits to RCS files with non-trunk default branches. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2039 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -23,9 +23,6 @@
|
||||
/* define to allow cache lookup inlining */
|
||||
#define FTC_CACHE_USE_INLINE
|
||||
|
||||
/* define to use linear hash table */
|
||||
#define FTC_CACHE_USE_LINEAR_HASHING
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
@@ -181,14 +178,9 @@ FT_BEGIN_HEADER
|
||||
FT_UInt cache_index; /* in manager's table */
|
||||
FT_Pointer cache_data; /* used by cache node methods */
|
||||
|
||||
#ifdef FTC_CACHE_USE_LINEAR_HASHING
|
||||
FT_UFast p;
|
||||
FT_UFast mask;
|
||||
FT_Long slack;
|
||||
#else
|
||||
FT_UFast nodes;
|
||||
FT_UFast size;
|
||||
#endif
|
||||
FTC_Node* buckets;
|
||||
|
||||
FT_LruList_ClassRec family_class;
|
||||
|
||||
+54
-53
@@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* FreeType Image cache (specification). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 by */
|
||||
/* Copyright 2000-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@@ -53,65 +53,43 @@ FT_BEGIN_HEADER
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
#define FTC_IMAGE_FORMAT( x ) ( (x) & 7 )
|
||||
|
||||
|
||||
#define ftc_image_format_bitmap 0x0000
|
||||
#define ftc_image_format_outline 0x0001
|
||||
|
||||
#define ftc_image_format_mask 0x000F
|
||||
|
||||
#define ftc_image_flag_monochrome 0x0010
|
||||
#define ftc_image_flag_unhinted 0x0020
|
||||
#define ftc_image_flag_autohinted 0x0040
|
||||
#define ftc_image_flag_unscaled 0x0080
|
||||
#define ftc_image_flag_no_sbits 0x0100
|
||||
|
||||
/* monochrome bitmap */
|
||||
#define ftc_image_mono ftc_image_format_bitmap | \
|
||||
ftc_image_flag_monochrome
|
||||
|
||||
/* anti-aliased bitmap */
|
||||
#define ftc_image_grays ftc_image_format_bitmap
|
||||
|
||||
/* scaled outline */
|
||||
#define ftc_image_outline ftc_image_format_outline
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Struct> */
|
||||
/* FTC_ImageDesc */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A simple structure used to describe a given glyph image category. */
|
||||
/* Note that this is different from @FTC_Image_Desc. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* size :: An @FTC_SizeRec used to describe the glyph's face and */
|
||||
/* size. */
|
||||
/* */
|
||||
/* type :: The glyph image's type. Note that it is a 32-bit uint. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* This type deprecates @FTC_Image_Desc. */
|
||||
/* */
|
||||
typedef struct FTC_ImageDesc_
|
||||
/**************************************************************************
|
||||
*
|
||||
* @struct:
|
||||
* FTC_ImageTypeRec
|
||||
*
|
||||
* @description:
|
||||
* A simple structure used to describe the type of glyph image to be
|
||||
* loaded into the cache.
|
||||
*
|
||||
* @fields:
|
||||
* font :: An @FTC_FontRec used to describe the glyph's face and size.
|
||||
*
|
||||
* flags :: The load flags to be applied when loading the glyph; see
|
||||
* the @FT_LOAD_XXX constants for details.
|
||||
*
|
||||
* @note:
|
||||
* This type completely replaces the @FTC_Image_Desc structure which is
|
||||
* now obsolete.
|
||||
*/
|
||||
typedef struct FTC_ImageTypeRec_
|
||||
{
|
||||
FTC_FontRec font;
|
||||
FT_UInt32 type;
|
||||
FT_Int32 flags;
|
||||
|
||||
} FTC_ImageDesc;
|
||||
} FTC_ImageTypeRec;
|
||||
|
||||
typedef struct FTC_ImageTypeRec_* FTC_ImageType;
|
||||
|
||||
/* */
|
||||
|
||||
#define FTC_IMAGE_DESC_COMPARE( d1, d2 ) \
|
||||
#define FTC_IMAGE_TYPE_COMPARE( d1, d2 ) \
|
||||
( FTC_FONT_COMPARE( &(d1)->font, &(d2)->font ) && \
|
||||
(d1)->type == (d2)->type )
|
||||
(d1)->flags == (d2)->flags )
|
||||
|
||||
#define FTC_IMAGE_DESC_HASH( d ) \
|
||||
#define FTC_IMAGE_TYPE_HASH( d ) \
|
||||
(FT_UFast)( FTC_FONT_HASH( &(d)->font ) ^ \
|
||||
( (d)->type << 4 ) )
|
||||
( (d)->flags << 4 ) )
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@@ -160,7 +138,7 @@ FT_BEGIN_HEADER
|
||||
/* <Input> */
|
||||
/* cache :: A handle to the source glyph image cache. */
|
||||
/* */
|
||||
/* desc :: A pointer to a glyph image descriptor. */
|
||||
/* type :: A pointer to a glyph image type descriptor. */
|
||||
/* */
|
||||
/* gindex :: The glyph index to retrieve. */
|
||||
/* */
|
||||
@@ -193,13 +171,36 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FTC_ImageCache_Lookup( FTC_ImageCache cache,
|
||||
FTC_ImageDesc* desc,
|
||||
FTC_ImageType type,
|
||||
FT_UInt gindex,
|
||||
FT_Glyph *aglyph,
|
||||
FTC_Node *anode );
|
||||
|
||||
/* */
|
||||
|
||||
#define ftc_image_format( x ) ( (x) & 7 )
|
||||
|
||||
|
||||
#define ftc_image_format_bitmap 0x0000
|
||||
#define ftc_image_format_outline 0x0001
|
||||
|
||||
#define ftc_image_format_mask 0x000F
|
||||
|
||||
#define ftc_image_flag_monochrome 0x0010
|
||||
#define ftc_image_flag_unhinted 0x0020
|
||||
#define ftc_image_flag_autohinted 0x0040
|
||||
#define ftc_image_flag_unscaled 0x0080
|
||||
#define ftc_image_flag_no_sbits 0x0100
|
||||
|
||||
/* monochrome bitmap */
|
||||
#define ftc_image_mono ftc_image_format_bitmap | \
|
||||
ftc_image_flag_monochrome
|
||||
|
||||
/* anti-aliased bitmap */
|
||||
#define ftc_image_grays ftc_image_format_bitmap
|
||||
|
||||
/* scaled outline */
|
||||
#define ftc_image_outline ftc_image_format_outline
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
|
||||
+7
-7
@@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* A small-bitmap cache (specification). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 by */
|
||||
/* Copyright 2000-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@@ -72,7 +72,7 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* format :: The format of the glyph bitmap (monochrome or gray). */
|
||||
/* */
|
||||
/* num_grays :: The number of gray levels. */
|
||||
/* max_grays :: Maximum gray level value (in the range 1 to 255). */
|
||||
/* */
|
||||
/* pitch :: The number of bytes per bitmap line. May be positive */
|
||||
/* or negative. */
|
||||
@@ -91,8 +91,8 @@ FT_BEGIN_HEADER
|
||||
FT_Char top;
|
||||
|
||||
FT_Byte format;
|
||||
FT_Short num_grays; /* XXX: Should be FT_Byte. See ftcsbits.c */
|
||||
FT_Char pitch;
|
||||
FT_Byte max_grays;
|
||||
FT_Short pitch;
|
||||
FT_Char xadvance;
|
||||
FT_Char yadvance;
|
||||
|
||||
@@ -113,7 +113,7 @@ FT_BEGIN_HEADER
|
||||
/* implemented by @FTC_ImageCache. */
|
||||
/* */
|
||||
typedef struct FTC_SBitCacheRec_* FTC_SBitCache;
|
||||
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
@@ -160,7 +160,7 @@ FT_BEGIN_HEADER
|
||||
/* <Input> */
|
||||
/* cache :: A handle to the source sbit cache. */
|
||||
/* */
|
||||
/* desc :: A pointer to the glyph image descriptor. */
|
||||
/* type :: A pointer to the glyph image type descriptor. */
|
||||
/* */
|
||||
/* gindex :: The glyph index. */
|
||||
/* */
|
||||
@@ -195,7 +195,7 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FTC_SBitCache_Lookup( FTC_SBitCache cache,
|
||||
FTC_ImageDesc* desc,
|
||||
FTC_ImageType type,
|
||||
FT_UInt gindex,
|
||||
FTC_SBit *sbit,
|
||||
FTC_Node *anode );
|
||||
|
||||
@@ -361,6 +361,17 @@
|
||||
/* */
|
||||
#define FT_BDF_H <freetype/ftbdf.h>
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* @macro: */
|
||||
/* FT_GZIP_H */
|
||||
/* */
|
||||
/* @description: */
|
||||
/* A macro used in #include statements to name the file containing */
|
||||
/* the definitions of an API to support for gzip-compressed files. */
|
||||
/* */
|
||||
#define FT_GZIP_H <freetype/ftgzip.h>
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
@@ -487,6 +498,7 @@
|
||||
/* */
|
||||
|
||||
#define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
|
||||
#define FT_STROKER_H <freetype/ftstroker.h>
|
||||
#define FT_SYNTHESIS_H <freetype/ftsynth.h>
|
||||
#define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
|
||||
|
||||
@@ -498,6 +510,8 @@
|
||||
|
||||
#define FT_XFREE86_H <freetype/ftxf86.h>
|
||||
|
||||
#define FT_INCREMENTAL_H <freetype/ftincrem.h>
|
||||
|
||||
/* now include internal headers definitions from <freetype/internal/...> */
|
||||
|
||||
#define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
|
||||
|
||||
@@ -9,8 +9,11 @@ FT_USE_MODULE(pshinter_module_class)
|
||||
FT_USE_MODULE(ft_raster1_renderer_class)
|
||||
FT_USE_MODULE(sfnt_module_class)
|
||||
FT_USE_MODULE(ft_smooth_renderer_class)
|
||||
FT_USE_MODULE(ft_smooth_lcd_renderer_class)
|
||||
FT_USE_MODULE(ft_smooth_lcdv_renderer_class)
|
||||
FT_USE_MODULE(tt_driver_class)
|
||||
FT_USE_MODULE(t1_driver_class)
|
||||
FT_USE_MODULE(t42_driver_class)
|
||||
FT_USE_MODULE(pfr_driver_class)
|
||||
FT_USE_MODULE(winfnt_driver_class)
|
||||
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* USER-SELECTABLE CONFIGURATION MACROS */
|
||||
@@ -78,68 +77,98 @@ FT_BEGIN_HEADER
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* CMap support */
|
||||
/* Many compilers provide a non-ANSI 64-bit data type that can be used */
|
||||
/* by FreeType to speed up some computations. However, this will create */
|
||||
/* some problems when compiling the library in strict ANSI mode. */
|
||||
/* */
|
||||
/* Define this if you want generic cmap support. */
|
||||
/* For this reason, the use of 64-bit ints is normally disabled when */
|
||||
/* the __STDC__ macro is defined. You can however disable this by */
|
||||
/* defining here the macro FT_CONFIG_OPTION_FORCE_INT64. */
|
||||
/* */
|
||||
#define FT_CONFIG_OPTION_USE_CMAPS
|
||||
/* For most compilers, this will only create compilation warnings */
|
||||
/* when building the library. */
|
||||
/* */
|
||||
/* ObNote: The compiler-specific 64-bit integers are detected in the */
|
||||
/* file "ftconfig.h" either statically, or through Autoconf */
|
||||
/* on platforms that support it. */
|
||||
/* */
|
||||
#undef FT_CONFIG_OPTION_FORCE_INT64
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Convenience functions support */
|
||||
/* Gzip-compressed file support. */
|
||||
/* */
|
||||
/* Some functions of the FreeType 2 API are provided as a convenience */
|
||||
/* for client applications and developers. However, they are not */
|
||||
/* required to build and run the library itself. */
|
||||
/* FreeType now handles font files that have been compressed with the */
|
||||
/* 'gzip' program. This is mostly used to parse many of the PCF files */
|
||||
/* that come with XFree86. The implementation uses 'zlib' to */
|
||||
/* partially uncompress the file on the fly (see src/base/ftgzip.c). */
|
||||
/* */
|
||||
/* By defining this configuration macro, you'll disable the */
|
||||
/* compilation of these functions at build time. This can be useful */
|
||||
/* to reduce the library's code size when you don't need any of */
|
||||
/* these functions. */
|
||||
/* Define this macro if you want to enable this "feature". Note that */
|
||||
/* this will however force you to link the zlib to any program that */
|
||||
/* also uses FreeType. */
|
||||
/* */
|
||||
/* All convenience functions are declared as such in their */
|
||||
/* documentation. */
|
||||
/* */
|
||||
#undef FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS
|
||||
#define FT_CONFIG_OPTION_USE_ZLIB
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Module errors */
|
||||
/* ZLib library selection */
|
||||
/* */
|
||||
/* If this macro is set (which is _not_ the default), the higher byte */
|
||||
/* of an error code gives the module in which the error has occurred, */
|
||||
/* while the lower byte is the real error code. */
|
||||
/* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */
|
||||
/* It allows FreeType's "ftgzip" component to link to the system's */
|
||||
/* installation of the ZLib library. This is useful on systems like */
|
||||
/* Unix or VMS where it generally is already available. */
|
||||
/* */
|
||||
/* Setting this macro makes sense for debugging purposes only, since */
|
||||
/* it would break source compatibility of certain programs that use */
|
||||
/* FreeType 2. */
|
||||
/* If you let it undefined, the component will use its own copy */
|
||||
/* of the zlib sources instead. These have been modified to be */
|
||||
/* included directly within the component and *not* export external */
|
||||
/* function names. This allows you to link any program with FreeType */
|
||||
/* _and_ ZLib without linking conflicts. */
|
||||
/* */
|
||||
/* More details can be found in the files ftmoderr.h and fterrors.h. */
|
||||
/* do not #undef this macro here, since the build system might */
|
||||
/* define for certain configurations */
|
||||
/* */
|
||||
#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS
|
||||
/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Alternate Glyph Image Format support */
|
||||
/* DLL export compilation */
|
||||
/* */
|
||||
/* By default, the glyph images returned by the FreeType glyph loader */
|
||||
/* can either be a pixmap or a vectorial outline defined through */
|
||||
/* Bezier control points. When defining the following configuration */
|
||||
/* macro, some font drivers will be able to register alternate */
|
||||
/* glyph image formats. */
|
||||
/* When compiling FreeType as a DLL, some systems/compilers need a */
|
||||
/* special keyword in front OR after the return type of function */
|
||||
/* declarations. */
|
||||
/* */
|
||||
/* Unset this macro if you are sure that you will never use a font */
|
||||
/* driver with an alternate glyph format; this will reduce the size of */
|
||||
/* the base layer code. */
|
||||
/* Two macros are used within the FreeType source code to define */
|
||||
/* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */
|
||||
/* */
|
||||
/* Note that a few Type 1 fonts, as well as Windows `vector' fonts */
|
||||
/* use a vector `plotter' format that isn't supported when this */
|
||||
/* macro is undefined. */
|
||||
/* FT_EXPORT( return_type ) */
|
||||
/* */
|
||||
#define FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS
|
||||
/* is used in a function declaration, as in */
|
||||
/* */
|
||||
/* FT_EXPORT( FT_Error ) */
|
||||
/* FT_Init_FreeType( FT_Library* alibrary ); */
|
||||
/* */
|
||||
/* */
|
||||
/* FT_EXPORT_DEF( return_type ) */
|
||||
/* */
|
||||
/* is used in a function definition, as in */
|
||||
/* */
|
||||
/* FT_EXPORT_DEF( FT_Error ) */
|
||||
/* FT_Init_FreeType( FT_Library* alibrary ) */
|
||||
/* { */
|
||||
/* ... some code ... */
|
||||
/* return FT_Err_Ok; */
|
||||
/* } */
|
||||
/* */
|
||||
/* You can provide your own implementation of FT_EXPORT and */
|
||||
/* FT_EXPORT_DEF here if you want. If you leave them undefined, they */
|
||||
/* will be later automatically defined as `extern return_type' to */
|
||||
/* allow normal compilation. */
|
||||
/* */
|
||||
/* #define FT_EXPORT(x) extern x */
|
||||
/* #define FT_EXPORT_DEF(x) x */
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@@ -187,93 +216,12 @@ FT_BEGIN_HEADER
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Many compilers provide a non-ANSI 64-bit data type that can be used */
|
||||
/* by FreeType to speed up some computations. However, this will create */
|
||||
/* some problems when compiling the library in strict ANSI mode. */
|
||||
/* Allow the use of FT_Incremental_Interface to load typefaces that */
|
||||
/* contain no glyph data, but supply it via a callback function. */
|
||||
/* This allows FreeType to be used with the PostScript language, using */
|
||||
/* the GhostScript interpreter. */
|
||||
/* */
|
||||
/* For this reason, the use of 64-bit ints is normally disabled when */
|
||||
/* the __STDC__ macro is defined. You can however disable this by */
|
||||
/* defining here the macro FT_CONFIG_OPTION_FORCE_INT64. */
|
||||
/* */
|
||||
/* For most compilers, this will only create compilation warnings */
|
||||
/* when building the library. */
|
||||
/* */
|
||||
/* ObNote: The compiler-specific 64-bit integers are detected in the */
|
||||
/* file "ftconfig.h" either statically, or through Autoconf */
|
||||
/* on platforms that support it. */
|
||||
/* */
|
||||
#undef FT_CONFIG_OPTION_FORCE_INT64
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* DLL export compilation */
|
||||
/* */
|
||||
/* When compiling FreeType as a DLL, some systems/compilers need a */
|
||||
/* special keyword in front OR after the return type of function */
|
||||
/* declarations. */
|
||||
/* */
|
||||
/* Two macros are used within the FreeType source code to define */
|
||||
/* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */
|
||||
/* */
|
||||
/* FT_EXPORT( return_type ) */
|
||||
/* */
|
||||
/* is used in a function declaration, as in */
|
||||
/* */
|
||||
/* FT_EXPORT( FT_Error ) */
|
||||
/* FT_Init_FreeType( FT_Library* alibrary ); */
|
||||
/* */
|
||||
/* */
|
||||
/* FT_EXPORT_DEF( return_type ) */
|
||||
/* */
|
||||
/* is used in a function definition, as in */
|
||||
/* */
|
||||
/* FT_EXPORT_DEF( FT_Error ) */
|
||||
/* FT_Init_FreeType( FT_Library* alibrary ) */
|
||||
/* { */
|
||||
/* ... some code ... */
|
||||
/* return FT_Err_Ok; */
|
||||
/* } */
|
||||
/* */
|
||||
/* You can provide your own implementation of FT_EXPORT and */
|
||||
/* FT_EXPORT_DEF here if you want. If you leave them undefined, they */
|
||||
/* will be later automatically defined as `extern return_type' to */
|
||||
/* allow normal compilation. */
|
||||
/* */
|
||||
#undef FT_EXPORT
|
||||
#undef FT_EXPORT_DEF
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Debug level */
|
||||
/* */
|
||||
/* FreeType can be compiled in debug or trace mode. In debug mode, */
|
||||
/* errors are reported through the `ftdebug' component. In trace */
|
||||
/* mode, additional messages are sent to the standard output during */
|
||||
/* execution. */
|
||||
/* */
|
||||
/* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */
|
||||
/* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */
|
||||
/* */
|
||||
/* Don't define any of these macros to compile in `release' mode! */
|
||||
/* */
|
||||
#undef FT_DEBUG_LEVEL_ERROR
|
||||
#undef FT_DEBUG_LEVEL_TRACE
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Memory Debugging */
|
||||
/* */
|
||||
/* FreeType now comes with an integrated memory debugger that is */
|
||||
/* capable of detecting simple errors like memory leaks or double */
|
||||
/* deletes. To compile it within your build of the library, you */
|
||||
/* should define FT_DEBUG_MEMORY here. */
|
||||
/* */
|
||||
/* Note that the memory debugger is only activated at runtime when */
|
||||
/* when the _environment_ variable "FT_DEBUG_MEMORY" is also defined! */
|
||||
/* */
|
||||
#undef FT_DEBUG_MEMORY
|
||||
/* #define FT_CONFIG_OPTION_INCREMENTAL */
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@@ -291,9 +239,61 @@ FT_BEGIN_HEADER
|
||||
/* FT_MAX_MODULES */
|
||||
/* */
|
||||
/* The maximum number of modules that can be registered in a single */
|
||||
/* FreeType library object. 16 is the default. */
|
||||
/* FreeType library object. 32 is the default. */
|
||||
/* */
|
||||
#define FT_MAX_MODULES 16
|
||||
#define FT_MAX_MODULES 32
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Debug level */
|
||||
/* */
|
||||
/* FreeType can be compiled in debug or trace mode. In debug mode, */
|
||||
/* errors are reported through the `ftdebug' component. In trace */
|
||||
/* mode, additional messages are sent to the standard output during */
|
||||
/* execution. */
|
||||
/* */
|
||||
/* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */
|
||||
/* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */
|
||||
/* */
|
||||
/* Don't define any of these macros to compile in `release' mode! */
|
||||
/* */
|
||||
/* #define FT_DEBUG_LEVEL_ERROR */
|
||||
/* #define FT_DEBUG_LEVEL_TRACE */
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Memory Debugging */
|
||||
/* */
|
||||
/* FreeType now comes with an integrated memory debugger that is */
|
||||
/* capable of detecting simple errors like memory leaks or double */
|
||||
/* deletes. To compile it within your build of the library, you */
|
||||
/* should define FT_DEBUG_MEMORY here. */
|
||||
/* */
|
||||
/* Note that the memory debugger is only activated at runtime when */
|
||||
/* when the _environment_ variable "FT_DEBUG_MEMORY" is also defined! */
|
||||
/* */
|
||||
/* #define FT_DEBUG_MEMORY */
|
||||
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Module errors */
|
||||
/* */
|
||||
/* If this macro is set (which is _not_ the default), the higher byte */
|
||||
/* of an error code gives the module in which the error has occurred, */
|
||||
/* while the lower byte is the real error code. */
|
||||
/* */
|
||||
/* Setting this macro makes sense for debugging purposes only, since */
|
||||
/* it would break source compatibility of certain programs that use */
|
||||
/* FreeType 2. */
|
||||
/* */
|
||||
/* More details can be found in the files ftmoderr.h and fterrors.h. */
|
||||
/* */
|
||||
#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS
|
||||
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@@ -375,7 +375,10 @@ FT_BEGIN_HEADER
|
||||
/* By undefining this, you will only compile the code necessary to load */
|
||||
/* TrueType glyphs without hinting. */
|
||||
/* */
|
||||
#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
|
||||
/* do not #undef this macro here, since the build system might */
|
||||
/* define for certain configurations */
|
||||
/* */
|
||||
/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@@ -391,6 +394,25 @@ FT_BEGIN_HEADER
|
||||
#define TT_CONFIG_OPTION_INTERPRETER_SWITCH
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */
|
||||
/* TrueType glyph loader to use Apple's definition of how to handle */
|
||||
/* component offsets in composite glyphs. */
|
||||
/* */
|
||||
/* Apple and MS disagree on the default behavior of component offsets */
|
||||
/* in composites. Apple says that they should be scaled by the scale */
|
||||
/* factors in the transformation matrix (roughly, it's more complex) */
|
||||
/* while MS says they should not. OpenType defines two bits in the */
|
||||
/* composite flags array which can be used to disambiguate, but old */
|
||||
/* fonts will not have them. */
|
||||
/* */
|
||||
/* http://partners.adobe.com/asn/developer/opentype/glyf.html */
|
||||
/* http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html */
|
||||
/* */
|
||||
#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/**** ****/
|
||||
@@ -427,14 +449,6 @@ FT_BEGIN_HEADER
|
||||
#define T1_MAX_CHARSTRINGS_OPERANDS 256
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Define T1_CONFIG_OPTION_DISABLE_HINTER if you want to generate a */
|
||||
/* driver with no hinter. This can be useful to debug the parser. */
|
||||
/* */
|
||||
#undef T1_CONFIG_OPTION_DISABLE_HINTER
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Define this configuration macro if you want to prevent the */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -183,7 +183,11 @@ FT_BEGIN_HEADER
|
||||
(f1)->pix_width == (f2)->pix_width && \
|
||||
(f1)->pix_height == (f2)->pix_height )
|
||||
|
||||
#define FTC_FACE_ID_HASH( i ) ((FT_UInt32)(FT_Pointer)( i ))
|
||||
#define FT_POINTER_TO_ULONG( p ) ((FT_ULong)(FT_Pointer)(p))
|
||||
|
||||
#define FTC_FACE_ID_HASH( i ) \
|
||||
((FT_UInt32)(( FT_POINTER_TO_ULONG( i ) >> 3 ) ^ \
|
||||
( FT_POINTER_TO_ULONG( i ) << 7 ) ) )
|
||||
|
||||
#define FTC_FONT_HASH( f ) \
|
||||
(FT_UInt32)( FTC_FACE_ID_HASH((f)->face_id) ^ \
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
/* type1_tables */
|
||||
/* sfnt_names */
|
||||
/* bdf_fonts */
|
||||
/* pfr_fonts */
|
||||
/* */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
@@ -145,7 +145,7 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* You can typecast FT_Glyph to FT_BitmapGlyph if you have */
|
||||
/* glyph->format == ft_glyph_format_bitmap. This lets you access */
|
||||
/* glyph->format == FT_GLYPH_FORMAT_BITMAP. This lets you access */
|
||||
/* the bitmap's contents easily. */
|
||||
/* */
|
||||
/* The corresponding pixel buffer is always owned by the BitmapGlyph */
|
||||
@@ -189,7 +189,7 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* You can typecast FT_Glyph to FT_OutlineGlyph if you have */
|
||||
/* glyph->format == ft_glyph_format_outline. This lets you access */
|
||||
/* glyph->format == FT_GLYPH_FORMAT_OUTLINE. This lets you access */
|
||||
/* the outline's content easily. */
|
||||
/* */
|
||||
/* As the outline is extracted from a glyph slot, its coordinates are */
|
||||
@@ -374,8 +374,8 @@ FT_BEGIN_HEADER
|
||||
/* the_glyph :: A pointer to a handle to the target glyph. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
/* render_mode :: A set of bit flags that describe how the data is */
|
||||
/* */
|
||||
/* render_mode :: An enumeration that describe how the data is */
|
||||
/* rendered. */
|
||||
/* */
|
||||
/* origin :: A pointer to a vector used to translate the glyph */
|
||||
/* image before rendering. Can be 0 (if no */
|
||||
@@ -411,7 +411,7 @@ FT_BEGIN_HEADER
|
||||
/* error = FT_Get_Glyph( face->glyph, &glyph ); */
|
||||
/* */
|
||||
/* // convert to a bitmap (default render mode + destroy old) */
|
||||
/* if ( glyph->format != ft_glyph_format_bitmap ) */
|
||||
/* if ( glyph->format != FT_GLYPH_FORMAT_BITMAP ) */
|
||||
/* { */
|
||||
/* error = FT_Glyph_To_Bitmap( &glyph, ft_render_mode_default, */
|
||||
/* 0, 1 ); */
|
||||
@@ -434,10 +434,10 @@ FT_BEGIN_HEADER
|
||||
/* scalable. */
|
||||
/* */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Glyph_To_Bitmap( FT_Glyph* the_glyph,
|
||||
FT_ULong render_mode,
|
||||
FT_Vector* origin,
|
||||
FT_Bool destroy );
|
||||
FT_Glyph_To_Bitmap( FT_Glyph* the_glyph,
|
||||
FT_Render_Mode render_mode,
|
||||
FT_Vector* origin,
|
||||
FT_Bool destroy );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/* FreeType glyph image formats and default raster interface */
|
||||
/* (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@@ -28,7 +28,10 @@
|
||||
#define __FTIMAGE_H__
|
||||
|
||||
|
||||
/* _STANDALONE_ is from ftgrays.c */
|
||||
#ifndef _STANDALONE_
|
||||
#include <ft2build.h>
|
||||
#endif
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
@@ -114,64 +117,92 @@ FT_BEGIN_HEADER
|
||||
/* given bitmap. Note that additional formats may be added in the */
|
||||
/* future. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* ft_pixel_mode_mono :: A monochrome bitmap (1 bit/pixel). */
|
||||
/* <Values> */
|
||||
/* FT_PIXEL_MODE_NONE :: */
|
||||
/* Value 0 is reserved. */
|
||||
/* */
|
||||
/* ft_pixel_mode_grays :: An 8-bit gray-levels bitmap. Note that the */
|
||||
/* total number of gray levels is given in the */
|
||||
/* `num_grays' field of the FT_Bitmap */
|
||||
/* structure. */
|
||||
/* FT_PIXEL_MODE_MONO :: */
|
||||
/* A monochrome bitmap, using 1 bit per pixel. Note that pixels */
|
||||
/* are stored in most-significant order (MSB), which means that */
|
||||
/* the left-most pixel in a byte has value 128. */
|
||||
/* */
|
||||
/* ft_pixel_mode_pal2 :: A 2-bit paletted bitmap. */
|
||||
/* Currently unused by FreeType. */
|
||||
/* FT_PIXEL_MODE_GRAY :: */
|
||||
/* An 8-bit bitmap, generally used to represent anti-aliased glyph */
|
||||
/* images. Each pixel is stored in one byte. Note that the number */
|
||||
/* of value "gray" levels is stored in the `num_bytes' field of */
|
||||
/* the @FT_Bitmap structure (it generally is 256). */
|
||||
/* */
|
||||
/* ft_pixel_mode_pal4 :: A 4-bit paletted bitmap. */
|
||||
/* Currently unused by FreeType. */
|
||||
/* FT_PIXEL_MODE_GRAY2 :: */
|
||||
/* A 2-bit/pixel bitmap, used to represent embedded anti-aliased */
|
||||
/* bitmaps in font files according to the OpenType specification. */
|
||||
/* We haven't found a single font using this format, however. */
|
||||
/* */
|
||||
/* ft_pixel_mode_pal8 :: An 8-bit paletted bitmap. */
|
||||
/* Currently unused by FreeType. */
|
||||
/* FT_PIXEL_MODE_GRAY4 :: */
|
||||
/* A 4-bit/pixel bitmap, used to represent embedded anti-aliased */
|
||||
/* bitmaps in font files according to the OpenType specification. */
|
||||
/* We haven't found a single font using this format, however. */
|
||||
/* */
|
||||
/* ft_pixel_mode_rgb15 :: A 15-bit RGB bitmap. Uses 5:5:5 encoding. */
|
||||
/* Currently unused by FreeType. */
|
||||
/* FT_PIXEL_MODE_LCD :: */
|
||||
/* An 8-bit bitmap, used to represent RGB or BGR decimated glyph */
|
||||
/* images used for display on LCD displays; the bitmap's width is */
|
||||
/* three times wider than the original glyph image. See also */
|
||||
/* @FT_RENDER_MODE_LCD. */
|
||||
/* */
|
||||
/* ft_pixel_mode_rgb16 :: A 16-bit RGB bitmap. Uses 5:6:5 encoding. */
|
||||
/* Currently unused by FreeType. */
|
||||
/* */
|
||||
/* ft_pixel_mode_rgb24 :: A 24-bit RGB bitmap. */
|
||||
/* Currently unused by FreeType. */
|
||||
/* */
|
||||
/* ft_pixel_mode_rgb32 :: A 32-bit RGB bitmap. */
|
||||
/* Currently unused by FreeType. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* Some anti-aliased bitmaps might be embedded in TrueType fonts */
|
||||
/* using formats pal2 or pal4, though no fonts presenting those have */
|
||||
/* been found to date. */
|
||||
/* FT_PIXEL_MODE_LCD_V :: */
|
||||
/* An 8-bit bitmap, used to represent RGB or BGR decimated glyph */
|
||||
/* images used for display on rotated LCD displays; the bitmap's */
|
||||
/* height is three times taller than the original glyph image. */
|
||||
/* See also @FT_RENDER_MODE_LCD_V. */
|
||||
/* */
|
||||
typedef enum FT_Pixel_Mode_
|
||||
{
|
||||
ft_pixel_mode_none = 0,
|
||||
ft_pixel_mode_mono,
|
||||
ft_pixel_mode_grays,
|
||||
ft_pixel_mode_pal2,
|
||||
ft_pixel_mode_pal4,
|
||||
ft_pixel_mode_pal8,
|
||||
ft_pixel_mode_rgb15,
|
||||
ft_pixel_mode_rgb16,
|
||||
ft_pixel_mode_rgb24,
|
||||
ft_pixel_mode_rgb32,
|
||||
FT_PIXEL_MODE_NONE = 0,
|
||||
FT_PIXEL_MODE_MONO,
|
||||
FT_PIXEL_MODE_GRAY,
|
||||
FT_PIXEL_MODE_GRAY2,
|
||||
FT_PIXEL_MODE_GRAY4,
|
||||
FT_PIXEL_MODE_LCD,
|
||||
FT_PIXEL_MODE_LCD_V,
|
||||
|
||||
ft_pixel_mode_max /* do not remove */
|
||||
FT_PIXEL_MODE_MAX /* do not remove */
|
||||
|
||||
} FT_Pixel_Mode;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Enum> */
|
||||
/* ft_pixel_mode_xxx */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A list of deprecated constants. Use the corresponding */
|
||||
/* @FT_Pixel_Mode values instead. */
|
||||
/* */
|
||||
/* <Values> */
|
||||
/* ft_pixel_mode_none :: see @FT_PIXEL_MODE_NONE */
|
||||
/* ft_pixel_mode_mono :: see @FT_PIXEL_MODE_MONO */
|
||||
/* ft_pixel_mode_grays :: see @FT_PIXEL_MODE_GRAY */
|
||||
/* ft_pixel_mode_pal2 :: see @FT_PIXEL_MODE_GRAY2 */
|
||||
/* ft_pixel_mode_pal4 :: see @FT_PIXEL_MODE_GRAY4 */
|
||||
/* */
|
||||
#define ft_pixel_mode_none FT_PIXEL_MODE_NONE
|
||||
#define ft_pixel_mode_mono FT_PIXEL_MODE_MONO
|
||||
#define ft_pixel_mode_grays FT_PIXEL_MODE_GRAY
|
||||
#define ft_pixel_mode_pal2 FT_PIXEL_MODE_GRAY2
|
||||
#define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4
|
||||
|
||||
/* */
|
||||
|
||||
#if 0
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Enum> */
|
||||
/* FT_Palette_Mode */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* THIS TYPE IS DEPRECATED. DO NOT USE IT! */
|
||||
/* */
|
||||
/* An enumeration type used to describe the format of a bitmap */
|
||||
/* palette, used with ft_pixel_mode_pal4 and ft_pixel_mode_pal8. */
|
||||
/* */
|
||||
@@ -195,6 +226,10 @@ FT_BEGIN_HEADER
|
||||
|
||||
} FT_Palette_Mode;
|
||||
|
||||
/* */
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
@@ -223,7 +258,7 @@ FT_BEGIN_HEADER
|
||||
/* most cases. */
|
||||
/* */
|
||||
/* num_grays :: This field is only used with */
|
||||
/* `ft_pixel_mode_grays'; it gives the number of gray */
|
||||
/* `FT_PIXEL_MODE_GRAY'; it gives the number of gray */
|
||||
/* levels used in the bitmap. */
|
||||
/* */
|
||||
/* pixel_mode :: The pixel_mode, i.e., how pixel bits are stored. */
|
||||
@@ -328,21 +363,23 @@ FT_BEGIN_HEADER
|
||||
/* A simple type used to enumerates the flags in an outline's */
|
||||
/* `outline_flags' field. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* ft_outline_owner :: If set, this flag indicates that the */
|
||||
/* <Values> */
|
||||
/* FT_OUTLINE_NONE :: Value 0 is reserved. */
|
||||
/* */
|
||||
/* FT_OUTLINE_OWNER :: If set, this flag indicates that the */
|
||||
/* outline's field arrays (i.e. */
|
||||
/* `points', `flags' & `contours') are */
|
||||
/* `owned' by the outline object, and */
|
||||
/* should thus be freed when it is */
|
||||
/* destroyed. */
|
||||
/* */
|
||||
/* ft_outline_even_odd_fill :: By default, outlines are filled using */
|
||||
/* FT_OUTLINE_EVEN_ODD_FILL :: By default, outlines are filled using */
|
||||
/* the non-zero winding rule. If set to */
|
||||
/* 1, the outline will be filled using */
|
||||
/* the even-odd fill rule (only works */
|
||||
/* with the smooth raster). */
|
||||
/* */
|
||||
/* ft_outline_reverse_fill :: By default, outside contours of an */
|
||||
/* FT_OUTLINE_REVERSE_FILL :: By default, outside contours of an */
|
||||
/* outline are oriented in clock-wise */
|
||||
/* direction, as defined in the TrueType */
|
||||
/* specification. This flag is set if */
|
||||
@@ -352,14 +389,14 @@ FT_BEGIN_HEADER
|
||||
/* scan-converter. However, it is very */
|
||||
/* important for the auto-hinter. */
|
||||
/* */
|
||||
/* ft_outline_ignore_dropouts :: By default, the scan converter will */
|
||||
/* FT_OUTLINE_IGNORE_DROPOUTS :: By default, the scan converter will */
|
||||
/* try to detect drop-outs in an outline */
|
||||
/* and correct the glyph bitmap to */
|
||||
/* ensure consistent shape continuity. */
|
||||
/* If set, this flag hints the scan-line */
|
||||
/* converter to ignore such cases. */
|
||||
/* */
|
||||
/* ft_outline_high_precision :: This flag indicates that the */
|
||||
/* FT_OUTLINE_HIGH_PRECISION :: This flag indicates that the */
|
||||
/* scan-line converter should try to */
|
||||
/* convert this outline to bitmaps with */
|
||||
/* the highest possible quality. It is */
|
||||
@@ -368,7 +405,7 @@ FT_BEGIN_HEADER
|
||||
/* hint, that might be completely */
|
||||
/* ignored by a given scan-converter. */
|
||||
/* */
|
||||
/* ft_outline_single_pass :: This flag is set to force a given */
|
||||
/* FT_OUTLINE_SINGLE_PASS :: This flag is set to force a given */
|
||||
/* scan-converter to only use a single */
|
||||
/* pass over the outline to render a */
|
||||
/* bitmap glyph image. Normally, it is */
|
||||
@@ -379,35 +416,67 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
typedef enum FT_Outline_Flags_
|
||||
{
|
||||
ft_outline_none = 0,
|
||||
ft_outline_owner = 1,
|
||||
ft_outline_even_odd_fill = 2,
|
||||
ft_outline_reverse_fill = 4,
|
||||
ft_outline_ignore_dropouts = 8,
|
||||
ft_outline_high_precision = 256,
|
||||
ft_outline_single_pass = 512
|
||||
FT_OUTLINE_NONE = 0,
|
||||
FT_OUTLINE_OWNER = 1,
|
||||
FT_OUTLINE_EVEN_ODD_FILL = 2,
|
||||
FT_OUTLINE_REVERSE_FILL = 4,
|
||||
FT_OUTLINE_IGNORE_DROPOUTS = 8,
|
||||
FT_OUTLINE_HIGH_PRECISION = 256,
|
||||
FT_OUTLINE_SINGLE_PASS = 512
|
||||
|
||||
} FT_Outline_Flags;
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
*
|
||||
* @enum:
|
||||
* ft_outline_xxx
|
||||
*
|
||||
* @description:
|
||||
* These constants are deprecated. Please use the corresponding
|
||||
* @FT_OUTLINE_XXX values.
|
||||
*
|
||||
* @values:
|
||||
* ft_outline_none :: See @FT_OUTLINE_NONE.
|
||||
* ft_outline_owner :: See @FT_OUTLINE_OWNER.
|
||||
* ft_outline_even_odd_fill :: See @FT_OUTLINE_EVEN_ODD_FILL.
|
||||
* ft_outline_reverse_fill :: See @FT_OUTLINE_REVERSE_FILL.
|
||||
* ft_outline_ignore_dropouts :: See @FT_OUTLINE_IGNORE_DROPOUTS.
|
||||
* ft_outline_high_precision :: See @FT_OUTLINE_HIGH_PRECISION.
|
||||
* ft_outline_single_pass :: See @FT_OUTLINE_SINGLE_PASS.
|
||||
*/
|
||||
#define ft_outline_none FT_OUTLINE_NONE
|
||||
#define ft_outline_owner FT_OUTLINE_OWNER
|
||||
#define ft_outline_even_odd_fill FT_OUTLINE_EVEN_ODD_FILL
|
||||
#define ft_outline_reverse_fill FT_OUTLINE_REVERSE_FILL
|
||||
#define ft_outline_ignore_dropouts FT_OUTLINE_IGNORE_DROPOUTS
|
||||
#define ft_outline_high_precision FT_OUTLINE_HIGH_PRECISION
|
||||
#define ft_outline_single_pass FT_OUTLINE_SINGLE_PASS
|
||||
|
||||
/* */
|
||||
|
||||
#define FT_CURVE_TAG( flag ) ( flag & 3 )
|
||||
|
||||
#define FT_Curve_Tag_On 1
|
||||
#define FT_Curve_Tag_Conic 0
|
||||
#define FT_Curve_Tag_Cubic 2
|
||||
#define FT_CURVE_TAG_ON 1
|
||||
#define FT_CURVE_TAG_CONIC 0
|
||||
#define FT_CURVE_TAG_CUBIC 2
|
||||
|
||||
#define FT_Curve_Tag_Touch_X 8 /* reserved for the TrueType hinter */
|
||||
#define FT_Curve_Tag_Touch_Y 16 /* reserved for the TrueType hinter */
|
||||
#define FT_CURVE_TAG_TOUCH_X 8 /* reserved for the TrueType hinter */
|
||||
#define FT_CURVE_TAG_TOUCH_Y 16 /* reserved for the TrueType hinter */
|
||||
|
||||
#define FT_Curve_Tag_Touch_Both ( FT_Curve_Tag_Touch_X | \
|
||||
FT_Curve_Tag_Touch_Y )
|
||||
#define FT_CURVE_TAG_TOUCH_BOTH ( FT_CURVE_TAG_TOUCH_X | \
|
||||
FT_CURVE_TAG_TOUCH_Y )
|
||||
|
||||
#define FT_Curve_Tag_On FT_CURVE_TAG_ON
|
||||
#define FT_Curve_Tag_Conic FT_CURVE_TAG_CONIC
|
||||
#define FT_Curve_Tag_Cubic FT_CURVE_TAG_CUBIC
|
||||
#define FT_Curve_Tag_Touch_X FT_CURVE_TAG_TOUCH_X
|
||||
#define FT_Curve_Tag_Touch_Y FT_CURVE_TAG_TOUCH_Y
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <FuncType> */
|
||||
/* FT_Outline_MoveTo_Func */
|
||||
/* FT_Outline_MoveToFunc */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A function pointer type used to describe the signature of a `move */
|
||||
@@ -425,14 +494,15 @@ FT_BEGIN_HEADER
|
||||
/* Error code. 0 means success. */
|
||||
/* */
|
||||
typedef int
|
||||
(*FT_Outline_MoveTo_Func)( FT_Vector* to,
|
||||
void* user );
|
||||
(*FT_Outline_MoveToFunc)( FT_Vector* to,
|
||||
void* user );
|
||||
|
||||
#define FT_Outline_MoveTo_Func FT_Outline_MoveToFunc
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <FuncType> */
|
||||
/* FT_Outline_LineTo_Func */
|
||||
/* FT_Outline_LineToFunc */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A function pointer type used to describe the signature of a `line */
|
||||
@@ -450,14 +520,15 @@ FT_BEGIN_HEADER
|
||||
/* Error code. 0 means success. */
|
||||
/* */
|
||||
typedef int
|
||||
(*FT_Outline_LineTo_Func)( FT_Vector* to,
|
||||
void* user );
|
||||
(*FT_Outline_LineToFunc)( FT_Vector* to,
|
||||
void* user );
|
||||
|
||||
#define FT_Outline_LineTo_Func FT_Outline_LineToFunc
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <FuncType> */
|
||||
/* FT_Outline_ConicTo_Func */
|
||||
/* FT_Outline_ConicToFunc */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A function pointer type use to describe the signature of a `conic */
|
||||
@@ -479,15 +550,16 @@ FT_BEGIN_HEADER
|
||||
/* Error code. 0 means success. */
|
||||
/* */
|
||||
typedef int
|
||||
(*FT_Outline_ConicTo_Func)( FT_Vector* control,
|
||||
FT_Vector* to,
|
||||
void* user );
|
||||
(*FT_Outline_ConicToFunc)( FT_Vector* control,
|
||||
FT_Vector* to,
|
||||
void* user );
|
||||
|
||||
#define FT_Outline_ConicTo_Func FT_Outline_ConicToFunc
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <FuncType> */
|
||||
/* FT_Outline_CubicTo_Func */
|
||||
/* FT_Outline_CubicToFunc */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A function pointer type used to describe the signature of a `cubic */
|
||||
@@ -509,10 +581,12 @@ FT_BEGIN_HEADER
|
||||
/* Error code. 0 means success. */
|
||||
/* */
|
||||
typedef int
|
||||
(*FT_Outline_CubicTo_Func)( FT_Vector* control1,
|
||||
FT_Vector* control2,
|
||||
FT_Vector* to,
|
||||
void* user );
|
||||
(*FT_Outline_CubicToFunc)( FT_Vector* control1,
|
||||
FT_Vector* control2,
|
||||
FT_Vector* to,
|
||||
void* user );
|
||||
|
||||
#define FT_Outline_CubicTo_Func FT_Outline_CubicToFunc
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@@ -553,13 +627,13 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
typedef struct FT_Outline_Funcs_
|
||||
{
|
||||
FT_Outline_MoveTo_Func move_to;
|
||||
FT_Outline_LineTo_Func line_to;
|
||||
FT_Outline_ConicTo_Func conic_to;
|
||||
FT_Outline_CubicTo_Func cubic_to;
|
||||
FT_Outline_MoveToFunc move_to;
|
||||
FT_Outline_LineToFunc line_to;
|
||||
FT_Outline_ConicToFunc conic_to;
|
||||
FT_Outline_CubicToFunc cubic_to;
|
||||
|
||||
int shift;
|
||||
FT_Pos delta;
|
||||
int shift;
|
||||
FT_Pos delta;
|
||||
|
||||
} FT_Outline_Funcs;
|
||||
|
||||
@@ -580,6 +654,15 @@ FT_BEGIN_HEADER
|
||||
/* <Description> */
|
||||
/* This macro converts four letter tags into an unsigned long. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* Since many 16bit compilers don't like 32bit enumerations, you */
|
||||
/* should redefine this macro in case of problems to something like */
|
||||
/* this: */
|
||||
/* */
|
||||
/* #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) (value) */
|
||||
/* */
|
||||
/* to get a simple enumeration without assigning special numbers. */
|
||||
/* */
|
||||
#ifndef FT_IMAGE_TAG
|
||||
#define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) \
|
||||
value = ( ( (unsigned long)_x1 << 24 ) | \
|
||||
@@ -600,37 +683,68 @@ FT_BEGIN_HEADER
|
||||
/* formats, even though future font drivers will be able to register */
|
||||
/* their own format. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* ft_glyph_format_composite :: The glyph image is a composite of */
|
||||
/* several other images. This glyph */
|
||||
/* format is _only_ used with the */
|
||||
/* FT_LOAD_FLAG_NO_RECURSE flag (XXX: */
|
||||
/* Which is currently unimplemented). */
|
||||
/* <Values> */
|
||||
/* FT_GLYPH_FORMAT_NONE :: */
|
||||
/* The value 0 is reserved and does describe a glyph format. */
|
||||
/* */
|
||||
/* ft_glyph_format_bitmap :: The glyph image is a bitmap, and can */
|
||||
/* be described as a FT_Bitmap. */
|
||||
/* FT_GLYPH_FORMAT_COMPOSITE :: */
|
||||
/* The glyph image is a composite of several other images. This */
|
||||
/* format is _only_ used with @FT_LOAD_FLAG_NO_RECURSE, and is */
|
||||
/* used to report compound glyphs (like accented characters). */
|
||||
/* */
|
||||
/* ft_glyph_format_outline :: The glyph image is a vectorial image */
|
||||
/* made of bezier control points, and */
|
||||
/* can be described as a FT_Outline. */
|
||||
/* FT_GLYPH_FORMAT_BITMAP :: */
|
||||
/* The glyph image is a bitmap, and can be described as an */
|
||||
/* @FT_Bitmap. You generally need to access the `bitmap' field of */
|
||||
/* the @FT_GlyphSlotRec structure to read it. */
|
||||
/* */
|
||||
/* ft_glyph_format_plotter :: The glyph image is a vectorial image */
|
||||
/* made of plotter lines (some T1 fonts */
|
||||
/* like Hershey contain glyph in this */
|
||||
/* format). */
|
||||
/* FT_GLYPH_FORMAT_OUTLINE :: */
|
||||
/* The glyph image is a vertorial outline made of line segments */
|
||||
/* and Bezier arcs; it can be described as an @FT_Outline; you */
|
||||
/* generally want to access the `outline' field of the */
|
||||
/* @FT_GlyphSlotRec structure to read it. */
|
||||
/* */
|
||||
/* FT_GLYPH_FORMAT_PLOTTER :: */
|
||||
/* The glyph image is a vectorial path with no inside/outside */
|
||||
/* contours. Some Type 1 fonts, like those in the Hershey family, */
|
||||
/* contain glyphs in this format. These are described as */
|
||||
/* @FT_Outline, but FreeType isn't currently capable of rendering */
|
||||
/* them correctly. */
|
||||
/* */
|
||||
typedef enum FT_Glyph_Format_
|
||||
{
|
||||
FT_IMAGE_TAG( ft_glyph_format_none, 0, 0, 0, 0 ),
|
||||
FT_IMAGE_TAG( FT_GLYPH_FORMAT_NONE, 0, 0, 0, 0 ),
|
||||
|
||||
FT_IMAGE_TAG( ft_glyph_format_composite, 'c', 'o', 'm', 'p' ),
|
||||
FT_IMAGE_TAG( ft_glyph_format_bitmap, 'b', 'i', 't', 's' ),
|
||||
FT_IMAGE_TAG( ft_glyph_format_outline, 'o', 'u', 't', 'l' ),
|
||||
FT_IMAGE_TAG( ft_glyph_format_plotter, 'p', 'l', 'o', 't' )
|
||||
FT_IMAGE_TAG( FT_GLYPH_FORMAT_COMPOSITE, 'c', 'o', 'm', 'p' ),
|
||||
FT_IMAGE_TAG( FT_GLYPH_FORMAT_BITMAP, 'b', 'i', 't', 's' ),
|
||||
FT_IMAGE_TAG( FT_GLYPH_FORMAT_OUTLINE, 'o', 'u', 't', 'l' ),
|
||||
FT_IMAGE_TAG( FT_GLYPH_FORMAT_PLOTTER, 'p', 'l', 'o', 't' )
|
||||
|
||||
} FT_Glyph_Format;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Enum> */
|
||||
/* ft_glyph_format_xxx */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A list of decprecated constants. Use the corresponding */
|
||||
/* @FT_Glyph_Format values instead. */
|
||||
/* */
|
||||
/* <Values> */
|
||||
/* ft_glyph_format_none :: see @FT_GLYPH_FORMAT_NONE */
|
||||
/* ft_glyph_format_composite :: see @FT_GLYPH_FORMAT_COMPOSITE */
|
||||
/* ft_glyph_format_bitmap :: see @FT_GLYPH_FORMAT_BITMAP */
|
||||
/* ft_glyph_format_outline :: see @FT_GLYPH_FORMAT_OUTLINE */
|
||||
/* ft_glyph_format_plotter :: see @FT_GLYPH_FORMAT_PLOTTER */
|
||||
/* */
|
||||
#define ft_glyph_format_none FT_GLYPH_FORMAT_NONE
|
||||
#define ft_glyph_format_composite FT_GLYPH_FORMAT_COMPOSITE
|
||||
#define ft_glyph_format_bitmap FT_GLYPH_FORMAT_BITMAP
|
||||
#define ft_glyph_format_outline FT_GLYPH_FORMAT_OUTLINE
|
||||
#define ft_glyph_format_plotter FT_GLYPH_FORMAT_PLOTTER
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
@@ -657,7 +771,7 @@ FT_BEGIN_HEADER
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Section> */
|
||||
/* Raster */
|
||||
/* raster */
|
||||
/* */
|
||||
/* <Title> */
|
||||
/* Scanline converter */
|
||||
@@ -703,7 +817,7 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* This structure is used by the span drawing callback type named */
|
||||
/* FT_Raster_Span_Func(), which takes the y-coordinate of the span as */
|
||||
/* FT_SpanFunc which takes the y-coordinate of the span as a */
|
||||
/* a parameter. */
|
||||
/* */
|
||||
/* The coverage value is always between 0 and 255, even if the number */
|
||||
@@ -721,7 +835,7 @@ FT_BEGIN_HEADER
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <FuncType> */
|
||||
/* FT_Raster_Span_Func */
|
||||
/* FT_SpanFunc */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A function used as a call-back by the anti-aliased renderer in */
|
||||
@@ -755,10 +869,12 @@ FT_BEGIN_HEADER
|
||||
/* only for those scanlines that do have `gray' pixels on them. */
|
||||
/* */
|
||||
typedef void
|
||||
(*FT_Raster_Span_Func)( int y,
|
||||
int count,
|
||||
FT_Span* spans,
|
||||
void* user );
|
||||
(*FT_SpanFunc)( int y,
|
||||
int count,
|
||||
FT_Span* spans,
|
||||
void* user );
|
||||
|
||||
#define FT_Raster_Span_Func FT_SpanFunc
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@@ -767,6 +883,8 @@ FT_BEGIN_HEADER
|
||||
/* FT_Raster_BitTest_Func */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* THIS TYPE IS DEPRECATED. DO NOT USE IT. */
|
||||
/* */
|
||||
/* A function used as a call-back by the monochrome scan-converter */
|
||||
/* to test whether a given target pixel is already set to the drawing */
|
||||
/* `color'. These tests are crucial to implement drop-out control */
|
||||
@@ -794,6 +912,8 @@ FT_BEGIN_HEADER
|
||||
/* FT_Raster_BitSet_Func */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* THIS TYPE IS DEPRECATED. DO NOT USE IT. */
|
||||
/* */
|
||||
/* A function used as a call-back by the monochrome scan-converter */
|
||||
/* to set an individual target pixel. This is crucial to implement */
|
||||
/* drop-out control according to the TrueType specification. */
|
||||
@@ -823,15 +943,15 @@ FT_BEGIN_HEADER
|
||||
/* An enumeration to list the bit flags as used in the `flags' field */
|
||||
/* of a FT_Raster_Params structure. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* ft_raster_flag_default :: This value is 0. */
|
||||
/* <Values> */
|
||||
/* FT_RASTER_FLAG_DEFAULT :: This value is 0. */
|
||||
/* */
|
||||
/* ft_raster_flag_aa :: This flag is set to indicate that an */
|
||||
/* FT_RASTER_FLAG_AA :: This flag is set to indicate that an */
|
||||
/* anti-aliased glyph image should be */
|
||||
/* generated. Otherwise, it will be */
|
||||
/* monochrome (1-bit) */
|
||||
/* */
|
||||
/* ft_raster_flag_direct :: This flag is set to indicate direct */
|
||||
/* FT_RASTER_FLAG_DIRECT :: This flag is set to indicate direct */
|
||||
/* rendering. In this mode, client */
|
||||
/* applications must provide their own span */
|
||||
/* callback. This lets them directly */
|
||||
@@ -843,7 +963,7 @@ FT_BEGIN_HEADER
|
||||
/* Note that for now, direct rendering is */
|
||||
/* only possible with anti-aliased glyphs. */
|
||||
/* */
|
||||
/* ft_raster_flag_clip :: This flag is only used in direct */
|
||||
/* FT_RASTER_FLAG_CLIP :: This flag is only used in direct */
|
||||
/* rendering mode. If set, the output will */
|
||||
/* be clipped to a box specified in the */
|
||||
/* "clip_box" field of the FT_Raster_Params */
|
||||
@@ -856,13 +976,18 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
typedef enum
|
||||
{
|
||||
ft_raster_flag_default = 0,
|
||||
ft_raster_flag_aa = 1,
|
||||
ft_raster_flag_direct = 2,
|
||||
ft_raster_flag_clip = 4
|
||||
FT_RASTER_FLAG_DEFAULT = 0,
|
||||
FT_RASTER_FLAG_AA = 1,
|
||||
FT_RASTER_FLAG_DIRECT = 2,
|
||||
FT_RASTER_FLAG_CLIP = 4
|
||||
|
||||
} FT_Raster_Flag;
|
||||
|
||||
#define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT
|
||||
#define ft_raster_flag_aa FT_RASTER_FLAG_AA
|
||||
#define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT
|
||||
#define ft_raster_flag_clip FT_RASTER_FLAG_CLIP
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
@@ -885,9 +1010,9 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* black_spans :: The black span drawing callback. */
|
||||
/* */
|
||||
/* bit_test :: The bit test callback. */
|
||||
/* bit_test :: The bit test callback. UNIMPLEMENTED! */
|
||||
/* */
|
||||
/* bit_set :: The bit set callback. */
|
||||
/* bit_set :: The bit set callback. UNIMPLEMENTED! */
|
||||
/* */
|
||||
/* user :: User-supplied data that is passed to each drawing */
|
||||
/* callback. */
|
||||
@@ -898,11 +1023,11 @@ FT_BEGIN_HEADER
|
||||
/* 26.6 fixed-point units). */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* An anti-aliased glyph bitmap is drawn if the ft_raster_flag_aa bit */
|
||||
/* An anti-aliased glyph bitmap is drawn if the FT_RASTER_FLAG_AA bit */
|
||||
/* flag is set in the `flags' field, otherwise a monochrome bitmap */
|
||||
/* will be generated. */
|
||||
/* */
|
||||
/* If the ft_raster_flag_direct bit flag is set in `flags', the */
|
||||
/* If the FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the */
|
||||
/* raster will call the `gray_spans' callback to draw gray pixel */
|
||||
/* spans, in the case of an aa glyph bitmap, it will call */
|
||||
/* `black_spans', and `bit_test' and `bit_set' in the case of a */
|
||||
@@ -919,10 +1044,10 @@ FT_BEGIN_HEADER
|
||||
FT_Bitmap* target;
|
||||
void* source;
|
||||
int flags;
|
||||
FT_Raster_Span_Func gray_spans;
|
||||
FT_Raster_Span_Func black_spans;
|
||||
FT_Raster_BitTest_Func bit_test;
|
||||
FT_Raster_BitSet_Func bit_set;
|
||||
FT_SpanFunc gray_spans;
|
||||
FT_SpanFunc black_spans;
|
||||
FT_Raster_BitTest_Func bit_test; /* doesn't work! */
|
||||
FT_Raster_BitSet_Func bit_set; /* doesn't work! */
|
||||
void* user;
|
||||
FT_BBox clip_box;
|
||||
|
||||
@@ -932,7 +1057,7 @@ FT_BEGIN_HEADER
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <FuncType> */
|
||||
/* FT_Raster_New_Func */
|
||||
/* FT_Raster_NewFunc */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A function used to create a new raster object. */
|
||||
@@ -954,14 +1079,15 @@ FT_BEGIN_HEADER
|
||||
/* ignored by a given raster implementation. */
|
||||
/* */
|
||||
typedef int
|
||||
(*FT_Raster_New_Func)( void* memory,
|
||||
FT_Raster* raster );
|
||||
(*FT_Raster_NewFunc)( void* memory,
|
||||
FT_Raster* raster );
|
||||
|
||||
#define FT_Raster_New_Func FT_Raster_NewFunc
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <FuncType> */
|
||||
/* FT_Raster_Done_Func */
|
||||
/* FT_Raster_DoneFunc */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A function used to destroy a given raster object. */
|
||||
@@ -970,13 +1096,14 @@ FT_BEGIN_HEADER
|
||||
/* raster :: A handle to the raster object. */
|
||||
/* */
|
||||
typedef void
|
||||
(*FT_Raster_Done_Func)( FT_Raster raster );
|
||||
(*FT_Raster_DoneFunc)( FT_Raster raster );
|
||||
|
||||
#define FT_Raster_Done_Func FT_Raster_DoneFunc
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <FuncType> */
|
||||
/* FT_Raster_Reset_Func */
|
||||
/* FT_Raster_ResetFunc */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* FreeType provides an area of memory called the `render pool', */
|
||||
@@ -1001,15 +1128,16 @@ FT_BEGIN_HEADER
|
||||
/* recommended for efficiency purposes. */
|
||||
/* */
|
||||
typedef void
|
||||
(*FT_Raster_Reset_Func)( FT_Raster raster,
|
||||
unsigned char* pool_base,
|
||||
unsigned long pool_size );
|
||||
(*FT_Raster_ResetFunc)( FT_Raster raster,
|
||||
unsigned char* pool_base,
|
||||
unsigned long pool_size );
|
||||
|
||||
#define FT_Raster_Reset_Func FT_Raster_ResetFunc
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <FuncType> */
|
||||
/* FT_Raster_Set_Mode_Func */
|
||||
/* FT_Raster_SetModeFunc */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* This function is a generic facility to change modes or attributes */
|
||||
@@ -1025,15 +1153,16 @@ FT_BEGIN_HEADER
|
||||
/* args :: A pointer to the new mode/property to use. */
|
||||
/* */
|
||||
typedef int
|
||||
(*FT_Raster_Set_Mode_Func)( FT_Raster raster,
|
||||
unsigned long mode,
|
||||
void* args );
|
||||
(*FT_Raster_SetModeFunc)( FT_Raster raster,
|
||||
unsigned long mode,
|
||||
void* args );
|
||||
|
||||
#define FT_Raster_Set_Mode_Func FT_Raster_SetModeFunc
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <FuncType> */
|
||||
/* FT_Raster_Render_Func */
|
||||
/* FT_Raster_RenderFunc */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* Invokes a given raster to scan-convert a given glyph image into a */
|
||||
@@ -1065,9 +1194,10 @@ FT_BEGIN_HEADER
|
||||
/* composition). */
|
||||
/* */
|
||||
typedef int
|
||||
(*FT_Raster_Render_Func)( FT_Raster raster,
|
||||
FT_Raster_Params* params );
|
||||
(*FT_Raster_RenderFunc)( FT_Raster raster,
|
||||
FT_Raster_Params* params );
|
||||
|
||||
#define FT_Raster_Render_Func FT_Raster_RenderFunc
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
@@ -1090,12 +1220,12 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
typedef struct FT_Raster_Funcs_
|
||||
{
|
||||
FT_Glyph_Format glyph_format;
|
||||
FT_Raster_New_Func raster_new;
|
||||
FT_Raster_Reset_Func raster_reset;
|
||||
FT_Raster_Set_Mode_Func raster_set_mode;
|
||||
FT_Raster_Render_Func raster_render;
|
||||
FT_Raster_Done_Func raster_done;
|
||||
FT_Glyph_Format glyph_format;
|
||||
FT_Raster_NewFunc raster_new;
|
||||
FT_Raster_ResetFunc raster_reset;
|
||||
FT_Raster_SetModeFunc raster_set_mode;
|
||||
FT_Raster_RenderFunc raster_render;
|
||||
FT_Raster_DoneFunc raster_done;
|
||||
|
||||
} FT_Raster_Funcs;
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@ FT_BEGIN_HEADER
|
||||
typedef struct FT_Module_Class_
|
||||
{
|
||||
FT_ULong module_flags;
|
||||
FT_Int module_size;
|
||||
FT_Long module_size;
|
||||
const FT_String* module_name;
|
||||
FT_Fixed module_version;
|
||||
FT_Fixed module_requires;
|
||||
|
||||
@@ -310,7 +310,7 @@ FT_BEGIN_HEADER
|
||||
/* outline :: A pointer to the target outline descriptor. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* This functions toggles the bit flag `ft_outline_reverse_fill' in */
|
||||
/* This functions toggles the bit flag `FT_OUTLINE_REVERSE_FILL' in */
|
||||
/* the outline's `flags' field. */
|
||||
/* */
|
||||
/* It shouldn't be used by a normal client application, unless it */
|
||||
|
||||
@@ -38,65 +38,81 @@ FT_BEGIN_HEADER
|
||||
|
||||
/* create a new glyph object */
|
||||
typedef FT_Error
|
||||
(*FT_Glyph_Init_Func)( FT_Glyph glyph,
|
||||
FT_GlyphSlot slot );
|
||||
(*FT_Glyph_InitFunc)( FT_Glyph glyph,
|
||||
FT_GlyphSlot slot );
|
||||
|
||||
/* destroys a given glyph object */
|
||||
typedef void
|
||||
(*FT_Glyph_Done_Func)( FT_Glyph glyph );
|
||||
(*FT_Glyph_DoneFunc)( FT_Glyph glyph );
|
||||
|
||||
typedef void
|
||||
(*FT_Glyph_Transform_Func)( FT_Glyph glyph,
|
||||
FT_Matrix* matrix,
|
||||
FT_Vector* delta );
|
||||
(*FT_Glyph_TransformFunc)( FT_Glyph glyph,
|
||||
FT_Matrix* matrix,
|
||||
FT_Vector* delta );
|
||||
|
||||
typedef void
|
||||
(*FT_Glyph_BBox_Func)( FT_Glyph glyph,
|
||||
FT_BBox* abbox );
|
||||
(*FT_Glyph_GetBBoxFunc)( FT_Glyph glyph,
|
||||
FT_BBox* abbox );
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Glyph_Copy_Func)( FT_Glyph source,
|
||||
FT_Glyph target );
|
||||
(*FT_Glyph_CopyFunc)( FT_Glyph source,
|
||||
FT_Glyph target );
|
||||
|
||||
typedef FT_Error
|
||||
(*FT_Glyph_Prepare_Func)( FT_Glyph glyph,
|
||||
FT_GlyphSlot slot );
|
||||
(*FT_Glyph_PrepareFunc)( FT_Glyph glyph,
|
||||
FT_GlyphSlot slot );
|
||||
|
||||
/* deprecated */
|
||||
#define FT_Glyph_Init_Func FT_Glyph_InitFunc
|
||||
#define FT_Glyph_Done_Func FT_Glyph_DoneFunc
|
||||
#define FT_Glyph_Transform_Func FT_Glyph_TransformFunc
|
||||
#define FT_Glyph_BBox_Func FT_Glyph_GetBBoxFunc
|
||||
#define FT_Glyph_Copy_Func FT_Glyph_CopyFunc
|
||||
#define FT_Glyph_Prepare_Func FT_Glyph_PrepareFunc
|
||||
|
||||
|
||||
struct FT_Glyph_Class_
|
||||
{
|
||||
FT_UInt glyph_size;
|
||||
FT_Glyph_Format glyph_format;
|
||||
FT_Glyph_Init_Func glyph_init;
|
||||
FT_Glyph_Done_Func glyph_done;
|
||||
FT_Glyph_Copy_Func glyph_copy;
|
||||
FT_Glyph_Transform_Func glyph_transform;
|
||||
FT_Glyph_BBox_Func glyph_bbox;
|
||||
FT_Glyph_Prepare_Func glyph_prepare;
|
||||
FT_Long glyph_size;
|
||||
FT_Glyph_Format glyph_format;
|
||||
FT_Glyph_InitFunc glyph_init;
|
||||
FT_Glyph_DoneFunc glyph_done;
|
||||
FT_Glyph_CopyFunc glyph_copy;
|
||||
FT_Glyph_TransformFunc glyph_transform;
|
||||
FT_Glyph_GetBBoxFunc glyph_bbox;
|
||||
FT_Glyph_PrepareFunc glyph_prepare;
|
||||
};
|
||||
|
||||
|
||||
typedef FT_Error
|
||||
(*FTRenderer_render)( FT_Renderer renderer,
|
||||
FT_GlyphSlot slot,
|
||||
FT_UInt mode,
|
||||
FT_Vector* origin );
|
||||
(*FT_Renderer_RenderFunc)( FT_Renderer renderer,
|
||||
FT_GlyphSlot slot,
|
||||
FT_UInt mode,
|
||||
FT_Vector* origin );
|
||||
|
||||
typedef FT_Error
|
||||
(*FTRenderer_transform)( FT_Renderer renderer,
|
||||
FT_GlyphSlot slot,
|
||||
FT_Matrix* matrix,
|
||||
FT_Vector* delta );
|
||||
(*FT_Renderer_TransformFunc)( FT_Renderer renderer,
|
||||
FT_GlyphSlot slot,
|
||||
FT_Matrix* matrix,
|
||||
FT_Vector* delta );
|
||||
|
||||
|
||||
typedef void
|
||||
(*FTRenderer_getCBox)( FT_Renderer renderer,
|
||||
FT_GlyphSlot slot,
|
||||
FT_BBox* cbox );
|
||||
(*FT_Renderer_GetCBoxFunc)( FT_Renderer renderer,
|
||||
FT_GlyphSlot slot,
|
||||
FT_BBox* cbox );
|
||||
|
||||
|
||||
typedef FT_Error
|
||||
(*FTRenderer_setMode)( FT_Renderer renderer,
|
||||
FT_ULong mode_tag,
|
||||
FT_Pointer mode_ptr );
|
||||
(*FT_Renderer_SetModeFunc)( FT_Renderer renderer,
|
||||
FT_ULong mode_tag,
|
||||
FT_Pointer mode_ptr );
|
||||
|
||||
/* deprecated identifiers */
|
||||
#define FTRenderer_render FT_Renderer_RenderFunc
|
||||
#define FTRenderer_transform FT_Renderer_TransformFunc
|
||||
#define FTRenderer_getCBox FT_Renderer_GetCBoxFunc
|
||||
#define FTRenderer_setMode FT_Renderer_SetModeFunc
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@@ -117,10 +133,10 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* set_mode :: A method used to pass additional parameters. */
|
||||
/* */
|
||||
/* raster_class :: For `ft_glyph_format_outline' renderers only, this */
|
||||
/* raster_class :: For `FT_GLYPH_FORMAT_OUTLINE' renderers only, this */
|
||||
/* is a pointer to its raster's class. */
|
||||
/* */
|
||||
/* raster :: For `ft_glyph_format_outline' renderers only. this */
|
||||
/* raster :: For `FT_GLYPH_FORMAT_OUTLINE' renderers only. this */
|
||||
/* is a pointer to the corresponding raster object, */
|
||||
/* if any. */
|
||||
/* */
|
||||
@@ -130,12 +146,12 @@ FT_BEGIN_HEADER
|
||||
|
||||
FT_Glyph_Format glyph_format;
|
||||
|
||||
FTRenderer_render render_glyph;
|
||||
FTRenderer_transform transform_glyph;
|
||||
FTRenderer_getCBox get_glyph_cbox;
|
||||
FTRenderer_setMode set_mode;
|
||||
FT_Renderer_RenderFunc render_glyph;
|
||||
FT_Renderer_TransformFunc transform_glyph;
|
||||
FT_Renderer_GetCBoxFunc get_glyph_cbox;
|
||||
FT_Renderer_SetModeFunc set_mode;
|
||||
|
||||
FT_Raster_Funcs* raster_class;
|
||||
FT_Raster_Funcs* raster_class;
|
||||
|
||||
} FT_Renderer_Class;
|
||||
|
||||
|
||||
@@ -48,16 +48,14 @@ FT_BEGIN_HEADER
|
||||
/* This code is completely experimental -- use with care! */
|
||||
/* It will probably be completely rewritten in the future */
|
||||
/* or even integrated into the library. */
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Outline_Embolden( FT_GlyphSlot original,
|
||||
FT_Outline* outline,
|
||||
FT_Pos* advance );
|
||||
FT_EXPORT( void )
|
||||
FT_GlyphSlot_Embolden( FT_GlyphSlot slot );
|
||||
|
||||
FT_EXPORT( FT_Error )
|
||||
FT_Outline_Oblique( FT_GlyphSlot original,
|
||||
FT_Outline* outline,
|
||||
FT_Pos* advance );
|
||||
|
||||
FT_EXPORT( void )
|
||||
FT_GlyphSlot_Oblique( FT_GlyphSlot slot );
|
||||
|
||||
/* */
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
|
||||
@@ -1,6 +1,16 @@
|
||||
#ifndef __FT_SYSTEM_IO_H__
|
||||
#define __FT_SYSTEM_IO_H__
|
||||
|
||||
/************************************************************************/
|
||||
/************************************************************************/
|
||||
/***** *****/
|
||||
/***** NOTE: THE CONTENT OF THIS FILE IS NOT CURRENTLY USED *****/
|
||||
/***** IN NORMAL BUILDS. CONSIDER IT EXPERIMENTAL. *****/
|
||||
/***** *****/
|
||||
/************************************************************************/
|
||||
/************************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
*
|
||||
* designing custom streams is a bit different now
|
||||
@@ -35,7 +45,7 @@
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
/********************************************************************
|
||||
/*@*******************************************************************
|
||||
*
|
||||
* @type: FT_Stream
|
||||
*
|
||||
@@ -45,7 +55,7 @@ FT_BEGIN_HEADER
|
||||
typedef struct FT_StreamRec_* FT_Stream;
|
||||
|
||||
|
||||
/********************************************************************
|
||||
/*@*******************************************************************
|
||||
*
|
||||
* @type: FT_Stream_Class
|
||||
*
|
||||
@@ -56,7 +66,7 @@ FT_BEGIN_HEADER
|
||||
typedef const struct FT_Stream_ClassRec_* FT_Stream_Class;
|
||||
|
||||
|
||||
/********************************************************************
|
||||
/*@*******************************************************************
|
||||
*
|
||||
* @functype: FT_Stream_ReadFunc
|
||||
*
|
||||
@@ -76,7 +86,7 @@ FT_BEGIN_HEADER
|
||||
FT_ULong size );
|
||||
|
||||
|
||||
/********************************************************************
|
||||
/*@*******************************************************************
|
||||
*
|
||||
* @functype: FT_Stream_SeekFunc
|
||||
*
|
||||
@@ -93,7 +103,8 @@ FT_BEGIN_HEADER
|
||||
typedef FT_Error (*FT_Stream_SeekFunc)( FT_Stream stream,
|
||||
FT_ULong pos );
|
||||
|
||||
/********************************************************************
|
||||
|
||||
/*@*******************************************************************
|
||||
*
|
||||
* @struct: FT_Stream_ClassRec
|
||||
*
|
||||
@@ -119,7 +130,7 @@ FT_BEGIN_HEADER
|
||||
#define FT_STREAM_CLASS__READ(x) FT_STREAM_CLASS(x)->stream_read
|
||||
#define FT_STREAM_CLASS__SEEK(x) FT_STREAM_CLASS(x)->stream_seek;
|
||||
|
||||
/********************************************************************
|
||||
/*@*******************************************************************
|
||||
*
|
||||
* @struct: FT_StreamRec
|
||||
*
|
||||
|
||||
@@ -5,7 +5,17 @@
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
/***********************************************************************
|
||||
/************************************************************************/
|
||||
/************************************************************************/
|
||||
/***** *****/
|
||||
/***** NOTE: THE CONTENT OF THIS FILE IS NOT CURRENTLY USED *****/
|
||||
/***** IN NORMAL BUILDS. CONSIDER IT EXPERIMENTAL. *****/
|
||||
/***** *****/
|
||||
/************************************************************************/
|
||||
/************************************************************************/
|
||||
|
||||
|
||||
/*@**********************************************************************
|
||||
*
|
||||
* @type: FT_Memory
|
||||
*
|
||||
@@ -20,7 +30,7 @@ FT_BEGIN_HEADER
|
||||
typedef struct FT_MemoryRec_* FT_Memory;
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
/*@**********************************************************************
|
||||
*
|
||||
* @functype: FT_Memory_AllocFunc
|
||||
*
|
||||
@@ -39,7 +49,7 @@ FT_BEGIN_HEADER
|
||||
FT_Pointer mem_data );
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
/*@**********************************************************************
|
||||
*
|
||||
* @functype: FT_Memory_FreeFunc
|
||||
*
|
||||
@@ -56,7 +66,7 @@ FT_BEGIN_HEADER
|
||||
FT_Pointer mem_data );
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
/*@**********************************************************************
|
||||
*
|
||||
* @functype: FT_Memory_ReallocFunc
|
||||
*
|
||||
@@ -76,7 +86,7 @@ FT_BEGIN_HEADER
|
||||
FT_Pointer mem_data );
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
/*@**********************************************************************
|
||||
*
|
||||
* @functype: FT_Memory_CreateFunc
|
||||
*
|
||||
@@ -100,7 +110,7 @@ FT_BEGIN_HEADER
|
||||
FT_Pointer *amem_data );
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
/*@**********************************************************************
|
||||
*
|
||||
* @functype: FT_Memory_DestroyFunc
|
||||
*
|
||||
@@ -115,7 +125,7 @@ FT_BEGIN_HEADER
|
||||
FT_Pointer mem_data );
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
/*@**********************************************************************
|
||||
*
|
||||
* @struct: FT_Memory_FuncsRec
|
||||
*
|
||||
@@ -141,7 +151,7 @@ FT_BEGIN_HEADER
|
||||
} FT_Memory_FuncsRec, *FT_Memory_Funcs;
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
/*@**********************************************************************
|
||||
*
|
||||
* @type: FT_Memory_Funcs
|
||||
*
|
||||
@@ -152,7 +162,7 @@ FT_BEGIN_HEADER
|
||||
typedef const FT_Memory_FuncsRec* FT_Memory_Funcs;
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
/*@**********************************************************************
|
||||
*
|
||||
* @function: ft_memory_new
|
||||
*
|
||||
@@ -172,7 +182,7 @@ FT_BEGIN_HEADER
|
||||
FT_Pointer mem_init_data );
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
/*@**********************************************************************
|
||||
*
|
||||
* @function: ft_memory_destroy
|
||||
*
|
||||
|
||||
@@ -280,7 +280,7 @@ FT_BEGIN_HEADER
|
||||
/* limit :: This field is set and used internally by FreeType */
|
||||
/* when parsing frames. */
|
||||
/* */
|
||||
struct FT_StreamRec_
|
||||
typedef struct FT_StreamRec_
|
||||
{
|
||||
unsigned char* base;
|
||||
unsigned long size;
|
||||
@@ -294,7 +294,8 @@ FT_BEGIN_HEADER
|
||||
FT_Memory memory;
|
||||
unsigned char* cursor;
|
||||
unsigned char* limit;
|
||||
};
|
||||
|
||||
} FT_StreamRec;
|
||||
|
||||
|
||||
/* */
|
||||
|
||||
@@ -173,6 +173,28 @@ FT_BEGIN_HEADER
|
||||
FT_Fixed y );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* @function: */
|
||||
/* FT_Angle_Diff */
|
||||
/* */
|
||||
/* @description: */
|
||||
/* Return the difference between two angles. The result is always */
|
||||
/* constrained to the ]-PI..PI] interval. */
|
||||
/* */
|
||||
/* @input: */
|
||||
/* angle1 :: First angle. */
|
||||
/* */
|
||||
/* angle2 :: Second angle. */
|
||||
/* */
|
||||
/* @return: */
|
||||
/* Contrainted value of `value2-value1'. */
|
||||
/* */
|
||||
FT_EXPORT( FT_Angle )
|
||||
FT_Angle_Diff( FT_Angle angle1,
|
||||
FT_Angle angle2 );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* @function: */
|
||||
@@ -270,6 +292,28 @@ FT_BEGIN_HEADER
|
||||
FT_Vector_Polarize( FT_Vector* vec,
|
||||
FT_Fixed *length,
|
||||
FT_Angle *angle );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* @function: */
|
||||
/* FT_Vector_From_Polar */
|
||||
/* */
|
||||
/* @description: */
|
||||
/* Compute vector coordinates from a length and angle. */
|
||||
/* */
|
||||
/* @output: */
|
||||
/* vec :: The address of source vector. */
|
||||
/* */
|
||||
/* @input: */
|
||||
/* length :: The vector length. */
|
||||
/* angle :: The vector angle. */
|
||||
/* */
|
||||
FT_EXPORT( void )
|
||||
FT_Vector_From_Polar( FT_Vector* vec,
|
||||
FT_Fixed length,
|
||||
FT_Angle angle );
|
||||
|
||||
/* */
|
||||
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_CONFIG_CONFIG_H
|
||||
#include FT_SYSTEM_H
|
||||
#include FT_IMAGE_H
|
||||
|
||||
@@ -43,7 +44,7 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* This section contains the basic data types defined by FreeType 2, */
|
||||
/* ranging from simple scalar types to bitmap descriptors. More */
|
||||
/* ranging from simple scalar types to bitmap descriptors. More */
|
||||
/* font-specific structures are defined in a different section. */
|
||||
/* */
|
||||
/* <Order> */
|
||||
@@ -356,6 +357,27 @@ FT_BEGIN_HEADER
|
||||
} FT_Matrix;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Struct> */
|
||||
/* FT_Data */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* Read-only binary data represented as a pointer and a length. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* pointer :: The data. */
|
||||
/* */
|
||||
/* length :: The length of the data in bytes. */
|
||||
/* */
|
||||
typedef struct FT_Data_
|
||||
{
|
||||
const FT_Byte* pointer;
|
||||
FT_Int length;
|
||||
|
||||
} FT_Data;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <FuncType> */
|
||||
@@ -418,6 +440,10 @@ FT_BEGIN_HEADER
|
||||
/* This macro converts four letter tags which are used to label */
|
||||
/* TrueType tables into an unsigned long to be used within FreeType. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* The produced values *must* be 32bit integers. Don't redefine this */
|
||||
/* macro. */
|
||||
/* */
|
||||
#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \
|
||||
( ( (FT_ULong)_x1 << 24 ) | \
|
||||
( (FT_ULong)_x2 << 16 ) | \
|
||||
|
||||
@@ -176,7 +176,7 @@ FT_BEGIN_HEADER
|
||||
FT_GlyphSlot slot,
|
||||
FT_Size size,
|
||||
FT_UInt glyph_index,
|
||||
FT_ULong load_flags );
|
||||
FT_Int32 load_flags );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
@@ -68,8 +68,9 @@ FT_BEGIN_HEADER
|
||||
FT_UInt format;
|
||||
FT_ULong offset;
|
||||
|
||||
FT_UShort* sids;
|
||||
FT_UShort* codes;
|
||||
FT_UInt count;
|
||||
FT_UShort sids [256]; /* avoid dynamic allocations */
|
||||
FT_UShort codes[256];
|
||||
|
||||
} CFF_EncodingRec, *CFF_Encoding;
|
||||
|
||||
@@ -241,6 +242,9 @@ FT_BEGIN_HEADER
|
||||
/* interface to PostScript hinter */
|
||||
void* pshinter;
|
||||
|
||||
/* interface to Postscript Names service */
|
||||
void* psnames;
|
||||
|
||||
} CFF_FontRec, *CFF_Font;
|
||||
|
||||
|
||||
|
||||
@@ -13,6 +13,11 @@
|
||||
/* this file you indicate that you have read the license and */
|
||||
/* understand and accept it fully. */
|
||||
/* */
|
||||
/* */
|
||||
/* IMPORTANT: A description of FreeType's debugging support can be */
|
||||
/* found in "docs/DEBUG.TXT". Read it if you need to use or */
|
||||
/* understand this code. */
|
||||
/* */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
@@ -47,10 +52,10 @@ FT_BEGIN_HEADER
|
||||
|
||||
#define FT_TRACE_DEF( x ) trace_ ## x ,
|
||||
|
||||
/* defining the enumeration */
|
||||
/* defining the enumeration */
|
||||
typedef enum
|
||||
{
|
||||
#include FT_INTERNAL_TRACE_H
|
||||
#include FT_INTERNAL_TRACE_H
|
||||
trace_count
|
||||
|
||||
} FT_Trace;
|
||||
|
||||
@@ -68,7 +68,7 @@ FT_BEGIN_HEADER
|
||||
(*FT_Slot_LoadFunc)( FT_GlyphSlot slot,
|
||||
FT_Size size,
|
||||
FT_UInt glyph_index,
|
||||
FT_Int load_flags );
|
||||
FT_Int32 load_flags );
|
||||
|
||||
|
||||
typedef FT_UInt
|
||||
@@ -186,12 +186,10 @@ FT_BEGIN_HEADER
|
||||
FT_Size_ResetPixelsFunc set_pixel_sizes;
|
||||
|
||||
FT_Slot_LoadFunc load_glyph;
|
||||
FT_CharMap_CharIndexFunc get_char_index;
|
||||
|
||||
FT_Face_GetKerningFunc get_kerning;
|
||||
FT_Face_AttachFunc attach_file;
|
||||
FT_Face_GetAdvancesFunc get_advances;
|
||||
FT_CharMap_CharNextFunc get_next_char;
|
||||
|
||||
} FT_Driver_ClassRec, *FT_Driver_Class;
|
||||
|
||||
|
||||
@@ -59,7 +59,19 @@ FT_BEGIN_HEADER
|
||||
|
||||
/***********************************************************
|
||||
*
|
||||
* @type: FT_Hash_CompareFunc
|
||||
* @type: FT_HashLookup
|
||||
*
|
||||
* @description:
|
||||
* handle to a @FT_HashNode pointer. This is returned by
|
||||
* the @ft_hash_lookup function and can later be used by
|
||||
* @ft_hash_add or @ft_hash_remove
|
||||
*/
|
||||
typedef FT_HashNode* FT_HashLookup;
|
||||
|
||||
|
||||
/***********************************************************
|
||||
*
|
||||
* @type: FT_Hash_EqualFunc
|
||||
*
|
||||
* @description:
|
||||
* a function used to compare two nodes of the hash table
|
||||
@@ -72,8 +84,8 @@ FT_BEGIN_HEADER
|
||||
* 1 iff the 'keys' in 'node1' and 'node2' are identical.
|
||||
* 0 otherwise.
|
||||
*/
|
||||
typedef FT_Int (*FT_Hash_CompareFunc)( const FT_HashNode node1,
|
||||
const FT_HashNode node2 );
|
||||
typedef FT_Int (*FT_Hash_EqualFunc)( FT_HashNode node1,
|
||||
FT_HashNode node2 );
|
||||
|
||||
|
||||
/***********************************************************
|
||||
@@ -106,18 +118,14 @@ FT_BEGIN_HEADER
|
||||
*/
|
||||
typedef struct FT_HashRec_
|
||||
{
|
||||
FT_Memory memory;
|
||||
FT_HashNode* buckets;
|
||||
FT_UInt p;
|
||||
FT_UInt mask; /* really maxp-1 */
|
||||
FT_UInt slack;
|
||||
FT_Long slack;
|
||||
FT_Hash_EqualFunc node_equal;
|
||||
FT_Memory memory;
|
||||
|
||||
|
||||
FT_UInt node_size;
|
||||
FT_Hash_CompareFunc node_compare;
|
||||
FT_Hash_ComputeFunc node_hash;
|
||||
|
||||
} FT_HashRec, *FT_Hash;
|
||||
} FT_HashRec;
|
||||
|
||||
|
||||
/***********************************************************
|
||||
@@ -168,36 +176,39 @@ FT_BEGIN_HEADER
|
||||
* initialize a dynamic hash table
|
||||
*
|
||||
* @input:
|
||||
* table :: handle to target hash table structure
|
||||
* compare :: node comparison function
|
||||
* memory :: memory manager handle used to allocate the
|
||||
* buckets array within the hash table
|
||||
* table :: handle to target hash table structure
|
||||
* node_equal :: node comparison function
|
||||
* memory :: memory manager handle used to allocate the
|
||||
* buckets array within the hash table
|
||||
*
|
||||
* @return:
|
||||
* error code. 0 means success
|
||||
*
|
||||
* @note:
|
||||
* the node comparison function should only compare node _keys_
|
||||
* and ignore values !! with good hashing computation (which the
|
||||
* user must perform itself), the comparison function should be
|
||||
* pretty selfom called.
|
||||
* pretty seldom called.
|
||||
*
|
||||
* here is a simple example:
|
||||
*
|
||||
* {
|
||||
* static int my_compare( const MyNode node1,
|
||||
* const MyNode node2 )
|
||||
* static int my_equal( MyNode node1,
|
||||
* MyNode node2 )
|
||||
* {
|
||||
* // compare keys of 'node1' and 'node2'
|
||||
* return strcmp( node1->key, node2->key );
|
||||
* return (strcmp( node1->key, node2->key ) == 0);
|
||||
* }
|
||||
*
|
||||
* ....
|
||||
*
|
||||
* ft_hash_init( &hash, (FT_Hash_CompareFunc) my_compare, memory );
|
||||
* ft_hash_init( &hash, (FT_Hash_EqualFunc) my_compare, memory );
|
||||
* ....
|
||||
* }
|
||||
*/
|
||||
FT_BASE( void )
|
||||
FT_BASE( FT_Error )
|
||||
ft_hash_init( FT_Hash table,
|
||||
FT_Hash_CompareFunc compare,
|
||||
FT_Hash_EqualFunc compare,
|
||||
FT_Memory memory );
|
||||
|
||||
|
||||
@@ -257,9 +268,9 @@ FT_BEGIN_HEADER
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
FT_BASE_DEF( FT_HashNode* )
|
||||
FT_BASE_DEF( FT_HashLookup )
|
||||
ft_hash_lookup( FT_Hash table,
|
||||
FT_HashNode keynode )
|
||||
FT_HashNode keynode );
|
||||
|
||||
|
||||
/****************************************************************
|
||||
@@ -273,10 +284,13 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @input:
|
||||
* table :: hash table handle
|
||||
* pnode :: pointer-to-hash-node value returned by @ft_hash_lookup
|
||||
* lookup :: pointer-to-hash-node value returned by @ft_hash_lookup
|
||||
* new_node :: handle to new hash node. All its fields must be correctly
|
||||
* set, including 'hash'.
|
||||
*
|
||||
* @return:
|
||||
* error code. 0 means success
|
||||
*
|
||||
* @note:
|
||||
* this function should always be used _after_ a call to @ft_hash_lookup
|
||||
* that returns a pointer to a NULL handle. Here's an example:
|
||||
@@ -308,18 +322,21 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* // allocate a new node - and set it up
|
||||
* node = (MyNode) malloc( sizeof(*node) );
|
||||
* if ( node == NULL ) .....
|
||||
*
|
||||
* node->hnode.hash = noderec.hnode.hash;
|
||||
* node->key = key;
|
||||
* node->value = value;
|
||||
*
|
||||
* // add it to the hash table
|
||||
* ft_hash_add( table, pnode, node );
|
||||
* error = ft_hash_add( table, pnode, node );
|
||||
* if (error) ....
|
||||
* }
|
||||
*/
|
||||
FT_BASE( void )
|
||||
ft_hash_add( FT_Hash table,
|
||||
FT_HashNode* pnode,
|
||||
FT_HashNode new_node );
|
||||
FT_BASE( FT_Error )
|
||||
ft_hash_add( FT_Hash table,
|
||||
FT_HashLookup lookup,
|
||||
FT_HashNode new_node );
|
||||
|
||||
|
||||
/****************************************************************
|
||||
@@ -332,7 +349,7 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @input:
|
||||
* table :: hash table handle
|
||||
* pnode :: pointer-to-hash-node value returned by @ft_hash_lookup
|
||||
* lookup :: pointer-to-hash-node value returned by @ft_hash_lookup
|
||||
*
|
||||
* @note:
|
||||
* this function doesn't free the node itself !! Here's an example:
|
||||
@@ -354,15 +371,16 @@ FT_BEGIN_HEADER
|
||||
* node = *pnode;
|
||||
* if ( node != NULL )
|
||||
* {
|
||||
* ft_hash_remove( table, pnode );
|
||||
* free( node );
|
||||
* error = ft_hash_remove( table, pnode );
|
||||
* if ( !error )
|
||||
* free( node );
|
||||
* }
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
FT_BASE( void )
|
||||
ft_hash_remove( FT_Hash table,
|
||||
FT_HashNode* pnode );
|
||||
FT_BASE( FT_Error )
|
||||
ft_hash_remove( FT_Hash table,
|
||||
FT_HashLookup lookup );
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -140,14 +140,11 @@ FT_BEGIN_HEADER
|
||||
* object :: target object handle
|
||||
* init_data :: optional pointer to initialization data
|
||||
*
|
||||
* @throws: any
|
||||
*
|
||||
* the object is _assumed_ to be reachable from the cleanup
|
||||
* stack when the constructor is called. This means that
|
||||
* any exception can be thrown safely in it.
|
||||
* @return:
|
||||
* error code. 0 means success
|
||||
*/
|
||||
typedef void (*FT_Object_InitFunc)( FT_Object object,
|
||||
FT_Pointer init_data );
|
||||
typedef FT_Error (*FT_Object_InitFunc)( FT_Object object,
|
||||
FT_Pointer init_data );
|
||||
|
||||
/**************************************************************
|
||||
*
|
||||
@@ -158,8 +155,6 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @input:
|
||||
* object :: handle to target object
|
||||
*
|
||||
* @throws: *never* !!
|
||||
*/
|
||||
typedef void (*FT_Object_DoneFunc)( FT_Object object );
|
||||
|
||||
@@ -179,12 +174,15 @@ FT_BEGIN_HEADER
|
||||
* object sub-system.)
|
||||
*
|
||||
* magic :: a 32-bit magic number used for decoding
|
||||
* super :: pointer to super class
|
||||
* type :: the @FT_Type descriptor of this class
|
||||
* memory :: the current memory manager handle
|
||||
* library :: the current library handle
|
||||
* info :: an opaque pointer to class-specific information
|
||||
* managed by the FreeType object sub-system
|
||||
*
|
||||
* class_done :: the class destructor function
|
||||
*
|
||||
* obj_size :: size of class instances in bytes
|
||||
* obj_init :: class instance constructor
|
||||
* obj_done :: class instance destructor
|
||||
@@ -193,11 +191,14 @@ FT_BEGIN_HEADER
|
||||
{
|
||||
FT_ObjectRec object;
|
||||
FT_UInt32 magic;
|
||||
FT_Class super;
|
||||
FT_Type type;
|
||||
FT_Memory memory;
|
||||
FT_Library library;
|
||||
FT_Pointer info;
|
||||
|
||||
FT_Object_DoneFunc class_done;
|
||||
|
||||
FT_UInt obj_size;
|
||||
FT_Object_InitFunc obj_init;
|
||||
FT_Object_DoneFunc obj_done;
|
||||
@@ -287,14 +288,17 @@ FT_BEGIN_HEADER
|
||||
*
|
||||
* @note:
|
||||
* if 'obj_init' is NULL, the class will use it's parent
|
||||
* constructor.
|
||||
* constructor, if any
|
||||
*
|
||||
* if 'obj_done' is NULL, the class will use it's parent
|
||||
* finalizer.
|
||||
* finalizer, if any
|
||||
*
|
||||
* the object sub-system allocates a new class, copies
|
||||
* the content of its super-class into the new structure,
|
||||
* _then_ calls 'clazz_init'.
|
||||
*
|
||||
* 'class_init' and 'class_done' can be NULL, in which case
|
||||
* the parent's class constructor and destructor wil be used
|
||||
*/
|
||||
typedef struct FT_TypeRec_
|
||||
{
|
||||
@@ -336,7 +340,7 @@ FT_BEGIN_HEADER
|
||||
* @return:
|
||||
* 1 iff the handle points to a valid object. 0 otherwise
|
||||
*/
|
||||
FT_BASE_DEF( FT_Int )
|
||||
FT_BASE( FT_Int )
|
||||
ft_object_check( FT_Pointer obj );
|
||||
|
||||
|
||||
@@ -356,88 +360,174 @@ FT_BEGIN_HEADER
|
||||
* 1 iff the handle points to a valid 'clazz' instance. 0
|
||||
* otherwise.
|
||||
*/
|
||||
FT_BASE_DEF( FT_Int )
|
||||
FT_BASE( FT_Int )
|
||||
ft_object_is_a( FT_Pointer obj,
|
||||
FT_Class clazz );
|
||||
|
||||
|
||||
/**************************************************************
|
||||
*
|
||||
* @function: ft_object_new
|
||||
*
|
||||
* @description:
|
||||
* create a new object (class instance)
|
||||
*
|
||||
* @input:
|
||||
* clazz :: object's class pointer
|
||||
* init_data :: optional pointer to initialization data
|
||||
*
|
||||
* @return:
|
||||
* handle to new object. Cannot be NULL !
|
||||
*/
|
||||
FT_BASE_DEF( FT_Object )
|
||||
ft_object_new( FT_Class clazz,
|
||||
FT_Pointer init_data );
|
||||
|
||||
|
||||
/**************************************************************
|
||||
*
|
||||
* @function: ft_object_create
|
||||
*
|
||||
* @description:
|
||||
* a variation of @ft_object_new that should be used when
|
||||
* creating a new object that is owned by another object
|
||||
* which is reachable from the cleanup stack.
|
||||
*
|
||||
* this function is a bit more akward to use but completely
|
||||
* avoids push/pop pairs during object construction and is
|
||||
* therefore faster.
|
||||
* create a new object (class instance)
|
||||
*
|
||||
* @output:
|
||||
* pobject :: new object handle
|
||||
* aobject :: new object handle. NULL in case of error
|
||||
*
|
||||
* @input:
|
||||
* clazz :: object's class pointer
|
||||
* init_data :: optional pointer to initialization data
|
||||
* push :: boolean. If true, the new object is pushed
|
||||
* on top of the cleanup stack.
|
||||
*
|
||||
* @return:
|
||||
* error code. 0 means success
|
||||
*/
|
||||
FT_BASE_DEF( void )
|
||||
ft_object_create( FT_Object *pobject,
|
||||
FT_BASE( FT_Error )
|
||||
ft_object_create( FT_Object *aobject,
|
||||
FT_Class clazz,
|
||||
FT_Pointer init_data );
|
||||
|
||||
/* */
|
||||
|
||||
FT_BASE_DEF( FT_Class )
|
||||
ft_class_find_by_type( FT_Type type,
|
||||
FT_Memory memory );
|
||||
|
||||
FT_BASE_DEF( FT_Class )
|
||||
ft_class_find_by_name( FT_CString class_name,
|
||||
FT_Memory memory );
|
||||
|
||||
FT_BASE_DEF( FT_Object )
|
||||
ft_object_new_from_type( FT_Type type,
|
||||
FT_Pointer data,
|
||||
FT_Memory memory );
|
||||
|
||||
FT_BASE_DEF( void )
|
||||
ft_object_create_from_type( FT_Object *pobject,
|
||||
/**************************************************************
|
||||
*
|
||||
* @function: ft_object_create_from_type
|
||||
*
|
||||
* @description:
|
||||
* create a new object (class instance) from a @FT_Type
|
||||
*
|
||||
* @output:
|
||||
* aobject :: new object handle. NULL in case of error
|
||||
*
|
||||
* @input:
|
||||
* type :: object's type descriptor
|
||||
* init_data :: optional pointer to initialization data
|
||||
*
|
||||
* @return:
|
||||
* error code. 0 means success
|
||||
*
|
||||
* @note:
|
||||
* this function is slower than @ft_object_create
|
||||
*
|
||||
* this is equivalent to calling @ft_class_from_type followed by
|
||||
* @ft_object_create
|
||||
*/
|
||||
FT_BASE( FT_Error )
|
||||
ft_object_create_from_type( FT_Object *aobject,
|
||||
FT_Type type,
|
||||
FT_Pointer init_data,
|
||||
FT_Memory memory );
|
||||
FT_Library library );
|
||||
|
||||
FT_BASE_DEF( void )
|
||||
ft_object_push( FT_Object object );
|
||||
|
||||
FT_BASE_DEF( void )
|
||||
ft_object_pop( FT_Object object );
|
||||
|
||||
FT_BASE_DEF( void )
|
||||
ft_object_pop_destroy( FT_Object object );
|
||||
/**************************************************************
|
||||
*
|
||||
* @macro FT_OBJ_CREATE (object,class,init)
|
||||
*
|
||||
* @description:
|
||||
* a convenient macro used to create new objects. see
|
||||
* @ft_object_create for details
|
||||
*/
|
||||
#define FT_OBJ_CREATE( _obj, _clazz, _init ) \
|
||||
ft_object_create( FT_OBJECT_P(&(_obj)), _clazz, _init )
|
||||
|
||||
|
||||
/**************************************************************
|
||||
*
|
||||
* @macro FT_CREATE (object,class,init)
|
||||
*
|
||||
* @description:
|
||||
* a convenient macro used to create new objects. It also
|
||||
* sets an _implicit_ local variable named "error" to the error
|
||||
* code returned by the object constructor.
|
||||
*/
|
||||
#define FT_CREATE( _obj, _clazz, _init ) \
|
||||
FT_SET_ERROR( FT_OBJ_CREATE( _obj, _clazz, _init ) )
|
||||
|
||||
/**************************************************************
|
||||
*
|
||||
* @macro FT_OBJ_CREATE_FROM_TYPE (object,type,init)
|
||||
*
|
||||
* @description:
|
||||
* a convenient macro used to create new objects. see
|
||||
* @ft_object_create_from_type for details
|
||||
*/
|
||||
#define FT_OBJ_CREATE_FROM_TYPE( _obj, _type, _init, _lib ) \
|
||||
ft_object_create_from_type( FT_OBJECT_P(&(_obj)), _type, _init, _lib )
|
||||
|
||||
|
||||
/**************************************************************
|
||||
*
|
||||
* @macro FT_CREATE_FROM_TYPE (object,type,init)
|
||||
*
|
||||
* @description:
|
||||
* a convenient macro used to create new objects. It also
|
||||
* sets an _implicit_ local variable named "error" to the error
|
||||
* code returned by the object constructor.
|
||||
*/
|
||||
#define FT_CREATE_FROM_TYPE( _obj, _type, _init, _lib ) \
|
||||
FT_SET_ERROR( FT_OBJ_CREATE_FROM_TYPE( _obj, _type, _init, _lib ) )
|
||||
|
||||
|
||||
/* */
|
||||
|
||||
/**************************************************************
|
||||
*
|
||||
* @function: ft_class_from_type
|
||||
*
|
||||
* @description:
|
||||
* retrieves the class object corresponding to a given type
|
||||
* descriptor. The class is created when needed
|
||||
*
|
||||
* @output:
|
||||
* aclass :: handle to corresponding class object. NULL in
|
||||
* case of error
|
||||
*
|
||||
* @input:
|
||||
* type :: type descriptor handle
|
||||
* library :: library handle
|
||||
*
|
||||
* @return:
|
||||
* error code. 0 means success
|
||||
*/
|
||||
FT_BASE( FT_Error )
|
||||
ft_class_from_type( FT_Class *aclass,
|
||||
FT_Type type,
|
||||
FT_Library library );
|
||||
|
||||
|
||||
/* */
|
||||
|
||||
#include FT_INTERNAL_HASH_H
|
||||
|
||||
typedef struct FT_ClassHNodeRec_* FT_ClassHNode;
|
||||
|
||||
typedef struct FT_ClassHNodeRec_
|
||||
{
|
||||
FT_HashNodeRec hnode;
|
||||
FT_Type type;
|
||||
FT_Class clazz;
|
||||
|
||||
} FT_ClassHNodeRec;
|
||||
|
||||
typedef struct FT_MetaClassRec_
|
||||
{
|
||||
FT_ClassRec clazz; /* the meta-class is a class itself */
|
||||
FT_HashRec type_to_class; /* the type => class hash table */
|
||||
|
||||
} FT_MetaClassRec, *FT_MetaClass;
|
||||
|
||||
|
||||
/* initialize meta class */
|
||||
FT_BASE( FT_Error )
|
||||
ft_metaclass_init( FT_MetaClass meta,
|
||||
FT_Library library );
|
||||
|
||||
/* finalize meta class - destroy all registered class objects */
|
||||
FT_BASE( void )
|
||||
ft_metaclass_done( FT_MetaClass meta );
|
||||
|
||||
/* */
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
#endif /* __FT_OBJECT_H__ */
|
||||
|
||||
@@ -34,6 +34,11 @@
|
||||
#include FT_INTERNAL_GLYPH_LOADER_H
|
||||
#include FT_INTERNAL_DRIVER_H
|
||||
#include FT_INTERNAL_AUTOHINT_H
|
||||
#include FT_INTERNAL_OBJECT_H
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_INCREMENTAL
|
||||
#include FT_INCREMENTAL_H
|
||||
#endif
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
@@ -291,8 +296,19 @@ FT_BEGIN_HEADER
|
||||
/* transform_flags :: Some flags used to classify the transform. */
|
||||
/* Only used by the convenience functions. */
|
||||
/* */
|
||||
/* hint_flags :: Some flags used to change the hinters' */
|
||||
/* behaviour. Only used for debugging for now. */
|
||||
/* */
|
||||
/* postscript_name :: Postscript font name for this face. */
|
||||
/* */
|
||||
/* incremental_interface :: */
|
||||
/* If non-null, the interface through */
|
||||
/* which glyph data and metrics are loaded */
|
||||
/* incrementally for faces that do not provide */
|
||||
/* all of this data when first opened. */
|
||||
/* This field exists only if */
|
||||
/* @FT_CONFIG_OPTION_INCREMENTAL is defined. */
|
||||
/* */
|
||||
typedef struct FT_Face_InternalRec_
|
||||
{
|
||||
FT_UShort max_points;
|
||||
@@ -302,8 +318,14 @@ FT_BEGIN_HEADER
|
||||
FT_Vector transform_delta;
|
||||
FT_Int transform_flags;
|
||||
|
||||
FT_UInt32 hint_flags;
|
||||
|
||||
const char* postscript_name;
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_INCREMENTAL
|
||||
FT_Incremental_InterfaceRec* incremental_interface;
|
||||
#endif
|
||||
|
||||
} FT_Face_InternalRec;
|
||||
|
||||
|
||||
@@ -534,14 +556,14 @@ FT_BEGIN_HEADER
|
||||
|
||||
typedef struct FT_RendererRec_
|
||||
{
|
||||
FT_ModuleRec root;
|
||||
FT_Renderer_Class* clazz;
|
||||
FT_Glyph_Format glyph_format;
|
||||
FT_Glyph_Class glyph_class;
|
||||
FT_ModuleRec root;
|
||||
FT_Renderer_Class* clazz;
|
||||
FT_Glyph_Format glyph_format;
|
||||
FT_Glyph_Class glyph_class;
|
||||
|
||||
FT_Raster raster;
|
||||
FT_Raster_Render_Func raster_render;
|
||||
FTRenderer_render render;
|
||||
FT_Raster raster;
|
||||
FT_Raster_Render_Func raster_render;
|
||||
FT_Renderer_RenderFunc render;
|
||||
|
||||
} FT_RendererRec;
|
||||
|
||||
@@ -656,7 +678,7 @@ FT_BEGIN_HEADER
|
||||
/* shortcut used to avoid parsing the list on */
|
||||
/* each call to FT_Outline_Render(). It is a */
|
||||
/* handle to the current renderer for the */
|
||||
/* ft_glyph_format_outline format. */
|
||||
/* FT_GLYPH_FORMAT_OUTLINE format. */
|
||||
/* */
|
||||
/* auto_hinter :: XXX */
|
||||
/* */
|
||||
@@ -690,6 +712,8 @@ FT_BEGIN_HEADER
|
||||
|
||||
FT_DebugHook_Func debug_hooks[4];
|
||||
|
||||
FT_MetaClassRec meta_class;
|
||||
|
||||
} FT_LibraryRec;
|
||||
|
||||
|
||||
@@ -699,9 +723,9 @@ FT_BEGIN_HEADER
|
||||
FT_ListNode* node );
|
||||
|
||||
FT_BASE( FT_Error )
|
||||
FT_Render_Glyph_Internal( FT_Library library,
|
||||
FT_GlyphSlot slot,
|
||||
FT_UInt render_mode );
|
||||
FT_Render_Glyph_Internal( FT_Library library,
|
||||
FT_GlyphSlot slot,
|
||||
FT_Render_Mode render_mode );
|
||||
|
||||
typedef const char*
|
||||
(*FT_Face_GetPostscriptNameFunc)( FT_Face face );
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_SYSTEM_H
|
||||
#include FT_INTERNAL_OBJECTS_H
|
||||
|
||||
|
||||
@@ -387,7 +388,7 @@ FT_BEGIN_HEADER
|
||||
FT_BASE( void )
|
||||
FT_Stream_ReleaseFrame( FT_Stream stream,
|
||||
FT_Byte** pbytes );
|
||||
|
||||
|
||||
/* read a byte from an entered frame */
|
||||
FT_BASE( FT_Char )
|
||||
FT_Stream_GetChar( FT_Stream stream );
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
#define FT_INTERNAL_TRACE_H <freetype/internal/fttrace.h>
|
||||
#define FT_INTERNAL_GLYPH_LOADER_H <freetype/internal/ftgloadr.h>
|
||||
#define FT_INTERNAL_SFNT_H <freetype/internal/sfnt.h>
|
||||
#define FT_INTERNAL_HASH_H <freetype/internal/fthash.h>
|
||||
#define FT_INTERNAL_OBJECT_H <freetype/internal/ftobject.h>
|
||||
|
||||
#define FT_INTERNAL_TRUETYPE_TYPES_H <freetype/internal/tttypes.h>
|
||||
#define FT_INTERNAL_TYPE1_TYPES_H <freetype/internal/t1types.h>
|
||||
@@ -42,7 +44,7 @@
|
||||
#define FT_INTERNAL_CFF_TYPES_H <freetype/internal/cfftypes.h>
|
||||
#define FT_INTERNAL_FNT_TYPES_H <freetype/internal/fnttypes.h>
|
||||
#define FT_INTERNAL_BDF_TYPES_H <freetype/internal/bdftypes.h>
|
||||
#define FT_INTERNAL_PCF_TYPES_H <freetype/internal/pcftypes.h>
|
||||
#define FT_INTERNAL_PFR_H <freetype/internal/pfr.h>
|
||||
|
||||
#define FT_INTERNAL_POSTSCRIPT_NAMES_H <freetype/internal/psnames.h>
|
||||
#define FT_INTERNAL_POSTSCRIPT_AUX_H <freetype/internal/psaux.h>
|
||||
|
||||
@@ -38,10 +38,12 @@ FT_BEGIN_HEADER
|
||||
|
||||
typedef struct PCF_Public_FaceRec_
|
||||
{
|
||||
FT_FaceRec root;
|
||||
FT_FaceRec root;
|
||||
FT_StreamRec gzip_stream;
|
||||
FT_Stream gzip_source;
|
||||
|
||||
char* charset_encoding;
|
||||
char* charset_registry;
|
||||
char* charset_encoding;
|
||||
char* charset_registry;
|
||||
|
||||
} PCF_Public_FaceRec, *PCF_Public_Face;
|
||||
|
||||
|
||||
@@ -142,10 +142,10 @@ FT_BEGIN_HEADER
|
||||
typedef struct PS_ParserRec_* PS_Parser;
|
||||
|
||||
typedef struct T1_TokenRec_* T1_Token;
|
||||
|
||||
|
||||
typedef struct T1_FieldRec_* T1_Field;
|
||||
|
||||
|
||||
|
||||
/* simple enumeration type used to identify token types */
|
||||
typedef enum T1_TokenType_
|
||||
{
|
||||
@@ -178,6 +178,7 @@ FT_BEGIN_HEADER
|
||||
T1_FIELD_TYPE_INTEGER,
|
||||
T1_FIELD_TYPE_FIXED,
|
||||
T1_FIELD_TYPE_STRING,
|
||||
T1_FIELD_TYPE_BBOX,
|
||||
T1_FIELD_TYPE_INTEGER_ARRAY,
|
||||
T1_FIELD_TYPE_FIXED_ARRAY,
|
||||
T1_FIELD_TYPE_CALLBACK,
|
||||
@@ -194,6 +195,7 @@ FT_BEGIN_HEADER
|
||||
T1_FIELD_LOCATION_FONT_DICT,
|
||||
T1_FIELD_LOCATION_FONT_INFO,
|
||||
T1_FIELD_LOCATION_PRIVATE,
|
||||
T1_FIELD_LOCATION_BBOX,
|
||||
|
||||
/* do not remove */
|
||||
T1_FIELD_LOCATION_MAX
|
||||
@@ -271,6 +273,10 @@ FT_BEGIN_HEADER
|
||||
#define T1_FIELD_STRING( _ident, _fname ) \
|
||||
T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_STRING, _fname )
|
||||
|
||||
#define T1_FIELD_BBOX( _ident, _fname ) \
|
||||
T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_BBOX, _fname )
|
||||
|
||||
|
||||
#define T1_FIELD_NUM_TABLE( _ident, _fname, _fmax ) \
|
||||
T1_NEW_TABLE_FIELD( _ident, T1_FIELD_TYPE_INTEGER_ARRAY, \
|
||||
_fname, _fmax )
|
||||
@@ -388,7 +394,7 @@ FT_BEGIN_HEADER
|
||||
FT_Memory memory;
|
||||
|
||||
PS_Parser_FuncsRec funcs;
|
||||
|
||||
|
||||
} PS_ParserRec;
|
||||
|
||||
|
||||
@@ -544,7 +550,7 @@ FT_BEGIN_HEADER
|
||||
void* hints_globals; /* hinter-specific */
|
||||
|
||||
T1_Builder_FuncsRec funcs;
|
||||
|
||||
|
||||
} T1_BuilderRec;
|
||||
|
||||
|
||||
@@ -604,6 +610,7 @@ FT_BEGIN_HEADER
|
||||
FT_Byte** glyph_names,
|
||||
PS_Blend blend,
|
||||
FT_Bool hinting,
|
||||
FT_Render_Mode hint_mode,
|
||||
T1_Decoder_Callback callback );
|
||||
|
||||
void
|
||||
@@ -613,7 +620,7 @@ FT_BEGIN_HEADER
|
||||
(*parse_charstrings)( T1_Decoder decoder,
|
||||
FT_Byte* base,
|
||||
FT_UInt len );
|
||||
|
||||
|
||||
} T1_Decoder_FuncsRec;
|
||||
|
||||
|
||||
@@ -645,9 +652,12 @@ FT_BEGIN_HEADER
|
||||
|
||||
PS_Blend blend; /* for multiple master support */
|
||||
|
||||
FT_UInt32 hint_flags;
|
||||
FT_Render_Mode hint_mode;
|
||||
|
||||
T1_Decoder_Callback parse_callback;
|
||||
T1_Decoder_FuncsRec funcs;
|
||||
|
||||
|
||||
} T1_DecoderRec;
|
||||
|
||||
|
||||
@@ -667,9 +677,9 @@ FT_BEGIN_HEADER
|
||||
FT_CMap_Class expert;
|
||||
FT_CMap_Class custom;
|
||||
FT_CMap_Class unicode;
|
||||
|
||||
|
||||
} T1_CMap_ClassesRec;
|
||||
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
||||
@@ -261,11 +261,13 @@ FT_BEGIN_HEADER
|
||||
/* been recorded. */
|
||||
/* */
|
||||
/* @input: */
|
||||
/* hints :: A handle to the Type 1 hints recorder. */
|
||||
/* hints :: A handle to the Type 1 hints recorder. */
|
||||
/* */
|
||||
/* outline :: A pointer to the target outline descriptor. */
|
||||
/* outline :: A pointer to the target outline descriptor. */
|
||||
/* */
|
||||
/* globals :: The hinter globals for this font. */
|
||||
/* globals :: The hinter globals for this font. */
|
||||
/* */
|
||||
/* hint_flags :: Hinter bit flags. */
|
||||
/* */
|
||||
/* @return: */
|
||||
/* FreeType error code. 0 means success. */
|
||||
@@ -278,9 +280,10 @@ FT_BEGIN_HEADER
|
||||
/* which must correspond to the same font as the glyph. */
|
||||
/* */
|
||||
typedef FT_Error
|
||||
(*T1_Hints_ApplyFunc)( T1_Hints hints,
|
||||
FT_Outline* outline,
|
||||
PSH_Globals globals );
|
||||
(*T1_Hints_ApplyFunc)( T1_Hints hints,
|
||||
FT_Outline* outline,
|
||||
PSH_Globals globals,
|
||||
FT_Render_Mode hint_mode );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@@ -539,11 +542,13 @@ FT_BEGIN_HEADER
|
||||
/* method. */
|
||||
/* */
|
||||
/* @input: */
|
||||
/* hints :: A handle to the Type 2 hints recorder. */
|
||||
/* hints :: A handle to the Type 2 hints recorder. */
|
||||
/* */
|
||||
/* outline :: A pointer to the target outline descriptor. */
|
||||
/* outline :: A pointer to the target outline descriptor. */
|
||||
/* */
|
||||
/* globals :: The hinter globals for this font. */
|
||||
/* globals :: The hinter globals for this font. */
|
||||
/* */
|
||||
/* hint_flags :: Hinter bit flags. */
|
||||
/* */
|
||||
/* @return: */
|
||||
/* FreeType error code. 0 means success. */
|
||||
@@ -556,9 +561,10 @@ FT_BEGIN_HEADER
|
||||
/* which must correspond to the same font than the glyph. */
|
||||
/* */
|
||||
typedef FT_Error
|
||||
(*T2_Hints_ApplyFunc)( T2_Hints hints,
|
||||
FT_Outline* outline,
|
||||
PSH_Globals globals );
|
||||
(*T2_Hints_ApplyFunc)( T2_Hints hints,
|
||||
FT_Outline* outline,
|
||||
PSH_Globals globals,
|
||||
FT_Render_Mode hint_mode );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
@@ -52,7 +52,7 @@ FT_BEGIN_HEADER
|
||||
/* This function will not be compiled if the configuration macro */
|
||||
/* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST is undefined. */
|
||||
/* */
|
||||
typedef FT_ULong
|
||||
typedef FT_UInt32
|
||||
(*PS_Unicode_Value_Func)( const char* glyph_name );
|
||||
|
||||
|
||||
|
||||
@@ -100,6 +100,8 @@ FT_BEGIN_HEADER
|
||||
FT_UShort entry_selector;
|
||||
FT_UShort range_shift;
|
||||
|
||||
FT_ULong offset; /* not in file */
|
||||
|
||||
} SFNT_HeaderRec, *SFNT_Header;
|
||||
|
||||
|
||||
@@ -1481,18 +1483,9 @@ FT_BEGIN_HEADER
|
||||
TT_OS2 os2; /* TrueType OS/2 table */
|
||||
TT_Postscript postscript; /* TrueType Postscript table */
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
|
||||
FT_Byte* cmap_table; /* extracted 'cmap' table */
|
||||
FT_ULong cmap_size;
|
||||
|
||||
#else /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
FT_Int num_charmaps;
|
||||
TT_CharMap charmaps; /* array of TT_CharMapRec */
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
TT_Loader_GotoTableFunc goto_table;
|
||||
|
||||
TT_Loader_StartGlyphFunc access_glyph_frame;
|
||||
@@ -1525,10 +1518,10 @@ FT_BEGIN_HEADER
|
||||
TT_PCLT pclt;
|
||||
|
||||
/* embedded bitmaps support */
|
||||
FT_Int num_sbit_strikes;
|
||||
FT_ULong num_sbit_strikes;
|
||||
TT_SBit_Strike sbit_strikes;
|
||||
|
||||
FT_Int num_sbit_scales;
|
||||
FT_ULong num_sbit_scales;
|
||||
TT_SBit_Scale sbit_scales;
|
||||
|
||||
/* postscript names table */
|
||||
|
||||
@@ -208,7 +208,7 @@ FT_BEGIN_HEADER
|
||||
#define T1_MAX_MM_DESIGNS 16
|
||||
|
||||
/* maximum number of Multiple Masters axes, as defined in the spec */
|
||||
#define T1_MAX_MM_AXIS 4
|
||||
#define T1_MAX_MM_AXIS 4
|
||||
|
||||
/* maximum number of elements in a design map */
|
||||
#define T1_MAX_MM_MAP_POINTS 20
|
||||
@@ -244,6 +244,8 @@ FT_BEGIN_HEADER
|
||||
|
||||
FT_ULong blend_bitflags;
|
||||
|
||||
FT_BBox* bboxes [T1_MAX_MM_DESIGNS + 1];
|
||||
|
||||
} PS_BlendRec, *PS_Blend;
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* TrueType name ID definitions (specification only). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@@ -31,34 +31,134 @@ FT_BEGIN_HEADER
|
||||
/* Possible values for the `platform' identifier code in the name */
|
||||
/* records of the TTF `name' table. */
|
||||
/* */
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* @enum:
|
||||
* TT_PLATFORM_XXX
|
||||
*
|
||||
* @description:
|
||||
* A list of valid values for the `platform_id' identifier code in
|
||||
* @FT_CharmapRec and @FT_SfntName structures.
|
||||
*
|
||||
* @values:
|
||||
* TT_PLATFORM_APPLE_UNICODE ::
|
||||
* Used by Apple to indicate a Unicode character map and/or name entry.
|
||||
* See @TT_APPLE_ID_XXX for corresponding `encoding_id' values. Note
|
||||
* that name entries in this format are coded as big-endian UCS-2
|
||||
* character codes _only_.
|
||||
*
|
||||
* TT_PLATFORM_MACINTOSH ::
|
||||
* Used by Apple to indicate a MacOS-specific charmap and/or name entry.
|
||||
* See @TT_MAC_ID_XXX for corresponding `encoding_id' values. Note that
|
||||
* most TrueType fonts contain an Apple roman charmap to be usable on
|
||||
* MacOS systems (even if they contain a Microsoft charmap as well).
|
||||
*
|
||||
* TT_PLATFORM_ISO ::
|
||||
* This value was used to specify Unicode charmaps. It is however
|
||||
* now deprecated. See @TT_ISO_ID_XXX for a list of corresponding
|
||||
* `encoding_id' values.
|
||||
*
|
||||
* TT_PLATFORM_MICROSOFT ::
|
||||
* Used by Microsoft to indicate Windows-specific charmaps. See
|
||||
* @TT_MS_ID_XXX for a list of corresponding `encoding_id' values.
|
||||
* Note that most fonts contain a Unicode charmap using
|
||||
* (@TT_PLATFORM_MICROSOFT, @TT_MS_ID_UNICODE_CS).
|
||||
*
|
||||
* TT_PLATFORM_CUSTOM ::
|
||||
* Used to indicate application-specific charmaps.
|
||||
*
|
||||
* TT_PLATFORM_ADOBE ::
|
||||
* This value isn't part of any font format specification, but is used
|
||||
* by FreeType to report Adobe-specific charmaps in an @FT_CharMapRec
|
||||
* structure. See @TT_ADOBE_ID_XXX.
|
||||
*/
|
||||
|
||||
#define TT_PLATFORM_APPLE_UNICODE 0
|
||||
#define TT_PLATFORM_MACINTOSH 1
|
||||
#define TT_PLATFORM_ISO 2 /* deprecated */
|
||||
#define TT_PLATFORM_MICROSOFT 3
|
||||
#define TT_PLATFORM_CUSTOM 4
|
||||
|
||||
/* artificial values defined ad-hoc by FreeType */
|
||||
#define TT_PLATFORM_ADOBE 7
|
||||
#define TT_PLATFORM_ADOBE 7 /* artificial */
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Possible values of the platform specific encoding identifier field in */
|
||||
/* the name records of the TTF `name' table if the `platform' identifier */
|
||||
/* code is TT_PLATFORM_APPLE_UNICODE. */
|
||||
/* */
|
||||
/***********************************************************************
|
||||
*
|
||||
* @enum:
|
||||
* TT_APPLE_ID_XXX
|
||||
*
|
||||
* @description:
|
||||
* A list of valid values for the `encoding_id' for
|
||||
* @TT_PLATFORM_APPLE_UNICODE charmaps and name entries.
|
||||
*
|
||||
* @values:
|
||||
* TT_APPLE_ID_DEFAULT ::
|
||||
* Unicode version 1.0.
|
||||
* TT_APPLE_ID_UNICODE_1_1 ::
|
||||
* Unicode 1.1; specifies Hangul characters starting at U+34xx.
|
||||
* TT_APPLE_ID_ISO_10646 ::
|
||||
* Deprecated.
|
||||
* TT_APPLE_ID_UNICODE_2_0 ::
|
||||
* Unicode 2.0 and beyond (UTF-16 BMP only).
|
||||
* TT_APPLE_ID_UNICODE_32 ::
|
||||
* UTF-32 (Adobe proposal for OpenType).
|
||||
*/
|
||||
|
||||
#define TT_APPLE_ID_DEFAULT 0 /* Unicode 1.0 */
|
||||
#define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */
|
||||
#define TT_APPLE_ID_ISO_10646 2 /* deprecated */
|
||||
#define TT_APPLE_ID_UNICODE_2_0 3 /* or later */
|
||||
#define TT_APPLE_ID_UNICODE_32 4 /* Adobe proposal */
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Possible values of the platform specific encoding identifier field in */
|
||||
/* the name records of the TTF `name' table if the `platform' identifier */
|
||||
/* code is TT_PLATFORM_MACINTOSH. */
|
||||
/* */
|
||||
/***********************************************************************
|
||||
*
|
||||
* @enum:
|
||||
* TT_MAC_ID_XXX
|
||||
*
|
||||
* @description:
|
||||
* A list of valid values for the `encoding_id' for
|
||||
* @TT_PLATFORM_MACINTOSH charmaps and name entries.
|
||||
*
|
||||
* @values:
|
||||
* TT_MAC_ID_ROMAN ::
|
||||
* TT_MAC_ID_JAPANESE ::
|
||||
* TT_MAC_ID_TRADITIONAL_CHINESE ::
|
||||
* TT_MAC_ID_KOREAN ::
|
||||
* TT_MAC_ID_ARABIC ::
|
||||
* TT_MAC_ID_HEBREW ::
|
||||
* TT_MAC_ID_GREEK ::
|
||||
* TT_MAC_ID_RUSSIAN ::
|
||||
* TT_MAC_ID_RSYMBOL ::
|
||||
* TT_MAC_ID_DEVANAGARI ::
|
||||
* TT_MAC_ID_GURMUKHI ::
|
||||
* TT_MAC_ID_GUJARATI ::
|
||||
* TT_MAC_ID_ORIYA ::
|
||||
* TT_MAC_ID_BENGALI ::
|
||||
* TT_MAC_ID_TAMIL ::
|
||||
* TT_MAC_ID_TELUGU ::
|
||||
* TT_MAC_ID_KANNADA ::
|
||||
* TT_MAC_ID_MALAYALAM ::
|
||||
* TT_MAC_ID_SINHALESE ::
|
||||
* TT_MAC_ID_BURMESE ::
|
||||
* TT_MAC_ID_KHMER ::
|
||||
* TT_MAC_ID_THAI ::
|
||||
* TT_MAC_ID_LAOTIAN ::
|
||||
* TT_MAC_ID_GEORGIAN ::
|
||||
* TT_MAC_ID_ARMENIAN ::
|
||||
* TT_MAC_ID_MALDIVIAN ::
|
||||
* TT_MAC_ID_SIMPLIFIED_CHINESE ::
|
||||
* TT_MAC_ID_TIBETAN ::
|
||||
* TT_MAC_ID_MONGOLIAN ::
|
||||
* TT_MAC_ID_GEEZ ::
|
||||
* TT_MAC_ID_SLAVIC ::
|
||||
* TT_MAC_ID_VIETNAMESE ::
|
||||
* TT_MAC_ID_SINDHI ::
|
||||
* TT_MAC_ID_UNINTERP ::
|
||||
*/
|
||||
|
||||
#define TT_MAC_ID_ROMAN 0
|
||||
#define TT_MAC_ID_JAPANESE 1
|
||||
#define TT_MAC_ID_TRADITIONAL_CHINESE 2
|
||||
@@ -95,25 +195,72 @@ FT_BEGIN_HEADER
|
||||
#define TT_MAC_ID_UNINTERP 32
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Possible values of the platform specific encoding identifier field in */
|
||||
/* the name records of the TTF `name' table if the `platform' identifier */
|
||||
/* code is TT_PLATFORM_ISO. */
|
||||
/* */
|
||||
/* This use is now deprecated. */
|
||||
/* */
|
||||
/***********************************************************************
|
||||
*
|
||||
* @enum:
|
||||
* TT_ISO_ID_XXX
|
||||
*
|
||||
* @description:
|
||||
* A list of valid values for the `encoding_id' for
|
||||
* @TT_PLATFORM_ISO charmaps and name entries.
|
||||
*
|
||||
* Their use is now deprecated.
|
||||
*
|
||||
* @values:
|
||||
* TT_ISO_ID_7BIT_ASCII ::
|
||||
* ASCII.
|
||||
* TT_ISO_ID_10646 ::
|
||||
* ISO/10646.
|
||||
* TT_ISO_ID_8859_1 ::
|
||||
* Also known as Latin-1.
|
||||
*/
|
||||
|
||||
#define TT_ISO_ID_7BIT_ASCII 0
|
||||
#define TT_ISO_ID_10646 1
|
||||
#define TT_ISO_ID_8859_1 2
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* possible values of the platform specific encoding identifier field in */
|
||||
/* the name records of the TTF `name' table if the `platform' identifier */
|
||||
/* code is TT_PLATFORM_MICROSOFT. */
|
||||
/* */
|
||||
/***********************************************************************
|
||||
*
|
||||
* @enum:
|
||||
* TT_MS_ID_XXX
|
||||
*
|
||||
* @description:
|
||||
* A list of valid values for the `encoding_id' for
|
||||
* @TT_PLATFORM_MICROSOFT charmaps and name entries.
|
||||
*
|
||||
* @values:
|
||||
* TT_MS_ID_SYMBOL_CS ::
|
||||
* Corresponds to symbol encodings. see @FT_ENCODING_MS_SYMBOL.
|
||||
*
|
||||
* TT_MS_ID_UNICODE_CS ::
|
||||
* Corresponds to a Microsoft WGL4 charmap, matching Unicode. See
|
||||
* @FT_ENCODING_UNICODE.
|
||||
*
|
||||
* TT_MS_ID_SJIS ::
|
||||
* Corresponds to Microsoft SJIS Japanese encoding.
|
||||
* See @FT_ENCODING_MS_SJIS.
|
||||
*
|
||||
* TT_MS_ID_GB2312 ::
|
||||
* Corresponds to Microsoft Simplified Chinese as used in Mainland
|
||||
* China. See @FT_ENCODING_MS_GB2312.
|
||||
*
|
||||
* TT_MS_ID_BIG_5 ::
|
||||
* Corresponds to Microsoft Traditional Chinese as used in Taiwan and
|
||||
* Hong Kong. See @FT_ENCODING_MS_BIG5.
|
||||
*
|
||||
* TT_MS_ID_WANSUNG ::
|
||||
* Corresponds to Microsoft Korean Wansung encoding. See
|
||||
* @FT_ENCODING_MS_WANSUNG.
|
||||
*
|
||||
* TT_MS_ID_JOHAB ::
|
||||
* Corresponds to Microsoft Johab encoding. See @FT_ENCODING_MS_JOHAB.
|
||||
*
|
||||
* TT_MS_ID_UCS_4 ::
|
||||
* Corresponds to UCS-4 or UTF-32 charmaps. This is a recent Adobe
|
||||
* proposal for OpenType.
|
||||
*/
|
||||
|
||||
#define TT_MS_ID_SYMBOL_CS 0
|
||||
#define TT_MS_ID_UNICODE_CS 1
|
||||
#define TT_MS_ID_SJIS 2
|
||||
@@ -124,14 +271,24 @@ FT_BEGIN_HEADER
|
||||
#define TT_MS_ID_UCS_4 10
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* possible values of the platform specific encoding identifier field in */
|
||||
/* the name records of the TTF `name' table if the `platform' identifier */
|
||||
/* code is TT_PLATFORM_ADOBE. */
|
||||
/* */
|
||||
/* These are artificial values defined ad-hoc by FreeType. */
|
||||
/* */
|
||||
/***********************************************************************
|
||||
*
|
||||
* @enum:
|
||||
* TT_ADOBE_ID_XXX
|
||||
*
|
||||
* @description:
|
||||
* A list of valid values for the `encoding_id' for
|
||||
* @TT_PLATFORM_ADOBE charmaps. This is a FreeType-specific extension!
|
||||
*
|
||||
* @values:
|
||||
* TT_ADOBE_ID_STANDARD ::
|
||||
* Adobe standard encoding.
|
||||
* TT_ADOBE_ID_EXPERT ::
|
||||
* Adobe expert encoding.
|
||||
* TT_ADOBE_ID_CUSTOM ::
|
||||
* Adobe custom encoding.
|
||||
*/
|
||||
|
||||
#define TT_ADOBE_ID_STANDARD 0
|
||||
#define TT_ADOBE_ID_EXPERT 1
|
||||
#define TT_ADOBE_ID_CUSTOM 2
|
||||
@@ -545,7 +702,7 @@ FT_BEGIN_HEADER
|
||||
/* sublanguage > 0x1F. */
|
||||
#define TT_MS_LANGID_SPANISH_LATIN_AMERICA 0xE40a
|
||||
#define TT_MS_LANGID_FRENCH_NORTH_AFRICA 0xE40c
|
||||
|
||||
|
||||
#define TT_MS_LANGID_FRENCH_MOROCCO 0x380c
|
||||
#define TT_MS_LANGID_FRENCH_HAITI 0x3c0c
|
||||
#define TT_MS_LANGID_BENGALI_BANGLADESH 0x0845
|
||||
|
||||
Reference in New Issue
Block a user