Coverage Report

Created: 2021-08-22 09:07

/src/skia/src/pathops/SkPathOpsCurve.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 2012 Google Inc.
3
 *
4
 * Use of this source code is governed by a BSD-style license that can be
5
 * found in the LICENSE file.
6
 */
7
#ifndef SkPathOpsCurve_DEFINE
8
#define SkPathOpsCurve_DEFINE
9
10
#include "src/pathops/SkIntersections.h"
11
12
#ifndef SK_RELEASE
13
#include "include/core/SkPath.h"
14
#endif
15
16
struct SkPathOpsBounds;
17
18
struct SkOpCurve {
19
    SkPoint fPts[4];
20
    SkScalar fWeight;
21
    SkDEBUGCODE(SkPath::Verb fVerb);
22
23
0
    const SkPoint& operator[](int n) const {
24
0
        SkASSERT(n >= 0 && n <= SkPathOpsVerbToPoints(fVerb));
25
0
        return fPts[n];
26
0
    }
27
28
    void dump() const;
29
30
0
    void set(const SkDQuad& quad) {
31
0
        for (int index = 0; index < SkDQuad::kPointCount; ++index) {
32
0
            fPts[index] = quad[index].asSkPoint();
33
0
        }
34
0
        SkDEBUGCODE(fWeight = 1);
35
0
        SkDEBUGCODE(fVerb = SkPath::kQuad_Verb);
36
0
    }
37
38
0
    void set(const SkDCubic& cubic) {
39
0
        for (int index = 0; index < SkDCubic::kPointCount; ++index) {
40
0
            fPts[index] = cubic[index].asSkPoint();
41
0
        }
42
0
        SkDEBUGCODE(fWeight = 1);
43
0
        SkDEBUGCODE(fVerb = SkPath::kCubic_Verb);
44
0
    }
45
46
};
47
48
struct SkDCurve {
49
    union {
50
        SkDLine fLine;
51
        SkDQuad fQuad;
52
        SkDConic fConic;
53
        SkDCubic fCubic;
54
    };
55
    SkDEBUGCODE(SkPath::Verb fVerb);
56
57
66.9M
    const SkDPoint& operator[](int n) const {
58
66.9M
        SkASSERT(n >= 0 && n <= SkPathOpsVerbToPoints(fVerb));
59
66.9M
        return fCubic[n];
60
66.9M
    }
61
62
505M
    SkDPoint& operator[](int n) {
63
505M
        SkASSERT(n >= 0 && n <= SkPathOpsVerbToPoints(fVerb));
64
505M
        return fCubic[n];
65
505M
    }
66
67
    SkDPoint conicTop(const SkPoint curve[3], SkScalar curveWeight,
68
                      double s, double e, double* topT);
69
    SkDPoint cubicTop(const SkPoint curve[4], SkScalar , double s, double e, double* topT);
70
    void dump() const;
71
    void dumpID(int ) const;
72
    SkDPoint lineTop(const SkPoint[2], SkScalar , double , double , double* topT);
73
    double nearPoint(SkPath::Verb verb, const SkDPoint& xy, const SkDPoint& opp) const;
74
    void offset(SkPath::Verb verb, const SkDVector& );
75
    SkDPoint quadTop(const SkPoint curve[3], SkScalar , double s, double e, double* topT);
76
77
    void setConicBounds(const SkPoint curve[3], SkScalar curveWeight,
78
                        double s, double e, SkPathOpsBounds* );
79
    void setCubicBounds(const SkPoint curve[4], SkScalar ,
80
                        double s, double e, SkPathOpsBounds* );
81
    void setQuadBounds(const SkPoint curve[3], SkScalar ,
82
                       double s, double e, SkPathOpsBounds*);
83
};
84
85
class SkDCurveSweep {
86
public:
87
189M
    bool isCurve() const { return fIsCurve; }
88
5.74M
    bool isOrdered() const { return fOrdered; }
89
    void setCurveHullSweep(SkPath::Verb verb);
90
91
    SkDCurve fCurve;
92
    SkDVector fSweep[2];
93
private:
94
    bool fIsCurve;
95
    bool fOrdered;  // cleared when a cubic's control point isn't between the sweep vectors
96
97
};
98
99
extern SkDPoint (SkDCurve::* const Top[])(const SkPoint curve[], SkScalar cWeight,
100
    double tStart, double tEnd, double* topT);
101
102
70.6M
static SkDPoint dline_xy_at_t(const SkPoint a[2], SkScalar , double t) {
103
70.6M
    SkDLine line;
104
70.6M
    line.set(a);
105
70.6M
    return line.ptAtT(t);
106
70.6M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:dline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:dline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:dline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:dline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:dline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:dline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:dline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:dline_xy_at_t(SkPoint const*, float, double)
SkPathOpsWinding.cpp:dline_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
102
22.5M
static SkDPoint dline_xy_at_t(const SkPoint a[2], SkScalar , double t) {
103
22.5M
    SkDLine line;
104
22.5M
    line.set(a);
105
22.5M
    return line.ptAtT(t);
106
22.5M
}
Unexecuted instantiation: SkPathWriter.cpp:dline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:dline_xy_at_t(SkPoint const*, float, double)
SkOpAngle.cpp:dline_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
102
121k
static SkDPoint dline_xy_at_t(const SkPoint a[2], SkScalar , double t) {
103
121k
    SkDLine line;
104
121k
    line.set(a);
105
121k
    return line.ptAtT(t);
106
121k
}
Unexecuted instantiation: SkOpCoincidence.cpp:dline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:dline_xy_at_t(SkPoint const*, float, double)
SkOpSegment.cpp:dline_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
102
47.9M
static SkDPoint dline_xy_at_t(const SkPoint a[2], SkScalar , double t) {
103
47.9M
    SkDLine line;
104
47.9M
    line.set(a);
105
47.9M
    return line.ptAtT(t);
106
47.9M
}
Unexecuted instantiation: SkOpSpan.cpp:dline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:dline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:dline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:dline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:dline_xy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:dline_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
102
6.14k
static SkDPoint dline_xy_at_t(const SkPoint a[2], SkScalar , double t) {
103
6.14k
    SkDLine line;
104
6.14k
    line.set(a);
105
6.14k
    return line.ptAtT(t);
106
6.14k
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:dline_xy_at_t(SkPoint const*, float, double)
107
108
31.2M
static SkDPoint dquad_xy_at_t(const SkPoint a[3], SkScalar , double t) {
109
31.2M
    SkDQuad quad;
110
31.2M
    quad.set(a);
111
31.2M
    return quad.ptAtT(t);
112
31.2M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:dquad_xy_at_t(SkPoint const*, float, double)
SkPathOpsWinding.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
108
14.7M
static SkDPoint dquad_xy_at_t(const SkPoint a[3], SkScalar , double t) {
109
14.7M
    SkDQuad quad;
110
14.7M
    quad.set(a);
111
14.7M
    return quad.ptAtT(t);
112
14.7M
}
Unexecuted instantiation: SkPathWriter.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:dquad_xy_at_t(SkPoint const*, float, double)
SkOpAngle.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
108
326k
static SkDPoint dquad_xy_at_t(const SkPoint a[3], SkScalar , double t) {
109
326k
    SkDQuad quad;
110
326k
    quad.set(a);
111
326k
    return quad.ptAtT(t);
112
326k
}
Unexecuted instantiation: SkOpCoincidence.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:dquad_xy_at_t(SkPoint const*, float, double)
SkOpSegment.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
108
16.1M
static SkDPoint dquad_xy_at_t(const SkPoint a[3], SkScalar , double t) {
109
16.1M
    SkDQuad quad;
110
16.1M
    quad.set(a);
111
16.1M
    return quad.ptAtT(t);
112
16.1M
}
Unexecuted instantiation: SkOpSpan.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:dquad_xy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:dquad_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
108
3.96k
static SkDPoint dquad_xy_at_t(const SkPoint a[3], SkScalar , double t) {
109
3.96k
    SkDQuad quad;
110
3.96k
    quad.set(a);
111
3.96k
    return quad.ptAtT(t);
112
3.96k
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:dquad_xy_at_t(SkPoint const*, float, double)
113
114
5.38M
static SkDPoint dconic_xy_at_t(const SkPoint a[3], SkScalar weight, double t) {
115
5.38M
    SkDConic conic;
116
5.38M
    conic.set(a, weight);
117
5.38M
    return conic.ptAtT(t);
118
5.38M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:dconic_xy_at_t(SkPoint const*, float, double)
SkPathOpsWinding.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
114
765k
static SkDPoint dconic_xy_at_t(const SkPoint a[3], SkScalar weight, double t) {
115
765k
    SkDConic conic;
116
765k
    conic.set(a, weight);
117
765k
    return conic.ptAtT(t);
118
765k
}
Unexecuted instantiation: SkPathWriter.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:dconic_xy_at_t(SkPoint const*, float, double)
SkOpAngle.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
114
12.7k
static SkDPoint dconic_xy_at_t(const SkPoint a[3], SkScalar weight, double t) {
115
12.7k
    SkDConic conic;
116
12.7k
    conic.set(a, weight);
117
12.7k
    return conic.ptAtT(t);
118
12.7k
}
Unexecuted instantiation: SkOpCoincidence.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:dconic_xy_at_t(SkPoint const*, float, double)
SkOpSegment.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
114
4.60M
static SkDPoint dconic_xy_at_t(const SkPoint a[3], SkScalar weight, double t) {
115
4.60M
    SkDConic conic;
116
4.60M
    conic.set(a, weight);
117
4.60M
    return conic.ptAtT(t);
118
4.60M
}
Unexecuted instantiation: SkOpSpan.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:dconic_xy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:dconic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
114
1.11k
static SkDPoint dconic_xy_at_t(const SkPoint a[3], SkScalar weight, double t) {
115
1.11k
    SkDConic conic;
116
1.11k
    conic.set(a, weight);
117
1.11k
    return conic.ptAtT(t);
118
1.11k
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:dconic_xy_at_t(SkPoint const*, float, double)
119
120
43.5M
static SkDPoint dcubic_xy_at_t(const SkPoint a[4], SkScalar , double t) {
121
43.5M
    SkDCubic cubic;
122
43.5M
    cubic.set(a);
123
43.5M
    return cubic.ptAtT(t);
124
43.5M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
SkPathOpsWinding.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
120
13.6M
static SkDPoint dcubic_xy_at_t(const SkPoint a[4], SkScalar , double t) {
121
13.6M
    SkDCubic cubic;
122
13.6M
    cubic.set(a);
123
13.6M
    return cubic.ptAtT(t);
124
13.6M
}
Unexecuted instantiation: SkPathWriter.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
SkOpAngle.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
120
16.2M
static SkDPoint dcubic_xy_at_t(const SkPoint a[4], SkScalar , double t) {
121
16.2M
    SkDCubic cubic;
122
16.2M
    cubic.set(a);
123
16.2M
    return cubic.ptAtT(t);
124
16.2M
}
Unexecuted instantiation: SkOpCoincidence.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
SkOpSegment.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
120
13.6M
static SkDPoint dcubic_xy_at_t(const SkPoint a[4], SkScalar , double t) {
121
13.6M
    SkDCubic cubic;
122
13.6M
    cubic.set(a);
123
13.6M
    return cubic.ptAtT(t);
124
13.6M
}
Unexecuted instantiation: SkOpSpan.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
120
780
static SkDPoint dcubic_xy_at_t(const SkPoint a[4], SkScalar , double t) {
121
780
    SkDCubic cubic;
122
780
    cubic.set(a);
123
780
    return cubic.ptAtT(t);
124
780
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:dcubic_xy_at_t(SkPoint const*, float, double)
125
126
static SkDPoint (* const CurveDPointAtT[])(const SkPoint[], SkScalar , double ) = {
127
    nullptr,
128
    dline_xy_at_t,
129
    dquad_xy_at_t,
130
    dconic_xy_at_t,
131
    dcubic_xy_at_t
132
};
133
134
2.03M
static SkDPoint ddline_xy_at_t(const SkDCurve& c, double t) {
135
2.03M
    return c.fLine.ptAtT(t);
136
2.03M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsOp.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathWriter.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkAddIntersections.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpAngle.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpCoincidence.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:ddline_xy_at_t(SkDCurve const&, double)
SkOpSegment.cpp:ddline_xy_at_t(SkDCurve const&, double)
Line
Count
Source
134
2.03M
static SkDPoint ddline_xy_at_t(const SkDCurve& c, double t) {
135
2.03M
    return c.fLine.ptAtT(t);
136
2.03M
}
Unexecuted instantiation: SkOpSpan.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpContour.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpBuilder.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:ddline_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:ddline_xy_at_t(SkDCurve const&, double)
137
138
830k
static SkDPoint ddquad_xy_at_t(const SkDCurve& c, double t) {
139
830k
    return c.fQuad.ptAtT(t);
140
830k
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsOp.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathWriter.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkAddIntersections.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpAngle.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpCoincidence.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:ddquad_xy_at_t(SkDCurve const&, double)
SkOpSegment.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Line
Count
Source
138
830k
static SkDPoint ddquad_xy_at_t(const SkDCurve& c, double t) {
139
830k
    return c.fQuad.ptAtT(t);
140
830k
}
Unexecuted instantiation: SkOpSpan.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpContour.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpBuilder.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:ddquad_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:ddquad_xy_at_t(SkDCurve const&, double)
141
142
223k
static SkDPoint ddconic_xy_at_t(const SkDCurve& c, double t) {
143
223k
    return c.fConic.ptAtT(t);
144
223k
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsOp.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathWriter.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkAddIntersections.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpAngle.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpCoincidence.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:ddconic_xy_at_t(SkDCurve const&, double)
SkOpSegment.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Line
Count
Source
142
223k
static SkDPoint ddconic_xy_at_t(const SkDCurve& c, double t) {
143
223k
    return c.fConic.ptAtT(t);
144
223k
}
Unexecuted instantiation: SkOpSpan.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpContour.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpBuilder.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:ddconic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:ddconic_xy_at_t(SkDCurve const&, double)
145
146
1.34M
static SkDPoint ddcubic_xy_at_t(const SkDCurve& c, double t) {
147
1.34M
    return c.fCubic.ptAtT(t);
148
1.34M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsOp.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathWriter.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkAddIntersections.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpAngle.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpCoincidence.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
SkOpSegment.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Line
Count
Source
146
1.34M
static SkDPoint ddcubic_xy_at_t(const SkDCurve& c, double t) {
147
1.34M
    return c.fCubic.ptAtT(t);
148
1.34M
}
Unexecuted instantiation: SkOpSpan.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpContour.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpBuilder.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:ddcubic_xy_at_t(SkDCurve const&, double)
149
150
static SkDPoint (* const CurveDDPointAtT[])(const SkDCurve& , double ) = {
151
    nullptr,
152
    ddline_xy_at_t,
153
    ddquad_xy_at_t,
154
    ddconic_xy_at_t,
155
    ddcubic_xy_at_t
156
};
157
158
70.3M
static SkPoint fline_xy_at_t(const SkPoint a[2], SkScalar weight, double t) {
159
70.3M
    return dline_xy_at_t(a, weight, t).asSkPoint();
160
70.3M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:fline_xy_at_t(SkPoint const*, float, double)
SkPathOpsWinding.cpp:fline_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
158
22.5M
static SkPoint fline_xy_at_t(const SkPoint a[2], SkScalar weight, double t) {
159
22.5M
    return dline_xy_at_t(a, weight, t).asSkPoint();
160
22.5M
}
Unexecuted instantiation: SkPathWriter.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpAngle.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpCoincidence.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:fline_xy_at_t(SkPoint const*, float, double)
SkOpSegment.cpp:fline_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
158
47.7M
static SkPoint fline_xy_at_t(const SkPoint a[2], SkScalar weight, double t) {
159
47.7M
    return dline_xy_at_t(a, weight, t).asSkPoint();
160
47.7M
}
Unexecuted instantiation: SkOpSpan.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:fline_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:fline_xy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:fline_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
158
6.14k
static SkPoint fline_xy_at_t(const SkPoint a[2], SkScalar weight, double t) {
159
6.14k
    return dline_xy_at_t(a, weight, t).asSkPoint();
160
6.14k
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:fline_xy_at_t(SkPoint const*, float, double)
161
162
27.8M
static SkPoint fquad_xy_at_t(const SkPoint a[3], SkScalar weight, double t) {
163
27.8M
    return dquad_xy_at_t(a, weight, t).asSkPoint();
164
27.8M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:fquad_xy_at_t(SkPoint const*, float, double)
SkPathOpsWinding.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
162
14.7M
static SkPoint fquad_xy_at_t(const SkPoint a[3], SkScalar weight, double t) {
163
14.7M
    return dquad_xy_at_t(a, weight, t).asSkPoint();
164
14.7M
}
Unexecuted instantiation: SkPathWriter.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpAngle.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpCoincidence.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:fquad_xy_at_t(SkPoint const*, float, double)
SkOpSegment.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
162
13.1M
static SkPoint fquad_xy_at_t(const SkPoint a[3], SkScalar weight, double t) {
163
13.1M
    return dquad_xy_at_t(a, weight, t).asSkPoint();
164
13.1M
}
Unexecuted instantiation: SkOpSpan.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:fquad_xy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:fquad_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
162
3.96k
static SkPoint fquad_xy_at_t(const SkPoint a[3], SkScalar weight, double t) {
163
3.96k
    return dquad_xy_at_t(a, weight, t).asSkPoint();
164
3.96k
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:fquad_xy_at_t(SkPoint const*, float, double)
165
166
4.99M
static SkPoint fconic_xy_at_t(const SkPoint a[3], SkScalar weight, double t) {
167
4.99M
    return dconic_xy_at_t(a, weight, t).asSkPoint();
168
4.99M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:fconic_xy_at_t(SkPoint const*, float, double)
SkPathOpsWinding.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
166
765k
static SkPoint fconic_xy_at_t(const SkPoint a[3], SkScalar weight, double t) {
167
765k
    return dconic_xy_at_t(a, weight, t).asSkPoint();
168
765k
}
Unexecuted instantiation: SkPathWriter.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpAngle.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpCoincidence.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:fconic_xy_at_t(SkPoint const*, float, double)
SkOpSegment.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
166
4.22M
static SkPoint fconic_xy_at_t(const SkPoint a[3], SkScalar weight, double t) {
167
4.22M
    return dconic_xy_at_t(a, weight, t).asSkPoint();
168
4.22M
}
Unexecuted instantiation: SkOpSpan.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:fconic_xy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:fconic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
166
1.11k
static SkPoint fconic_xy_at_t(const SkPoint a[3], SkScalar weight, double t) {
167
1.11k
    return dconic_xy_at_t(a, weight, t).asSkPoint();
168
1.11k
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:fconic_xy_at_t(SkPoint const*, float, double)
169
170
26.6M
static SkPoint fcubic_xy_at_t(const SkPoint a[4], SkScalar weight, double t) {
171
26.6M
    return dcubic_xy_at_t(a, weight, t).asSkPoint();
172
26.6M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
SkPathOpsWinding.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
170
13.6M
static SkPoint fcubic_xy_at_t(const SkPoint a[4], SkScalar weight, double t) {
171
13.6M
    return dcubic_xy_at_t(a, weight, t).asSkPoint();
172
13.6M
}
Unexecuted instantiation: SkPathWriter.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpAngle.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpCoincidence.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
SkOpSegment.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
170
13.0M
static SkPoint fcubic_xy_at_t(const SkPoint a[4], SkScalar weight, double t) {
171
13.0M
    return dcubic_xy_at_t(a, weight, t).asSkPoint();
172
13.0M
}
Unexecuted instantiation: SkOpSpan.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
Line
Count
Source
170
780
static SkPoint fcubic_xy_at_t(const SkPoint a[4], SkScalar weight, double t) {
171
780
    return dcubic_xy_at_t(a, weight, t).asSkPoint();
172
780
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:fcubic_xy_at_t(SkPoint const*, float, double)
173
174
static SkPoint (* const CurvePointAtT[])(const SkPoint[], SkScalar , double ) = {
175
    nullptr,
176
    fline_xy_at_t,
177
    fquad_xy_at_t,
178
    fconic_xy_at_t,
179
    fcubic_xy_at_t
180
};
181
182
15.4M
static SkDVector dline_dxdy_at_t(const SkPoint a[2], SkScalar , double ) {
183
15.4M
    SkDLine line;
184
15.4M
    line.set(a);
185
15.4M
    return line[1] - line[0];
186
15.4M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
SkPathOpsWinding.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
182
15.0M
static SkDVector dline_dxdy_at_t(const SkPoint a[2], SkScalar , double ) {
183
15.0M
    SkDLine line;
184
15.0M
    line.set(a);
185
15.0M
    return line[1] - line[0];
186
15.0M
}
Unexecuted instantiation: SkPathWriter.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
SkOpAngle.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
182
199k
static SkDVector dline_dxdy_at_t(const SkPoint a[2], SkScalar , double ) {
183
199k
    SkDLine line;
184
199k
    line.set(a);
185
199k
    return line[1] - line[0];
186
199k
}
Unexecuted instantiation: SkOpCoincidence.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
SkOpSegment.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
182
210k
static SkDVector dline_dxdy_at_t(const SkPoint a[2], SkScalar , double ) {
183
210k
    SkDLine line;
184
210k
    line.set(a);
185
210k
    return line[1] - line[0];
186
210k
}
Unexecuted instantiation: SkOpSpan.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:dline_dxdy_at_t(SkPoint const*, float, double)
187
188
8.27M
static SkDVector dquad_dxdy_at_t(const SkPoint a[3], SkScalar , double t) {
189
8.27M
    SkDQuad quad;
190
8.27M
    quad.set(a);
191
8.27M
    return quad.dxdyAtT(t);
192
8.27M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
SkPathOpsWinding.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
188
7.78M
static SkDVector dquad_dxdy_at_t(const SkPoint a[3], SkScalar , double t) {
189
7.78M
    SkDQuad quad;
190
7.78M
    quad.set(a);
191
7.78M
    return quad.dxdyAtT(t);
192
7.78M
}
Unexecuted instantiation: SkPathWriter.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
SkOpAngle.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
188
425k
static SkDVector dquad_dxdy_at_t(const SkPoint a[3], SkScalar , double t) {
189
425k
    SkDQuad quad;
190
425k
    quad.set(a);
191
425k
    return quad.dxdyAtT(t);
192
425k
}
Unexecuted instantiation: SkOpCoincidence.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
SkOpSegment.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
188
62.9k
static SkDVector dquad_dxdy_at_t(const SkPoint a[3], SkScalar , double t) {
189
62.9k
    SkDQuad quad;
190
62.9k
    quad.set(a);
191
62.9k
    return quad.dxdyAtT(t);
192
62.9k
}
Unexecuted instantiation: SkOpSpan.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
188
2.77k
static SkDVector dquad_dxdy_at_t(const SkPoint a[3], SkScalar , double t) {
189
2.77k
    SkDQuad quad;
190
2.77k
    quad.set(a);
191
2.77k
    return quad.dxdyAtT(t);
192
2.77k
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:dquad_dxdy_at_t(SkPoint const*, float, double)
193
194
962k
static SkDVector dconic_dxdy_at_t(const SkPoint a[3], SkScalar weight, double t) {
195
962k
    SkDConic conic;
196
962k
    conic.set(a, weight);
197
962k
    return conic.dxdyAtT(t);
198
962k
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
SkPathOpsWinding.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
194
829k
static SkDVector dconic_dxdy_at_t(const SkPoint a[3], SkScalar weight, double t) {
195
829k
    SkDConic conic;
196
829k
    conic.set(a, weight);
197
829k
    return conic.dxdyAtT(t);
198
829k
}
Unexecuted instantiation: SkPathWriter.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
SkOpAngle.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
194
94.1k
static SkDVector dconic_dxdy_at_t(const SkPoint a[3], SkScalar weight, double t) {
195
94.1k
    SkDConic conic;
196
94.1k
    conic.set(a, weight);
197
94.1k
    return conic.dxdyAtT(t);
198
94.1k
}
Unexecuted instantiation: SkOpCoincidence.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
SkOpSegment.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
194
37.6k
static SkDVector dconic_dxdy_at_t(const SkPoint a[3], SkScalar weight, double t) {
195
37.6k
    SkDConic conic;
196
37.6k
    conic.set(a, weight);
197
37.6k
    return conic.dxdyAtT(t);
198
37.6k
}
Unexecuted instantiation: SkOpSpan.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
194
524
static SkDVector dconic_dxdy_at_t(const SkPoint a[3], SkScalar weight, double t) {
195
524
    SkDConic conic;
196
524
    conic.set(a, weight);
197
524
    return conic.dxdyAtT(t);
198
524
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:dconic_dxdy_at_t(SkPoint const*, float, double)
199
200
5.35M
static SkDVector dcubic_dxdy_at_t(const SkPoint a[4], SkScalar , double t) {
201
5.35M
    SkDCubic cubic;
202
5.35M
    cubic.set(a);
203
5.35M
    return cubic.dxdyAtT(t);
204
5.35M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
SkPathOpsWinding.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
200
4.56M
static SkDVector dcubic_dxdy_at_t(const SkPoint a[4], SkScalar , double t) {
201
4.56M
    SkDCubic cubic;
202
4.56M
    cubic.set(a);
203
4.56M
    return cubic.dxdyAtT(t);
204
4.56M
}
Unexecuted instantiation: SkPathWriter.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
SkOpAngle.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
200
512k
static SkDVector dcubic_dxdy_at_t(const SkPoint a[4], SkScalar , double t) {
201
512k
    SkDCubic cubic;
202
512k
    cubic.set(a);
203
512k
    return cubic.dxdyAtT(t);
204
512k
}
Unexecuted instantiation: SkOpCoincidence.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
SkOpSegment.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
200
284k
static SkDVector dcubic_dxdy_at_t(const SkPoint a[4], SkScalar , double t) {
201
284k
    SkDCubic cubic;
202
284k
    cubic.set(a);
203
284k
    return cubic.dxdyAtT(t);
204
284k
}
Unexecuted instantiation: SkOpSpan.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
200
445
static SkDVector dcubic_dxdy_at_t(const SkPoint a[4], SkScalar , double t) {
201
445
    SkDCubic cubic;
202
445
    cubic.set(a);
203
445
    return cubic.dxdyAtT(t);
204
445
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:dcubic_dxdy_at_t(SkPoint const*, float, double)
205
206
static SkDVector (* const CurveDSlopeAtT[])(const SkPoint[], SkScalar , double ) = {
207
    nullptr,
208
    dline_dxdy_at_t,
209
    dquad_dxdy_at_t,
210
    dconic_dxdy_at_t,
211
    dcubic_dxdy_at_t
212
};
213
214
2.03M
static SkDVector ddline_dxdy_at_t(const SkDCurve& c, double ) {
215
2.03M
    return c.fLine.fPts[1] - c.fLine.fPts[0];
216
2.03M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsOp.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathWriter.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkAddIntersections.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpAngle.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpCoincidence.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
SkOpSegment.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Line
Count
Source
214
2.03M
static SkDVector ddline_dxdy_at_t(const SkDCurve& c, double ) {
215
2.03M
    return c.fLine.fPts[1] - c.fLine.fPts[0];
216
2.03M
}
Unexecuted instantiation: SkOpSpan.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpContour.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpBuilder.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:ddline_dxdy_at_t(SkDCurve const&, double)
217
218
830k
static SkDVector ddquad_dxdy_at_t(const SkDCurve& c, double t) {
219
830k
    return c.fQuad.dxdyAtT(t);
220
830k
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsOp.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathWriter.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkAddIntersections.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpAngle.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpCoincidence.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
SkOpSegment.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Line
Count
Source
218
830k
static SkDVector ddquad_dxdy_at_t(const SkDCurve& c, double t) {
219
830k
    return c.fQuad.dxdyAtT(t);
220
830k
}
Unexecuted instantiation: SkOpSpan.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpContour.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpBuilder.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:ddquad_dxdy_at_t(SkDCurve const&, double)
221
222
223k
static SkDVector ddconic_dxdy_at_t(const SkDCurve& c, double t) {
223
223k
    return c.fConic.dxdyAtT(t);
224
223k
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsOp.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathWriter.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkAddIntersections.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpAngle.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpCoincidence.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
SkOpSegment.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Line
Count
Source
222
223k
static SkDVector ddconic_dxdy_at_t(const SkDCurve& c, double t) {
223
223k
    return c.fConic.dxdyAtT(t);
224
223k
}
Unexecuted instantiation: SkOpSpan.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpContour.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpBuilder.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:ddconic_dxdy_at_t(SkDCurve const&, double)
225
226
1.34M
static SkDVector ddcubic_dxdy_at_t(const SkDCurve& c, double t) {
227
1.34M
    return c.fCubic.dxdyAtT(t);
228
1.34M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsOp.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathWriter.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkAddIntersections.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpAngle.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpCoincidence.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
SkOpSegment.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Line
Count
Source
226
1.34M
static SkDVector ddcubic_dxdy_at_t(const SkDCurve& c, double t) {
227
1.34M
    return c.fCubic.dxdyAtT(t);
228
1.34M
}
Unexecuted instantiation: SkOpSpan.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpContour.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkOpBuilder.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:ddcubic_dxdy_at_t(SkDCurve const&, double)
229
230
static SkDVector (* const CurveDDSlopeAtT[])(const SkDCurve& , double ) = {
231
    nullptr,
232
    ddline_dxdy_at_t,
233
    ddquad_dxdy_at_t,
234
    ddconic_dxdy_at_t,
235
    ddcubic_dxdy_at_t
236
};
237
238
4.52k
static SkVector fline_dxdy_at_t(const SkPoint a[2], SkScalar , double ) {
239
4.52k
    return a[1] - a[0];
240
4.52k
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathWriter.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpAngle.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpCoincidence.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpSegment.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpSpan.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
238
4.52k
static SkVector fline_dxdy_at_t(const SkPoint a[2], SkScalar , double ) {
239
4.52k
    return a[1] - a[0];
240
4.52k
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:fline_dxdy_at_t(SkPoint const*, float, double)
241
242
2.77k
static SkVector fquad_dxdy_at_t(const SkPoint a[3], SkScalar weight, double t) {
243
2.77k
    return dquad_dxdy_at_t(a, weight, t).asSkVector();
244
2.77k
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathWriter.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpAngle.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpCoincidence.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpSegment.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpSpan.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
242
2.77k
static SkVector fquad_dxdy_at_t(const SkPoint a[3], SkScalar weight, double t) {
243
2.77k
    return dquad_dxdy_at_t(a, weight, t).asSkVector();
244
2.77k
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:fquad_dxdy_at_t(SkPoint const*, float, double)
245
246
524
static SkVector fconic_dxdy_at_t(const SkPoint a[3], SkScalar weight, double t) {
247
524
    return dconic_dxdy_at_t(a, weight, t).asSkVector();
248
524
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathWriter.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpAngle.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpCoincidence.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpSegment.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpSpan.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
246
524
static SkVector fconic_dxdy_at_t(const SkPoint a[3], SkScalar weight, double t) {
247
524
    return dconic_dxdy_at_t(a, weight, t).asSkVector();
248
524
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:fconic_dxdy_at_t(SkPoint const*, float, double)
249
250
445
static SkVector fcubic_dxdy_at_t(const SkPoint a[4], SkScalar weight, double t) {
251
445
    return dcubic_dxdy_at_t(a, weight, t).asSkVector();
252
445
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsOp.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathWriter.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkAddIntersections.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpAngle.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpCoincidence.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpSegment.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpSpan.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpContour.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Unexecuted instantiation: SkOpBuilder.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
SkPathOpsAsWinding.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
Line
Count
Source
250
445
static SkVector fcubic_dxdy_at_t(const SkPoint a[4], SkScalar weight, double t) {
251
445
    return dcubic_dxdy_at_t(a, weight, t).asSkVector();
252
445
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:fcubic_dxdy_at_t(SkPoint const*, float, double)
253
254
static SkVector (* const CurveSlopeAtT[])(const SkPoint[], SkScalar , double ) = {
255
    nullptr,
256
    fline_dxdy_at_t,
257
    fquad_dxdy_at_t,
258
    fconic_dxdy_at_t,
259
    fcubic_dxdy_at_t
260
};
261
262
0
static bool line_is_vertical(const SkPoint a[2], SkScalar , double startT, double endT) {
263
0
    SkDLine line;
264
0
    line.set(a);
265
0
    SkDPoint dst[2] = { line.ptAtT(startT), line.ptAtT(endT) };
266
0
    return AlmostEqualUlps(dst[0].fX, dst[1].fX);
267
0
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsOp.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathWriter.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkAddIntersections.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpAngle.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpCoincidence.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpSegment.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpSpan.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpContour.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpBuilder.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:line_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:line_is_vertical(SkPoint const*, float, double, double)
268
269
0
static bool quad_is_vertical(const SkPoint a[3], SkScalar , double startT, double endT) {
270
0
    SkDQuad quad;
271
0
    quad.set(a);
272
0
    SkDQuad dst = quad.subDivide(startT, endT);
273
0
    return AlmostEqualUlps(dst[0].fX, dst[1].fX) && AlmostEqualUlps(dst[1].fX, dst[2].fX);
274
0
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsOp.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathWriter.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkAddIntersections.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpAngle.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpCoincidence.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpSegment.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpSpan.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpContour.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpBuilder.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:quad_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:quad_is_vertical(SkPoint const*, float, double, double)
275
276
0
static bool conic_is_vertical(const SkPoint a[3], SkScalar weight, double startT, double endT) {
277
0
    SkDConic conic;
278
0
    conic.set(a, weight);
279
0
    SkDConic dst = conic.subDivide(startT, endT);
280
0
    return AlmostEqualUlps(dst[0].fX, dst[1].fX) && AlmostEqualUlps(dst[1].fX, dst[2].fX);
281
0
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsOp.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathWriter.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkAddIntersections.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpAngle.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpCoincidence.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpSegment.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpSpan.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpContour.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpBuilder.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:conic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:conic_is_vertical(SkPoint const*, float, double, double)
282
283
0
static bool cubic_is_vertical(const SkPoint a[4], SkScalar , double startT, double endT) {
284
0
    SkDCubic cubic;
285
0
    cubic.set(a);
286
0
    SkDCubic dst = cubic.subDivide(startT, endT);
287
0
    return AlmostEqualUlps(dst[0].fX, dst[1].fX) && AlmostEqualUlps(dst[1].fX, dst[2].fX)
288
0
            && AlmostEqualUlps(dst[2].fX, dst[3].fX);
289
0
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsCubic.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsCurve.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsQuad.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkDConicLineIntersection.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsOp.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsSimplify.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsWinding.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathWriter.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkAddIntersections.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpAngle.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpCoincidence.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpSegment.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpSpan.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsCommon.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsDebug.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpContour.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkOpBuilder.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:cubic_is_vertical(SkPoint const*, float, double, double)
290
291
static bool (* const CurveIsVertical[])(const SkPoint[], SkScalar , double , double) = {
292
    nullptr,
293
    line_is_vertical,
294
    quad_is_vertical,
295
    conic_is_vertical,
296
    cubic_is_vertical
297
};
298
299
static void line_intersect_ray(const SkPoint a[2], SkScalar , const SkDLine& ray,
300
2.61M
        SkIntersections* i) {
301
2.61M
    SkDLine line;
302
2.61M
    line.set(a);
303
2.61M
    i->intersectRay(line, ray);
304
2.61M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCubic.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCurve.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsQuad.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsOp.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsWinding.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathWriter.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkAddIntersections.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
SkOpAngle.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Line
Count
Source
300
553k
        SkIntersections* i) {
301
553k
    SkDLine line;
302
553k
    line.set(a);
303
553k
    i->intersectRay(line, ray);
304
553k
}
SkOpCoincidence.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Line
Count
Source
300
1.92M
        SkIntersections* i) {
301
1.92M
    SkDLine line;
302
1.92M
    line.set(a);
303
1.92M
    i->intersectRay(line, ray);
304
1.92M
}
Unexecuted instantiation: SkOpEdgeBuilder.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
SkOpSegment.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Line
Count
Source
300
133k
        SkIntersections* i) {
301
133k
    SkDLine line;
302
133k
    line.set(a);
303
133k
    i->intersectRay(line, ray);
304
133k
}
Unexecuted instantiation: SkOpSpan.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCommon.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsDebug.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpContour.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpBuilder.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:line_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
305
306
static void quad_intersect_ray(const SkPoint a[3], SkScalar , const SkDLine& ray,
307
7.52M
        SkIntersections* i) {
308
7.52M
    SkDQuad quad;
309
7.52M
    quad.set(a);
310
7.52M
    i->intersectRay(quad, ray);
311
7.52M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCubic.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCurve.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsQuad.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsOp.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsWinding.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathWriter.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkAddIntersections.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
SkOpAngle.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Line
Count
Source
307
7.17M
        SkIntersections* i) {
308
7.17M
    SkDQuad quad;
309
7.17M
    quad.set(a);
310
7.17M
    i->intersectRay(quad, ray);
311
7.17M
}
SkOpCoincidence.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Line
Count
Source
307
274k
        SkIntersections* i) {
308
274k
    SkDQuad quad;
309
274k
    quad.set(a);
310
274k
    i->intersectRay(quad, ray);
311
274k
}
Unexecuted instantiation: SkOpEdgeBuilder.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
SkOpSegment.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Line
Count
Source
307
74.7k
        SkIntersections* i) {
308
74.7k
    SkDQuad quad;
309
74.7k
    quad.set(a);
310
74.7k
    i->intersectRay(quad, ray);
311
74.7k
}
Unexecuted instantiation: SkOpSpan.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCommon.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsDebug.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpContour.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpBuilder.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:quad_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
312
313
static void conic_intersect_ray(const SkPoint a[3], SkScalar weight, const SkDLine& ray,
314
940k
        SkIntersections* i) {
315
940k
    SkDConic conic;
316
940k
    conic.set(a, weight);
317
940k
    i->intersectRay(conic, ray);
318
940k
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCubic.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCurve.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsQuad.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsOp.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsWinding.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathWriter.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkAddIntersections.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
SkOpAngle.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Line
Count
Source
314
811k
        SkIntersections* i) {
315
811k
    SkDConic conic;
316
811k
    conic.set(a, weight);
317
811k
    i->intersectRay(conic, ray);
318
811k
}
SkOpCoincidence.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Line
Count
Source
314
85.3k
        SkIntersections* i) {
315
85.3k
    SkDConic conic;
316
85.3k
    conic.set(a, weight);
317
85.3k
    i->intersectRay(conic, ray);
318
85.3k
}
Unexecuted instantiation: SkOpEdgeBuilder.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
SkOpSegment.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Line
Count
Source
314
43.7k
        SkIntersections* i) {
315
43.7k
    SkDConic conic;
316
43.7k
    conic.set(a, weight);
317
43.7k
    i->intersectRay(conic, ray);
318
43.7k
}
Unexecuted instantiation: SkOpSpan.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCommon.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsDebug.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpContour.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpBuilder.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:conic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
319
320
static void cubic_intersect_ray(const SkPoint a[4], SkScalar , const SkDLine& ray,
321
3.70M
        SkIntersections* i) {
322
3.70M
    SkDCubic cubic;
323
3.70M
    cubic.set(a);
324
3.70M
    i->intersectRay(cubic, ray);
325
3.70M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCubic.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCurve.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsQuad.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsOp.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsWinding.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathWriter.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkAddIntersections.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
SkOpAngle.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Line
Count
Source
321
2.59M
        SkIntersections* i) {
322
2.59M
    SkDCubic cubic;
323
2.59M
    cubic.set(a);
324
2.59M
    i->intersectRay(cubic, ray);
325
2.59M
}
SkOpCoincidence.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Line
Count
Source
321
771k
        SkIntersections* i) {
322
771k
    SkDCubic cubic;
323
771k
    cubic.set(a);
324
771k
    i->intersectRay(cubic, ray);
325
771k
}
Unexecuted instantiation: SkOpEdgeBuilder.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
SkOpSegment.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Line
Count
Source
321
343k
        SkIntersections* i) {
322
343k
    SkDCubic cubic;
323
343k
    cubic.set(a);
324
343k
    i->intersectRay(cubic, ray);
325
343k
}
Unexecuted instantiation: SkOpSpan.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCommon.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsDebug.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpContour.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpBuilder.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:cubic_intersect_ray(SkPoint const*, float, SkDLine const&, SkIntersections*)
326
327
static void (* const CurveIntersectRay[])(const SkPoint[] , SkScalar , const SkDLine& ,
328
        SkIntersections* ) = {
329
    nullptr,
330
    line_intersect_ray,
331
    quad_intersect_ray,
332
    conic_intersect_ray,
333
    cubic_intersect_ray
334
};
335
336
2.06M
static void dline_intersect_ray(const SkDCurve& c, const SkDLine& ray,  SkIntersections* i) {
337
2.06M
    i->intersectRay(c.fLine, ray);
338
2.06M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCubic.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCurve.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsQuad.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsOp.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsWinding.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathWriter.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkAddIntersections.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpAngle.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpCoincidence.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
SkOpSegment.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Line
Count
Source
336
2.06M
static void dline_intersect_ray(const SkDCurve& c, const SkDLine& ray,  SkIntersections* i) {
337
2.06M
    i->intersectRay(c.fLine, ray);
338
2.06M
}
Unexecuted instantiation: SkOpSpan.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCommon.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsDebug.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpContour.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpBuilder.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:dline_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
339
340
6.97M
static void dquad_intersect_ray(const SkDCurve& c, const SkDLine& ray, SkIntersections* i) {
341
6.97M
    i->intersectRay(c.fQuad, ray);
342
6.97M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCubic.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
SkPathOpsCurve.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Line
Count
Source
340
6.20M
static void dquad_intersect_ray(const SkDCurve& c, const SkDLine& ray, SkIntersections* i) {
341
6.20M
    i->intersectRay(c.fQuad, ray);
342
6.20M
}
Unexecuted instantiation: SkPathOpsQuad.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsOp.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsWinding.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathWriter.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkAddIntersections.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpAngle.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpCoincidence.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
SkOpSegment.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Line
Count
Source
340
762k
static void dquad_intersect_ray(const SkDCurve& c, const SkDLine& ray, SkIntersections* i) {
341
762k
    i->intersectRay(c.fQuad, ray);
342
762k
}
Unexecuted instantiation: SkOpSpan.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCommon.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsDebug.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpContour.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpBuilder.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:dquad_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
343
344
1.55M
static void dconic_intersect_ray(const SkDCurve& c, const SkDLine& ray, SkIntersections* i) {
345
1.55M
    i->intersectRay(c.fConic, ray);
346
1.55M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCubic.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
SkPathOpsCurve.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Line
Count
Source
344
1.32M
static void dconic_intersect_ray(const SkDCurve& c, const SkDLine& ray, SkIntersections* i) {
345
1.32M
    i->intersectRay(c.fConic, ray);
346
1.32M
}
Unexecuted instantiation: SkPathOpsQuad.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsOp.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsWinding.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathWriter.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkAddIntersections.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpAngle.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpCoincidence.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
SkOpSegment.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Line
Count
Source
344
228k
static void dconic_intersect_ray(const SkDCurve& c, const SkDLine& ray, SkIntersections* i) {
345
228k
    i->intersectRay(c.fConic, ray);
346
228k
}
Unexecuted instantiation: SkOpSpan.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCommon.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsDebug.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpContour.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpBuilder.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:dconic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
347
348
8.32M
static void dcubic_intersect_ray(const SkDCurve& c, const SkDLine& ray, SkIntersections* i) {
349
8.32M
    i->intersectRay(c.fCubic, ray);
350
8.32M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCubic.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
SkPathOpsCurve.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Line
Count
Source
348
6.94M
static void dcubic_intersect_ray(const SkDCurve& c, const SkDLine& ray, SkIntersections* i) {
349
6.94M
    i->intersectRay(c.fCubic, ray);
350
6.94M
}
Unexecuted instantiation: SkPathOpsQuad.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsOp.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsWinding.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathWriter.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkAddIntersections.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpAngle.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpCoincidence.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
SkOpSegment.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Line
Count
Source
348
1.37M
static void dcubic_intersect_ray(const SkDCurve& c, const SkDLine& ray, SkIntersections* i) {
349
1.37M
    i->intersectRay(c.fCubic, ray);
350
1.37M
}
Unexecuted instantiation: SkOpSpan.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsCommon.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsDebug.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpContour.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkOpBuilder.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:dcubic_intersect_ray(SkDCurve const&, SkDLine const&, SkIntersections*)
351
352
static void (* const CurveDIntersectRay[])(const SkDCurve& , const SkDLine& , SkIntersections* ) = {
353
    nullptr,
354
    dline_intersect_ray,
355
    dquad_intersect_ray,
356
    dconic_intersect_ray,
357
    dcubic_intersect_ray
358
};
359
360
12.8M
static int line_intercept_h(const SkPoint a[2], SkScalar , SkScalar y, double* roots) {
361
12.8M
    if (a[0].fY == a[1].fY) {
362
807k
        return false;
363
807k
    }
364
12.0M
    SkDLine line;
365
12.0M
    roots[0] = SkIntersections::HorizontalIntercept(line.set(a), y);
366
12.0M
    return between(0, roots[0], 1);
367
12.0M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCubic.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCurve.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsQuad.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsOp.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:line_intercept_h(SkPoint const*, float, float, double*)
SkPathOpsWinding.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Line
Count
Source
360
12.8M
static int line_intercept_h(const SkPoint a[2], SkScalar , SkScalar y, double* roots) {
361
12.8M
    if (a[0].fY == a[1].fY) {
362
807k
        return false;
363
807k
    }
364
12.0M
    SkDLine line;
365
12.0M
    roots[0] = SkIntersections::HorizontalIntercept(line.set(a), y);
366
12.0M
    return between(0, roots[0], 1);
367
12.0M
}
Unexecuted instantiation: SkPathWriter.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkAddIntersections.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpAngle.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpCoincidence.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSegment.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSpan.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCommon.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsDebug.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpContour.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpBuilder.cpp:line_intercept_h(SkPoint const*, float, float, double*)
SkPathOpsAsWinding.cpp:line_intercept_h(SkPoint const*, float, float, double*)
Line
Count
Source
360
6.14k
static int line_intercept_h(const SkPoint a[2], SkScalar , SkScalar y, double* roots) {
361
6.14k
    if (a[0].fY == a[1].fY) {
362
0
        return false;
363
0
    }
364
6.14k
    SkDLine line;
365
6.14k
    roots[0] = SkIntersections::HorizontalIntercept(line.set(a), y);
366
6.14k
    return between(0, roots[0], 1);
367
6.14k
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:line_intercept_h(SkPoint const*, float, float, double*)
368
369
12.5M
static int line_intercept_v(const SkPoint a[2], SkScalar , SkScalar x, double* roots) {
370
12.5M
    if (a[0].fX == a[1].fX) {
371
1.17M
        return false;
372
1.17M
    }
373
11.3M
    SkDLine line;
374
11.3M
    roots[0] = SkIntersections::VerticalIntercept(line.set(a), x);
375
11.3M
    return between(0, roots[0], 1);
376
11.3M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCubic.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCurve.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsQuad.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsOp.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:line_intercept_v(SkPoint const*, float, float, double*)
SkPathOpsWinding.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Line
Count
Source
369
12.5M
static int line_intercept_v(const SkPoint a[2], SkScalar , SkScalar x, double* roots) {
370
12.5M
    if (a[0].fX == a[1].fX) {
371
1.17M
        return false;
372
1.17M
    }
373
11.3M
    SkDLine line;
374
11.3M
    roots[0] = SkIntersections::VerticalIntercept(line.set(a), x);
375
11.3M
    return between(0, roots[0], 1);
376
11.3M
}
Unexecuted instantiation: SkPathWriter.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkAddIntersections.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpAngle.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpCoincidence.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSegment.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSpan.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCommon.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsDebug.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpContour.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpBuilder.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:line_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:line_intercept_v(SkPoint const*, float, float, double*)
377
378
5.87M
static int quad_intercept_h(const SkPoint a[2], SkScalar , SkScalar y, double* roots) {
379
5.87M
    SkDQuad quad;
380
5.87M
    return SkIntersections::HorizontalIntercept(quad.set(a), y, roots);
381
5.87M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCubic.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCurve.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsQuad.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsOp.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
SkPathOpsWinding.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Line
Count
Source
378
5.87M
static int quad_intercept_h(const SkPoint a[2], SkScalar , SkScalar y, double* roots) {
379
5.87M
    SkDQuad quad;
380
5.87M
    return SkIntersections::HorizontalIntercept(quad.set(a), y, roots);
381
5.87M
}
Unexecuted instantiation: SkPathWriter.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkAddIntersections.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpAngle.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpCoincidence.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSegment.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSpan.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCommon.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsDebug.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpContour.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpBuilder.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
SkPathOpsAsWinding.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
Line
Count
Source
378
2.64k
static int quad_intercept_h(const SkPoint a[2], SkScalar , SkScalar y, double* roots) {
379
2.64k
    SkDQuad quad;
380
2.64k
    return SkIntersections::HorizontalIntercept(quad.set(a), y, roots);
381
2.64k
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:quad_intercept_h(SkPoint const*, float, float, double*)
382
383
5.81M
static int quad_intercept_v(const SkPoint a[2], SkScalar , SkScalar x, double* roots) {
384
5.81M
    SkDQuad quad;
385
5.81M
    return SkIntersections::VerticalIntercept(quad.set(a), x, roots);
386
5.81M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCubic.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCurve.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsQuad.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsOp.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
SkPathOpsWinding.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Line
Count
Source
383
5.81M
static int quad_intercept_v(const SkPoint a[2], SkScalar , SkScalar x, double* roots) {
384
5.81M
    SkDQuad quad;
385
5.81M
    return SkIntersections::VerticalIntercept(quad.set(a), x, roots);
386
5.81M
}
Unexecuted instantiation: SkPathWriter.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkAddIntersections.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpAngle.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpCoincidence.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSegment.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSpan.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCommon.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsDebug.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpContour.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpBuilder.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:quad_intercept_v(SkPoint const*, float, float, double*)
387
388
1.83M
static int conic_intercept_h(const SkPoint a[2], SkScalar w, SkScalar y, double* roots) {
389
1.83M
    SkDConic conic;
390
1.83M
    return SkIntersections::HorizontalIntercept(conic.set(a, w), y, roots);
391
1.83M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCubic.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCurve.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsQuad.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsOp.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
SkPathOpsWinding.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Line
Count
Source
388
1.83M
static int conic_intercept_h(const SkPoint a[2], SkScalar w, SkScalar y, double* roots) {
389
1.83M
    SkDConic conic;
390
1.83M
    return SkIntersections::HorizontalIntercept(conic.set(a, w), y, roots);
391
1.83M
}
Unexecuted instantiation: SkPathWriter.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkAddIntersections.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpAngle.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpCoincidence.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSegment.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSpan.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCommon.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsDebug.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpContour.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpBuilder.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
SkPathOpsAsWinding.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
Line
Count
Source
388
914
static int conic_intercept_h(const SkPoint a[2], SkScalar w, SkScalar y, double* roots) {
389
914
    SkDConic conic;
390
914
    return SkIntersections::HorizontalIntercept(conic.set(a, w), y, roots);
391
914
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:conic_intercept_h(SkPoint const*, float, float, double*)
392
393
1.70M
static int conic_intercept_v(const SkPoint a[2], SkScalar w, SkScalar x, double* roots) {
394
1.70M
    SkDConic conic;
395
1.70M
    return SkIntersections::VerticalIntercept(conic.set(a, w), x, roots);
396
1.70M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCubic.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCurve.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsQuad.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsOp.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
SkPathOpsWinding.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Line
Count
Source
393
1.70M
static int conic_intercept_v(const SkPoint a[2], SkScalar w, SkScalar x, double* roots) {
394
1.70M
    SkDConic conic;
395
1.70M
    return SkIntersections::VerticalIntercept(conic.set(a, w), x, roots);
396
1.70M
}
Unexecuted instantiation: SkPathWriter.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkAddIntersections.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpAngle.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpCoincidence.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSegment.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSpan.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCommon.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsDebug.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpContour.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpBuilder.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:conic_intercept_v(SkPoint const*, float, float, double*)
397
398
2.70M
static int cubic_intercept_h(const SkPoint a[3], SkScalar , SkScalar y, double* roots) {
399
2.70M
    SkDCubic cubic;
400
2.70M
    return cubic.set(a).horizontalIntersect(y, roots);
401
2.70M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCubic.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCurve.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsQuad.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsOp.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
SkPathOpsWinding.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Line
Count
Source
398
2.70M
static int cubic_intercept_h(const SkPoint a[3], SkScalar , SkScalar y, double* roots) {
399
2.70M
    SkDCubic cubic;
400
2.70M
    return cubic.set(a).horizontalIntersect(y, roots);
401
2.70M
}
Unexecuted instantiation: SkPathWriter.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkAddIntersections.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpAngle.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpCoincidence.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSegment.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSpan.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCommon.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsDebug.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpContour.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpBuilder.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
SkPathOpsAsWinding.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
Line
Count
Source
398
960
static int cubic_intercept_h(const SkPoint a[3], SkScalar , SkScalar y, double* roots) {
399
960
    SkDCubic cubic;
400
960
    return cubic.set(a).horizontalIntersect(y, roots);
401
960
}
Unexecuted instantiation: SkPathOpsTightBounds.cpp:cubic_intercept_h(SkPoint const*, float, float, double*)
402
403
2.86M
static int cubic_intercept_v(const SkPoint a[3], SkScalar , SkScalar x, double* roots) {
404
2.86M
    SkDCubic cubic;
405
2.86M
    return cubic.set(a).verticalIntersect(x, roots);
406
2.86M
}
Unexecuted instantiation: SkDCubicLineIntersection.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDQuadLineIntersection.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCubic.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCurve.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsQuad.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkDConicLineIntersection.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsOp.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsSimplify.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
SkPathOpsWinding.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Line
Count
Source
403
2.86M
static int cubic_intercept_v(const SkPoint a[3], SkScalar , SkScalar x, double* roots) {
404
2.86M
    SkDCubic cubic;
405
2.86M
    return cubic.set(a).verticalIntersect(x, roots);
406
2.86M
}
Unexecuted instantiation: SkPathWriter.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkAddIntersections.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpAngle.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpCoincidence.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpEdgeBuilder.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSegment.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpSpan.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsCommon.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsDebug.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpContour.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkOpBuilder.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsAsWinding.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
Unexecuted instantiation: SkPathOpsTightBounds.cpp:cubic_intercept_v(SkPoint const*, float, float, double*)
407
408
static int (* const CurveIntercept[])(const SkPoint[] , SkScalar , SkScalar , double* ) = {
409
    nullptr,
410
    nullptr,
411
    line_intercept_h,
412
    line_intercept_v,
413
    quad_intercept_h,
414
    quad_intercept_v,
415
    conic_intercept_h,
416
    conic_intercept_v,
417
    cubic_intercept_h,
418
    cubic_intercept_v,
419
};
420
421
#endif