[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] ewaldhew-wip c86a41c 22/36: [psaux] Use PS decoder/builder
From: |
Hew Yih Shiuan Ewald |
Subject: |
[freetype2] ewaldhew-wip c86a41c 22/36: [psaux] Use PS decoder/builder |
Date: |
Tue, 4 Jul 2017 06:47:11 -0400 (EDT) |
branch: ewaldhew-wip
commit c86a41c07113caf51559344bfc690458e2ee004c
Author: Ewald Hew <address@hidden>
Commit: Ewald Hew <address@hidden>
[psaux] Use PS decoder/builder
---
include/freetype/internal/psaux.h | 14 ++--
src/psaux/psblues.c | 2 +-
src/psaux/psfont.c | 2 +-
src/psaux/psfont.h | 2 +-
src/psaux/psft.c | 158 +++++++++++++++++++-------------------
src/psaux/psft.h | 88 ++++++++++-----------
src/psaux/psintrp.c | 10 +--
7 files changed, 140 insertions(+), 136 deletions(-)
diff --git a/include/freetype/internal/psaux.h
b/include/freetype/internal/psaux.h
index 83cd655..7dcd9ee 100644
--- a/include/freetype/internal/psaux.h
+++ b/include/freetype/internal/psaux.h
@@ -1212,18 +1212,22 @@ FT_BEGIN_HEADER
CFF_Size size,
FT_UInt glyph_index );
+#ifdef CFF_CONFIG_OPTION_OLD_ENGINE
FT_Error
(*parse_charstrings)( CFF_Decoder* decoder,
FT_Byte* charstring_base,
- FT_ULong charstring_len
-#ifdef CFF_CONFIG_OPTION_OLD_ENGINE
-//TODO(ewaldhew): seems hacky, is there a better way to do this?
- ,FT_Bool in_dict
+ FT_ULong charstring_len,
+ FT_Bool in_dict );
+#else
+ FT_Error
+ (*parse_charstrings)( PS_Decoder* decoder,
+ FT_Byte* charstring_base,
+ FT_ULong charstring_len );
#endif
- );
} CFF_Decoder_FuncsRec;
+
/*************************************************************************/
/*************************************************************************/
/***** *****/
diff --git a/src/psaux/psblues.c b/src/psaux/psblues.c
index b107521..352bb72 100644
--- a/src/psaux/psblues.c
+++ b/src/psaux/psblues.c
@@ -67,7 +67,7 @@
CF2_Font font )
{
/* pointer to parsed font object */
- CFF_Decoder* decoder = font->decoder;
+ PS_Decoder* decoder = font->decoder;
CF2_Fixed zoneHeight;
CF2_Fixed maxZoneHeight = 0;
diff --git a/src/psaux/psfont.c b/src/psaux/psfont.c
index 2fe3bfd..093e66e 100644
--- a/src/psaux/psfont.c
+++ b/src/psaux/psfont.c
@@ -243,7 +243,7 @@
const CF2_Matrix* transform )
{
/* pointer to parsed font object */
- CFF_Decoder* decoder = font->decoder;
+ PS_Decoder* decoder = font->decoder;
FT_Bool needExtraSetup = FALSE;
diff --git a/src/psaux/psfont.h b/src/psaux/psfont.h
index 7e1f8c9..fc86f80 100644
--- a/src/psaux/psfont.h
+++ b/src/psaux/psfont.h
@@ -91,7 +91,7 @@ FT_BEGIN_HEADER
/* FreeType related members */
CF2_OutlineRec outline; /* freetype glyph outline functions */
- CFF_Decoder* decoder;
+ PS_Decoder* decoder;
CFF_SubFont lastSubfont; /* FreeType parsed data; */
/* top font or subfont */
diff --git a/src/psaux/psft.c b/src/psaux/psft.c
index abcddbd..5f66255 100644
--- a/src/psaux/psft.c
+++ b/src/psaux/psft.c
@@ -89,7 +89,7 @@
cf2_setGlyphWidth( CF2_Outline outline,
CF2_Fixed width )
{
- CFF_Decoder* decoder = outline->decoder;
+ PS_Decoder* decoder = outline->decoder;
FT_ASSERT( decoder );
@@ -128,8 +128,8 @@
const CF2_CallbackParams params )
{
/* downcast the object pointer */
- CF2_Outline outline = (CF2_Outline)callbacks;
- CFF_Builder* builder;
+ CF2_Outline outline = (CF2_Outline)callbacks;
+ PS_Builder* builder;
(void)params; /* only used in debug mode */
@@ -140,7 +140,7 @@
builder = &outline->decoder->builder;
/* note: two successive moves simply close the contour twice */
- cff_builder_close_contour( builder );
+ ps_builder_close_contour( builder );
builder->path_begun = 0;
}
@@ -152,8 +152,8 @@
FT_Error error;
/* downcast the object pointer */
- CF2_Outline outline = (CF2_Outline)callbacks;
- CFF_Builder* builder;
+ CF2_Outline outline = (CF2_Outline)callbacks;
+ PS_Builder* builder;
FT_ASSERT( outline && outline->decoder );
@@ -165,9 +165,9 @@
{
/* record the move before the line; also check points and set */
/* `path_begun' */
- error = cff_builder_start_point( builder,
- params->pt0.x,
- params->pt0.y );
+ error = ps_builder_start_point( builder,
+ params->pt0.x,
+ params->pt0.y );
if ( error )
{
if ( !*callbacks->error )
@@ -176,10 +176,10 @@
}
}
- /* `cff_builder_add_point1' includes a check_points call for one point */
- error = cff_builder_add_point1( builder,
- params->pt1.x,
- params->pt1.y );
+ /* `ps_builder_add_point1' includes a check_points call for one point */
+ error = ps_builder_add_point1( builder,
+ params->pt1.x,
+ params->pt1.y );
if ( error )
{
if ( !*callbacks->error )
@@ -196,8 +196,8 @@
FT_Error error;
/* downcast the object pointer */
- CF2_Outline outline = (CF2_Outline)callbacks;
- CFF_Builder* builder;
+ CF2_Outline outline = (CF2_Outline)callbacks;
+ PS_Builder* builder;
FT_ASSERT( outline && outline->decoder );
@@ -209,9 +209,9 @@
{
/* record the move before the line; also check points and set */
/* `path_begun' */
- error = cff_builder_start_point( builder,
- params->pt0.x,
- params->pt0.y );
+ error = ps_builder_start_point( builder,
+ params->pt0.x,
+ params->pt0.y );
if ( error )
{
if ( !*callbacks->error )
@@ -221,7 +221,7 @@
}
/* prepare room for 3 points: 2 off-curve, 1 on-curve */
- error = cff_check_points( builder, 3 );
+ error = ps_builder_check_points( builder, 3 );
if ( error )
{
if ( !*callbacks->error )
@@ -229,15 +229,15 @@
return;
}
- cff_builder_add_point( builder,
- params->pt1.x,
- params->pt1.y, 0 );
- cff_builder_add_point( builder,
- params->pt2.x,
- params->pt2.y, 0 );
- cff_builder_add_point( builder,
- params->pt3.x,
- params->pt3.y, 1 );
+ ps_builder_add_point( builder,
+ params->pt1.x,
+ params->pt1.y, 0 );
+ ps_builder_add_point( builder,
+ params->pt2.x,
+ params->pt2.y, 0 );
+ ps_builder_add_point( builder,
+ params->pt3.x,
+ params->pt3.y, 1 );
}
@@ -259,11 +259,11 @@
/* get scaling and hint flag from GlyphSlot */
static void
- cf2_getScaleAndHintFlag( CFF_Decoder* decoder,
- CF2_Fixed* x_scale,
- CF2_Fixed* y_scale,
- FT_Bool* hinted,
- FT_Bool* scaled )
+ cf2_getScaleAndHintFlag( PS_Decoder* decoder,
+ CF2_Fixed* x_scale,
+ CF2_Fixed* y_scale,
+ FT_Bool* hinted,
+ FT_Bool* scaled )
{
FT_ASSERT( decoder && decoder->builder.glyph );
@@ -290,7 +290,7 @@
/* get units per em from `FT_Face' */
/* TODO: should handle font matrix concatenation? */
static FT_UShort
- cf2_getUnitsPerEm( CFF_Decoder* decoder )
+ cf2_getUnitsPerEm( PS_Decoder* decoder )
{
FT_ASSERT( decoder && decoder->builder.face );
FT_ASSERT( decoder->builder.face->root.units_per_EM );
@@ -301,9 +301,9 @@
/* Main entry point: Render one glyph. */
FT_LOCAL_DEF( FT_Error )
- cf2_decoder_parse_charstrings( CFF_Decoder* decoder,
- FT_Byte* charstring_base,
- FT_ULong charstring_len )
+ cf2_decoder_parse_charstrings( PS_Decoder* decoder,
+ FT_Byte* charstring_base,
+ FT_ULong charstring_len )
{
FT_Memory memory;
FT_Error error = FT_Err_Ok;
@@ -349,8 +349,8 @@
{
/* build parameters for Adobe engine */
- CFF_Builder* builder = &decoder->builder;
- CFF_Driver driver = (CFF_Driver)FT_FACE_DRIVER( builder->face );
+ PS_Builder* builder = &decoder->builder;
+ CFF_Driver driver = (CFF_Driver)FT_FACE_DRIVER( builder->face );
FT_Bool no_stem_darkening_driver =
driver->no_stem_darkening;
@@ -429,7 +429,7 @@
/* get pointer to current FreeType subfont (based on current glyphID) */
FT_LOCAL_DEF( CFF_SubFont )
- cf2_getSubfont( CFF_Decoder* decoder )
+ cf2_getSubfont( PS_Decoder* decoder )
{
FT_ASSERT( decoder && decoder->current_subfont );
@@ -439,7 +439,7 @@
/* get pointer to VStore structure */
FT_LOCAL_DEF( CFF_VStore )
- cf2_getVStore( CFF_Decoder* decoder )
+ cf2_getVStore( PS_Decoder* decoder )
{
FT_ASSERT( decoder && decoder->cff );
@@ -449,7 +449,7 @@
/* get maxstack value from CFF2 Top DICT */
FT_LOCAL_DEF( FT_UInt )
- cf2_getMaxstack( CFF_Decoder* decoder )
+ cf2_getMaxstack( PS_Decoder* decoder )
{
FT_ASSERT( decoder && decoder->cff );
@@ -463,7 +463,7 @@
/* */
/* Note: Uses FT_Fixed not CF2_Fixed for the vector. */
FT_LOCAL_DEF( FT_Error )
- cf2_getNormalizedVector( CFF_Decoder* decoder,
+ cf2_getNormalizedVector( PS_Decoder* decoder,
CF2_UInt *len,
FT_Fixed* *vec )
{
@@ -483,7 +483,7 @@
/* get `y_ppem' from `CFF_Size' */
FT_LOCAL_DEF( CF2_Fixed )
- cf2_getPpemY( CFF_Decoder* decoder )
+ cf2_getPpemY( PS_Decoder* decoder )
{
FT_ASSERT( decoder &&
decoder->builder.face &&
@@ -507,7 +507,7 @@
/* FreeType stores these as integer font units */
/* (note: variable names seem swapped) */
FT_LOCAL_DEF( CF2_Fixed )
- cf2_getStdVW( CFF_Decoder* decoder )
+ cf2_getStdVW( PS_Decoder* decoder )
{
FT_ASSERT( decoder && decoder->current_subfont );
@@ -517,7 +517,7 @@
FT_LOCAL_DEF( CF2_Fixed )
- cf2_getStdHW( CFF_Decoder* decoder )
+ cf2_getStdHW( PS_Decoder* decoder )
{
FT_ASSERT( decoder && decoder->current_subfont );
@@ -528,10 +528,10 @@
/* note: FreeType stores 1000 times the actual value for `BlueScale' */
FT_LOCAL_DEF( void )
- cf2_getBlueMetrics( CFF_Decoder* decoder,
- CF2_Fixed* blueScale,
- CF2_Fixed* blueShift,
- CF2_Fixed* blueFuzz )
+ cf2_getBlueMetrics( PS_Decoder* decoder,
+ CF2_Fixed* blueScale,
+ CF2_Fixed* blueShift,
+ CF2_Fixed* blueFuzz )
{
FT_ASSERT( decoder && decoder->current_subfont );
@@ -548,9 +548,9 @@
/* get blue values counts and arrays; the FreeType parser has validated */
/* the counts and verified that each is an even number */
FT_LOCAL_DEF( void )
- cf2_getBlueValues( CFF_Decoder* decoder,
- size_t* count,
- FT_Pos* *data )
+ cf2_getBlueValues( PS_Decoder* decoder,
+ size_t* count,
+ FT_Pos* *data )
{
FT_ASSERT( decoder && decoder->current_subfont );
@@ -561,9 +561,9 @@
FT_LOCAL_DEF( void )
- cf2_getOtherBlues( CFF_Decoder* decoder,
- size_t* count,
- FT_Pos* *data )
+ cf2_getOtherBlues( PS_Decoder* decoder,
+ size_t* count,
+ FT_Pos* *data )
{
FT_ASSERT( decoder && decoder->current_subfont );
@@ -574,9 +574,9 @@
FT_LOCAL_DEF( void )
- cf2_getFamilyBlues( CFF_Decoder* decoder,
- size_t* count,
- FT_Pos* *data )
+ cf2_getFamilyBlues( PS_Decoder* decoder,
+ size_t* count,
+ FT_Pos* *data )
{
FT_ASSERT( decoder && decoder->current_subfont );
@@ -587,9 +587,9 @@
FT_LOCAL_DEF( void )
- cf2_getFamilyOtherBlues( CFF_Decoder* decoder,
- size_t* count,
- FT_Pos* *data )
+ cf2_getFamilyOtherBlues( PS_Decoder* decoder,
+ size_t* count,
+ FT_Pos* *data )
{
FT_ASSERT( decoder && decoder->current_subfont );
@@ -600,7 +600,7 @@
FT_LOCAL_DEF( CF2_Int )
- cf2_getLanguageGroup( CFF_Decoder* decoder )
+ cf2_getLanguageGroup( PS_Decoder* decoder )
{
FT_ASSERT( decoder && decoder->current_subfont );
@@ -611,9 +611,9 @@
/* convert unbiased subroutine index to `CF2_Buffer' and */
/* return 0 on success */
FT_LOCAL_DEF( CF2_Int )
- cf2_initGlobalRegionBuffer( CFF_Decoder* decoder,
- CF2_Int subrNum,
- CF2_Buffer buf )
+ cf2_initGlobalRegionBuffer( PS_Decoder* decoder,
+ CF2_Int subrNum,
+ CF2_Buffer buf )
{
CF2_UInt idx;
@@ -639,9 +639,9 @@
/* convert AdobeStandardEncoding code to CF2_Buffer; */
/* used for seac component */
FT_LOCAL_DEF( FT_Error )
- cf2_getSeacComponent( CFF_Decoder* decoder,
- CF2_Int code,
- CF2_Buffer buf )
+ cf2_getSeacComponent( PS_Decoder* decoder,
+ CF2_Int code,
+ CF2_Buffer buf )
{
CF2_Int gid;
FT_Byte* charstring;
@@ -686,8 +686,8 @@
FT_LOCAL_DEF( void )
- cf2_freeSeacComponent( CFF_Decoder* decoder,
- CF2_Buffer buf )
+ cf2_freeSeacComponent( PS_Decoder* decoder,
+ CF2_Buffer buf )
{
FT_ASSERT( decoder );
@@ -698,9 +698,9 @@
FT_LOCAL_DEF( CF2_Int )
- cf2_initLocalRegionBuffer( CFF_Decoder* decoder,
- CF2_Int subrNum,
- CF2_Buffer buf )
+ cf2_initLocalRegionBuffer( PS_Decoder* decoder,
+ CF2_Int subrNum,
+ CF2_Buffer buf )
{
CF2_UInt idx;
@@ -751,7 +751,7 @@
FT_LOCAL_DEF( CF2_Fixed )
- cf2_getDefaultWidthX( CFF_Decoder* decoder )
+ cf2_getDefaultWidthX( PS_Decoder* decoder )
{
FT_ASSERT( decoder && decoder->current_subfont );
@@ -761,7 +761,7 @@
FT_LOCAL_DEF( CF2_Fixed )
- cf2_getNominalWidthX( CFF_Decoder* decoder )
+ cf2_getNominalWidthX( PS_Decoder* decoder )
{
FT_ASSERT( decoder && decoder->current_subfont );
@@ -773,7 +773,7 @@
FT_LOCAL_DEF( void )
cf2_outline_reset( CF2_Outline outline )
{
- CFF_Decoder* decoder = outline->decoder;
+ PS_Decoder* decoder = outline->decoder;
FT_ASSERT( decoder );
@@ -787,12 +787,12 @@
FT_LOCAL_DEF( void )
cf2_outline_close( CF2_Outline outline )
{
- CFF_Decoder* decoder = outline->decoder;
+ PS_Decoder* decoder = outline->decoder;
FT_ASSERT( decoder );
- cff_builder_close_contour( &decoder->builder );
+ ps_builder_close_contour( &decoder->builder );
FT_GlyphLoader_Add( decoder->builder.loader );
}
diff --git a/src/psaux/psft.h b/src/psaux/psft.h
index bbb2cf7..1628970 100644
--- a/src/psaux/psft.h
+++ b/src/psaux/psft.h
@@ -50,85 +50,85 @@
#include FT_SYSTEM_H
#include "psglue.h"
-#include FT_INTERNAL_POSTSCRIPT_AUX_H /* for CFF_Decoder */
+#include FT_INTERNAL_POSTSCRIPT_AUX_H /* for PS_Decoder */
FT_BEGIN_HEADER
FT_LOCAL( FT_Error )
- cf2_decoder_parse_charstrings( CFF_Decoder* decoder,
- FT_Byte* charstring_base,
- FT_ULong charstring_len );
+ cf2_decoder_parse_charstrings( PS_Decoder* decoder,
+ FT_Byte* charstring_base,
+ FT_ULong charstring_len );
FT_LOCAL( CFF_SubFont )
- cf2_getSubfont( CFF_Decoder* decoder );
+ cf2_getSubfont( PS_Decoder* decoder );
FT_LOCAL( CFF_VStore )
- cf2_getVStore( CFF_Decoder* decoder );
+ cf2_getVStore( PS_Decoder* decoder );
FT_LOCAL( FT_UInt )
- cf2_getMaxstack( CFF_Decoder* decoder );
+ cf2_getMaxstack( PS_Decoder* decoder );
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
FT_LOCAL( FT_Error )
- cf2_getNormalizedVector( CFF_Decoder* decoder,
- CF2_UInt *len,
- FT_Fixed* *vec );
+ cf2_getNormalizedVector( PS_Decoder* decoder,
+ CF2_UInt *len,
+ FT_Fixed* *vec );
#endif
FT_LOCAL( CF2_Fixed )
- cf2_getPpemY( CFF_Decoder* decoder );
+ cf2_getPpemY( PS_Decoder* decoder );
FT_LOCAL( CF2_Fixed )
- cf2_getStdVW( CFF_Decoder* decoder );
+ cf2_getStdVW( PS_Decoder* decoder );
FT_LOCAL( CF2_Fixed )
- cf2_getStdHW( CFF_Decoder* decoder );
+ cf2_getStdHW( PS_Decoder* decoder );
FT_LOCAL( void )
- cf2_getBlueMetrics( CFF_Decoder* decoder,
- CF2_Fixed* blueScale,
- CF2_Fixed* blueShift,
- CF2_Fixed* blueFuzz );
+ cf2_getBlueMetrics( PS_Decoder* decoder,
+ CF2_Fixed* blueScale,
+ CF2_Fixed* blueShift,
+ CF2_Fixed* blueFuzz );
FT_LOCAL( void )
- cf2_getBlueValues( CFF_Decoder* decoder,
- size_t* count,
- FT_Pos* *data );
+ cf2_getBlueValues( PS_Decoder* decoder,
+ size_t* count,
+ FT_Pos* *data );
FT_LOCAL( void )
- cf2_getOtherBlues( CFF_Decoder* decoder,
- size_t* count,
- FT_Pos* *data );
+ cf2_getOtherBlues( PS_Decoder* decoder,
+ size_t* count,
+ FT_Pos* *data );
FT_LOCAL( void )
- cf2_getFamilyBlues( CFF_Decoder* decoder,
- size_t* count,
- FT_Pos* *data );
+ cf2_getFamilyBlues( PS_Decoder* decoder,
+ size_t* count,
+ FT_Pos* *data );
FT_LOCAL( void )
- cf2_getFamilyOtherBlues( CFF_Decoder* decoder,
- size_t* count,
- FT_Pos* *data );
+ cf2_getFamilyOtherBlues( PS_Decoder* decoder,
+ size_t* count,
+ FT_Pos* *data );
FT_LOCAL( CF2_Int )
- cf2_getLanguageGroup( CFF_Decoder* decoder );
+ cf2_getLanguageGroup( PS_Decoder* decoder );
FT_LOCAL( CF2_Int )
- cf2_initGlobalRegionBuffer( CFF_Decoder* decoder,
- CF2_Int subrNum,
- CF2_Buffer buf );
+ cf2_initGlobalRegionBuffer( PS_Decoder* decoder,
+ CF2_Int subrNum,
+ CF2_Buffer buf );
FT_LOCAL( FT_Error )
- cf2_getSeacComponent( CFF_Decoder* decoder,
- CF2_Int code,
- CF2_Buffer buf );
+ cf2_getSeacComponent( PS_Decoder* decoder,
+ CF2_Int code,
+ CF2_Buffer buf );
FT_LOCAL( void )
- cf2_freeSeacComponent( CFF_Decoder* decoder,
- CF2_Buffer buf );
+ cf2_freeSeacComponent( PS_Decoder* decoder,
+ CF2_Buffer buf );
FT_LOCAL( CF2_Int )
- cf2_initLocalRegionBuffer( CFF_Decoder* decoder,
- CF2_Int subrNum,
- CF2_Buffer buf );
+ cf2_initLocalRegionBuffer( PS_Decoder* decoder,
+ CF2_Int subrNum,
+ CF2_Buffer buf );
FT_LOCAL( CF2_Fixed )
- cf2_getDefaultWidthX( CFF_Decoder* decoder );
+ cf2_getDefaultWidthX( PS_Decoder* decoder );
FT_LOCAL( CF2_Fixed )
- cf2_getNominalWidthX( CFF_Decoder* decoder );
+ cf2_getNominalWidthX( PS_Decoder* decoder );
/*
@@ -139,7 +139,7 @@ FT_BEGIN_HEADER
typedef struct CF2_OutlineRec_
{
CF2_OutlineCallbacksRec root; /* base class must be first */
- CFF_Decoder* decoder;
+ PS_Decoder* decoder;
} CF2_OutlineRec, *CF2_Outline;
diff --git a/src/psaux/psintrp.c b/src/psaux/psintrp.c
index 61d6a13..d341221 100644
--- a/src/psaux/psintrp.c
+++ b/src/psaux/psintrp.c
@@ -481,7 +481,7 @@
FT_Error lastError = FT_Err_Ok;
/* pointer to parsed font object */
- CFF_Decoder* decoder = font->decoder;
+ PS_Decoder* decoder = font->decoder;
FT_Error* error = &font->error;
FT_Memory memory = font->memory;
@@ -1523,8 +1523,8 @@
if ( arg_cnt != 0 )
goto Unexpected_OtherSubr;
- if ( FT_SET_ERROR( t1_builder_start_point( builder,
curX, curY ) ) ||
- FT_SET_ERROR( t1_builder_check_points( builder, 6 )
) )
+ if ( ps_builder_start_point( &font->decoder->builder,
curX, curY ) ||
+ ps_builder_check_points( &font->decoder->builder, 6
) )
goto exit;
decoder->flex_state = 1;
@@ -1557,13 +1557,13 @@
/* opcodes in the middle of a flex (which don't */
/* increase `num_flex_vectors'); we thus have to */
/* check whether we can add a point */
- if ( FT_SET_ERROR( t1_builder_check_points( builder, 1
) ) )
+ if ( ps_builder_check_points( &font->decoder->builder,
1 ) )
{
lastError = FT_THROW( Invalid_Glyph_Format );
goto exit;
}
- t1_builder_add_point( builder,
+ ps_builder_add_point( &font->decoder->builder,
curX,
curY,
(FT_Byte)( idx == 3 || idx == 6
) );
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] ewaldhew-wip c86a41c 22/36: [psaux] Use PS decoder/builder,
Hew Yih Shiuan Ewald <=