Lines Matching refs:loader

131   tt_get_metrics( TT_Loader  loader,
134 TT_Face face = (TT_Face)loader->face;
147 loader->left_bearing = left_bearing;
148 loader->advance = advance_width;
149 loader->top_bearing = top_bearing;
150 loader->vadvance = advance_height;
152 if ( !loader->linear_def )
154 loader->linear_def = 1;
155 loader->linear = advance_width;
163 tt_get_metrics_incr_overrides( TT_Loader loader,
166 TT_Face face = (TT_Face)loader->face;
181 metrics.bearing_x = loader->left_bearing;
183 metrics.advance = loader->advance;
199 metrics.bearing_y = loader->top_bearing;
200 metrics.advance = loader->vadvance;
213 loader->left_bearing = left_bearing;
214 loader->advance = advance_width;
215 loader->top_bearing = top_bearing;
216 loader->vadvance = advance_height;
218 if ( !loader->linear_def )
220 loader->linear_def = 1;
221 loader->linear = advance_width;
268 TT_Access_Glyph_Frame( TT_Loader loader,
274 FT_Stream stream = loader->stream;
286 loader->cursor = stream->cursor;
287 loader->limit = stream->limit;
294 TT_Forget_Glyph_Frame( TT_Loader loader )
296 FT_Stream stream = loader->stream;
304 TT_Load_Glyph_Header( TT_Loader loader )
306 FT_Byte* p = loader->cursor;
307 FT_Byte* limit = loader->limit;
313 loader->n_contours = FT_NEXT_SHORT( p );
315 loader->bbox.xMin = FT_NEXT_SHORT( p );
316 loader->bbox.yMin = FT_NEXT_SHORT( p );
317 loader->bbox.xMax = FT_NEXT_SHORT( p );
318 loader->bbox.yMax = FT_NEXT_SHORT( p );
320 FT_TRACE5(( " # of contours: %d\n", loader->n_contours ));
321 FT_TRACE5(( " xMin: %4d xMax: %4d\n", loader->bbox.xMin,
322 loader->bbox.xMax ));
323 FT_TRACE5(( " yMin: %4d yMax: %4d\n", loader->bbox.yMin,
324 loader->bbox.yMax ));
325 loader->cursor = p;
555 TT_Load_Composite_Glyph( TT_Loader loader )
558 FT_Byte* p = loader->cursor;
559 FT_Byte* limit = loader->limit;
560 FT_GlyphLoader gloader = loader->gloader;
651 FT_Stream stream = loader->stream;
658 loader->ins_pos = (FT_ULong)( FT_STREAM_POS() +
664 loader->cursor = p;
714 TT_Hint_Glyph( TT_Loader loader,
717 TT_GlyphZone zone = &loader->zone;
728 if ( loader->glyph->control_len > 0xFFFFL )
732 loader->glyph->control_len ));
734 n_ins = (FT_UInt)( loader->glyph->control_len );
748 loader->exec->GS = ((TT_Size)loader->size)->GS;
754 loader->exec->metrics.x_scale = 1 << 16;
755 loader->exec->metrics.y_scale = 1 << 16;
761 loader->exec->metrics.x_scale =
762 ((TT_Size)loader->size)->metrics.x_scale;
763 loader->exec->metrics.y_scale =
764 ((TT_Size)loader->size)->metrics.y_scale;
781 FT_GlyphLoader gloader = loader->gloader;
785 error = TT_Set_CodeRange( loader->exec, tt_coderange_glyph,
786 loader->exec->glyphIns, n_ins );
790 loader->exec->is_composite = is_composite;
791 loader->exec->pts = *zone;
793 debug = FT_BOOL( !( loader->load_flags & FT_LOAD_NO_SCALE ) &&
794 ((TT_Size)loader->size)->debug );
796 error = TT_Run_Context( loader->exec, debug );
797 if ( error && loader->exec->pedantic_hinting )
802 ( loader->exec->GS.scan_type << 5 ) | FT_CURVE_TAG_HAS_SCANMODE;
808 if ( !loader->preserve_pps )
810 loader->pp1 = zone->cur[zone->n_points - 4];
811 loader->pp2 = zone->cur[zone->n_points - 3];
812 loader->pp3 = zone->cur[zone->n_points - 2];
813 loader->pp4 = zone->cur[zone->n_points - 1];
831 TT_Process_Simple_Glyph( TT_Loader loader )
833 FT_GlyphLoader gloader = loader->gloader;
844 outline->points[n_points ] = loader->pp1;
845 outline->points[n_points + 1] = loader->pp2;
846 outline->points[n_points + 2] = loader->pp3;
847 outline->points[n_points + 3] = loader->pp4;
858 if ( ((TT_Face)loader->face)->doblend )
862 FT_Memory memory = loader->face->memory;
866 error = TT_Vary_Get_Glyph_Deltas( (TT_Face)(loader->face),
867 loader->glyph_index,
884 if ( IS_HINTED( loader->load_flags ) )
886 tt_prepare_zone( &loader->zone, &gloader->current, 0, 0 );
888 FT_ARRAY_COPY( loader->zone.orus, loader->zone.cur,
889 loader->zone.n_points + 4 );
893 if ( ( loader->load_flags & FT_LOAD_NO_SCALE ) == 0 )
897 FT_Fixed x_scale = ((TT_Size)loader->size)->metrics.x_scale;
898 FT_Fixed y_scale = ((TT_Size)loader->size)->metrics.y_scale;
907 loader->pp1 = outline->points[n_points - 4];
908 loader->pp2 = outline->points[n_points - 3];
909 loader->pp3 = outline->points[n_points - 2];
910 loader->pp4 = outline->points[n_points - 1];
913 if ( IS_HINTED( loader->load_flags ) )
915 loader->zone.n_points += 4;
917 error = TT_Hint_Glyph( loader, 0 );
934 TT_Process_Composite_Component( TT_Loader loader,
939 FT_GlyphLoader gloader = loader->gloader;
1055 if ( !( loader->load_flags & FT_LOAD_NO_SCALE ) )
1057 FT_Fixed x_scale = ((TT_Size)loader->size)->metrics.x_scale;
1058 FT_Fixed y_scale = ((TT_Size)loader->size)->metrics.y_scale;
1092 TT_Process_Composite_Glyph( TT_Loader loader,
1101 outline = &loader->gloader->base.outline;
1104 error = FT_GLYPHLOADER_CHECK_POINTS( loader->gloader,
1110 outline->points[outline->n_points ] = loader->pp1;
1111 outline->points[outline->n_points + 1] = loader->pp2;
1112 outline->points[outline->n_points + 2] = loader->pp3;
1113 outline->points[outline->n_points + 3] = loader->pp4;
1123 FT_Stream stream = loader->stream;
1130 if ( FT_STREAM_SEEK( loader->ins_pos ) ||
1137 max_ins = ((TT_Face)loader->face)->max_profile.maxSizeOfInstructions;
1141 if ( (FT_Int)n_ins > loader->byte_len )
1145 n_ins, loader->byte_len ));
1149 tmp = loader->exec->glyphSize;
1150 error = Update_Max( loader->exec->memory,
1153 (void*)&loader->exec->glyphIns,
1155 loader->exec->glyphSize = (FT_UShort)tmp;
1162 if ( FT_STREAM_READ( loader->exec->glyphIns, n_ins ) )
1165 loader->glyph->control_data = loader->exec->glyphIns;
1166 loader->glyph->control_len = n_ins;
1171 tt_prepare_zone( &loader->zone, &loader->gloader->base,
1176 for ( i = start_point; i < loader->zone.n_points; i++ )
1177 loader->zone.tags[i] &= ~FT_CURVE_TAG_TOUCH_BOTH;
1179 loader->zone.n_points += 4;
1181 return TT_Hint_Glyph( loader, 1 );
1188 #define TT_LOADER_SET_PP( loader ) \
1190 (loader)->pp1.x = (loader)->bbox.xMin - (loader)->left_bearing; \
1191 (loader)->pp1.y = 0; \
1192 (loader)->pp2.x = (loader)->pp1.x + (loader)->advance; \
1193 (loader)->pp2.y = 0; \
1194 (loader)->pp3.x = 0; \
1195 (loader)->pp3.y = (loader)->top_bearing + (loader)->bbox.yMax; \
1196 (loader)->pp4.x = 0; \
1197 (loader)->pp4.y = (loader)->pp3.y - (loader)->vadvance; \
1211 load_truetype_glyph( TT_Loader loader,
1219 TT_Face face = (TT_Face)loader->face;
1220 FT_GlyphLoader gloader = loader->gloader;
1250 loader->glyph_index = glyph_index;
1252 if ( ( loader->load_flags & FT_LOAD_NO_SCALE ) == 0 )
1254 x_scale = ((TT_Size)loader->size)->metrics.x_scale;
1255 y_scale = ((TT_Size)loader->size)->metrics.y_scale;
1263 tt_get_metrics( loader, glyph_index );
1272 /* the loader stream to a memory stream reading the data returned */
1284 loader->byte_len = glyph_data.length;
1290 loader->stream = &inc_stream;
1297 (FT_UInt*)&loader->byte_len );
1299 if ( loader->byte_len > 0 )
1303 if ( !loader->glyf_offset &&
1306 if ( !loader->glyf_offset )
1314 error = face->access_glyph_frame( loader, glyph_index,
1315 loader->glyf_offset + offset,
1316 loader->byte_len );
1323 error = face->read_glyph_header( loader );
1328 if ( loader->byte_len == 0 || loader->n_contours == 0 )
1330 loader->bbox.xMin = 0;
1331 loader->bbox.xMax = 0;
1332 loader->bbox.yMin = 0;
1333 loader->bbox.yMax = 0;
1340 TT_LOADER_SET_PP( loader );
1343 tt_get_metrics_incr_overrides( loader, glyph_index );
1348 if ( ((TT_Face)(loader->face))->doblend )
1351 FT_Memory memory = loader->face->memory;
1354 error = TT_Vary_Get_Glyph_Deltas( (TT_Face)(loader->face),
1359 loader->pp1.x += deltas[0].x; loader->pp1.y += deltas[0].y;
1360 loader->pp2.x += deltas[1].x; loader->pp2.y += deltas[1].y;
1361 loader->pp3.x += deltas[2].x; loader->pp3.y += deltas[2].y;
1362 loader->pp4.x += deltas[3].x; loader->pp4.y += deltas[3].y;
1369 if ( ( loader->load_flags & FT_LOAD_NO_SCALE ) == 0 )
1371 loader->pp1.x = FT_MulFix( loader->pp1.x, x_scale );
1372 loader->pp2.x = FT_MulFix( loader->pp2.x, x_scale );
1373 loader->pp3.y = FT_MulFix( loader->pp3.y, y_scale );
1374 loader->pp4.y = FT_MulFix( loader->pp4.y, y_scale );
1383 TT_LOADER_SET_PP( loader );
1386 tt_get_metrics_incr_overrides( loader, glyph_index );
1395 if ( loader->n_contours > 0 )
1397 error = face->read_simple_glyph( loader );
1402 face->forget_glyph_frame( loader );
1405 error = TT_Process_Simple_Glyph( loader );
1417 else if ( loader->n_contours == -1 )
1428 error = face->read_composite_glyph( loader );
1433 ins_pos = loader->ins_pos;
1436 face->forget_glyph_frame( loader );
1473 loader->pp1.x += deltas[i + 0].x; loader->pp1.y += deltas[i + 0].y;
1474 loader->pp2.x += deltas[i + 1].x; loader->pp2.y += deltas[i + 1].y;
1475 loader->pp3.x += deltas[i + 2].x; loader->pp3.y += deltas[i + 2].y;
1476 loader->pp4.x += deltas[i + 3].x; loader->pp4.y += deltas[i + 3].y;
1483 if ( ( loader->load_flags & FT_LOAD_NO_SCALE ) == 0 )
1485 loader->pp1.x = FT_MulFix( loader->pp1.x, x_scale );
1486 loader->pp2.x = FT_MulFix( loader->pp2.x, x_scale );
1487 loader->pp3.y = FT_MulFix( loader->pp3.y, y_scale );
1488 loader->pp4.y = FT_MulFix( loader->pp4.y, y_scale );
1494 if ( loader->load_flags & FT_LOAD_NO_RECURSE )
1497 loader->glyph->format = FT_GLYPH_FORMAT_COMPOSITE;
1514 FT_Stream old_stream = loader->stream;
1515 FT_Int old_byte_len = loader->byte_len;
1532 pp[0] = loader->pp1;
1533 pp[1] = loader->pp2;
1534 pp[2] = loader->pp3;
1535 pp[3] = loader->pp4;
1539 error = load_truetype_glyph( loader, subglyph->index,
1549 loader->pp1 = pp[0];
1550 loader->pp2 = pp[1];
1551 loader->pp3 = pp[2];
1552 loader->pp4 = pp[3];
1566 TT_Process_Composite_Component( loader, subglyph, start_point,
1570 loader->stream = old_stream;
1571 loader->byte_len = old_byte_len;
1574 loader->ins_pos = ins_pos;
1575 if ( IS_HINTED( loader->load_flags ) &&
1584 TT_Process_Composite_Glyph( loader, start_point, start_contour );
1602 face->forget_glyph_frame( loader );
1618 compute_glyph_metrics( TT_Loader loader,
1622 TT_Face face = (TT_Face)loader->face;
1624 TT_GlyphSlot glyph = loader->glyph;
1625 TT_Size size = (TT_Size)loader->size;
1629 if ( ( loader->load_flags & FT_LOAD_NO_SCALE ) == 0 )
1635 bbox = loader->bbox;
1639 glyph->linearHoriAdvance = loader->linear;
1643 glyph->metrics.horiAdvance = loader->pp2.x - loader->pp1.x;
1647 IS_HINTED( loader->load_flags ) )
1676 top = (FT_Short)FT_DivFix( loader->pp3.y - bbox.yMax,
1679 if ( loader->pp3.y <= loader->pp4.y )
1682 advance = (FT_UShort)FT_DivFix( loader->pp3.y - loader->pp4.y,
1746 if ( !( loader->load_flags & FT_LOAD_NO_SCALE ) )
1828 tt_loader_init( TT_Loader loader,
1842 FT_MEM_ZERO( loader, sizeof ( TT_LoaderRec ) );
1899 loader->exec = exec;
1900 loader->instructions = exec->glyphIns;
1912 loader->glyf_offset = 0;
1922 loader->glyf_offset = 0;
1929 loader->glyf_offset = FT_STREAM_POS();
1932 /* get face's glyph loader */
1935 FT_GlyphLoader gloader = glyph->internal->loader;
1939 loader->gloader = gloader;
1942 loader->load_flags = load_flags;
1944 loader->face = (FT_Face)face;
1945 loader->size = (FT_Size)size;
1946 loader->glyph = (FT_GlyphSlot)glyph;
1947 loader->stream = stream;
1988 TT_LoaderRec loader;
2012 (void)tt_loader_init( &loader, size, glyph, load_flags, TRUE );
2013 (void)load_truetype_glyph( &loader, glyph_index, 0, TRUE );
2014 glyph->linearHoriAdvance = loader.linear;
2015 glyph->linearVertAdvance = loader.top_bearing + loader.bbox.yMax -
2016 loader.vadvance;
2032 error = tt_loader_init( &loader, size, glyph, load_flags, FALSE );
2041 error = load_truetype_glyph( &loader, glyph_index, 0, FALSE );
2046 glyph->num_subglyphs = loader.gloader->base.num_subglyphs;
2047 glyph->subglyphs = loader.gloader->base.subglyphs;
2051 glyph->outline = loader.gloader->base.outline;
2058 if ( loader.pp1.x )
2059 FT_Outline_Translate( &glyph->outline, -loader.pp1.x, 0 );
2066 if ( loader.exec->GS.scan_control )
2069 switch ( loader.exec->GS.scan_type )
2096 compute_glyph_metrics( &loader, glyph_index );