Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
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

◆ ClipOval()

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

Implements flutter::DlCanvas.

Definition at line 149 of file dl_sk_canvas.cc.

151 {
152 delegate_->clipRRect(SkRRect::MakeOval(ToSkRect(bounds)), ToSk(clip_op),
153 is_aa);
154}
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 169 of file dl_sk_canvas.cc.

171 {
172 path.WillRenderSkPath();
173 delegate_->clipPath(path.GetSkPath(), ToSk(clip_op), is_aa);
174}
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 143 of file dl_sk_canvas.cc.

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

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 156 of file dl_sk_canvas.cc.

158 {
159 delegate_->clipRRect(ToSkRRect(rrect), ToSk(clip_op), is_aa);
160}
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 162 of file dl_sk_canvas.cc.

164 {
165 // Skia doesn't support round superellipse, thus fall back to round rectangle.
166 delegate_->clipRRect(ToApproximateSkRRect(rse), ToSk(clip_op), is_aa);
167}
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 258 of file dl_sk_canvas.cc.

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

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 321 of file dl_sk_canvas.cc.

329 {
330 SkOptionalPaint sk_paint(paint);
331 FML_DCHECK(atlas);
332 auto skia_atlas = atlas->asSkiaImage();
333 FML_DCHECK(skia_atlas);
334 std::vector<SkColor> sk_colors;
335 sk_colors.reserve(count);
336 for (int i = 0; i < count; ++i) {
337 sk_colors.push_back(colors[i].argb());
338 }
339 delegate_->drawAtlas(skia_atlas->skia_image().get(), {ToSk(xform), count},
340 {ToSkRects(tex), count}, {sk_colors.data(), count},
341 ToSk(mode), ToSk(sampling), ToSkRect(cullRect),
342 sk_paint());
343}
#define FML_DCHECK(condition)
Definition logging.h:122

References FML_DCHECK, 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 230 of file dl_sk_canvas.cc.

232 {
233 delegate_->drawCircle(ToSkPoint(center), radius, ToSk(paint));
234}
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 201 of file dl_sk_canvas.cc.

201 {
202 delegate_->drawColor(ToSkColor4f(color), ToSk(mode));
203}
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 211 of file dl_sk_canvas.cc.

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

References p1, 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 241 of file dl_sk_canvas.cc.

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

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 345 of file dl_sk_canvas.cc.

346 {
347 const int restore_count = delegate_->getSaveCount();
348
349 // Figure out whether we can apply the opacity during dispatch or
350 // if we need a saveLayer.
351 if (opacity < SK_Scalar1 && !display_list->can_apply_group_opacity()) {
352 TRACE_EVENT0("flutter", "Canvas::saveLayer");
353 delegate_->saveLayerAlphaf(ToSkRect(&display_list->GetBounds()), opacity);
354 opacity = SK_Scalar1;
355 } else {
356 delegate_->save();
357 }
358
359 DlSkCanvasDispatcher dispatcher(delegate_, opacity);
360 if (display_list->has_rtree()) {
361 display_list->Dispatch(dispatcher,
362 ToDlRect(delegate_->getLocalClipBounds()));
363 } else {
364 display_list->Dispatch(dispatcher);
365 }
366
367 delegate_->restoreToCount(restore_count);
368}
const DlRect & ToDlRect(const SkRect &rect)
#define TRACE_EVENT0(category_group, name)

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

Referenced by flutter::SnapshotControllerSkia::MakeSkiaSnapshotSync().

◆ 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 281 of file dl_sk_canvas.cc.

284 {
285 SkOptionalPaint sk_paint(paint);
287 auto skia_image = image->asSkiaImage();
288 FML_DCHECK(skia_image);
289 delegate_->drawImage(skia_image->skia_image().get(), point.x, point.y,
290 ToSk(sampling), sk_paint());
291}
FlutterVulkanImage * image

References FML_DCHECK, 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 308 of file dl_sk_canvas.cc.

312 {
313 SkOptionalPaint sk_paint(paint);
315 auto skia_image = image->asSkiaImage();
316 FML_DCHECK(skia_image);
317 delegate_->drawImageNine(skia_image->skia_image().get(), ToSkIRect(center),
318 ToSkRect(dst), ToSk(filter), sk_paint());
319}
const SkIRect & ToSkIRect(const DlIRect &rect)

References FML_DCHECK, 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 293 of file dl_sk_canvas.cc.

298 {
299 SkOptionalPaint sk_paint(paint);
301 auto skia_image = image->asSkiaImage();
302 FML_DCHECK(skia_image);
303 delegate_->drawImageRect(skia_image->skia_image().get(), ToSkRect(src),
304 ToSkRect(dst), ToSk(sampling), sk_paint(),
305 ToSk(constraint));
306}

References FML_DCHECK, 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 205 of file dl_sk_canvas.cc.

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

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

◆ DrawOval()

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

Implements flutter::DlCanvas.

Definition at line 226 of file dl_sk_canvas.cc.

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

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

◆ DrawPaint()

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

Implements flutter::DlCanvas.

Definition at line 197 of file dl_sk_canvas.cc.

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

References flutter::ToSk().

◆ DrawPath()

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

Implements flutter::DlCanvas.

Definition at line 253 of file dl_sk_canvas.cc.

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

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 266 of file dl_sk_canvas.cc.

269 {
270 delegate_->drawPoints(ToSk(mode), {ToSkPoints(pts), count},
271 ToStrokedSk(paint));
272}
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 222 of file dl_sk_canvas.cc.

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

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 236 of file dl_sk_canvas.cc.

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

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

◆ DrawRoundSuperellipse()

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

Implements flutter::DlCanvas.

Definition at line 247 of file dl_sk_canvas.cc.

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

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 379 of file dl_sk_canvas.cc.

383 {
384 path.WillRenderSkPath();
385 DlSkCanvasDispatcher::DrawShadow(delegate_, path.GetSkPath(), color,
386 elevation, transparent_occluder, dpr);
387}
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 370 of file dl_sk_canvas.cc.

373 {
374 auto blob = text->GetTextBlob();
375 FML_CHECK(blob) << "Impeller DlText cannot be drawn to a Skia canvas.";
376 delegate_->drawTextBlob(blob, x, y, ToSk(paint));
377}
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 274 of file dl_sk_canvas.cc.

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

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

◆ Flush()

void flutter::DlSkCanvasAdapter::Flush ( )
overridevirtual

Implements flutter::DlCanvas.

Definition at line 389 of file dl_sk_canvas.cc.

389 {
390#if defined(SK_GANESH)
391 auto dContext = GrAsDirectContext(delegate_->recordingContext());
392
393 if (dContext) {
394 dContext->flushAndSubmit();
395 }
396#endif // defined(SK_GANESH)
397}

◆ GetBaseLayerDimensions()

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

Implements flutter::DlCanvas.

Definition at line 46 of file dl_sk_canvas.cc.

46 {
47 return ToDlISize(delegate_->getBaseLayerSize());
48}
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 179 of file dl_sk_canvas.cc.

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

References flutter::ToDlRect().

◆ GetImageInfo()

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

Implements flutter::DlCanvas.

Definition at line 50 of file dl_sk_canvas.cc.

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

◆ 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 186 of file dl_sk_canvas.cc.

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

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 139 of file dl_sk_canvas.cc.

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

References flutter::ToDlMatrix().

◆ GetSaveCount()

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

Implements flutter::DlCanvas.

Definition at line 77 of file dl_sk_canvas.cc.

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

◆ 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 193 of file dl_sk_canvas.cc.

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

References flutter::ToSkRect().

◆ Restore()

void flutter::DlSkCanvasAdapter::Restore ( )
overridevirtual

Implements flutter::DlCanvas.

Definition at line 73 of file dl_sk_canvas.cc.

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

◆ RestoreToCount()

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

Implements flutter::DlCanvas.

Definition at line 81 of file dl_sk_canvas.cc.

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

◆ Rotate()

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

Implements flutter::DlCanvas.

Definition at line 93 of file dl_sk_canvas.cc.

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

◆ Save()

void flutter::DlSkCanvasAdapter::Save ( )
overridevirtual

Implements flutter::DlCanvas.

Definition at line 54 of file dl_sk_canvas.cc.

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

◆ 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 58 of file dl_sk_canvas.cc.

61 {
62 sk_sp<SkImageFilter> sk_backdrop = ToSk(backdrop);
63 SkOptionalPaint sk_paint(paint);
64 TRACE_EVENT0("flutter", "Canvas::saveLayer");
65 SkCanvas::SaveLayerRec params(ToSkRect(bounds), sk_paint(), sk_backdrop.get(),
66 0);
67 if (sk_backdrop && backdrop->asBlur()) {
68 params.fBackdropTileMode = ToSk(backdrop->asBlur()->tile_mode());
69 }
70 delegate_->saveLayer(params);
71}
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 89 of file dl_sk_canvas.cc.

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

◆ set_canvas()

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

◆ SetTransform()

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

Implements flutter::DlCanvas.

Definition at line 132 of file dl_sk_canvas.cc.

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

References flutter::ToSkM44().

◆ Skew()

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

Implements flutter::DlCanvas.

Definition at line 97 of file dl_sk_canvas.cc.

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

◆ Transform()

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

Implements flutter::DlCanvas.

Definition at line 128 of file dl_sk_canvas.cc.

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

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 104 of file dl_sk_canvas.cc.

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

◆ 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 111 of file dl_sk_canvas.cc.

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

◆ TransformReset()

void flutter::DlSkCanvasAdapter::TransformReset ( )
overridevirtual

Implements flutter::DlCanvas.

Definition at line 124 of file dl_sk_canvas.cc.

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

◆ Translate()

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

Implements flutter::DlCanvas.

Definition at line 85 of file dl_sk_canvas.cc.

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

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


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