40#include FT_INTERNAL_DEBUG_H
41#include FT_SERVICE_CFF_TABLE_LOAD_H
62#define FT_COMPONENT cf2interp
71 hintmask->error =
error;
78 return hintmask->isValid;
85 return hintmask->isNew;
93 hintmask->isNew =
val;
103 return hintmask->mask;
186 sizeof ( hintmask->mask ) /
sizeof ( hintmask->mask[0] ) );
189 for (
i = 0;
i < hintmask->byteCount;
i++ )
190 hintmask->mask[
i] = 0xFF;
194 hintmask->mask[hintmask->byteCount - 1] &= ~
mask;
295 if (
font->isT1 && !
font->decoder->flex_state && !*haveWidth )
296 FT_ERROR((
"cf2_doStems (Type 1 mode):"
297 " No width. Use hsbw/sbw as first op\n" ));
299 if ( !
font->isT1 && hasWidthArg && !*haveWidth )
303 if (
font->decoder->width_only )
306 for (
i = hasWidthArg ? 1 : 0;
i <
count;
i += 2 )
340 FT_Bool doConditionalLastRead )
352 top = isHFlex ? 9 : 10;
354 for (
i = 0;
i <
top;
i++ )
356 vals[
i + 2] = vals[
i];
357 if ( readFromStack[
i] )
365 if ( doConditionalLastRead )
375 vals[12] =
ADD_INT32( vals[10], lastVal );
381 vals[13] =
ADD_INT32( vals[11], lastVal );
386 if ( readFromStack[10] )
392 if ( readFromStack[11] )
399 for (
j = 0;
j < 2;
j++ )
429 delta =
base + numBlends;
431 for (
i = 0;
i < numBlends;
i++ )
439 for (
j = 1;
j < blend->
lenBV;
j++ )
493 FT_Int known_othersubr_result_cnt = 0;
497#define PS_STORAGE_SIZE 3
512 FT_UInt32 instructionLimit = 20000000UL;
530 if (!glyphPath_allocated)
return;
532#define glyphPath (*glyphPath_allocated)
610 lastError =
FT_THROW( Out_Of_Memory );
633 FT_ASSERT( known_othersubr_result_cnt == 0 ||
641 if ( charstringIndex )
659 if ( !initial_map_ready &&
672 FT_TRACE4((
" <outline command skipped>\n" ));
677 if ( result_cnt > 0 &&
687 if ( large_int && !( op1 >= 32 || op1 ==
cf2_escDIV ) )
689 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
690 " no `div' after large integer\n" ));
701 if ( instructionLimit == 0 )
703 lastError =
FT_THROW( Invalid_Glyph_Format );
713 FT_TRACE4((
" unknown op (%d)\n", op1 ));
722 if (
font->blend.usedBV )
725 lastError =
FT_THROW( Invalid_Glyph_Format );
749 if ( !
font->blend.font )
751 lastError =
FT_THROW( Invalid_Glyph_Format );
756 if (
font->cffload->blend_check_vector( &
font->blend,
761 lastError =
font->cffload->blend_build_vector( &
font->blend,
771 if ( numBlends > stackSize )
773 lastError =
FT_THROW( Invalid_Glyph_Format );
795 " invalid horizontal hint mask\n" ));
826 " invalid vertical hint mask\n" ));
848 if (
font->isT1 && !
decoder->flex_state && !haveWidth )
849 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
850 " No width. Use hsbw/sbw as first op\n" ));
900 FT_TRACE4((
"%s\n", isX ?
" hlineto" :
" vlineto" ));
966 FT_TRACE4((
" unknown op (%d)\n", op1 ));
991 lastError =
FT_THROW( Invalid_Glyph_Format );
999 (
size_t)charstringIndex + 1 );
1019 FT_TRACE4((
" (idx %d, entering level %d)\n",
1020 subrNum +
decoder->globals_bias,
1021 charstringIndex + 1 ));
1027 lastError =
FT_THROW( Invalid_Glyph_Format );
1034 FT_TRACE4((
" (idx %d, entering level %d)\n",
1035 subrNum +
decoder->locals_bias,
1036 charstringIndex + 1 ));
1042 lastError =
FT_THROW( Invalid_Glyph_Format );
1047 charstringIndex += 1;
1052 FT_TRACE4((
" return (leaving level %d)\n", charstringIndex ));
1054 if ( charstringIndex < 1 )
1057 lastError =
FT_THROW( Invalid_Glyph_Format );
1079 static const FT_Bool readFromStack[12] =
1103 static const FT_Bool readFromStack[12] =
1127 static const FT_Bool readFromStack[12] =
1151 static const FT_Bool readFromStack[12] =
1180 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1186 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1216 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1245 isV ? &vStemHintArray : &hStemHintArray,
1248 isV ?
decoder->builder.left_bearing->x
1249 :
decoder->builder.left_bearing->y );
1302 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1306 CF2_Int bchar_index, achar_index;
1309#ifdef FT_CONFIG_OPTION_INCREMENTAL
1328 lastError =
FT_THROW( Invalid_Glyph_Format );
1332 if (
decoder->builder.metrics_only )
1334 FT_ERROR((
" unexpected seac\n" ));
1335 lastError =
FT_THROW( Invalid_Glyph_Format );
1342#ifdef FT_CONFIG_OPTION_INCREMENTAL
1343 if (
decoder->glyph_names == 0 &&
1344 !
face->root.internal->incremental_interface )
1346 if (
decoder->glyph_names == 0 )
1350 "cf2_interpT2CharString: (Type 1 seac)"
1351 " glyph names table not available in this font\n" ));
1352 lastError =
FT_THROW( Invalid_Glyph_Format );
1357 adx +=
decoder->builder.left_bearing->x;
1359#ifdef FT_CONFIG_OPTION_INCREMENTAL
1360 if (
face->root.internal->incremental_interface )
1363 bchar_index = bchar;
1364 achar_index = achar;
1375 if ( bchar_index < 0 || achar_index < 0 )
1378 "cf2_interpT2CharString: (Type 1 seac)"
1379 " invalid seac character code arguments\n" ));
1380 lastError =
FT_THROW( Invalid_Glyph_Format );
1387 if (
decoder->builder.no_recurse )
1402 subg = loader->current.subglyphs;
1405 subg->index = bchar_index;
1413 subg->index = achar_index;
1420 glyph->
subglyphs = loader->base.subglyphs;
1421 glyph->
format = FT_GLYPH_FORMAT_COMPOSITE;
1423 loader->current.num_subglyphs = 2;
1455 left_bearing = *
decoder->builder.left_bearing;
1458 decoder->builder.left_bearing->x = 0;
1459 decoder->builder.left_bearing->y = 0;
1485 *
decoder->builder.left_bearing = left_bearing;
1494 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1525 if ( initial_map_ready )
1590 if (
font->isT1 && large_int )
1642 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1673 known_othersubr_result_cnt = 0;
1698 goto Unexpected_OtherSubr;
1700 if ( initial_map_ready &&
1702 decoder->num_flex_vectors != 7 ) )
1704 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
1705 " unexpected flex end\n" ));
1706 lastError =
FT_THROW( Invalid_Glyph_Format );
1714 known_othersubr_result_cnt = 2;
1719 goto Unexpected_OtherSubr;
1721 if ( !initial_map_ready )
1728 decoder->num_flex_vectors = 0;
1738 goto Unexpected_OtherSubr;
1740 if ( !initial_map_ready )
1745 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
1746 " missing flex start\n" ));
1747 lastError =
FT_THROW( Invalid_Glyph_Format );
1756 if (
idx > 0 &&
idx < 7 )
1766 lastError =
FT_THROW( Invalid_Glyph_Format );
1773 flexStore[idx2 - 2] = curX;
1774 flexStore[idx2 - 1] = curY;
1776 if (
idx == 3 ||
idx == 6 )
1790 goto Unexpected_OtherSubr;
1792 if ( initial_map_ready )
1804 known_othersubr_result_cnt = 1;
1828 "cf2_interpT2CharString:"
1829 " unexpected multiple masters operator\n" ));
1830 lastError =
FT_THROW( Invalid_Glyph_Format );
1834 num_points = (
FT_UInt)subr_no - 13 +
1840 "cf2_interpT2CharString:"
1841 " incorrect number of multiple masters arguments\n" ));
1842 lastError =
FT_THROW( Invalid_Glyph_Format );
1862 delta = opIdx + num_points;
1864 for ( nn = 0; nn < num_points; nn++ )
1882 known_othersubr_result_cnt = (
FT_Int)num_points;
1897 goto Unexpected_OtherSubr;
1904 goto Unexpected_OtherSubr;
1922 goto Unexpected_OtherSubr;
1930 known_othersubr_result_cnt = 1;
1943 goto Unexpected_OtherSubr;
1951 known_othersubr_result_cnt = 1;
1964 goto Unexpected_OtherSubr;
1971 known_othersubr_result_cnt = 1;
1984 goto Unexpected_OtherSubr;
1990 goto Unexpected_OtherSubr;
1995 known_othersubr_result_cnt = 1;
2008 goto Unexpected_OtherSubr;
2014 goto Unexpected_OtherSubr;
2031 goto Unexpected_OtherSubr;
2037 goto Unexpected_OtherSubr;
2041 known_othersubr_result_cnt = 1;
2069 goto Unexpected_OtherSubr;
2078 known_othersubr_result_cnt = 1;
2091 goto Unexpected_OtherSubr;
2096 ( (
decoder->current_subfont->random & 0xFFFF ) + 1 );
2098 decoder->current_subfont->random =
2102 known_othersubr_result_cnt = 1;
2107 if (
arg_cnt >= 0 && subr_no >= 0 )
2113 "cf2_interpT2CharString (Type 1 mode):"
2114 " unknown othersubr [%d %d], wish me luck\n",
2132 Unexpected_OtherSubr:
2133 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
2134 " invalid othersubr [%d %d]\n",
2136 lastError =
FT_THROW( Invalid_Glyph_Format );
2144 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
2149 if ( known_othersubr_result_cnt > 0 )
2151 known_othersubr_result_cnt--;
2156 if ( result_cnt == 0 )
2158 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
2159 " no more operands for othersubr\n" ));
2160 lastError =
FT_THROW( Invalid_Glyph_Format );
2235 ( (
decoder->current_subfont->random & 0xFFFF ) + 1 );
2237 decoder->current_subfont->random =
2280 if ( new_root ==
root )
2372 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
2377 if ( !initial_map_ready )
2395 if (
decoder->flex_state != 1 )
2397 FT_ERROR((
"cf2_interpT2CharString:"
2398 " unexpected `setcurrentpoint'\n" ));
2422 FT_TRACE4((
" unknown op (%d)\n", op1 ));
2449 if ( initial_map_ready )
2457 if (
font->isT1 && !initial_map_ready )
2459 FT_TRACE5((
"cf2_interpT2CharString (Type 1 mode): "
2460 "Build initial hintmap, rewinding...\n" ));
2465 initial_map_ready =
TRUE;
2479 while ( charstringIndex > 0 )
2481 FT_TRACE4((
" return (leaving level %d)\n", charstringIndex ));
2489 charstring->ptr = charstring->start;
2527 lastError =
FT_THROW( Invalid_Glyph_Format );
2581 FT_TRACE4((
"cf2_interpT2CharString: invalid hint mask\n" ));
2623 if (!counterHintMap_allocated)
2625 lastError = FT_Err_Out_Of_Memory;
2629#define counterHintMap (*counterHintMap_allocated)
2654 free(counterHintMap_allocated);
2655#undef counterHintMap
2663 if (
font->isT1 && !
decoder->flex_state && !haveWidth )
2664 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
2665 " No width. Use hsbw/sbw as first op\n" ));
2688 if (
font->isT1 && !
decoder->flex_state && !haveWidth )
2689 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
2690 " No width. Use hsbw/sbw as first op\n" ));
2760 count = count1 & ~2U;
2805 count = count1 & ~2U;
2854 count = count1 & ~2U;
2857 FT_TRACE4((
"%s\n", alternate ?
" hvcurveto" :
" vhcurveto" ));
2947 else if ( op1 <= 250 )
2964 else if ( op1 <= 254 )
3013 if (
v > 32000 ||
v < -32000 )
3016 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):"
3017 " no `div' after large integer\n" ));
3044 " charstring ends without ENDCHAR\n" ));
3063 free(glyphPath_allocated);
static struct _test_info results[8]
_STLP_MOVE_TO_STD_NAMESPACE void _STLP_CALL advance(_InputIterator &__i, _Distance __n)
FT_DivFix(FT_Long a, FT_Long b)
#define FT_SUBGLYPH_FLAG_USE_MY_METRICS
struct FT_GlyphSlotRec_ * FT_GlyphSlot
#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES
FT_MulFix(FT_Long a, FT_Long b)
#define FT_ASSERT(condition)
#define FT_ERROR(varformat)
#define FT_TRACE5(varformat)
#define FT_TRACE4(varformat)
cannot open resource broken file module version is too low unimplemented feature broken offset within table missing module invalid glyph index unsupported glyph image format invalid outline too many hints invalid object handle invalid module handle invalid size handle invalid charmap handle invalid stream handle too many extensions unlisted object invalid stream seek invalid stream read invalid frame operation invalid frame read raster corrupted negative height while rastering invalid opcode stack overflow bad argument invalid reference found ENDF opcode in execution stream invalid code range too many function definitions SFNT font table missing name table missing horizontal PostScript(post) table missing" ) FT_ERRORDEF_( Invalid_Horiz_Metrics
FT_GlyphLoader_Prepare(FT_GlyphLoader loader)
FT_GlyphLoader_CheckSubGlyphs(FT_GlyphLoader loader, FT_UInt n_subs)
size_t * ft_hash_num_lookup(FT_Int num, FT_Hash hash)
FT_BEGIN_HEADER typedef signed long FT_Pos
#define T1_MAX_SUBRS_CALLS
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
FT_BEGIN_HEADER typedef unsigned char FT_Bool
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
GLuint GLuint GLuint GLuint arg1
GLdouble GLdouble GLdouble GLdouble top
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
GLenum GLuint GLint GLenum face
GLenum GLuint GLenum GLsizei const GLchar * buf
GLboolean GLenum GLenum GLvoid * values
GLfloat GLfloat GLfloat v2
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
int jpeg_marker_parser_method routine
static char memory[1024 *256]
cf2_arrstack_getPointer(const CF2_ArrStack arrstack, size_t idx)
cf2_arrstack_setCount(CF2_ArrStack arrstack, size_t numElements)
cf2_arrstack_push(CF2_ArrStack arrstack, const void *ptr)
cf2_arrstack_finalize(CF2_ArrStack arrstack)
cf2_arrstack_init(CF2_ArrStack arrstack, FT_Memory memory, FT_Error *error, size_t sizeItem)
cf2_arrstack_getBuffer(const CF2_ArrStack arrstack)
cf2_arrstack_clear(CF2_ArrStack arrstack)
cf2_arrstack_size(const CF2_ArrStack arrstack)
FT_BEGIN_HEADER struct CF2_ArrStackRec_ * CF2_ArrStack
FT_BEGIN_HEADER struct CF2_ArrStackRec_ CF2_ArrStackRec
cf2_setError(FT_Error *error, FT_Error value)
#define CF2_SET_ERROR(error, e)
#define CF2_OPERAND_STACK_SIZE
cf2_freeSeacComponent(PS_Decoder *decoder, CF2_Buffer buf)
cf2_freeT1SeacComponent(PS_Decoder *decoder, CF2_Buffer buf)
cf2_initLocalRegionBuffer(PS_Decoder *decoder, CF2_Int subrNum, CF2_Buffer buf)
cf2_getNominalWidthX(PS_Decoder *decoder)
cf2_initGlobalRegionBuffer(PS_Decoder *decoder, CF2_Int subrNum, CF2_Buffer buf)
cf2_getT1SeacComponent(PS_Decoder *decoder, FT_UInt glyph_index, CF2_Buffer buf)
cf2_getMaxstack(PS_Decoder *decoder)
cf2_getDefaultWidthX(PS_Decoder *decoder)
cf2_getSeacComponent(PS_Decoder *decoder, CF2_Int code, CF2_Buffer buf)
cf2_glyphpath_moveTo(CF2_GlyphPath glyphpath, CF2_Fixed x, CF2_Fixed y)
cf2_glyphpath_finalize(CF2_GlyphPath glyphpath)
cf2_hintmap_build(CF2_HintMap hintmap, CF2_ArrStack hStemHintArray, CF2_ArrStack vStemHintArray, CF2_HintMask hintMask, CF2_Fixed hintOrigin, FT_Bool initialMap)
cf2_glyphpath_curveTo(CF2_GlyphPath glyphpath, CF2_Fixed x1, CF2_Fixed y1, CF2_Fixed x2, CF2_Fixed y2, CF2_Fixed x3, CF2_Fixed y3)
cf2_glyphpath_closeOpenPath(CF2_GlyphPath glyphpath)
cf2_glyphpath_lineTo(CF2_GlyphPath glyphpath, CF2_Fixed x, CF2_Fixed y)
cf2_hintmap_init(CF2_HintMap hintmap, CF2_Font font, CF2_HintMap initialMap, CF2_ArrStack hintMoves, CF2_Fixed scale)
cf2_glyphpath_init(CF2_GlyphPath glyphpath, CF2_Font font, CF2_OutlineCallbacks callbacks, CF2_Fixed scaleY, CF2_ArrStack hStemHintArray, CF2_ArrStack vStemHintArray, CF2_HintMask hintMask, CF2_Fixed hintOriginY, const CF2_Blues blues, const FT_Vector *fractionalTranslation)
cf2_hintmask_isNew(const CF2_HintMask hintmask)
static void cf2_doFlex(CF2_Stack opStack, CF2_Fixed *curX, CF2_Fixed *curY, CF2_GlyphPath glyphPath, const FT_Bool *readFromStack, FT_Bool doConditionalLastRead)
cf2_hintmask_getMaskPtr(CF2_HintMask hintmask)
static size_t cf2_hintmask_setCounts(CF2_HintMask hintmask, size_t bitCount)
static void cf2_doStems(const CF2_Font font, CF2_Stack opStack, CF2_ArrStack stemHintArray, CF2_Fixed *width, FT_Bool *haveWidth, CF2_Fixed hintOffset)
cf2_hintmask_setAll(CF2_HintMask hintmask, size_t bitCount)
static void cf2_doBlend(const CFF_Blend blend, CF2_Stack opStack, CF2_UInt numBlends)
static void cf2_hintmask_read(CF2_HintMask hintmask, CF2_Buffer charstring, size_t bitCount)
cf2_hintmask_isValid(const CF2_HintMask hintmask)
cf2_hintmask_init(CF2_HintMask hintmask, FT_Error *error)
cf2_interpT2CharString(CF2_Font font, CF2_Buffer buf, CF2_OutlineCallbacks callbacks, const FT_Vector *translation, FT_Bool doingSeac, CF2_Fixed curX, CF2_Fixed curY, CF2_Fixed *width)
cf2_hintmask_setNew(CF2_HintMask hintmask, FT_Bool val)
ps_builder_check_points(PS_Builder *builder, FT_Int count)
cf2_buf_readByte(CF2_Buffer buf)
cf2_buf_isEnd(CF2_Buffer buf)
FT_BEGIN_HEADER struct CF2_BufferRec_ CF2_BufferRec
FT_BEGIN_HEADER struct CF2_BufferRec_ * CF2_Buffer
cf2_stack_pushInt(CF2_Stack stack, CF2_Int val)
cf2_stack_popFixed(CF2_Stack stack)
cf2_stack_count(CF2_Stack stack)
cf2_stack_setReal(CF2_Stack stack, CF2_UInt idx, CF2_Fixed val)
cf2_stack_clear(CF2_Stack stack)
cf2_stack_popInt(CF2_Stack stack)
cf2_stack_pop(CF2_Stack stack, CF2_UInt num)
cf2_stack_free(CF2_Stack stack)
cf2_stack_roll(CF2_Stack stack, CF2_Int count, CF2_Int shift)
cf2_stack_init(FT_Memory memory, FT_Error *e, FT_UInt stackSize)
cf2_stack_pushFixed(CF2_Stack stack, CF2_Fixed val)
cf2_stack_getReal(CF2_Stack stack, CF2_UInt idx)
static int sum(int x_, int y_)
CF2_ArrStackRec hintMoves
CF2_HintMapRec initialHintMap
FT_Byte mask[(CF2_MAX_HINTS+7)/8]
FT_Slot_Internal internal
t1_lookup_glyph_by_stdcharcode_ps(PS_Decoder *decoder, FT_Int charcode)
struct T1_FaceRec_ * T1_Face
static unsigned arg_cnt(const DISPPARAMS *dp)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList