40 #include FT_INTERNAL_DEBUG_H 41 #include FT_SERVICE_CFF_TABLE_LOAD_H 62 #define FT_COMPONENT trace_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 = 20000000
UL;
530 if (!glyphPath)
return;
532 #define glyphPath (*glyphPath) 610 lastError =
FT_THROW( Out_Of_Memory );
633 FT_ASSERT( known_othersubr_result_cnt == 0 ||
641 if ( charstringIndex )
659 if ( !initial_map_ready &&
676 if ( result_cnt > 0 &&
686 if ( large_int && !( op1 >= 32 || op1 ==
cf2_escDIV ) )
688 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):" 689 " no `div' after large integer\n" ));
700 if ( instructionLimit == 0 )
702 lastError =
FT_THROW( Invalid_Glyph_Format );
712 FT_TRACE4((
" unknown op (%d)\n", op1 ));
721 if (
font->blend.usedBV )
724 lastError =
FT_THROW( Invalid_Glyph_Format );
748 if ( !
font->blend.font )
750 lastError =
FT_THROW( Invalid_Glyph_Format );
755 if (
font->cffload->blend_check_vector( &
font->blend,
760 lastError =
font->cffload->blend_build_vector( &
font->blend,
770 if ( numBlends > stackSize )
772 lastError =
FT_THROW( Invalid_Glyph_Format );
793 " invalid horizontal hint mask\n" ));
823 " invalid vertical hint mask\n" ));
846 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):" 847 " No width. Use hsbw/sbw as first op\n" ));
896 FT_TRACE4(( isX ?
" hlineto\n" :
" vlineto\n" ));
962 FT_TRACE4((
" unknown op (%d)\n", op1 ));
987 lastError =
FT_THROW( Invalid_Glyph_Format );
995 (
size_t)charstringIndex + 1 );
1015 FT_TRACE4((
" (idx %d, entering level %d)\n",
1017 charstringIndex + 1 ));
1023 lastError =
FT_THROW( Invalid_Glyph_Format );
1030 FT_TRACE4((
" (idx %d, entering level %d)\n",
1032 charstringIndex + 1 ));
1038 lastError =
FT_THROW( Invalid_Glyph_Format );
1043 charstringIndex += 1;
1048 FT_TRACE4((
" return (leaving level %d)\n", charstringIndex ));
1050 if ( charstringIndex < 1 )
1053 lastError =
FT_THROW( Invalid_Glyph_Format );
1075 static const FT_Bool readFromStack[12] =
1099 static const FT_Bool readFromStack[12] =
1123 static const FT_Bool readFromStack[12] =
1147 static const FT_Bool readFromStack[12] =
1176 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1182 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1212 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1241 isV ? &vStemHintArray : &hStemHintArray,
1298 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1302 CF2_Int bchar_index, achar_index;
1305 #ifdef FT_CONFIG_OPTION_INCREMENTAL 1324 lastError =
FT_THROW( Invalid_Glyph_Format );
1330 FT_ERROR((
" unexpected seac\n" ));
1331 lastError =
FT_THROW( Invalid_Glyph_Format );
1338 #ifdef FT_CONFIG_OPTION_INCREMENTAL 1340 !
face->root.internal->incremental_interface )
1346 "cf2_interpT2CharString: (Type 1 seac)" 1347 " glyph names table not available in this font\n" ));
1348 lastError =
FT_THROW( Invalid_Glyph_Format );
1355 #ifdef FT_CONFIG_OPTION_INCREMENTAL 1356 if (
face->root.internal->incremental_interface )
1359 bchar_index = bchar;
1360 achar_index = achar;
1371 if ( bchar_index < 0 || achar_index < 0 )
1374 "cf2_interpT2CharString: (Type 1 seac)" 1375 " invalid seac character code arguments\n" ));
1376 lastError =
FT_THROW( Invalid_Glyph_Format );
1398 subg = loader->current.subglyphs;
1401 subg->index = bchar_index;
1409 subg->index = achar_index;
1416 glyph->
subglyphs = loader->base.subglyphs;
1417 glyph->
format = FT_GLYPH_FORMAT_COMPOSITE;
1419 loader->current.num_subglyphs = 2;
1490 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1521 if ( initial_map_ready )
1586 if (
font->isT1 && large_int )
1638 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
1668 known_othersubr_result_cnt = 0;
1693 goto Unexpected_OtherSubr;
1695 if ( initial_map_ready &&
1699 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):" 1700 " unexpected flex end\n" ));
1701 lastError =
FT_THROW( Invalid_Glyph_Format );
1709 known_othersubr_result_cnt = 2;
1714 goto Unexpected_OtherSubr;
1716 if ( !initial_map_ready )
1733 goto Unexpected_OtherSubr;
1735 if ( !initial_map_ready )
1740 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):" 1741 " missing flex start\n" ));
1742 lastError =
FT_THROW( Invalid_Glyph_Format );
1751 if (
idx > 0 &&
idx < 7 )
1761 lastError =
FT_THROW( Invalid_Glyph_Format );
1768 flexStore[idx2 - 2] = curX;
1769 flexStore[idx2 - 1] = curY;
1771 if (
idx == 3 ||
idx == 6 )
1785 goto Unexpected_OtherSubr;
1787 if ( initial_map_ready )
1799 known_othersubr_result_cnt = 1;
1823 "cf2_interpT2CharString:" 1824 " unexpected multiple masters operator\n" ));
1825 lastError =
FT_THROW( Invalid_Glyph_Format );
1829 num_points = (
FT_UInt)subr_no - 13 +
1835 "cf2_interpT2CharString:" 1836 " incorrect number of multiple masters arguments\n" ));
1837 lastError =
FT_THROW( Invalid_Glyph_Format );
1857 delta = opIdx + num_points;
1859 for ( nn = 0; nn < num_points; nn++ )
1877 known_othersubr_result_cnt = (
FT_Int)num_points;
1892 goto Unexpected_OtherSubr;
1899 goto Unexpected_OtherSubr;
1917 goto Unexpected_OtherSubr;
1925 known_othersubr_result_cnt = 1;
1938 goto Unexpected_OtherSubr;
1946 known_othersubr_result_cnt = 1;
1959 goto Unexpected_OtherSubr;
1966 known_othersubr_result_cnt = 1;
1979 goto Unexpected_OtherSubr;
1985 goto Unexpected_OtherSubr;
1990 known_othersubr_result_cnt = 1;
2003 goto Unexpected_OtherSubr;
2009 goto Unexpected_OtherSubr;
2026 goto Unexpected_OtherSubr;
2032 goto Unexpected_OtherSubr;
2036 known_othersubr_result_cnt = 1;
2064 goto Unexpected_OtherSubr;
2073 known_othersubr_result_cnt = 1;
2086 goto Unexpected_OtherSubr;
2097 known_othersubr_result_cnt = 1;
2102 if (
arg_cnt >= 0 && subr_no >= 0 )
2108 "cf2_interpT2CharString (Type 1 mode):" 2109 " unknown othersubr [%d %d], wish me luck\n",
2127 Unexpected_OtherSubr:
2128 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):" 2129 " invalid othersubr [%d %d]\n",
2131 lastError =
FT_THROW( Invalid_Glyph_Format );
2139 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
2144 if ( known_othersubr_result_cnt > 0 )
2146 known_othersubr_result_cnt--;
2151 if ( result_cnt == 0 )
2153 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):" 2154 " no more operands for othersubr\n" ));
2155 lastError =
FT_THROW( Invalid_Glyph_Format );
2275 if ( new_root ==
root )
2367 FT_TRACE4((
" unknown op (12, %d)\n", op2 ));
2372 if ( !initial_map_ready )
2392 FT_ERROR((
"cf2_interpT2CharString:" 2393 " unexpected `setcurrentpoint'\n" ));
2417 FT_TRACE4((
" unknown op (%d)\n", op1 ));
2444 if ( initial_map_ready )
2452 if (
font->isT1 && !initial_map_ready )
2454 FT_TRACE5((
"cf2_interpT2CharString (Type 1 mode): " 2455 "Build initial hintmap, rewinding...\n" ));
2460 initial_map_ready =
TRUE;
2474 while ( charstringIndex > 0 )
2476 FT_TRACE4((
" return (leaving level %d)\n", charstringIndex ));
2484 charstring->ptr = charstring->start;
2522 lastError =
FT_THROW( Invalid_Glyph_Format );
2576 FT_TRACE4((
"cf2_interpT2CharString: invalid hint mask\n" ));
2618 if (!counterHintMap)
2620 lastError = FT_Err_Out_Of_Memory;
2624 #define counterHintMap (*counterHintMap) 2649 free(&counterHintMap);
2658 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):" 2659 " No width. Use hsbw/sbw as first op\n" ));
2683 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):" 2684 " No width. Use hsbw/sbw as first op\n" ));
2850 FT_TRACE4(( alternate ?
" hvcurveto\n" :
" vhcurveto\n" ));
2940 else if ( op1 <= 250 )
2957 else if ( op1 <= 254 )
3006 if (
v > 32000 ||
v < -32000 )
3009 FT_ERROR((
"cf2_interpT2CharString (Type 1 mode):" 3010 " no `div' after large integer\n" ));
3037 " charstring ends without ENDCHAR\n" ));
3057 #undef counterHintMap 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
cf2_stack_getReal(CF2_Stack stack, CF2_UInt idx)
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)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
FT_BEGIN_HEADER struct CF2_BufferRec_ * CF2_Buffer
cf2_stack_pushFixed(CF2_Stack stack, CF2_Fixed val)
cf2_buf_readByte(CF2_Buffer buf)
cf2_getNominalWidthX(PS_Decoder *decoder)
cf2_stack_popFixed(CF2_Stack stack)
FT_DivFix(FT_Long a, FT_Long b)
GLint GLint GLsizei width
cf2_glyphpath_lineTo(CF2_GlyphPath glyphpath, CF2_Fixed x, CF2_Fixed y)
cf2_arrstack_setCount(CF2_ArrStack arrstack, size_t numElements)
cf2_stack_free(CF2_Stack stack)
struct T1_FaceRec_ * T1_Face
FT_BEGIN_HEADER typedef signed long FT_Pos
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
cf2_initGlobalRegionBuffer(PS_Decoder *decoder, CF2_Int subrNum, CF2_Buffer buf)
cf2_hintmask_setNew(CF2_HintMask hintmask, FT_Bool val)
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES
#define FT_SUBGLYPH_FLAG_USE_MY_METRICS
cf2_arrstack_init(CF2_ArrStack arrstack, FT_Memory memory, FT_Error *error, size_t sizeItem)
cf2_buf_isEnd(CF2_Buffer buf)
cf2_stack_roll(CF2_Stack stack, CF2_Int count, CF2_Int shift)
GLdouble GLdouble GLdouble r
t1_lookup_glyph_by_stdcharcode_ps(PS_Decoder *decoder, FT_Int charcode)
GLuint GLuint GLsizei count
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
GLboolean GLenum GLenum GLvoid * values
CFF_SubFont current_subfont
cf2_hintmask_getMaskPtr(CF2_HintMask hintmask)
cf2_getT1SeacComponent(PS_Decoder *decoder, FT_UInt glyph_index, CF2_Buffer buf)
cf2_setError(FT_Error *error, FT_Error value)
cf2_hintmask_isValid(const CF2_HintMask hintmask)
cf2_hintmask_setAll(CF2_HintMask hintmask, size_t bitCount)
size_t * ft_hash_num_lookup(FT_Int num, FT_Hash hash)
cf2_hintmap_init(CF2_HintMap hintmap, CF2_Font font, CF2_HintMap initialMap, CF2_ArrStack hintMoves, CF2_Fixed scale)
ps_builder_check_points(PS_Builder *builder, FT_Int count)
cf2_glyphpath_curveTo(CF2_GlyphPath glyphpath, CF2_Fixed x1, CF2_Fixed y1, CF2_Fixed x2, CF2_Fixed y2, CF2_Fixed x3, CF2_Fixed y3)
static void cf2_doStems(const CF2_Font font, CF2_Stack opStack, CF2_ArrStack stemHintArray, CF2_Fixed *width, FT_Bool *haveWidth, CF2_Fixed hintOffset)
FT_BEGIN_HEADER struct CF2_ArrStackRec_ CF2_ArrStackRec
CF2_ArrStackRec hintMoves
static char memory[1024 *256]
FT_BEGIN_HEADER struct CF2_BufferRec_ CF2_BufferRec
#define CF2_OPERAND_STACK_SIZE
cf2_stack_pop(CF2_Stack stack, CF2_UInt num)
FT_Byte mask[(CF2_MAX_HINTS+7)/8]
cf2_getMaxstack(PS_Decoder *decoder)
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
FT_BEGIN_HEADER typedef unsigned char FT_Bool
cf2_freeT1SeacComponent(PS_Decoder *decoder, CF2_Buffer buf)
GLenum GLuint GLenum GLsizei const GLchar * buf
cf2_arrstack_getPointer(const CF2_ArrStack arrstack, size_t idx)
#define FT_ERROR(varformat)
cf2_freeSeacComponent(PS_Decoder *decoder, CF2_Buffer buf)
#define FT_ASSERT(condition)
cf2_glyphpath_finalize(CF2_GlyphPath glyphpath)
ps_builder_close_contour(PS_Builder *builder)
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)
GLuint GLuint GLuint GLuint arg1
#define FT_TRACE4(varformat)
#define T1_MAX_SUBRS_CALLS
CF2_HintMapRec initialHintMap
cf2_stack_count(CF2_Stack stack)
static int sum(int x_, int y_)
cf2_stack_clear(CF2_Stack stack)
FT_GlyphLoader_CheckSubGlyphs(FT_GlyphLoader loader, FT_UInt n_subs)
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
cf2_stack_popInt(CF2_Stack stack)
cf2_getDefaultWidthX(PS_Decoder *decoder)
cf2_arrstack_push(CF2_ArrStack arrstack, const void *ptr)
cf2_glyphpath_closeOpenPath(CF2_GlyphPath glyphpath)
cf2_arrstack_getBuffer(const CF2_ArrStack arrstack)
cf2_arrstack_finalize(CF2_ArrStack arrstack)
cf2_glyphpath_moveTo(CF2_GlyphPath glyphpath, CF2_Fixed x, CF2_Fixed y)
static struct _test_info results[8]
FT_BEGIN_HEADER struct CF2_ArrStackRec_ * CF2_ArrStack
cf2_hintmask_isNew(const CF2_HintMask hintmask)
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
int jpeg_marker_parser_method routine
_STLP_MOVE_TO_STD_NAMESPACE void _STLP_CALL advance(_InputIterator &__i, _Distance __n)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
cf2_arrstack_clear(CF2_ArrStack arrstack)
FT_MulFix(FT_Long a, FT_Long b)
GLfloat GLfloat GLfloat v2
static unsigned arg_cnt(const DISPPARAMS *dp)
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
cf2_hintmap_build(CF2_HintMap hintmap, CF2_ArrStack hStemHintArray, CF2_ArrStack vStemHintArray, CF2_HintMask hintMask, CF2_Fixed hintOrigin, FT_Bool initialMap)
static size_t cf2_hintmask_setCounts(CF2_HintMask hintmask, size_t bitCount)
struct FT_GlyphSlotRec_ * FT_GlyphSlot
#define FT_TRACE5(varformat)
static void cf2_doBlend(const CFF_Blend blend, CF2_Stack opStack, CF2_UInt numBlends)
cf2_arrstack_size(const CF2_ArrStack arrstack)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
static void cf2_doFlex(CF2_Stack opStack, CF2_Fixed *curX, CF2_Fixed *curY, CF2_GlyphPath glyphPath, const FT_Bool *readFromStack, FT_Bool doConditionalLastRead)
FT_GlyphLoader_Prepare(FT_GlyphLoader loader)
cf2_stack_pushInt(CF2_Stack stack, CF2_Int val)
FT_Slot_Internal internal
cf2_getSeacComponent(PS_Decoder *decoder, CF2_Int code, CF2_Buffer buf)
static void cf2_hintmask_read(CF2_HintMask hintmask, CF2_Buffer charstring, size_t bitCount)
GLdouble GLdouble GLdouble GLdouble top
cf2_stack_setReal(CF2_Stack stack, CF2_UInt idx, CF2_Fixed val)
cf2_initLocalRegionBuffer(PS_Decoder *decoder, CF2_Int subrNum, CF2_Buffer buf)
cf2_stack_init(FT_Memory memory, FT_Error *e, FT_UInt stackSize)
cf2_hintmask_init(CF2_HintMask hintmask, FT_Error *error)
GLenum GLuint GLint GLenum face
#define CF2_SET_ERROR(error, e)