58class DidDrawCanvas final :
public SkCanvasVirtualEnforcer<SkNoDrawCanvas> {
65 bool did_draw_ =
false;
68 void willSave()
override;
71 SaveLayerStrategy getSaveLayerStrategy(
const SaveLayerRec&)
override;
74 bool onDoSaveBehind(
const SkRect*)
override;
77 void willRestore()
override;
80 void didConcat44(
const SkM44&)
override;
81 void didScale(SkScalar, SkScalar)
override;
82 void didTranslate(SkScalar, SkScalar)
override;
85 void onDrawDRRect(
const SkRRect&,
const SkRRect&,
const SkPaint&)
override;
88 virtual void onDrawTextBlob(
const SkTextBlob* blob,
91 const SkPaint& paint)
override;
93 virtual void onDrawPatch(
const SkPoint cubics[12],
94 const SkColor colors[4],
95 const SkPoint texCoords[4],
97 const SkPaint& paint)
override;
100 void onDrawPaint(
const SkPaint&)
override;
103 void onDrawBehind(
const SkPaint&)
override;
106 void onDrawPoints(PointMode,
109 const SkPaint&)
override;
112 void onDrawRect(
const SkRect&,
const SkPaint&)
override;
115 void onDrawRegion(
const SkRegion&,
const SkPaint&)
override;
118 void onDrawOval(
const SkRect&,
const SkPaint&)
override;
121 void onDrawArc(
const SkRect&,
125 const SkPaint&)
override;
128 void onDrawRRect(
const SkRRect&,
const SkPaint&)
override;
131 void onDrawPath(
const SkPath&,
const SkPaint&)
override;
133#ifdef SK_SUPPORT_LEGACY_ONDRAWIMAGERECT
135 void onDrawImage(
const SkImage*,
138 const SkPaint*)
override;
141 void onDrawImageRect(
const SkImage*,
145 SrcRectConstraint)
override;
148 void onDrawImageLattice(
const SkImage*,
151 const SkPaint*)
override;
154 void onDrawAtlas(
const SkImage*,
161 const SkPaint*)
override;
163 void onDrawEdgeAAImageSet(
const ImageSetEntry[],
168 SrcRectConstraint)
override;
172 void onDrawImage2(
const SkImage*,
175 const SkSamplingOptions&,
176 const SkPaint*)
override;
179 void onDrawImageRect2(
const SkImage*,
182 const SkSamplingOptions&,
184 SrcRectConstraint)
override;
187 void onDrawImageLattice2(
const SkImage*,
191 const SkPaint*)
override;
194 void onDrawVerticesObject(
const SkVertices*,
196 const SkPaint&)
override;
199 void onDrawAtlas2(
const SkImage*,
205 const SkSamplingOptions&,
207 const SkPaint*)
override;
210 void onDrawShadowRec(
const SkPath&,
const SkDrawShadowRec&)
override;
213 void onClipRect(
const SkRect&, SkClipOp, ClipEdgeStyle)
override;
216 void onClipRRect(
const SkRRect&, SkClipOp, ClipEdgeStyle)
override;
219 void onClipPath(
const SkPath&, SkClipOp, ClipEdgeStyle)
override;
222 void onClipRegion(
const SkRegion&, SkClipOp)
override;
225 void onDrawPicture(
const SkPicture*,
227 const SkPaint*)
override;
230 void onDrawDrawable(SkDrawable*,
const SkMatrix*)
override;
233 void onDrawAnnotation(
const SkRect&,
const char[], SkData*)
override;
236 void onDrawEdgeAAQuad(
const SkRect&,
238 SkCanvas::QuadAAFlags,
240 SkBlendMode)
override;
243 void onDrawEdgeAAImageSet2(
const ImageSetEntry[],
247 const SkSamplingOptions&,
249 SrcRectConstraint)
override;
251 void MarkDrawIfNonTransparentPaint(
const SkPaint& paint);