Flutter Engine
 
Loading...
Searching...
No Matches
flutter::DlSkCanvasAdapter Class Referencefinal

Backend implementation of |DlCanvas| for |SkCanvas|. More...

#include <dl_sk_canvas.h>

Inheritance diagram for flutter::DlSkCanvasAdapter:
flutter::DlCanvas

Public Member Functions

 DlSkCanvasAdapter ()
 
 DlSkCanvasAdapter (SkCanvas *canvas)
 
 ~DlSkCanvasAdapter () override=default
 
void set_canvas (SkCanvas *canvas)
 
SkCanvas * canvas ()
 
DlISize GetBaseLayerDimensions () const override
 
SkImageInfo GetImageInfo () const override
 
void Save () override
 
void SaveLayer (const std::optional< DlRect > &bounds, const DlPaint *paint=nullptr, const DlImageFilter *backdrop=nullptr, std::optional< int64_t > backdrop_id=std::nullopt) override
 
void Restore () override
 
int GetSaveCount () const override
 
void RestoreToCount (int restore_count) override
 
void Translate (DlScalar tx, DlScalar ty) override
 
void Scale (DlScalar sx, DlScalar sy) override
 
void Rotate (DlScalar degrees) override
 
void Skew (DlScalar sx, DlScalar sy) override
 
void Transform2DAffine (DlScalar mxx, DlScalar mxy, DlScalar mxt, DlScalar myx, DlScalar myy, DlScalar myt) override
 
void TransformFullPerspective (DlScalar mxx, DlScalar mxy, DlScalar mxz, DlScalar mxt, DlScalar myx, DlScalar myy, DlScalar myz, DlScalar myt, DlScalar mzx, DlScalar mzy, DlScalar mzz, DlScalar mzt, DlScalar mwx, DlScalar mwy, DlScalar mwz, DlScalar mwt) override
 
void TransformReset () override
 
void Transform (const DlMatrix &matrix) override
 
void SetTransform (const DlMatrix &matrix) override
 
DlMatrix GetMatrix () const override
 
void ClipRect (const DlRect &rect, DlClipOp clip_op, bool is_aa) override
 
void ClipOval (const DlRect &bounds, DlClipOp clip_op, bool is_aa) override
 
void ClipRoundRect (const DlRoundRect &rrect, DlClipOp clip_op, bool is_aa) override
 
void ClipRoundSuperellipse (const DlRoundSuperellipse &rse, DlClipOp clip_op, bool is_aa) override
 
void ClipPath (const DlPath &path, DlClipOp clip_op, bool is_aa) override
 
DlRect GetDestinationClipCoverage () const override
 
DlRect GetLocalClipCoverage () const override
 
bool QuickReject (const DlRect &bounds) const override
 
void DrawPaint (const DlPaint &paint) override
 
void DrawColor (DlColor color, DlBlendMode mode) override
 
void DrawLine (const DlPoint &p0, const DlPoint &p1, const DlPaint &paint) override
 
void DrawDashedLine (const DlPoint &p0, const DlPoint &p1, DlScalar on_length, DlScalar off_length, const DlPaint &paint) override
 
void DrawRect (const DlRect &rect, const DlPaint &paint) override
 
void DrawOval (const DlRect &bounds, const DlPaint &paint) override
 
void DrawCircle (const DlPoint &center, DlScalar radius, const DlPaint &paint) override
 
void DrawRoundRect (const DlRoundRect &rrect, const DlPaint &paint) override
 
void DrawDiffRoundRect (const DlRoundRect &outer, const DlRoundRect &inner, const DlPaint &paint) override
 
void DrawRoundSuperellipse (const DlRoundSuperellipse &rse, const DlPaint &paint) override
 
void DrawPath (const DlPath &path, const DlPaint &paint) override
 
void DrawArc (const DlRect &bounds, DlScalar start, DlScalar sweep, bool useCenter, const DlPaint &paint) override
 
void DrawPoints (DlPointMode mode, uint32_t count, const DlPoint pts[], const DlPaint &paint) override
 
void DrawVertices (const std::shared_ptr< DlVertices > &vertices, DlBlendMode mode, const DlPaint &paint) override
 
void DrawImage (const sk_sp< DlImage > &image, const DlPoint &point, DlImageSampling sampling, const DlPaint *paint=nullptr) override
 
void DrawImageRect (const sk_sp< DlImage > &image, const DlRect &src, const DlRect &dst, DlImageSampling sampling, const DlPaint *paint=nullptr, DlSrcRectConstraint constraint=DlSrcRectConstraint::kFast) override
 
void DrawImageNine (const sk_sp< DlImage > &image, const DlIRect &center, const DlRect &dst, DlFilterMode filter, const DlPaint *paint=nullptr) override
 
void DrawAtlas (const sk_sp< DlImage > &atlas, const DlRSTransform xform[], const DlRect tex[], const DlColor colors[], int count, DlBlendMode mode, DlImageSampling sampling, const DlRect *cullRect, const DlPaint *paint=nullptr) override
 
void DrawDisplayList (const sk_sp< DisplayList > display_list, DlScalar opacity=SK_Scalar1) override
 
void DrawText (const std::shared_ptr< DlText > &text, DlScalar x, DlScalar y, const DlPaint &paint) override
 
void DrawShadow (const DlPath &path, const DlColor color, const DlScalar elevation, bool transparent_occluder, DlScalar dpr) override
 Draws the shadow of the given |path| rendered in the provided |color| (which is only consulted for its opacity) as would be produced by a directional light source uniformly shining in the device space direction {0, -1, 1} against a backdrop which is |elevation * dpr| device coordinates below the |path| in the Z direction.
 
void Flush () override
 
- Public Member Functions inherited from flutter::DlCanvas
virtual ~DlCanvas ()=default
 
void Clear (DlColor color)
 
virtual void DrawImageRect (const sk_sp< DlImage > &image, const DlIRect &src, const DlRect &dst, DlImageSampling sampling, const DlPaint *paint=nullptr, DlSrcRectConstraint constraint=DlSrcRectConstraint::kFast)
 
void DrawImageRect (const sk_sp< DlImage > &image, const DlRect &dst, DlImageSampling sampling, const DlPaint *paint=nullptr, DlSrcRectConstraint constraint=DlSrcRectConstraint::kFast)
 

Additional Inherited Members

- Static Public Member Functions inherited from flutter::DlCanvas
static DlRect ComputeShadowBounds (const DlPath &path, float elevation, DlScalar dpr, const DlMatrix &ctm)
 Compute the local coverage for a |DrawShadow| operation using the given parameters (excluding the color and the transparent occluder parameters which do not affect the bounds).
 
- Static Public Attributes inherited from flutter::DlCanvas
static constexpr DlScalar kShadowLightHeight = 600
 
static constexpr DlScalar kShadowLightRadius = 800
 

Detailed Description

Backend implementation of |DlCanvas| for |SkCanvas|.

See also
DlCanvas

Definition at line 23 of file dl_sk_canvas.h.

Constructor & Destructor Documentation

◆ DlSkCanvasAdapter() [1/2]

flutter::DlSkCanvasAdapter::DlSkCanvasAdapter ( )
inline

Definition at line 25 of file dl_sk_canvas.h.

25: delegate_(nullptr) {}

◆ DlSkCanvasAdapter() [2/2]

flutter::DlSkCanvasAdapter::DlSkCanvasAdapter ( SkCanvas *  canvas)
inlineexplicit

Definition at line 26 of file dl_sk_canvas.h.

26: delegate_(canvas) {}

◆ ~DlSkCanvasAdapter()

flutter::DlSkCanvasAdapter::~DlSkCanvasAdapter ( )
overridedefault

Member Function Documentation

◆ canvas()

SkCanvas * flutter::DlSkCanvasAdapter::canvas ( )
inline

Definition at line 30 of file dl_sk_canvas.h.

30{ return delegate_; }

Referenced by set_canvas().

◆ ClipOval()

void flutter::DlSkCanvasAdapter::ClipOval ( const DlRect bounds,
DlClipOp  clip_op,
bool  is_aa 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 148 of file dl_sk_canvas.cc.

150 {
151 delegate_->clipRRect(SkRRect::MakeOval(ToSkRect(bounds)), ToSk(clip_op),
152 is_aa);
153}
SkPaint ToSk(const DlPaint &paint)
const SkRect & ToSkRect(const DlRect &rect)

References flutter::ToSk(), and flutter::ToSkRect().

◆ ClipPath()

void flutter::DlSkCanvasAdapter::ClipPath ( const DlPath path,
DlClipOp  clip_op,
bool  is_aa 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 168 of file dl_sk_canvas.cc.

170 {
171 path.WillRenderSkPath();
172 delegate_->clipPath(path.GetSkPath(), ToSk(clip_op), is_aa);
173}
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
Definition switch_defs.h:52

References flutter::path, and flutter::ToSk().

◆ ClipRect()

void flutter::DlSkCanvasAdapter::ClipRect ( const DlRect rect,
DlClipOp  clip_op,
bool  is_aa 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 142 of file dl_sk_canvas.cc.

144 {
145 delegate_->clipRect(ToSkRect(rect), ToSk(clip_op), is_aa);
146}

References flutter::ToSk(), and flutter::ToSkRect().

◆ ClipRoundRect()

void flutter::DlSkCanvasAdapter::ClipRoundRect ( const DlRoundRect rrect,
DlClipOp  clip_op,
bool  is_aa 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 155 of file dl_sk_canvas.cc.

157 {
158 delegate_->clipRRect(ToSkRRect(rrect), ToSk(clip_op), is_aa);
159}
const SkRRect ToSkRRect(const DlRoundRect &round_rect)

References flutter::ToSk(), and flutter::ToSkRRect().

◆ ClipRoundSuperellipse()

void flutter::DlSkCanvasAdapter::ClipRoundSuperellipse ( const DlRoundSuperellipse rse,
DlClipOp  clip_op,
bool  is_aa 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 161 of file dl_sk_canvas.cc.

163 {
164 // Skia doesn't support round superellipse, thus fall back to round rectangle.
165 delegate_->clipRRect(ToApproximateSkRRect(rse), ToSk(clip_op), is_aa);
166}
const SkRRect ToApproximateSkRRect(const DlRoundSuperellipse &rse)

References flutter::ToApproximateSkRRect(), and flutter::ToSk().

◆ DrawArc()

void flutter::DlSkCanvasAdapter::DrawArc ( const DlRect bounds,
DlScalar  start,
DlScalar  sweep,
bool  useCenter,
const DlPaint paint 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 257 of file dl_sk_canvas.cc.

261 {
262 delegate_->drawArc(ToSkRect(bounds), start, sweep, useCenter, ToSk(paint));
263}

References start, flutter::ToSk(), and flutter::ToSkRect().

◆ DrawAtlas()

void flutter::DlSkCanvasAdapter::DrawAtlas ( const sk_sp< DlImage > &  atlas,
const DlRSTransform  xform[],
const DlRect  tex[],
const DlColor  colors[],
int  count,
DlBlendMode  mode,
DlImageSampling  sampling,
const DlRect cullRect,
const DlPaint paint = nullptr 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 313 of file dl_sk_canvas.cc.

321 {
322 SkOptionalPaint sk_paint(paint);
323 sk_sp<SkImage> sk_image = atlas->skia_image();
324 std::vector<SkColor> sk_colors;
325 sk_colors.reserve(count);
326 for (int i = 0; i < count; ++i) {
327 sk_colors.push_back(colors[i].argb());
328 }
329 delegate_->drawAtlas(sk_image.get(), {ToSk(xform), count},
330 {ToSkRects(tex), count}, {sk_colors.data(), count},
331 ToSk(mode), ToSk(sampling), ToSkRect(cullRect),
332 sk_paint());
333}

References i, flutter::mode, flutter::ToSk(), and flutter::ToSkRect().

◆ DrawCircle()

void flutter::DlSkCanvasAdapter::DrawCircle ( const DlPoint center,
DlScalar  radius,
const DlPaint paint 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 229 of file dl_sk_canvas.cc.

231 {
232 delegate_->drawCircle(ToSkPoint(center), radius, ToSk(paint));
233}
const SkPoint & ToSkPoint(const DlPoint &point)

References flutter::ToSk(), and flutter::ToSkPoint().

◆ DrawColor()

void flutter::DlSkCanvasAdapter::DrawColor ( DlColor  color,
DlBlendMode  mode 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 200 of file dl_sk_canvas.cc.

200 {
201 delegate_->drawColor(ToSkColor4f(color), ToSk(mode));
202}
SkColor4f ToSkColor4f(DlColor color)

References flutter::mode, flutter::ToSk(), and flutter::ToSkColor4f().

◆ DrawDashedLine()

void flutter::DlSkCanvasAdapter::DrawDashedLine ( const DlPoint p0,
const DlPoint p1,
DlScalar  on_length,
DlScalar  off_length,
const DlPaint paint 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 210 of file dl_sk_canvas.cc.

214 {
215 SkPaint dashed_paint = ToStrokedSk(paint);
216 SkScalar intervals[2] = {on_length, off_length};
217 dashed_paint.setPathEffect(SkDashPathEffect::Make({intervals, 2}, 0.0f));
218 delegate_->drawLine(ToSkPoint(p0), ToSkPoint(p1), dashed_paint);
219}
SkPaint ToStrokedSk(const DlPaint &paint)

References flutter::ToSkPoint(), and flutter::ToStrokedSk().

◆ DrawDiffRoundRect()

void flutter::DlSkCanvasAdapter::DrawDiffRoundRect ( const DlRoundRect outer,
const DlRoundRect inner,
const DlPaint paint 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 240 of file dl_sk_canvas.cc.

242 {
243 delegate_->drawDRRect(ToSkRRect(outer), ToSkRRect(inner), ToSk(paint));
244}

References flutter::ToSk(), and flutter::ToSkRRect().

◆ DrawDisplayList()

void flutter::DlSkCanvasAdapter::DrawDisplayList ( const sk_sp< DisplayList display_list,
DlScalar  opacity = SK_Scalar1 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 335 of file dl_sk_canvas.cc.

336 {
337 const int restore_count = delegate_->getSaveCount();
338
339 // Figure out whether we can apply the opacity during dispatch or
340 // if we need a saveLayer.
341 if (opacity < SK_Scalar1 && !display_list->can_apply_group_opacity()) {
342 TRACE_EVENT0("flutter", "Canvas::saveLayer");
343 delegate_->saveLayerAlphaf(ToSkRect(&display_list->GetBounds()), opacity);
344 opacity = SK_Scalar1;
345 } else {
346 delegate_->save();
347 }
348
349 DlSkCanvasDispatcher dispatcher(delegate_, opacity);
350 if (display_list->has_rtree()) {
351 display_list->Dispatch(dispatcher,
352 ToDlRect(delegate_->getLocalClipBounds()));
353 } else {
354 display_list->Dispatch(dispatcher);
355 }
356
357 delegate_->restoreToCount(restore_count);
358}
const DlRect & ToDlRect(const SkRect &rect)
#define TRACE_EVENT0(category_group, name)

References flutter::ToDlRect(), flutter::ToSkRect(), and TRACE_EVENT0.

Referenced by flutter::SnapshotControllerSkia::MakeRasterSnapshotSync(), flutter::testing::DisplayListJobRenderer::Render(), and flutter::testing::TEST_F().

◆ DrawImage()

void flutter::DlSkCanvasAdapter::DrawImage ( const sk_sp< DlImage > &  image,
const DlPoint point,
DlImageSampling  sampling,
const DlPaint paint = nullptr 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 280 of file dl_sk_canvas.cc.

283 {
284 SkOptionalPaint sk_paint(paint);
285 sk_sp<SkImage> sk_image = image->skia_image();
286 delegate_->drawImage(sk_image.get(), point.x, point.y, ToSk(sampling),
287 sk_paint());
288}
FlutterVulkanImage * image

References image, flutter::ToSk(), impeller::TPoint< T >::x, and impeller::TPoint< T >::y.

◆ DrawImageNine()

void flutter::DlSkCanvasAdapter::DrawImageNine ( const sk_sp< DlImage > &  image,
const DlIRect center,
const DlRect dst,
DlFilterMode  filter,
const DlPaint paint = nullptr 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 302 of file dl_sk_canvas.cc.

306 {
307 SkOptionalPaint sk_paint(paint);
308 sk_sp<SkImage> sk_image = image->skia_image();
309 delegate_->drawImageNine(sk_image.get(), ToSkIRect(center), ToSkRect(dst),
310 ToSk(filter), sk_paint());
311}
const SkIRect & ToSkIRect(const DlIRect &rect)

References image, flutter::ToSk(), flutter::ToSkIRect(), and flutter::ToSkRect().

◆ DrawImageRect()

void flutter::DlSkCanvasAdapter::DrawImageRect ( const sk_sp< DlImage > &  image,
const DlRect src,
const DlRect dst,
DlImageSampling  sampling,
const DlPaint paint = nullptr,
DlSrcRectConstraint  constraint = DlSrcRectConstraint::kFast 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 290 of file dl_sk_canvas.cc.

295 {
296 SkOptionalPaint sk_paint(paint);
297 sk_sp<SkImage> sk_image = image->skia_image();
298 delegate_->drawImageRect(sk_image.get(), ToSkRect(src), ToSkRect(dst),
299 ToSk(sampling), sk_paint(), ToSk(constraint));
300}

References image, flutter::ToSk(), and flutter::ToSkRect().

◆ DrawLine()

void flutter::DlSkCanvasAdapter::DrawLine ( const DlPoint p0,
const DlPoint p1,
const DlPaint paint 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 204 of file dl_sk_canvas.cc.

206 {
207 delegate_->drawLine(ToSkPoint(p0), ToSkPoint(p1), ToStrokedSk(paint));
208}

References flutter::ToSkPoint(), and flutter::ToStrokedSk().

◆ DrawOval()

void flutter::DlSkCanvasAdapter::DrawOval ( const DlRect bounds,
const DlPaint paint 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 225 of file dl_sk_canvas.cc.

225 {
226 delegate_->drawOval(ToSkRect(bounds), ToSk(paint));
227}

References flutter::ToSk(), and flutter::ToSkRect().

◆ DrawPaint()

void flutter::DlSkCanvasAdapter::DrawPaint ( const DlPaint paint)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 196 of file dl_sk_canvas.cc.

196 {
197 delegate_->drawPaint(ToSk(paint));
198}

References flutter::ToSk().

◆ DrawPath()

void flutter::DlSkCanvasAdapter::DrawPath ( const DlPath path,
const DlPaint paint 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 252 of file dl_sk_canvas.cc.

252 {
253 path.WillRenderSkPath();
254 delegate_->drawPath(path.GetSkPath(), ToSk(paint));
255}

References flutter::path, and flutter::ToSk().

◆ DrawPoints()

void flutter::DlSkCanvasAdapter::DrawPoints ( DlPointMode  mode,
uint32_t  count,
const DlPoint  pts[],
const DlPaint paint 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 265 of file dl_sk_canvas.cc.

268 {
269 delegate_->drawPoints(ToSk(mode), {ToSkPoints(pts), count},
270 ToStrokedSk(paint));
271}
const SkPoint * ToSkPoints(const DlPoint *points)

References flutter::mode, flutter::ToSk(), flutter::ToSkPoints(), and flutter::ToStrokedSk().

◆ DrawRect()

void flutter::DlSkCanvasAdapter::DrawRect ( const DlRect rect,
const DlPaint paint 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 221 of file dl_sk_canvas.cc.

221 {
222 delegate_->drawRect(ToSkRect(rect), ToSk(paint));
223}

References flutter::ToSk(), and flutter::ToSkRect().

Referenced by flutter::testing::MakeTestImage().

◆ DrawRoundRect()

void flutter::DlSkCanvasAdapter::DrawRoundRect ( const DlRoundRect rrect,
const DlPaint paint 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 235 of file dl_sk_canvas.cc.

236 {
237 delegate_->drawRRect(ToSkRRect(rrect), ToSk(paint));
238}

References flutter::ToSk(), and flutter::ToSkRRect().

◆ DrawRoundSuperellipse()

void flutter::DlSkCanvasAdapter::DrawRoundSuperellipse ( const DlRoundSuperellipse rse,
const DlPaint paint 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 246 of file dl_sk_canvas.cc.

247 {
248 // Skia doesn't support round superellipse, thus fall back to round rectangle.
249 delegate_->drawRRect(ToApproximateSkRRect(rse), ToSk(paint));
250}

References flutter::ToApproximateSkRRect(), and flutter::ToSk().

◆ DrawShadow()

void flutter::DlSkCanvasAdapter::DrawShadow ( const DlPath path,
const DlColor  color,
const DlScalar  elevation,
bool  transparent_occluder,
DlScalar  dpr 
)
overridevirtual

Draws the shadow of the given |path| rendered in the provided |color| (which is only consulted for its opacity) as would be produced by a directional light source uniformly shining in the device space direction {0, -1, 1} against a backdrop which is |elevation * dpr| device coordinates below the |path| in the Z direction.

Normally the renderer might consider omitting the rendering of any of the shadow pixels that fall under the |path| itself, as an optimization, unless the |transparent_occluder| flag is specified which would indicate that the optimization isn't appropriate.

Note that the |elevation| and |dpr| are unique in the API for being considered in pure device coordinates while the |path| is interpreted relative to the current local-to-device transform.

See also
|ComputeShadowBounds|

Implements flutter::DlCanvas.

Definition at line 369 of file dl_sk_canvas.cc.

373 {
374 path.WillRenderSkPath();
375 DlSkCanvasDispatcher::DrawShadow(delegate_, path.GetSkPath(), color,
376 elevation, transparent_occluder, dpr);
377}
static void DrawShadow(SkCanvas *canvas, const SkPath &path, DlColor color, float elevation, bool transparentOccluder, DlScalar dpr)

References flutter::DlSkCanvasDispatcher::DrawShadow(), and flutter::path.

◆ DrawText()

void flutter::DlSkCanvasAdapter::DrawText ( const std::shared_ptr< DlText > &  text,
DlScalar  x,
DlScalar  y,
const DlPaint paint 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 360 of file dl_sk_canvas.cc.

363 {
364 auto blob = text->GetTextBlob();
365 FML_CHECK(blob) << "Impeller DlText cannot be drawn to a Skia canvas.";
366 delegate_->drawTextBlob(blob, x, y, ToSk(paint));
367}
int32_t x
#define FML_CHECK(condition)
Definition logging.h:104
std::u16string text
double y

References FML_CHECK, text, flutter::ToSk(), x, and y.

◆ DrawVertices()

void flutter::DlSkCanvasAdapter::DrawVertices ( const std::shared_ptr< DlVertices > &  vertices,
DlBlendMode  mode,
const DlPaint paint 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 273 of file dl_sk_canvas.cc.

276 {
277 delegate_->drawVertices(ToSk(vertices), ToSk(mode), ToSk(paint));
278}

References flutter::mode, and flutter::ToSk().

◆ Flush()

void flutter::DlSkCanvasAdapter::Flush ( )
overridevirtual

Implements flutter::DlCanvas.

Definition at line 379 of file dl_sk_canvas.cc.

379 {
380#if defined(SK_GANESH)
381 auto dContext = GrAsDirectContext(delegate_->recordingContext());
382
383 if (dContext) {
384 dContext->flushAndSubmit();
385 }
386#endif // defined(SK_GANESH)
387}

Referenced by flutter::EmbedderExternalView::Render().

◆ GetBaseLayerDimensions()

DlISize flutter::DlSkCanvasAdapter::GetBaseLayerDimensions ( ) const
overridevirtual

Implements flutter::DlCanvas.

Definition at line 45 of file dl_sk_canvas.cc.

45 {
46 return ToDlISize(delegate_->getBaseLayerSize());
47}
const DlISize & ToDlISize(const SkISize &size)

References flutter::ToDlISize().

◆ GetDestinationClipCoverage()

DlRect flutter::DlSkCanvasAdapter::GetDestinationClipCoverage ( ) const
overridevirtual

Conservative estimate of the bounds of all outstanding clip operations measured in the coordinate space within which this DisplayList will be rendered.

Implements flutter::DlCanvas.

Definition at line 178 of file dl_sk_canvas.cc.

178 {
179 return ToDlRect(delegate_->getDeviceClipBounds());
180}

References flutter::ToDlRect().

◆ GetImageInfo()

SkImageInfo flutter::DlSkCanvasAdapter::GetImageInfo ( ) const
overridevirtual

Implements flutter::DlCanvas.

Definition at line 49 of file dl_sk_canvas.cc.

49 {
50 return delegate_->imageInfo();
51}

◆ GetLocalClipCoverage()

DlRect flutter::DlSkCanvasAdapter::GetLocalClipCoverage ( ) const
overridevirtual

Conservative estimate of the bounds of all outstanding clip operations transformed into the local coordinate space in which currently recorded rendering operations are interpreted.

Implements flutter::DlCanvas.

Definition at line 185 of file dl_sk_canvas.cc.

185 {
186 return ToDlRect(delegate_->getLocalClipBounds());
187}

References flutter::ToDlRect().

◆ GetMatrix()

DlMatrix flutter::DlSkCanvasAdapter::GetMatrix ( ) const
overridevirtual

Returns the 4x4 full perspective transform representing all transform operations executed so far in this DisplayList within the enclosing save stack.

Implements flutter::DlCanvas.

Definition at line 138 of file dl_sk_canvas.cc.

138 {
139 return ToDlMatrix(delegate_->getLocalToDevice());
140}
DlMatrix ToDlMatrix(const SkMatrix &matrix)

References flutter::ToDlMatrix().

◆ GetSaveCount()

int flutter::DlSkCanvasAdapter::GetSaveCount ( ) const
overridevirtual

Implements flutter::DlCanvas.

Definition at line 76 of file dl_sk_canvas.cc.

76 {
77 return delegate_->getSaveCount();
78}

Referenced by flutter::EmbedderExternalView::Render().

◆ QuickReject()

bool flutter::DlSkCanvasAdapter::QuickReject ( const DlRect bounds) const
overridevirtual

Return true iff the supplied bounds are easily shown to be outside of the current clip bounds. This method may conservatively return false if it cannot make the determination.

Implements flutter::DlCanvas.

Definition at line 192 of file dl_sk_canvas.cc.

192 {
193 return delegate_->quickReject(ToSkRect(bounds));
194}

References flutter::ToSkRect().

◆ Restore()

void flutter::DlSkCanvasAdapter::Restore ( )
overridevirtual

Implements flutter::DlCanvas.

Definition at line 72 of file dl_sk_canvas.cc.

72 {
73 delegate_->restore();
74}

◆ RestoreToCount()

void flutter::DlSkCanvasAdapter::RestoreToCount ( int  restore_count)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 80 of file dl_sk_canvas.cc.

80 {
81 delegate_->restoreToCount(restore_count);
82}

Referenced by flutter::EmbedderExternalView::Render().

◆ Rotate()

void flutter::DlSkCanvasAdapter::Rotate ( DlScalar  degrees)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 92 of file dl_sk_canvas.cc.

92 {
93 delegate_->rotate(degrees);
94}

◆ Save()

void flutter::DlSkCanvasAdapter::Save ( )
overridevirtual

Implements flutter::DlCanvas.

Definition at line 53 of file dl_sk_canvas.cc.

53 {
54 delegate_->save();
55}

◆ SaveLayer()

void flutter::DlSkCanvasAdapter::SaveLayer ( const std::optional< DlRect > &  bounds,
const DlPaint paint = nullptr,
const DlImageFilter backdrop = nullptr,
std::optional< int64_t >  backdrop_id = std::nullopt 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 57 of file dl_sk_canvas.cc.

60 {
61 sk_sp<SkImageFilter> sk_backdrop = ToSk(backdrop);
62 SkOptionalPaint sk_paint(paint);
63 TRACE_EVENT0("flutter", "Canvas::saveLayer");
64 SkCanvas::SaveLayerRec params(ToSkRect(bounds), sk_paint(), sk_backdrop.get(),
65 0);
66 if (sk_backdrop && backdrop->asBlur()) {
67 params.fBackdropTileMode = ToSk(backdrop->asBlur()->tile_mode());
68 }
69 delegate_->saveLayer(params);
70}
const EmbeddedViewParams * params

References flutter::DlImageFilter::asBlur(), params, flutter::DlBlurImageFilter::tile_mode(), flutter::ToSk(), flutter::ToSkRect(), and TRACE_EVENT0.

◆ Scale()

void flutter::DlSkCanvasAdapter::Scale ( DlScalar  sx,
DlScalar  sy 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 88 of file dl_sk_canvas.cc.

88 {
89 delegate_->scale(sx, sy);
90}

◆ set_canvas()

void flutter::DlSkCanvasAdapter::set_canvas ( SkCanvas *  canvas)

◆ SetTransform()

void flutter::DlSkCanvasAdapter::SetTransform ( const DlMatrix matrix)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 131 of file dl_sk_canvas.cc.

131 {
132 delegate_->setMatrix(ToSkM44(matrix));
133}
SkM44 ToSkM44(const DlMatrix &matrix)

References flutter::ToSkM44().

Referenced by flutter::EmbedderExternalView::Render().

◆ Skew()

void flutter::DlSkCanvasAdapter::Skew ( DlScalar  sx,
DlScalar  sy 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 96 of file dl_sk_canvas.cc.

96 {
97 delegate_->skew(sx, sy);
98}

◆ Transform()

void flutter::DlSkCanvasAdapter::Transform ( const DlMatrix matrix)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 127 of file dl_sk_canvas.cc.

127 {
128 delegate_->concat(ToSkM44(matrix));
129}

References flutter::ToSkM44().

Referenced by flutter::RasterCache::Rasterize().

◆ Transform2DAffine()

void flutter::DlSkCanvasAdapter::Transform2DAffine ( DlScalar  mxx,
DlScalar  mxy,
DlScalar  mxt,
DlScalar  myx,
DlScalar  myy,
DlScalar  myt 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 103 of file dl_sk_canvas.cc.

105 {
106 delegate_->concat(SkMatrix::MakeAll(mxx, mxy, mxt, myx, myy, myt, 0, 0, 1));
107}

◆ TransformFullPerspective()

void flutter::DlSkCanvasAdapter::TransformFullPerspective ( DlScalar  mxx,
DlScalar  mxy,
DlScalar  mxz,
DlScalar  mxt,
DlScalar  myx,
DlScalar  myy,
DlScalar  myz,
DlScalar  myt,
DlScalar  mzx,
DlScalar  mzy,
DlScalar  mzz,
DlScalar  mzt,
DlScalar  mwx,
DlScalar  mwy,
DlScalar  mwz,
DlScalar  mwt 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 110 of file dl_sk_canvas.cc.

114 {
115 delegate_->concat(SkM44(mxx, mxy, mxz, mxt,
116 myx, myy, myz, myt,
117 mzx, mzy, mzz, mzt,
118 mwx, mwy, mwz, mwt));
119}

◆ TransformReset()

void flutter::DlSkCanvasAdapter::TransformReset ( )
overridevirtual

Implements flutter::DlCanvas.

Definition at line 123 of file dl_sk_canvas.cc.

123 {
124 delegate_->resetMatrix();
125}

◆ Translate()

void flutter::DlSkCanvasAdapter::Translate ( DlScalar  tx,
DlScalar  ty 
)
overridevirtual

Implements flutter::DlCanvas.

Definition at line 84 of file dl_sk_canvas.cc.

84 {
85 delegate_->translate(tx, ty);
86}

Referenced by flutter::RasterCache::Rasterize().


The documentation for this class was generated from the following files: