5#include "flutter/shell/platform/fuchsia/flutter/canvas_spy.h"
12 std::make_unique<SkNWayCanvas>(canvas_size.
width(), canvas_size.
height());
13 did_draw_canvas_ = std::make_unique<DidDrawCanvas>(canvas_size.
width(),
15 n_way_canvas_->addCanvas(target_canvas);
16 n_way_canvas_->addCanvas(did_draw_canvas_.get());
25 return n_way_canvas_.get();
33void DidDrawCanvas::MarkDrawIfNonTransparentPaint(
const SkPaint&
paint) {
34 bool isTransparent =
paint.getAlpha() == 0;
35 did_draw_ |= !isTransparent;
39 return did_draw_canvas_->DidDrawIntoCanvas();
80 MarkDrawIfNonTransparentPaint(
paint);
84 MarkDrawIfNonTransparentPaint(
paint);
91 MarkDrawIfNonTransparentPaint(
paint);
95 MarkDrawIfNonTransparentPaint(
paint);
99 MarkDrawIfNonTransparentPaint(
paint);
103 MarkDrawIfNonTransparentPaint(
paint);
111 MarkDrawIfNonTransparentPaint(
paint);
115 MarkDrawIfNonTransparentPaint(
paint);
121 MarkDrawIfNonTransparentPaint(
paint);
125 MarkDrawIfNonTransparentPaint(
paint);
128#ifdef SK_SUPPORT_LEGACY_ONDRAWIMAGERECT
136void DidDrawCanvas::onDrawImageRect(
const SkImage*
image,
140 SrcRectConstraint constraint) {
144void DidDrawCanvas::onDrawImageLattice(
const SkImage*
image,
145 const Lattice& lattice,
162void DidDrawCanvas::onDrawEdgeAAImageSet(
const ImageSetEntry set[],
167 SrcRectConstraint constraint) {
201 MarkDrawIfNonTransparentPaint(
paint);
218 MarkDrawIfNonTransparentPaint(
paint);
226 MarkDrawIfNonTransparentPaint(
paint);
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
static bool left(const SkPoint &p0, const SkPoint &p1)
virtual SkISize getBaseLayerSize() const
@ kNoLayer_SaveLayerStrategy
SkCanvas * GetRawSpyingCanvas()
The underlying Skia canvas that implements the spying (mainly for testing)
CanvasSpy(SkCanvas *target_canvas)
bool DidDrawIntoCanvas()
Returns true if any non transparent content has been drawn into the spying canvas....
DlCanvas * GetSpyingCanvas()
The returned canvas delegate all operations to the target canvas while spying on them.
void onDrawBehind(const SkPaint &) override
void onDrawDRRect(const SkRRect &, const SkRRect &, const SkPaint &) override
void onClipRect(const SkRect &, SkClipOp, ClipEdgeStyle) override
void onClipRRect(const SkRRect &, SkClipOp, ClipEdgeStyle) override
void onClipPath(const SkPath &, SkClipOp, ClipEdgeStyle) override
void onDrawPath(const SkPath &, const SkPaint &) override
virtual void onDrawTextBlob(const SkTextBlob *blob, SkScalar x, SkScalar y, const SkPaint &paint) override
void onDrawAnnotation(const SkRect &, const char[], SkData *) override
void willRestore() override
void onDrawImageLattice2(const SkImage *, const Lattice &, const SkRect &, SkFilterMode, const SkPaint *) override
void onDrawDrawable(SkDrawable *, const SkMatrix *) override
DidDrawCanvas(int width, int height)
void onDrawImage2(const SkImage *, SkScalar left, SkScalar top, const SkSamplingOptions &, const SkPaint *) override
void onDrawOval(const SkRect &, const SkPaint &) override
void didConcat44(const SkM44 &) override
~DidDrawCanvas() override
void onClipRegion(const SkRegion &, SkClipOp) override
bool onDoSaveBehind(const SkRect *) override
void onDrawAtlas2(const SkImage *, const SkRSXform[], const SkRect[], const SkColor[], int, SkBlendMode, const SkSamplingOptions &, const SkRect *, const SkPaint *) override
SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec &) override
void onDrawImageRect2(const SkImage *, const SkRect &src, const SkRect &dst, const SkSamplingOptions &, const SkPaint *, SrcRectConstraint) override
void onDrawRegion(const SkRegion &, const SkPaint &) override
void onDrawShadowRec(const SkPath &, const SkDrawShadowRec &) override
virtual void onDrawPatch(const SkPoint cubics[12], const SkColor colors[4], const SkPoint texCoords[4], SkBlendMode, const SkPaint &paint) override
void didTranslate(SkScalar, SkScalar) override
void onDrawPaint(const SkPaint &) override
void onDrawRRect(const SkRRect &, const SkPaint &) override
void didScale(SkScalar, SkScalar) override
void onDrawArc(const SkRect &, SkScalar, SkScalar, bool, const SkPaint &) override
void onDrawEdgeAAQuad(const SkRect &, const SkPoint[4], SkCanvas::QuadAAFlags, const SkColor4f &, SkBlendMode) override
void onDrawEdgeAAImageSet2(const ImageSetEntry[], int count, const SkPoint[], const SkMatrix[], const SkSamplingOptions &, const SkPaint *, SrcRectConstraint) override
void onDrawVerticesObject(const SkVertices *, SkBlendMode, const SkPaint &) override
void onDrawPoints(PointMode, size_t count, const SkPoint pts[], const SkPaint &) override
void onDrawPicture(const SkPicture *, const SkMatrix *, const SkPaint *) override
void onDrawRect(const SkRect &, const SkPaint &) override
Developer-facing API for rendering anything within the engine.
void set_canvas(SkCanvas *canvas)
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot data
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive mode
constexpr int32_t width() const
constexpr int32_t height() const