Lines Matching refs:blend

286     GX_Blend        blend  = face->blend;
297 blend->avar_checked = TRUE;
308 axisCount != (FT_Long)blend->mmvar->num_axis )
311 if ( FT_NEW_ARRAY( blend->avar_segment, axisCount ) )
314 segment = &blend->avar_segment[0];
324 FT_FREE( blend->avar_segment[j].correspondence );
326 FT_FREE( blend->avar_segment );
327 blend->avar_segment = NULL;
378 GX_Blend blend = face->blend;
410 blend->tuplecount = gvar_head.globalCoordCount;
411 blend->gv_glyphcnt = gvar_head.glyphCount;
415 gvar_head.axisCount != (FT_UShort)blend->mmvar->num_axis )
421 if ( FT_NEW_ARRAY( blend->glyphoffsets, blend->gv_glyphcnt + 1 ) )
427 if ( FT_FRAME_ENTER( ( blend->gv_glyphcnt + 1 ) * 4L ) )
430 for ( i = 0; i <= blend->gv_glyphcnt; ++i )
431 blend->glyphoffsets[i] = offsetToData + FT_GET_LONG();
438 if ( FT_FRAME_ENTER( ( blend->gv_glyphcnt + 1 ) * 2L ) )
441 for ( i = 0; i <= blend->gv_glyphcnt; ++i )
442 blend->glyphoffsets[i] = offsetToData + FT_GET_USHORT() * 2;
448 if ( blend->tuplecount != 0 )
450 if ( FT_NEW_ARRAY( blend->tuplecoords,
451 gvar_head.axisCount * blend->tuplecount ) )
455 FT_FRAME_ENTER( blend->tuplecount * gvar_head.axisCount * 2L ) )
458 for ( i = 0; i < blend->tuplecount; ++i )
460 blend->tuplecoords[i * gvar_head.axisCount + j] =
478 /* blend, and if so, what is the scaling factor. */
481 /* blend :: The current blend of the font. */
499 ft_var_apply_tuple( GX_Blend blend,
509 for ( i = 0; i < blend->num_axis; ++i )
518 else if ( blend->normalizedcoords[i] == 0 ||
519 ( blend->normalizedcoords[i] < 0 && tuple_coords[i] > 0 ) ||
520 ( blend->normalizedcoords[i] > 0 && tuple_coords[i] < 0 ) )
529 blend->normalizedcoords[i] > 0
530 ? blend->normalizedcoords[i]
531 : -blend->normalizedcoords[i] );
533 else if ( blend->normalizedcoords[i] <= im_start_coords[i] ||
534 blend->normalizedcoords[i] >= im_end_coords[i] )
540 else if ( blend->normalizedcoords[i] < tuple_coords[i] )
542 blend->normalizedcoords[i] - im_start_coords[i],
547 im_end_coords[i] - blend->normalizedcoords[i],
600 /* TT_Get_MM_Var initializes the blend structure. */
659 if ( face->blend == NULL )
690 if ( FT_NEW( face->blend ) )
694 face->blend->mmvar_len =
701 if ( FT_ALLOC( mmvar, face->blend->mmvar_len ) )
703 face->blend->mmvar = mmvar;
780 if ( FT_ALLOC( mmvar, face->blend->mmvar_len ) )
782 FT_MEM_COPY( mmvar, face->blend->mmvar, face->blend->mmvar_len );
831 /* Set the blend (normalized) coordinates for this instance of the */
837 /* Initialize the blend structure with `gvar' data. */
853 GX_Blend blend;
869 if ( face->blend == NULL )
875 blend = face->blend;
876 mmvar = blend->mmvar;
891 if ( blend->glyphoffsets == NULL )
895 if ( blend->normalizedcoords == NULL )
897 if ( FT_NEW_ARRAY( blend->normalizedcoords, num_coords ) )
902 /* If we have not set the blend coordinates before this, then the */
911 if ( blend->normalizedcoords[i] != coords[i] )
918 /* If we don't change the blend coords then we don't need to do */
921 /* the blend last time), so we must reload and then modify it. */
924 blend->num_axis = num_coords;
925 FT_MEM_COPY( blend->normalizedcoords,
937 /* blend we may need to reload and remodify the cvt table. */
973 /* Initialize the blend struct with `gvar' data. */
990 GX_Blend blend;
998 if ( face->blend == NULL )
1004 blend = face->blend;
1005 mmvar = blend->mmvar;
1037 if ( !blend->avar_checked )
1040 if ( blend->avar_segment != NULL )
1042 av = blend->avar_segment;
1084 /* font's blend. */
1113 GX_Blend blend = face->blend;
1121 if ( blend == NULL )
1123 FT_TRACE2(( "tt_face_vary_cvt: no blend specified\n" ));
1161 if ( FT_NEW_ARRAY( tuple_coords, blend->num_axis ) ||
1162 FT_NEW_ARRAY( im_start_coords, blend->num_axis ) ||
1163 FT_NEW_ARRAY( im_end_coords, blend->num_axis ) )
1188 for ( j = 0; j < blend->num_axis; ++j )
1197 for ( j = 0; j < 2 * blend->num_axis; ++j )
1206 for ( j = 0; j < blend->num_axis; ++j )
1208 for ( j = 0; j < blend->num_axis; ++j )
1212 apply = ft_var_apply_tuple( blend,
1217 if ( /* tuple isn't active for our blend */
1308 GX_Blend blend = face->blend;
1327 if ( !face->doblend || blend == NULL )
1335 if ( glyph_index >= blend->gv_glyphcnt ||
1336 blend->glyphoffsets[glyph_index] ==
1337 blend->glyphoffsets[glyph_index + 1] )
1340 if ( FT_STREAM_SEEK( blend->glyphoffsets[glyph_index] ) ||
1341 FT_FRAME_ENTER( blend->glyphoffsets[glyph_index + 1] -
1342 blend->glyphoffsets[glyph_index] ) )
1350 if ( FT_NEW_ARRAY( tuple_coords, blend->num_axis ) ||
1351 FT_NEW_ARRAY( im_start_coords, blend->num_axis ) ||
1352 FT_NEW_ARRAY( im_end_coords, blend->num_axis ) )
1382 for ( j = 0; j < blend->num_axis; ++j )
1386 else if ( ( tupleIndex & GX_TI_TUPLE_INDEX_MASK ) >= blend->tuplecount )
1395 &blend->tuplecoords[(tupleIndex & 0xFFF) * blend->num_axis],
1396 blend->num_axis * sizeof ( FT_Fixed ) );
1401 for ( j = 0; j < blend->num_axis; ++j )
1403 for ( j = 0; j < blend->num_axis; ++j )
1407 apply = ft_var_apply_tuple( blend,
1413 if ( apply == 0 ) /* tuple isn't active for our blend */
1502 /* Frees the blend internal data structure. */
1506 GX_Blend blend )
1508 if ( blend != NULL )
1513 FT_FREE( blend->normalizedcoords );
1514 FT_FREE( blend->mmvar );
1516 if ( blend->avar_segment != NULL )
1518 for ( i = 0; i < blend->num_axis; ++i )
1519 FT_FREE( blend->avar_segment[i].correspondence );
1520 FT_FREE( blend->avar_segment );
1523 FT_FREE( blend->tuplecoords );
1524 FT_FREE( blend->glyphoffsets );
1525 FT_FREE( blend );