Coverage Report

Created: 2024-09-14 07:19

/src/skia/src/core/SkPathEffectBase.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 2006 The Android Open Source Project
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
8
#ifndef SkPathEffectBase_DEFINED
9
#define SkPathEffectBase_DEFINED
10
11
#include "include/core/SkPath.h"
12
#include "include/core/SkPathEffect.h"
13
#include "include/core/SkPoint.h"
14
#include "include/core/SkRect.h"
15
16
class SkPath;
17
class SkStrokeRec;
18
19
class SkPathEffectBase : public SkPathEffect {
20
public:
21
2.03M
    SkPathEffectBase() {}
22
23
    /** \class PointData
24
25
        PointData aggregates all the information needed to draw the point
26
        primitives returned by an 'asPoints' call.
27
    */
28
    class PointData {
29
    public:
30
        PointData()
31
            : fFlags(0)
32
            , fPoints(nullptr)
33
73
            , fNumPoints(0) {
34
73
            fSize.set(SK_Scalar1, SK_Scalar1);
35
            // 'asPoints' needs to initialize/fill-in 'fClipRect' if it sets
36
            // the kUseClip flag
37
73
        }
38
73
        ~PointData() {
39
73
            delete [] fPoints;
40
73
        }
41
42
        // TODO: consider using passed-in flags to limit the work asPoints does.
43
        // For example, a kNoPath flag could indicate don't bother generating
44
        // stamped solutions.
45
46
        // Currently none of these flags are supported.
47
        enum PointFlags {
48
            kCircles_PointFlag            = 0x01,   // draw points as circles (instead of rects)
49
            kUsePath_PointFlag            = 0x02,   // draw points as stamps of the returned path
50
            kUseClip_PointFlag            = 0x04,   // apply 'fClipRect' before drawing the points
51
        };
52
53
        uint32_t           fFlags;      // flags that impact the drawing of the points
54
        SkPoint*           fPoints;     // the center point of each generated point
55
        int                fNumPoints;  // number of points in fPoints
56
        SkVector           fSize;       // the size to draw the points
57
        SkRect             fClipRect;   // clip required to draw the points (if kUseClip is set)
58
        SkPath             fPath;       // 'stamp' to be used at each point (if kUsePath is set)
59
60
        SkPath             fFirst;      // If not empty, contains geometry for first point
61
        SkPath             fLast;       // If not empty, contains geometry for last point
62
    };
63
64
    /**
65
     *  Does applying this path effect to 'src' yield a set of points? If so,
66
     *  optionally return the points in 'results'.
67
     */
68
    bool asPoints(PointData* results, const SkPath& src,
69
                          const SkStrokeRec&, const SkMatrix&,
70
                          const SkRect* cullR) const;
71
72
    /**
73
     *  If the PathEffect can be represented as a dash pattern, asADash will return kDash_DashType
74
     *  and None otherwise. If a non NULL info is passed in, the various DashInfo will be filled
75
     *  in if the PathEffect can be a dash pattern. If passed in info has an fCount equal or
76
     *  greater to that of the effect, it will memcpy the values of the dash intervals into the
77
     *  info. Thus the general approach will be call asADash once with default info to get DashType
78
     *  and fCount. If effect can be represented as a dash pattern, allocate space for the intervals
79
     *  in info, then call asADash again with the same info and the intervals will get copied in.
80
     */
81
82
64
    SkFlattenable::Type getFlattenableType() const override {
83
64
        return kSkPathEffect_Type;
84
64
    }
85
86
    static sk_sp<SkPathEffect> Deserialize(const void* data, size_t size,
87
0
                                          const SkDeserialProcs* procs = nullptr) {
88
0
        return sk_sp<SkPathEffect>(static_cast<SkPathEffect*>(
89
0
                                  SkFlattenable::Deserialize(
90
0
                                  kSkPathEffect_Type, data, size, procs).release()));
91
0
    }
92
93
    /**
94
     * Filter the input path.
95
     *
96
     * The CTM parameter is provided for path effects that can use the information.
97
     * The output of path effects must always be in the original (input) coordinate system,
98
     * regardless of whether the path effect uses the CTM or not.
99
     */
100
    virtual bool onFilterPath(SkPath*, const SkPath&, SkStrokeRec*, const SkRect*,
101
                              const SkMatrix& /* ctm */) const = 0;
102
103
    /** Path effects *requiring* a valid CTM should override to return true. */
104
0
    virtual bool onNeedsCTM() const { return false; }
105
106
    virtual bool onAsPoints(PointData*, const SkPath&, const SkStrokeRec&, const SkMatrix&,
107
24
                            const SkRect*) const {
108
24
        return false;
109
24
    }
110
32.7k
    virtual DashType onAsADash(DashInfo*) const {
111
32.7k
        return kNone_DashType;
112
32.7k
    }
113
114
115
    // Compute a conservative bounds for its effect, given the bounds of the path. 'bounds' is
116
    // both the input and output; if false is returned, fast bounds could not be calculated and
117
    // 'bounds' is undefined.
118
    //
119
    // If 'bounds' is null, performs a dry-run determining if bounds could be computed.
120
    virtual bool computeFastBounds(SkRect* bounds) const = 0;
121
122
    static void RegisterFlattenables();
123
124
private:
125
    using INHERITED = SkPathEffect;
126
};
127
128
////////////////////////////////////////////////////////////////////////////////////////////////
129
130
164k
static inline SkPathEffectBase* as_PEB(SkPathEffect* effect) {
131
164k
    return static_cast<SkPathEffectBase*>(effect);
132
164k
}
Unexecuted instantiation: AtlasTextOpTools.cpp:as_PEB(SkPathEffect*)
SkDrawBase.cpp:as_PEB(SkPathEffect*)
Line
Count
Source
130
73
static inline SkPathEffectBase* as_PEB(SkPathEffect* effect) {
131
73
    return static_cast<SkPathEffectBase*>(effect);
132
73
}
SkPaint.cpp:as_PEB(SkPathEffect*)
Line
Count
Source
130
110k
static inline SkPathEffectBase* as_PEB(SkPathEffect* effect) {
131
110k
    return static_cast<SkPathEffectBase*>(effect);
132
110k
}
Unexecuted instantiation: SkPathEffect.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: SkShadowUtils.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: Sk1DPathEffect.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: Sk2DPathEffect.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: SkCornerPathEffect.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: SkDashPathEffect.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: SkDiscretePathEffect.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: SkGlobalInitialization_default.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrTestUtils.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: PathRendererChain.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: SurfaceDrawContext.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrBicubicEffect.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrTextureEffect.cpp:as_PEB(SkPathEffect*)
GrStyledShape.cpp:as_PEB(SkPathEffect*)
Line
Count
Source
130
53.5k
static inline SkPathEffectBase* as_PEB(SkPathEffect* effect) {
131
53.5k
    return static_cast<SkPathEffectBase*>(effect);
132
53.5k
}
Unexecuted instantiation: AAConvexPathRenderer.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: AAHairLinePathRenderer.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: AALinearizingConvexPathRenderer.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: AtlasPathRenderer.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: DashLinePathRenderer.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: DashOp.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: DefaultPathRenderer.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: DrawAtlasOp.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: FillRRectOp.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: FillRectOp.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrOvalOpFactory.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: LatticeOp.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: RegionOp.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: ShadowRRectOp.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: SmallPathRenderer.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: SmallPathShapeData.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: SoftwarePathRenderer.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: StrokeRectOp.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: TessellationPathRenderer.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: TextureOp.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: TriangulatingPathRenderer.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: SkPDFFont.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: SkTrimPathEffect.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: Device.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: Device_drawTexture.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrBlurUtils.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrDefaultGeoProcFactory.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrSWMaskHelper.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrStyle.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrUtil.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: PathRenderer.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrBezierEffect.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrBitmapTextGeoProc.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrColorTableEffect.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrDistanceFieldGeoProc.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrPerlinNoise2Effect.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: GrGradientShader.cpp:as_PEB(SkPathEffect*)
Unexecuted instantiation: StencilMaskHelper.cpp:as_PEB(SkPathEffect*)
133
134
2.32M
static inline const SkPathEffectBase* as_PEB(const SkPathEffect* effect) {
135
2.32M
    return static_cast<const SkPathEffectBase*>(effect);
136
2.32M
}
Unexecuted instantiation: AtlasTextOpTools.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: SkDrawBase.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: SkPaint.cpp:as_PEB(SkPathEffect const*)
SkPathEffect.cpp:as_PEB(SkPathEffect const*)
Line
Count
Source
134
2.32M
static inline const SkPathEffectBase* as_PEB(const SkPathEffect* effect) {
135
2.32M
    return static_cast<const SkPathEffectBase*>(effect);
136
2.32M
}
Unexecuted instantiation: SkShadowUtils.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: Sk1DPathEffect.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: Sk2DPathEffect.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: SkCornerPathEffect.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: SkDashPathEffect.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: SkDiscretePathEffect.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: SkGlobalInitialization_default.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrTestUtils.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: PathRendererChain.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: SurfaceDrawContext.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrBicubicEffect.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrTextureEffect.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrStyledShape.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: AAConvexPathRenderer.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: AAHairLinePathRenderer.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: AALinearizingConvexPathRenderer.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: AtlasPathRenderer.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: DashLinePathRenderer.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: DashOp.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: DefaultPathRenderer.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: DrawAtlasOp.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: FillRRectOp.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: FillRectOp.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrOvalOpFactory.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: LatticeOp.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: RegionOp.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: ShadowRRectOp.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: SmallPathRenderer.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: SmallPathShapeData.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: SoftwarePathRenderer.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: StrokeRectOp.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: TessellationPathRenderer.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: TextureOp.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: TriangulatingPathRenderer.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: SkPDFFont.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: SkTrimPathEffect.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: Device.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: Device_drawTexture.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrBlurUtils.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrDefaultGeoProcFactory.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrSWMaskHelper.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrStyle.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrUtil.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: PathRenderer.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrBezierEffect.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrBitmapTextGeoProc.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrColorTableEffect.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrDistanceFieldGeoProc.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrPerlinNoise2Effect.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: GrGradientShader.cpp:as_PEB(SkPathEffect const*)
Unexecuted instantiation: StencilMaskHelper.cpp:as_PEB(SkPathEffect const*)
137
138
33.7k
static inline const SkPathEffectBase* as_PEB(const sk_sp<SkPathEffect>& effect) {
139
33.7k
    return static_cast<SkPathEffectBase*>(effect.get());
140
33.7k
}
Unexecuted instantiation: AtlasTextOpTools.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: SkDrawBase.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: SkPaint.cpp:as_PEB(sk_sp<SkPathEffect> const&)
SkPathEffect.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Line
Count
Source
138
33.7k
static inline const SkPathEffectBase* as_PEB(const sk_sp<SkPathEffect>& effect) {
139
33.7k
    return static_cast<SkPathEffectBase*>(effect.get());
140
33.7k
}
Unexecuted instantiation: SkShadowUtils.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: Sk1DPathEffect.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: Sk2DPathEffect.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: SkCornerPathEffect.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: SkDashPathEffect.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: SkDiscretePathEffect.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: SkGlobalInitialization_default.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrTestUtils.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: PathRendererChain.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: SurfaceDrawContext.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrBicubicEffect.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrTextureEffect.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrStyledShape.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: AAConvexPathRenderer.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: AAHairLinePathRenderer.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: AALinearizingConvexPathRenderer.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: AtlasPathRenderer.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: DashLinePathRenderer.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: DashOp.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: DefaultPathRenderer.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: DrawAtlasOp.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: FillRRectOp.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: FillRectOp.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrOvalOpFactory.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: LatticeOp.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: RegionOp.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: ShadowRRectOp.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: SmallPathRenderer.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: SmallPathShapeData.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: SoftwarePathRenderer.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: StrokeRectOp.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: TessellationPathRenderer.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: TextureOp.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: TriangulatingPathRenderer.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: SkPDFFont.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: SkTrimPathEffect.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: Device.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: Device_drawTexture.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrBlurUtils.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrDefaultGeoProcFactory.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrSWMaskHelper.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrStyle.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrUtil.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: PathRenderer.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrBezierEffect.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrBitmapTextGeoProc.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrColorTableEffect.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrDistanceFieldGeoProc.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrPerlinNoise2Effect.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: GrGradientShader.cpp:as_PEB(sk_sp<SkPathEffect> const&)
Unexecuted instantiation: StencilMaskHelper.cpp:as_PEB(sk_sp<SkPathEffect> const&)
141
142
0
static inline sk_sp<SkPathEffectBase> as_PEB_sp(sk_sp<SkPathEffect> effect) {
143
0
    return sk_sp<SkPathEffectBase>(static_cast<SkPathEffectBase*>(effect.release()));
144
0
}
Unexecuted instantiation: AtlasTextOpTools.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SkDrawBase.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SkPaint.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SkPathEffect.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SkShadowUtils.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: Sk1DPathEffect.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: Sk2DPathEffect.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SkCornerPathEffect.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SkDashPathEffect.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SkDiscretePathEffect.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SkGlobalInitialization_default.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrTestUtils.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: PathRendererChain.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SurfaceDrawContext.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrBicubicEffect.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrTextureEffect.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrStyledShape.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: AAConvexPathRenderer.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: AAHairLinePathRenderer.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: AALinearizingConvexPathRenderer.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: AtlasPathRenderer.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: DashLinePathRenderer.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: DashOp.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: DefaultPathRenderer.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: DrawAtlasOp.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: FillRRectOp.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: FillRectOp.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrOvalOpFactory.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: LatticeOp.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: RegionOp.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: ShadowRRectOp.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SmallPathRenderer.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SmallPathShapeData.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SoftwarePathRenderer.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: StrokeRectOp.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: TessellationPathRenderer.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: TextureOp.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: TriangulatingPathRenderer.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SkPDFFont.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: SkTrimPathEffect.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: Device.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: Device_drawTexture.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrBlurUtils.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrDefaultGeoProcFactory.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrSWMaskHelper.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrStyle.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrUtil.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: PathRenderer.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrBezierEffect.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrBitmapTextGeoProc.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrColorTableEffect.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrDistanceFieldGeoProc.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrPerlinNoise2Effect.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: GrGradientShader.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
Unexecuted instantiation: StencilMaskHelper.cpp:as_PEB_sp(sk_sp<SkPathEffect>)
145
146
#endif