Home | History | Annotate | Download | only in base

Lines Matching defs:stroker

5 /*    FreeType path stroker (body).                                        */
685 /***** STROKER *****/
722 FT_Stroker stroker;
730 if ( !FT_NEW( stroker ) )
732 stroker->library = library;
734 ft_stroke_border_init( &stroker->borders[0], memory );
735 ft_stroke_border_init( &stroker->borders[1], memory );
737 *astroker = stroker;
745 FT_Stroker_Set( FT_Stroker stroker,
751 stroker->radius = radius;
752 stroker->line_cap = line_cap;
753 stroker->line_join = line_join;
754 stroker->miter_limit = miter_limit;
756 FT_Stroker_Rewind( stroker );
763 FT_Stroker_Rewind( FT_Stroker stroker )
765 if ( stroker )
767 ft_stroke_border_reset( &stroker->borders[0] );
768 ft_stroke_border_reset( &stroker->borders[1] );
776 FT_Stroker_Done( FT_Stroker stroker )
778 if ( stroker )
780 FT_Memory memory = stroker->library->memory;
783 ft_stroke_border_done( &stroker->borders[0] );
784 ft_stroke_border_done( &stroker->borders[1] );
786 stroker->library = NULL;
787 FT_FREE( stroker );
794 ft_stroker_arcto( FT_Stroker stroker,
798 FT_Fixed radius = stroker->radius;
800 FT_StrokeBorder border = stroker->borders + side;
805 total = FT_Angle_Diff( stroker->angle_in, stroker->angle_out );
810 &stroker->center,
812 stroker->angle_in + rotate,
821 ft_stroker_cap( FT_Stroker stroker,
828 if ( stroker->line_cap == FT_STROKER_LINECAP_ROUND )
831 stroker->angle_in = angle;
832 stroker->angle_out = angle + FT_ANGLE_PI;
833 error = ft_stroker_arcto( stroker, side );
835 else if ( stroker->line_cap == FT_STROKER_LINECAP_SQUARE )
840 FT_Fixed radius = stroker->radius;
841 FT_StrokeBorder border = stroker->borders + side;
847 delta.x += stroker->center.x + delta2.x;
848 delta.y += stroker->center.y + delta2.y;
857 delta.x += delta2.x + stroker->center.x;
858 delta.y += delta2.y + stroker->center.y;
862 else if ( stroker->line_cap == FT_STROKER_LINECAP_BUTT )
867 FT_Fixed radius = stroker->radius;
868 FT_StrokeBorder border = stroker->borders + side;
873 delta.x += stroker->center.x;
874 delta.y += stroker->center.y;
882 delta.x += stroker->center.x;
883 delta.y += stroker->center.y;
895 ft_stroker_inside( FT_Stroker stroker,
898 FT_StrokeBorder border = stroker->borders + side;
908 theta = FT_Angle_Diff( stroker->angle_in, stroker->angle_out );
914 phi = stroker->angle_in + theta;
917 sigma = FT_MulFix( stroker->miter_limit, thcos );
922 FT_Vector_From_Polar( &delta, stroker->radius,
923 stroker->angle_out + rotate );
924 delta.x += stroker->center.x;
925 delta.y += stroker->center.y;
930 length = FT_DivFix( stroker->radius, thcos );
933 delta.x += stroker->center.x;
934 delta.y += stroker->center.y;
945 ft_stroker_outside( FT_Stroker stroker,
948 FT_StrokeBorder border = stroker->borders + side;
953 if ( stroker->line_join == FT_STROKER_LINEJOIN_ROUND )
954 error = ft_stroker_arcto( stroker, side );
958 FT_Fixed sigma, radius = stroker->radius;
965 miter = FT_BOOL( stroker->line_join == FT_STROKER_LINEJOIN_MITER );
967 theta = FT_Angle_Diff( stroker->angle_in, stroker->angle_out );
971 phi = stroker->angle_in;
976 phi = stroker->angle_in + theta + rotate;
980 sigma = FT_MulFix( stroker->miter_limit, thcos );
994 FT_MulFix( radius, stroker->miter_limit ),
996 middle.x += stroker->center.x;
997 middle.y += stroker->center.y;
1022 FT_Vector_From_Polar( &delta, radius, stroker->angle_out + rotate );
1023 delta.x += stroker->center.x;
1024 delta.y += stroker->center.y;
1035 length = FT_DivFix( stroker->radius, thcos );
1038 delta.x += stroker->center.x;
1039 delta.y += stroker->center.y;
1046 FT_Vector_From_Polar( &delta, stroker->radius,
1047 stroker->angle_out + rotate );
1048 delta.x += stroker->center.x;
1049 delta.y += stroker->center.y;
1061 ft_stroker_process_corner( FT_Stroker stroker )
1068 turn = FT_Angle_Diff( stroker->angle_in, stroker->angle_out );
1082 error = ft_stroker_inside( stroker, inside_side );
1087 error = ft_stroker_outside( stroker, 1 - inside_side );
1097 ft_stroker_subpath_start( FT_Stroker stroker,
1106 FT_Vector_From_Polar( &delta, stroker->radius,
1109 point.x = stroker->center.x + delta.x;
1110 point.y = stroker->center.y + delta.y;
1112 border = stroker->borders;
1117 point.x = stroker->center.x - delta.x;
1118 point.y = stroker->center.y - delta.y;
1124 stroker->subpath_angle = start_angle;
1125 stroker->first_point = FALSE;
1135 FT_Stroker_LineTo( FT_Stroker stroker,
1144 delta.x = to->x - stroker->center.x;
1145 delta.y = to->y - stroker->center.y;
1148 FT_Vector_From_Polar( &delta, stroker->radius, angle + FT_ANGLE_PI2 );
1151 if ( stroker->first_point )
1156 error = ft_stroker_subpath_start( stroker, angle );
1163 stroker->angle_out = angle;
1164 error = ft_stroker_process_corner( stroker );
1171 for ( border = stroker->borders, side = 1; side >= 0; side--, border++ )
1187 stroker->angle_in = angle;
1188 stroker->center = *to;
1198 FT_Stroker_ConicTo( FT_Stroker stroker,
1213 arc[2] = stroker->center;
1237 if ( stroker->first_point )
1238 error = ft_stroker_subpath_start( stroker, start_angle );
1241 stroker->angle_out = start_angle;
1242 error = ft_stroker_process_corner( stroker );
1257 length = FT_DivFix( stroker->radius, FT_Cos( theta ) );
1269 FT_Vector_From_Polar( &end, stroker->radius, angle_out + rotate );
1273 error = ft_stroke_border_conicto( stroker->borders + side,
1283 stroker->angle_in = angle_out;
1286 stroker->center = *to;
1296 FT_Stroker_CubicTo( FT_Stroker stroker,
1313 arc[3] = stroker->center;
1339 if ( stroker->first_point )
1340 error = ft_stroker_subpath_start( stroker, start_angle );
1343 stroker->angle_out = start_angle;
1344 error = ft_stroker_process_corner( stroker );
1363 length1 = FT_DivFix( stroker->radius, FT_Cos( theta1 ) );
1364 length2 = FT_DivFix( stroker->radius, FT_Cos( theta2 ) );
1380 FT_Vector_From_Polar( &end, stroker->radius, angle_out + rotate );
1384 error = ft_stroke_border_cubicto( stroker->borders + side,
1393 stroker->angle_in = angle_out;
1396 stroker->center = *to;
1406 FT_Stroker_BeginSubPath( FT_Stroker stroker,
1414 stroker->first_point = TRUE;
1415 stroker->center = *to;
1416 stroker->subpath_open = open;
1419 stroker->subpath_start = *to;
1426 ft_stroker_add_reverse_left( FT_Stroker stroker,
1429 FT_StrokeBorder right = stroker->borders + 0;
1430 FT_StrokeBorder left = stroker->borders + 1;
1492 FT_Stroker_EndSubPath( FT_Stroker stroker )
1497 if ( stroker->subpath_open )
1499 FT_StrokeBorder right = stroker->borders;
1504 error = ft_stroker_cap( stroker, stroker->angle_in, 0 );
1509 error = ft_stroker_add_reverse_left( stroker, TRUE );
1514 stroker->center = stroker->subpath_start;
1515 error = ft_stroker_cap( stroker,
1516 stroker->subpath_angle + FT_ANGLE_PI, 0 );
1530 if ( stroker->center.x != stroker->subpath_start.x ||
1531 stroker->center.y != stroker->subpath_start.y )
1533 error = FT_Stroker_LineTo( stroker, &stroker->subpath_start );
1539 stroker->angle_out = stroker->subpath_angle;
1540 turn = FT_Angle_Diff( stroker->angle_in,
1541 stroker->angle_out );
1553 error = ft_stroker_inside( stroker, inside_side );
1558 error = ft_stroker_outside( stroker, 1 - inside_side );
1564 ft_stroke_border_close( stroker->borders + 0, TRUE );
1565 ft_stroke_border_close( stroker->borders + 1, FALSE );
1576 FT_Stroker_GetBorderCounts( FT_Stroker stroker,
1585 if ( !stroker || border > 1 )
1591 error = ft_stroke_border_get_counts( stroker->borders + border,
1607 FT_Stroker_GetCounts( FT_Stroker stroker,
1616 error = ft_stroke_border_get_counts( stroker->borders + 0,
1621 error = ft_stroke_border_get_counts( stroker->borders + 1,
1639 FT_Stroker_ExportBorder( FT_Stroker stroker,
1646 FT_StrokeBorder sborder = & stroker->borders[border];
1658 FT_Stroker_Export( FT_Stroker stroker,
1661 FT_Stroker_ExportBorder( stroker, FT_STROKER_BORDER_LEFT, outline );
1662 FT_Stroker_ExportBorder( stroker, FT_STROKER_BORDER_RIGHT, outline );
1673 FT_Stroker_ParseOutline( FT_Stroker stroker,
1692 if ( !outline || !stroker )
1695 FT_Stroker_Rewind( stroker );
1748 error = FT_Stroker_BeginSubPath( stroker, &v_start, opened );
1768 error = FT_Stroker_LineTo( stroker, &vec );
1793 error = FT_Stroker_ConicTo( stroker, &v_control, &vec );
1805 error = FT_Stroker_ConicTo( stroker, &v_control, &v_middle );
1813 error = FT_Stroker_ConicTo( stroker, &v_control, &v_start );
1838 error = FT_Stroker_CubicTo( stroker, &vec1, &vec2, &vec );
1844 error = FT_Stroker_CubicTo( stroker, &vec1, &vec2, &v_start );
1854 error = FT_Stroker_EndSubPath( stroker );
1883 FT_Stroker stroker,
1888 FT_Library library = stroker->library;
1915 error = FT_Stroker_ParseOutline( stroker, outline, FALSE );
1919 (void)FT_Stroker_GetCounts( stroker, &num_points, &num_contours );
1931 FT_Stroker_Export( stroker, outline );
1956 FT_Stroker stroker,
1962 FT_Library library = stroker->library;
1999 error = FT_Stroker_ParseOutline( stroker, outline, FALSE );
2003 (void)FT_Stroker_GetBorderCounts( stroker, border,
2018 FT_Stroker_ExportBorder( stroker, border, outline );