Lines Matching refs:decoder

130   t1_lookup_glyph_by_stdcharcode( T1_Decoder  decoder,
135 FT_Service_PsCMaps psnames = decoder->psnames;
145 for ( n = 0; n < decoder->num_glyphs; n++ )
147 FT_String* name = (FT_String*)decoder->glyph_names[n];
166 /* Implements the `seac' Type 1 operator for a Type 1 decoder. */
169 /* decoder :: The current CID decoder. */
185 t1operator_seac( T1_Decoder decoder,
196 FT_Outline* base = decoder->builder.base;
201 T1_Face face = (T1_Face)decoder->builder.face;
205 if ( decoder->seac )
211 if ( decoder->builder.metrics_only )
218 adx += decoder->builder.left_bearing.x;
223 if ( decoder->glyph_names == 0 &&
226 if ( decoder->glyph_names == 0 )
244 bchar_index = t1_lookup_glyph_by_stdcharcode( decoder, bchar );
245 achar_index = t1_lookup_glyph_by_stdcharcode( decoder, achar );
257 if ( decoder->builder.no_recurse )
259 FT_GlyphSlot glyph = (FT_GlyphSlot)decoder->builder.glyph;
297 FT_GlyphLoader_Prepare( decoder->builder.loader ); /* prepare loader */
300 decoder->seac = TRUE;
301 error = t1_decoder_parse_glyph( decoder, bchar_index );
302 decoder->seac = FALSE;
309 left_bearing = decoder->builder.left_bearing;
310 advance = decoder->builder.advance;
312 decoder->builder.left_bearing.x = 0;
313 decoder->builder.left_bearing.y = 0;
315 decoder->builder.pos_x = adx - asb;
316 decoder->builder.pos_y = ady;
322 decoder->seac = TRUE;
323 error = t1_decoder_parse_glyph( decoder, achar_index );
324 decoder->seac = FALSE;
331 decoder->builder.left_bearing = left_bearing;
332 decoder->builder.advance = advance;
334 decoder->builder.pos_x = 0;
335 decoder->builder.pos_y = 0;
351 /* decoder :: The current Type 1 decoder. */
361 t1_decoder_parse_charstrings( T1_Decoder decoder,
369 T1_Builder builder = &decoder->builder;
385 (FT_PtrDist)(char*)&decoder ^
392 /* First of all, initialize the decoder */
393 decoder->top = decoder->stack;
394 decoder->zone = decoder->zones;
395 zone = decoder->zones;
403 FT_ASSERT( ( decoder->len_buildchar == 0 ) ==
404 ( decoder->buildchar == NULL ) );
406 if ( decoder->buildchar && decoder->len_buildchar > 0 )
407 ft_memset( &decoder->buildchar[0],
409 sizeof ( decoder->buildchar[0] ) * decoder->len_buildchar );
432 FT_Long* top = decoder->top;
443 FT_TRACE5(( " (%d)", decoder->top - decoder->stack ));
662 if ( top - decoder->stack >= T1_MAX_CHARSTRINGS_OPERANDS )
676 decoder->top = top;
689 if ( top - decoder->stack < 2 )
708 if ( arg_cnt > top - decoder->stack )
738 if ( decoder->flex_state == 0 ||
739 decoder->num_flex_vectors != 7 )
756 decoder->flex_state = 1;
757 decoder->num_flex_vectors = 0;
773 if ( decoder->flex_state == 0 )
783 idx = decoder->num_flex_vectors++;
805 top = decoder->stack;
814 PS_Blend blend = decoder->blend;
874 PS_Blend blend = decoder->blend;
883 idx + blend->num_designs > decoder->len_buildchar )
886 ft_memcpy( &decoder->buildchar[idx],
942 PS_Blend blend = decoder->blend;
950 if ( idx < 0 || (FT_UInt) idx >= decoder->len_buildchar )
953 decoder->buildchar[idx] = top[0];
963 PS_Blend blend = decoder->blend;
971 if ( idx < 0 || (FT_UInt) idx >= decoder->len_buildchar )
974 top[0] = decoder->buildchar[idx];
1045 decoder->top = top;
1054 if ( top - decoder->stack < num_args )
1059 /* decoder->stack[0], ..., decoder->stack[num_args - 1]; */
1075 if ( top - decoder->stack != num_args )
1079 top - decoder->stack, num_args ));
1104 decoder->hint_mode );
1114 if ( decoder->len_buildchar > 0 )
1121 for ( i = 0; i < decoder->len_buildchar; ++i )
1122 FT_TRACE4(( "%d ", decoder->buildchar[i] ));
1157 return t1operator_seac( decoder,
1210 if ( !decoder->flex_state )
1257 if ( !decoder->flex_state )
1319 if ( !decoder->flex_state )
1347 if ( idx < 0 || idx >= (FT_Int)decoder->num_subrs )
1354 if ( zone - decoder->zones >= T1_MAX_SUBRS_CALLS )
1367 /* case is taken care of when decoder->subrs_len == 0. */
1368 zone->base = decoder->subrs[idx];
1370 if ( decoder->subrs_len )
1371 zone->limit = zone->base + decoder->subrs_len[idx];
1376 zone->base += ( decoder->lenIV >= 0 ? decoder->lenIV : 0 );
1377 zone->limit = decoder->subrs[idx + 1];
1389 decoder->zone = zone;
1419 if ( zone <= decoder->zones )
1429 decoder->zone = zone;
1500 if ( decoder->flex_state != 1 )
1512 decoder->flex_state = 0;
1531 decoder->top = top;
1557 t1_decoder_parse_glyph( T1_Decoder decoder,
1560 return decoder->parse_callback( decoder, glyph );
1564 /* initialize T1 decoder */
1566 t1_decoder_init( T1_Decoder decoder,
1576 FT_MEM_ZERO( decoder, sizeof ( *decoder ) );
1591 decoder->psnames = psnames;
1594 t1_builder_init( &decoder->builder, face, size, slot, hinting );
1596 /* decoder->buildchar and decoder->len_buildchar have to be */
1600 decoder->num_glyphs = (FT_UInt)face->num_glyphs;
1601 decoder->glyph_names = glyph_names;
1602 decoder->hint_mode = hint_mode;
1603 decoder->blend = blend;
1604 decoder->parse_callback = parse_callback;
1606 decoder->funcs = t1_decoder_funcs;
1612 /* finalize T1 decoder */
1614 t1_decoder_done( T1_Decoder decoder )
1616 t1_builder_done( &decoder->builder );