diff --git a/ChangeLog b/ChangeLog index a92581018..386b6c9c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,29 @@ +2017-09-24 Ewald Hew + + [cff] Move struct declarations to `freetype/internal'. + + NOTE: Does not compile! + + This is so that the CFF functions moved to `psaux' can access the + same structs that they need. + + * src/cff/cfftypes.h: Moved to... + * include/freetype/internal/cfftypes.h: ...Here. + + * src/cff/cffobjs.h: Moved the struct declarations to... + * include/freetype/internal/cffotypes.h: ... this new file. + + * include/freetype/internal/internal.h (FT_INTERNAL_CFF_TYPES_H, + FT_INTERNAL_CFF_OBJECT_TYPES_H): New macros. + + * src/cff/cffcmap.h, src/cff/cffdrivr.c, src/cff/cffgload.c, + src/cff/cffgload.h, src/cff/cffload.h, src/cff/cffobjs.c, + src/cff/cffobjs.h, src/cff/cffparse.h, src/psaux/psobjs.h, + include/freetype/internal/psaux.h, + include/freetype/internal/services/svcfftl.h: Update includes. + + * src/cff/rules.mk (CFF_DRV_H): Updated. + 2017-09-24 Ewald Hew [psaux, cff] Add new service for inter-module calls. diff --git a/include/freetype/internal/cffotypes.h b/include/freetype/internal/cffotypes.h new file mode 100644 index 000000000..6cabaff17 --- /dev/null +++ b/include/freetype/internal/cffotypes.h @@ -0,0 +1,113 @@ +#ifndef CFFOTYPES_H_ +#define CFFOTYPES_H_ + +#include +#include FT_INTERNAL_OBJECTS_H +#include FT_INTERNAL_CFF_TYPES_H +#include FT_INTERNAL_TRUETYPE_TYPES_H +#include FT_SERVICE_POSTSCRIPT_CMAPS_H +#include FT_INTERNAL_POSTSCRIPT_HINTS_H + + +FT_BEGIN_HEADER + + + /*************************************************************************/ + /* */ + /* */ + /* CFF_Driver */ + /* */ + /* */ + /* A handle to an OpenType driver object. */ + /* */ + typedef struct CFF_DriverRec_* CFF_Driver; + + typedef TT_Face CFF_Face; + + + /*************************************************************************/ + /* */ + /* */ + /* CFF_Size */ + /* */ + /* */ + /* A handle to an OpenType size object. */ + /* */ + typedef struct CFF_SizeRec_ + { + FT_SizeRec root; + FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */ + + } CFF_SizeRec, *CFF_Size; + + + /*************************************************************************/ + /* */ + /* */ + /* CFF_GlyphSlot */ + /* */ + /* */ + /* A handle to an OpenType glyph slot object. */ + /* */ + typedef struct CFF_GlyphSlotRec_ + { + FT_GlyphSlotRec root; + + FT_Bool hint; + FT_Bool scaled; + + FT_Fixed x_scale; + FT_Fixed y_scale; + + } CFF_GlyphSlotRec, *CFF_GlyphSlot; + + + /*************************************************************************/ + /* */ + /* */ + /* CFF_Internal */ + /* */ + /* */ + /* The interface to the `internal' field of `FT_Size'. */ + /* */ + typedef struct CFF_InternalRec_ + { + PSH_Globals topfont; + PSH_Globals subfonts[CFF_MAX_CID_FONTS]; + + } CFF_InternalRec, *CFF_Internal; + + + /*************************************************************************/ + /* */ + /* Subglyph transformation record. */ + /* */ + typedef struct CFF_Transform_ + { + FT_Fixed xx, xy; /* transformation matrix coefficients */ + FT_Fixed yx, yy; + FT_F26Dot6 ox, oy; /* offsets */ + + } CFF_Transform; + + + /***********************************************************************/ + /* */ + /* CFF driver class. */ + /* */ + typedef struct CFF_DriverRec_ + { + FT_DriverRec root; + + FT_UInt hinting_engine; + FT_Bool no_stem_darkening; + FT_Int darken_params[8]; + FT_Int32 random_seed; + + } CFF_DriverRec; + + +FT_END_HEADER + + +#endif diff --git a/src/cff/cfftypes.h b/include/freetype/internal/cfftypes.h similarity index 100% rename from src/cff/cfftypes.h rename to include/freetype/internal/cfftypes.h diff --git a/include/freetype/internal/internal.h b/include/freetype/internal/internal.h index 02046813a..23f84b435 100644 --- a/include/freetype/internal/internal.h +++ b/include/freetype/internal/internal.h @@ -47,6 +47,9 @@ #define FT_INTERNAL_AUTOHINT_H +#define FT_INTERNAL_CFF_TYPES_H +#define FT_INTERNAL_CFF_OBJECTS_TYPES_H + #if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ diff --git a/include/freetype/internal/psaux.h b/include/freetype/internal/psaux.h index bcc84e38d..f127a44cc 100644 --- a/include/freetype/internal/psaux.h +++ b/include/freetype/internal/psaux.h @@ -27,6 +27,9 @@ #include FT_INTERNAL_HASH_H #include FT_INTERNAL_TRUETYPE_TYPES_H #include FT_SERVICE_POSTSCRIPT_CMAPS_H +#include FT_INTERNAL_CFF_TYPES_H +#include FT_INTERNAL_CFF_OBJECTS_TYPES_H + FT_BEGIN_HEADER diff --git a/include/freetype/internal/services/svcfftl.h b/include/freetype/internal/services/svcfftl.h index 18e2276a9..46630415a 100644 --- a/include/freetype/internal/services/svcfftl.h +++ b/include/freetype/internal/services/svcfftl.h @@ -2,6 +2,7 @@ #define SVCFFTL_H_ #include FT_INTERNAL_SERVICE_H +#include FT_INTERNAL_CFF_TYPES_H FT_BEGIN_HEADER diff --git a/src/cff/cffcmap.h b/src/cff/cffcmap.h index 7792e0424..227c91afb 100644 --- a/src/cff/cffcmap.h +++ b/src/cff/cffcmap.h @@ -19,7 +19,7 @@ #ifndef CFFCMAP_H_ #define CFFCMAP_H_ -#include "cffobjs.h" +#include FT_INTERNAL_CFF_OBJECTS_TYPES_H FT_BEGIN_HEADER diff --git a/src/cff/cffdrivr.c b/src/cff/cffdrivr.c index 689f22979..4c9b1cd99 100644 --- a/src/cff/cffdrivr.c +++ b/src/cff/cffdrivr.c @@ -32,6 +32,7 @@ #include "cffload.h" #include "cffcmap.h" #include "cffparse.h" +#include "cffobjs.h" #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT #include FT_SERVICE_MULTIPLE_MASTERS_H diff --git a/src/cff/cffgload.c b/src/cff/cffgload.c index 18dbf6542..92ca08bd8 100644 --- a/src/cff/cffgload.c +++ b/src/cff/cffgload.c @@ -25,7 +25,6 @@ #include FT_OUTLINE_H #include FT_CFF_DRIVER_H -#include "cffobjs.h" #include "cffload.h" #include "cffgload.h" diff --git a/src/cff/cffgload.h b/src/cff/cffgload.h index b2e945d03..ed291b87d 100644 --- a/src/cff/cffgload.h +++ b/src/cff/cffgload.h @@ -22,7 +22,7 @@ #include #include FT_FREETYPE_H -#include "cffobjs.h" +#include FT_INTERNAL_CFF_OBJECTS_TYPES_H FT_BEGIN_HEADER diff --git a/src/cff/cffload.h b/src/cff/cffload.h index c745e8127..82a041705 100644 --- a/src/cff/cffload.h +++ b/src/cff/cffload.h @@ -21,9 +21,9 @@ #include -#include "cfftypes.h" +#include FT_INTERNAL_CFF_TYPES_H #include "cffparse.h" -#include "cffobjs.h" /* for CFF_Face */ +#include FT_INTERNAL_CFF_OBJECTS_TYPES_H /* for CFF_Face */ FT_BEGIN_HEADER diff --git a/src/cff/cffobjs.c b/src/cff/cffobjs.c index ed154664f..f9013e772 100644 --- a/src/cff/cffobjs.c +++ b/src/cff/cffobjs.c @@ -32,6 +32,7 @@ #include FT_SERVICE_MULTIPLE_MASTERS_H #endif +#include FT_INTERNAL_CFF_OBJECTS_TYPES_H #include "cffobjs.h" #include "cffload.h" #include "cffcmap.h" diff --git a/src/cff/cffobjs.h b/src/cff/cffobjs.h index 1dba694c5..839a61c44 100644 --- a/src/cff/cffobjs.h +++ b/src/cff/cffobjs.h @@ -21,111 +21,11 @@ #include -#include FT_INTERNAL_OBJECTS_H -#include "cfftypes.h" -#include FT_INTERNAL_TRUETYPE_TYPES_H -#include FT_SERVICE_POSTSCRIPT_CMAPS_H -#include FT_INTERNAL_POSTSCRIPT_HINTS_H FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* */ - /* CFF_Driver */ - /* */ - /* */ - /* A handle to an OpenType driver object. */ - /* */ - typedef struct CFF_DriverRec_* CFF_Driver; - - typedef TT_Face CFF_Face; - - - /*************************************************************************/ - /* */ - /* */ - /* CFF_Size */ - /* */ - /* */ - /* A handle to an OpenType size object. */ - /* */ - typedef struct CFF_SizeRec_ - { - FT_SizeRec root; - FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */ - - } CFF_SizeRec, *CFF_Size; - - - /*************************************************************************/ - /* */ - /* */ - /* CFF_GlyphSlot */ - /* */ - /* */ - /* A handle to an OpenType glyph slot object. */ - /* */ - typedef struct CFF_GlyphSlotRec_ - { - FT_GlyphSlotRec root; - - FT_Bool hint; - FT_Bool scaled; - - FT_Fixed x_scale; - FT_Fixed y_scale; - - } CFF_GlyphSlotRec, *CFF_GlyphSlot; - - - /*************************************************************************/ - /* */ - /* */ - /* CFF_Internal */ - /* */ - /* */ - /* The interface to the `internal' field of `FT_Size'. */ - /* */ - typedef struct CFF_InternalRec_ - { - PSH_Globals topfont; - PSH_Globals subfonts[CFF_MAX_CID_FONTS]; - - } CFF_InternalRec, *CFF_Internal; - - - /*************************************************************************/ - /* */ - /* Subglyph transformation record. */ - /* */ - typedef struct CFF_Transform_ - { - FT_Fixed xx, xy; /* transformation matrix coefficients */ - FT_Fixed yx, yy; - FT_F26Dot6 ox, oy; /* offsets */ - - } CFF_Transform; - - - /***********************************************************************/ - /* */ - /* CFF driver class. */ - /* */ - typedef struct CFF_DriverRec_ - { - FT_DriverRec root; - - FT_UInt hinting_engine; - FT_Bool no_stem_darkening; - FT_Int darken_params[8]; - FT_Int32 random_seed; - - } CFF_DriverRec; - - FT_LOCAL( FT_Error ) cff_size_init( FT_Size size ); /* CFF_Size */ diff --git a/src/cff/cffparse.h b/src/cff/cffparse.h index 83d1bba45..961c26501 100644 --- a/src/cff/cffparse.h +++ b/src/cff/cffparse.h @@ -21,7 +21,7 @@ #include -#include "cfftypes.h" +#include FT_INTERNAL_CFF_TYPES_H #include FT_INTERNAL_OBJECTS_H diff --git a/src/cff/rules.mk b/src/cff/rules.mk index feecf4611..473b25c1d 100644 --- a/src/cff/rules.mk +++ b/src/cff/rules.mk @@ -39,8 +39,7 @@ CFF_DRV_SRC := $(CFF_DIR)/cffcmap.c \ # CFF_DRV_H := $(CFF_DRV_SRC:%.c=%.h) \ $(CFF_DIR)/cfferrs.h \ - $(CFF_DIR)/cfftoken.h \ - $(CFF_DIR)/cfftypes.h + $(CFF_DIR)/cfftoken.h # CFF driver object(s) diff --git a/src/psaux/psobjs.h b/src/psaux/psobjs.h index 73cd9054e..c06bb281c 100644 --- a/src/psaux/psobjs.h +++ b/src/psaux/psobjs.h @@ -22,6 +22,7 @@ #include #include FT_INTERNAL_POSTSCRIPT_AUX_H +#include FT_INTERNAL_CFF_OBJECTS_TYPES_H FT_BEGIN_HEADER