Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
impeller::TextFrameDispatcher Class Reference

Performs a first pass over the display list to collect all text frames. More...

#include <dl_dispatcher.h>

Inheritance diagram for impeller::TextFrameDispatcher:
flutter::IgnoreAttributeDispatchHelper flutter::IgnoreClipDispatchHelper flutter::IgnoreDrawDispatchHelper flutter::DlOpReceiver flutter::DlOpReceiver flutter::DlOpReceiver

Public Member Functions

 TextFrameDispatcher (const ContentContext &renderer, const Matrix &initial_matrix)
 
void save () override
 
void saveLayer (const SkRect &bounds, const flutter::SaveLayerOptions options, const flutter::DlImageFilter *backdrop) override
 
void restore () override
 
void translate (SkScalar tx, SkScalar ty) override
 
void scale (SkScalar sx, SkScalar sy) override
 
void rotate (SkScalar degrees) override
 
void skew (SkScalar sx, SkScalar sy) override
 
void transform2DAffine (SkScalar mxx, SkScalar mxy, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myt) override
 
void transformFullPerspective (SkScalar mxx, SkScalar mxy, SkScalar mxz, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myz, SkScalar myt, SkScalar mzx, SkScalar mzy, SkScalar mzz, SkScalar mzt, SkScalar mwx, SkScalar mwy, SkScalar mwz, SkScalar mwt) override
 
void transformReset () override
 
void drawTextFrame (const std::shared_ptr< impeller::TextFrame > &text_frame, SkScalar x, SkScalar y) override
 
void drawDisplayList (const sk_sp< flutter::DisplayList > display_list, SkScalar opacity) override
 
- Public Member Functions inherited from flutter::IgnoreAttributeDispatchHelper
void setAntiAlias (bool aa) override
 
void setInvertColors (bool invert) override
 
void setStrokeCap (DlStrokeCap cap) override
 
void setStrokeJoin (DlStrokeJoin join) override
 
void setDrawStyle (DlDrawStyle style) override
 
void setStrokeWidth (float width) override
 
void setStrokeMiter (float limit) override
 
void setColor (DlColor color) override
 
void setBlendMode (DlBlendMode mode) override
 
void setColorSource (const DlColorSource *source) override
 
void setImageFilter (const DlImageFilter *filter) override
 
void setColorFilter (const DlColorFilter *filter) override
 
void setPathEffect (const DlPathEffect *effect) override
 
void setMaskFilter (const DlMaskFilter *filter) override
 
- Public Member Functions inherited from flutter::DlOpReceiver
virtual bool PrefersImpellerPaths () const
 
virtual void clipPath (const CacheablePath &cache, ClipOp clip_op, bool is_aa)
 
virtual void drawPath (const CacheablePath &cache)
 
virtual void drawShadow (const CacheablePath &cache, const DlColor color, const SkScalar elevation, bool transparent_occluder, SkScalar dpr)
 
virtual void save (uint32_t total_content_depth)
 
virtual void saveLayer (const SkRect &bounds, const SaveLayerOptions &options, uint32_t total_content_depth, const DlImageFilter *backdrop=nullptr)
 
virtual void saveLayer (const SkRect *bounds, const SaveLayerOptions options, const DlImageFilter *backdrop=nullptr) final
 
- Public Member Functions inherited from flutter::IgnoreDrawDispatchHelper
void drawColor (DlColor color, DlBlendMode mode) override
 
void drawPaint () override
 
void drawLine (const SkPoint &p0, const SkPoint &p1) override
 
void drawRect (const SkRect &rect) override
 
void drawOval (const SkRect &bounds) override
 
void drawCircle (const SkPoint &center, SkScalar radius) override
 
void drawRRect (const SkRRect &rrect) override
 
void drawDRRect (const SkRRect &outer, const SkRRect &inner) override
 
void drawPath (const SkPath &path) override
 
void drawArc (const SkRect &oval_bounds, SkScalar start_degrees, SkScalar sweep_degrees, bool use_center) override
 
void drawPoints (DlCanvas::PointMode mode, uint32_t count, const SkPoint points[]) override
 
void drawVertices (const DlVertices *vertices, DlBlendMode mode) override
 
void drawImage (const sk_sp< DlImage > image, const SkPoint point, DlImageSampling sampling, bool render_with_attributes) override
 
void drawImageRect (const sk_sp< DlImage > image, const SkRect &src, const SkRect &dst, DlImageSampling sampling, bool render_with_attributes, SrcRectConstraint constraint) override
 
void drawImageNine (const sk_sp< DlImage > image, const SkIRect &center, const SkRect &dst, DlFilterMode filter, bool render_with_attributes) override
 
void drawAtlas (const sk_sp< DlImage > atlas, const SkRSXform xform[], const SkRect tex[], const DlColor colors[], int count, DlBlendMode mode, DlImageSampling sampling, const SkRect *cull_rect, bool render_with_attributes) override
 
void drawTextBlob (const sk_sp< SkTextBlob > blob, SkScalar x, SkScalar y) override
 
void drawTextFrame (const std::shared_ptr< impeller::TextFrame > &text_frame, SkScalar x, SkScalar y) override
 
void drawShadow (const SkPath &path, const DlColor color, const SkScalar elevation, bool transparent_occluder, SkScalar dpr) override
 

Additional Inherited Members

- Static Public Attributes inherited from flutter::DlOpReceiver
static constexpr int kMaxDrawPointsCount = ((1 << 29) - 1)
 
- Protected Types inherited from flutter::DlOpReceiver
using ClipOp = DlCanvas::ClipOp
 
using PointMode = DlCanvas::PointMode
 
using SrcRectConstraint = DlCanvas::SrcRectConstraint
 

Detailed Description

Performs a first pass over the display list to collect all text frames.

Definition at line 323 of file dl_dispatcher.h.

Constructor & Destructor Documentation

◆ TextFrameDispatcher()

impeller::TextFrameDispatcher::TextFrameDispatcher ( const ContentContext renderer,
const Matrix initial_matrix 
)

Definition at line 1180 of file dl_dispatcher.cc.

1182 : renderer_(renderer), matrix_(initial_matrix) {}

Member Function Documentation

◆ drawDisplayList()

void impeller::TextFrameDispatcher::drawDisplayList ( const sk_sp< flutter::DisplayList display_list,
SkScalar  opacity 
)
overridevirtual

Implements flutter::DlOpReceiver.

Definition at line 1254 of file dl_dispatcher.cc.

1256 {
1257 [[maybe_unused]] size_t stack_depth = stack_.size();
1258 save();
1259 display_list->Dispatch(*this);
1260 restore();
1261 FML_DCHECK(stack_depth == stack_.size());
1262}
void Dispatch(DlOpReceiver &ctx) const
#define FML_DCHECK(condition)
Definition logging.h:103

◆ drawTextFrame()

void impeller::TextFrameDispatcher::drawTextFrame ( const std::shared_ptr< impeller::TextFrame > &  text_frame,
SkScalar  x,
SkScalar  y 
)
override

Definition at line 1246 of file dl_dispatcher.cc.

1249 {
1250 renderer_.GetLazyGlyphAtlas()->AddTextFrame(*text_frame,
1251 matrix_.GetMaxBasisLengthXY());
1252}
const std::shared_ptr< LazyGlyphAtlas > & GetLazyGlyphAtlas() const
constexpr Scalar GetMaxBasisLengthXY() const
Definition matrix.h:300

◆ restore()

void impeller::TextFrameDispatcher::restore ( )
overridevirtual

Implements flutter::DlOpReceiver.

Definition at line 1194 of file dl_dispatcher.cc.

1194 {
1195 matrix_ = stack_.back();
1196 stack_.pop_back();
1197}

◆ rotate()

void impeller::TextFrameDispatcher::rotate ( SkScalar  degrees)
overridevirtual

Implements flutter::DlOpReceiver.

Definition at line 1207 of file dl_dispatcher.cc.

1207 {
1208 matrix_ = matrix_ * Matrix::MakeRotationZ(Degrees(degrees));
1209}
static Matrix MakeRotationZ(Radians r)
Definition matrix.h:213

◆ save()

void impeller::TextFrameDispatcher::save ( )
overridevirtual

Implements flutter::DlOpReceiver.

Definition at line 1184 of file dl_dispatcher.cc.

1184 {
1185 stack_.emplace_back(matrix_);
1186}

◆ saveLayer()

void impeller::TextFrameDispatcher::saveLayer ( const SkRect bounds,
const flutter::SaveLayerOptions  options,
const flutter::DlImageFilter backdrop 
)
overridevirtual

Implements flutter::DlOpReceiver.

Definition at line 1188 of file dl_dispatcher.cc.

1190 {
1191 save();
1192}

◆ scale()

void impeller::TextFrameDispatcher::scale ( SkScalar  sx,
SkScalar  sy 
)
overridevirtual

Implements flutter::DlOpReceiver.

Definition at line 1203 of file dl_dispatcher.cc.

1203 {
1204 matrix_ = matrix_.Scale({sx, sy, 1.0f});
1205}
constexpr Matrix Scale(const Vector3 &s) const
Definition matrix.h:252

◆ skew()

void impeller::TextFrameDispatcher::skew ( SkScalar  sx,
SkScalar  sy 
)
overridevirtual

Implements flutter::DlOpReceiver.

Definition at line 1211 of file dl_dispatcher.cc.

1211 {
1212 matrix_ = matrix_ * Matrix::MakeSkew(sx, sy);
1213}
static constexpr Matrix MakeSkew(Scalar sx, Scalar sy)
Definition matrix.h:117

◆ transform2DAffine()

void impeller::TextFrameDispatcher::transform2DAffine ( SkScalar  mxx,
SkScalar  mxy,
SkScalar  mxt,
SkScalar  myx,
SkScalar  myy,
SkScalar  myt 
)
overridevirtual

Implements flutter::DlOpReceiver.

Definition at line 1217 of file dl_dispatcher.cc.

1218 {
1219 matrix_ = matrix_ * Matrix::MakeColumn(
1220 mxx, myx, 0.0f, 0.0f,
1221 mxy, myy, 0.0f, 0.0f,
1222 0.0f, 0.0f, 1.0f, 0.0f,
1223 mxt, myt, 0.0f, 1.0f
1224 );
1225 }
static constexpr Matrix MakeColumn(Scalar m0, Scalar m1, Scalar m2, Scalar m3, Scalar m4, Scalar m5, Scalar m6, Scalar m7, Scalar m8, Scalar m9, Scalar m10, Scalar m11, Scalar m12, Scalar m13, Scalar m14, Scalar m15)
Definition matrix.h:69

◆ transformFullPerspective()

void impeller::TextFrameDispatcher::transformFullPerspective ( SkScalar  mxx,
SkScalar  mxy,
SkScalar  mxz,
SkScalar  mxt,
SkScalar  myx,
SkScalar  myy,
SkScalar  myz,
SkScalar  myt,
SkScalar  mzx,
SkScalar  mzy,
SkScalar  mzz,
SkScalar  mzt,
SkScalar  mwx,
SkScalar  mwy,
SkScalar  mwz,
SkScalar  mwt 
)
overridevirtual

Implements flutter::DlOpReceiver.

Definition at line 1228 of file dl_dispatcher.cc.

1232 {
1233 matrix_ = matrix_ * Matrix::MakeColumn(
1234 mxx, myx, mzx, mwx,
1235 mxy, myy, mzy, mwy,
1236 mxz, myz, mzz, mwz,
1237 mxt, myt, mzt, mwt
1238 );
1239 }

◆ transformReset()

void impeller::TextFrameDispatcher::transformReset ( )
overridevirtual

Implements flutter::DlOpReceiver.

Definition at line 1242 of file dl_dispatcher.cc.

1242 {
1243 matrix_ = Matrix();
1244}

◆ translate()

void impeller::TextFrameDispatcher::translate ( SkScalar  tx,
SkScalar  ty 
)
overridevirtual

Implements flutter::DlOpReceiver.

Definition at line 1199 of file dl_dispatcher.cc.

1199 {
1200 matrix_ = matrix_.Translate({tx, ty});
1201}
constexpr Matrix Translate(const Vector3 &t) const
Definition matrix.h:240

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