Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
flutter::DisplayListMatrixClipTracker Class Reference

#include <dl_matrix_clip_tracker.h>

Public Member Functions

 DisplayListMatrixClipTracker (const DlRect &cull_rect, const DlMatrix &matrix)
 
 DisplayListMatrixClipTracker (const SkRect &cull_rect, const SkMatrix &matrix)
 
 DisplayListMatrixClipTracker (const SkRect &cull_rect, const SkM44 &matrix)
 
void resetDeviceCullRect (const DlRect *cull_rect=nullptr)
 
void resetDeviceCullRect (const SkRect *cull_rect=nullptr)
 
void resetLocalCullRect (const DlRect *cull_rect=nullptr)
 
void resetLocalCullRect (const SkRect *cull_rect=nullptr)
 
SkRect base_device_cull_rect () const
 
bool using_4x4_matrix () const
 
DlMatrix matrix () const
 
SkM44 matrix_4x4 () const
 
SkMatrix matrix_3x3 () const
 
SkRect local_cull_rect () const
 
SkRect device_cull_rect () const
 
bool content_culled (const SkRect &content_bounds) const
 
bool is_cull_rect_empty () const
 
void save ()
 
void restore ()
 
void reset ()
 
int getSaveCount ()
 
void restoreToCount (int restore_count)
 
void translate (SkScalar tx, SkScalar ty)
 
void scale (SkScalar sx, SkScalar sy)
 
void skew (SkScalar skx, SkScalar sky)
 
void rotate (SkScalar degrees)
 
void transform (const DlMatrix &matrix)
 
void transform (const SkM44 &m44)
 
void transform (const SkMatrix &matrix)
 
void transform2DAffine (SkScalar mxx, SkScalar mxy, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myt)
 
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)
 
void setTransform (const DlMatrix &matrix)
 
void setTransform (const SkMatrix &matrix)
 
void setTransform (const SkM44 &m44)
 
void setIdentity ()
 
bool inverseTransform (const DisplayListMatrixClipTracker &other_tracker)
 
bool mapRect (DlRect *rect) const
 
bool mapRect (const DlRect &src, DlRect *mapped)
 
bool mapRect (SkRect *rect) const
 
bool mapRect (const SkRect &src, SkRect *mapped)
 
void clipRect (const DlRect &rect, ClipOp op, bool is_aa)
 
void clipRect (const SkRect &rect, ClipOp op, bool is_aa)
 
void clipRRect (const SkRRect &rrect, ClipOp op, bool is_aa)
 
void clipPath (const SkPath &path, ClipOp op, bool is_aa)
 

Static Public Member Functions

static bool is_3x3 (const SkM44 &m44)
 

Detailed Description

Definition at line 184 of file dl_matrix_clip_tracker.h.

Constructor & Destructor Documentation

◆ DisplayListMatrixClipTracker() [1/3]

flutter::DisplayListMatrixClipTracker::DisplayListMatrixClipTracker ( const DlRect cull_rect,
const DlMatrix matrix 
)

Definition at line 33 of file dl_matrix_clip_tracker.cc.

35 {
36 // isEmpty protects us against NaN as we normalize any empty cull rects
37 DlRect cull = cull_rect.IsEmpty() ? DlRect() : cull_rect;
38 saved_.emplace_back(cull, matrix);
39 current_ = &saved_.back();
40 save(); // saved_[0] will always be the initial settings
41}
constexpr bool IsEmpty() const
Returns true if either of the width or height are 0, negative, or NaN.
Definition rect.h:264

◆ DisplayListMatrixClipTracker() [2/3]

flutter::DisplayListMatrixClipTracker::DisplayListMatrixClipTracker ( const SkRect cull_rect,
const SkMatrix matrix 
)

Definition at line 43 of file dl_matrix_clip_tracker.cc.

45 {
46 // isEmpty protects us against NaN as we normalize any empty cull rects
47 SkRect cull = cull_rect.isEmpty() ? SkRect::MakeEmpty() : cull_rect;
48 saved_.emplace_back(cull, matrix);
49 current_ = &saved_.back();
50 save(); // saved_[0] will always be the initial settings
51}
static constexpr SkRect MakeEmpty()
Definition SkRect.h:595
bool isEmpty() const
Definition SkRect.h:693

◆ DisplayListMatrixClipTracker() [3/3]

flutter::DisplayListMatrixClipTracker::DisplayListMatrixClipTracker ( const SkRect cull_rect,
const SkM44 matrix 
)

Definition at line 53 of file dl_matrix_clip_tracker.cc.

55 {
56 // isEmpty protects us against NaN as we normalize any empty cull rects
57 SkRect cull = cull_rect.isEmpty() ? SkRect::MakeEmpty() : cull_rect;
58 saved_.emplace_back(cull, m44);
59 current_ = &saved_.back();
60 save(); // saved_[0] will always be the initial settings
61}

Member Function Documentation

◆ base_device_cull_rect()

SkRect flutter::DisplayListMatrixClipTracker::base_device_cull_rect ( ) const
inline

Definition at line 235 of file dl_matrix_clip_tracker.h.

235{ return saved_[0].device_cull_rect(); }

◆ clipPath()

void flutter::DisplayListMatrixClipTracker::clipPath ( const SkPath path,
ClipOp  op,
bool  is_aa 
)
inline

Definition at line 314 of file dl_matrix_clip_tracker.h.

314 {
315 current_->clipPath(path, op, is_aa);
316 }
void clipPath(const SkPath &path, ClipOp op, bool is_aa)
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 switches.h:57

◆ clipRect() [1/2]

void flutter::DisplayListMatrixClipTracker::clipRect ( const DlRect rect,
ClipOp  op,
bool  is_aa 
)
inline

Definition at line 305 of file dl_matrix_clip_tracker.h.

305 {
306 current_->clipRect(rect, op, is_aa);
307 }
void clipRect(const DlRect &rect, ClipOp op, bool is_aa)

◆ clipRect() [2/2]

void flutter::DisplayListMatrixClipTracker::clipRect ( const SkRect rect,
ClipOp  op,
bool  is_aa 
)
inline

Definition at line 308 of file dl_matrix_clip_tracker.h.

308 {
309 current_->clipRect(rect, op, is_aa);
310 }

◆ clipRRect()

void flutter::DisplayListMatrixClipTracker::clipRRect ( const SkRRect rrect,
ClipOp  op,
bool  is_aa 
)
inline

Definition at line 311 of file dl_matrix_clip_tracker.h.

311 {
312 current_->clipRRect(rrect, op, is_aa);
313 }
void clipRRect(const SkRRect &rrect, ClipOp op, bool is_aa)

◆ content_culled()

bool flutter::DisplayListMatrixClipTracker::content_culled ( const SkRect content_bounds) const
inline

Definition at line 244 of file dl_matrix_clip_tracker.h.

244 {
245 return current_->content_culled(content_bounds);
246 }
bool content_culled(const DlRect &content_bounds) const

◆ device_cull_rect()

SkRect flutter::DisplayListMatrixClipTracker::device_cull_rect ( ) const
inline

Definition at line 243 of file dl_matrix_clip_tracker.h.

243{ return current_->device_cull_rect(); }

◆ getSaveCount()

int flutter::DisplayListMatrixClipTracker::getSaveCount ( )
inline

Definition at line 252 of file dl_matrix_clip_tracker.h.

252 {
253 // saved_[0] is always the untouched initial conditions
254 // saved_[1] is the first editable stack entry
255 return saved_.size() - 1;
256 }

◆ inverseTransform()

bool flutter::DisplayListMatrixClipTracker::inverseTransform ( const DisplayListMatrixClipTracker other_tracker)
inline

Definition at line 292 of file dl_matrix_clip_tracker.h.

292 {
293 return current_->inverseTransform(*other_tracker.current_);
294 }
bool inverseTransform(const DisplayListMatrixClipState &other_tracker)

◆ is_3x3()

bool flutter::DisplayListMatrixClipTracker::is_3x3 ( const SkM44 m44)
static

Definition at line 12 of file dl_matrix_clip_tracker.cc.

12 {
13 // clang-format off
14 return ( m.rc(0, 2) == 0 &&
15 m.rc(1, 2) == 0 &&
16 m.rc(2, 0) == 0 && m.rc(2, 1) == 0 && m.rc(2, 2) == 1 && m.rc(2, 3) == 0 &&
17 m.rc(3, 2) == 0);
18 // clang-format on
19}

◆ is_cull_rect_empty()

bool flutter::DisplayListMatrixClipTracker::is_cull_rect_empty ( ) const
inline

Definition at line 247 of file dl_matrix_clip_tracker.h.

247{ return current_->is_cull_rect_empty(); }

◆ local_cull_rect()

SkRect flutter::DisplayListMatrixClipTracker::local_cull_rect ( ) const
inline

Definition at line 242 of file dl_matrix_clip_tracker.h.

242{ return current_->local_cull_rect(); }

◆ mapRect() [1/4]

bool flutter::DisplayListMatrixClipTracker::mapRect ( const DlRect src,
DlRect mapped 
)
inline

Definition at line 297 of file dl_matrix_clip_tracker.h.

297 {
298 return current_->mapRect(src, mapped);
299 }

◆ mapRect() [2/4]

bool flutter::DisplayListMatrixClipTracker::mapRect ( const SkRect src,
SkRect mapped 
)
inline

Definition at line 301 of file dl_matrix_clip_tracker.h.

301 {
302 return current_->mapRect(src, mapped);
303 }

◆ mapRect() [3/4]

bool flutter::DisplayListMatrixClipTracker::mapRect ( DlRect rect) const
inline

Definition at line 296 of file dl_matrix_clip_tracker.h.

296{ return current_->mapRect(*rect, rect); }

◆ mapRect() [4/4]

bool flutter::DisplayListMatrixClipTracker::mapRect ( SkRect rect) const
inline

Definition at line 300 of file dl_matrix_clip_tracker.h.

300{ return current_->mapRect(*rect, rect); }

◆ matrix()

DlMatrix flutter::DisplayListMatrixClipTracker::matrix ( ) const
inline

Definition at line 239 of file dl_matrix_clip_tracker.h.

239{ return current_->matrix(); }

◆ matrix_3x3()

SkMatrix flutter::DisplayListMatrixClipTracker::matrix_3x3 ( ) const
inline

Definition at line 241 of file dl_matrix_clip_tracker.h.

241{ return current_->matrix_3x3(); }

◆ matrix_4x4()

SkM44 flutter::DisplayListMatrixClipTracker::matrix_4x4 ( ) const
inline

Definition at line 240 of file dl_matrix_clip_tracker.h.

240{ return current_->matrix_4x4(); }

◆ reset()

void flutter::DisplayListMatrixClipTracker::reset ( )

Definition at line 75 of file dl_matrix_clip_tracker.cc.

75 {
76 while (saved_.size() > 1) {
77 saved_.pop_back();
78 current_ = &saved_.back();
79 }
80 save(); // saved_[0] will always be the initial settings
81}

◆ resetDeviceCullRect() [1/2]

void flutter::DisplayListMatrixClipTracker::resetDeviceCullRect ( const DlRect cull_rect = nullptr)
inline

Definition at line 204 of file dl_matrix_clip_tracker.h.

204 {
205 if (cull_rect) {
206 current_->resetDeviceCullRect(*cull_rect);
207 } else {
208 current_->resetDeviceCullRect(saved_[0].cull_rect_);
209 }
210 }
void resetDeviceCullRect(const DlRect &cull_rect)

◆ resetDeviceCullRect() [2/2]

void flutter::DisplayListMatrixClipTracker::resetDeviceCullRect ( const SkRect cull_rect = nullptr)
inline

Definition at line 211 of file dl_matrix_clip_tracker.h.

211 {
212 if (cull_rect) {
213 current_->resetDeviceCullRect(*cull_rect);
214 } else {
215 current_->resetDeviceCullRect(saved_[0].cull_rect_);
216 }
217 }

◆ resetLocalCullRect() [1/2]

void flutter::DisplayListMatrixClipTracker::resetLocalCullRect ( const DlRect cull_rect = nullptr)
inline

Definition at line 218 of file dl_matrix_clip_tracker.h.

218 {
219 if (cull_rect) {
220 current_->resetLocalCullRect(*cull_rect);
221 } else {
222 current_->resetDeviceCullRect(saved_[0].cull_rect_);
223 }
224 }
void resetLocalCullRect(const DlRect &cull_rect)

◆ resetLocalCullRect() [2/2]

void flutter::DisplayListMatrixClipTracker::resetLocalCullRect ( const SkRect cull_rect = nullptr)
inline

Definition at line 225 of file dl_matrix_clip_tracker.h.

225 {
226 if (cull_rect) {
227 current_->resetLocalCullRect(*cull_rect);
228 } else {
229 current_->resetDeviceCullRect(saved_[0].cull_rect_);
230 }
231 }

◆ restore()

void flutter::DisplayListMatrixClipTracker::restore ( )

Definition at line 68 of file dl_matrix_clip_tracker.cc.

68 {
69 if (saved_.size() > 2) {
70 saved_.pop_back();
71 current_ = &saved_.back();
72 }
73}

◆ restoreToCount()

void flutter::DisplayListMatrixClipTracker::restoreToCount ( int  restore_count)

Definition at line 83 of file dl_matrix_clip_tracker.cc.

83 {
84 FML_DCHECK(restore_count <= getSaveCount());
85 if (restore_count < 1) {
86 restore_count = 1;
87 }
88 while (restore_count < getSaveCount()) {
89 restore();
90 }
91}
#define FML_DCHECK(condition)
Definition logging.h:103

◆ rotate()

void flutter::DisplayListMatrixClipTracker::rotate ( SkScalar  degrees)
inline

Definition at line 262 of file dl_matrix_clip_tracker.h.

262{ current_->rotate(degrees); }

◆ save()

void flutter::DisplayListMatrixClipTracker::save ( )

Definition at line 63 of file dl_matrix_clip_tracker.cc.

63 {
64 saved_.emplace_back(*current_);
65 current_ = &saved_.back();
66}

◆ scale()

void flutter::DisplayListMatrixClipTracker::scale ( SkScalar  sx,
SkScalar  sy 
)
inline

Definition at line 260 of file dl_matrix_clip_tracker.h.

260{ current_->scale(sx, sy); }
void scale(SkScalar sx, SkScalar sy)

◆ setIdentity()

void flutter::DisplayListMatrixClipTracker::setIdentity ( )
inline

Definition at line 288 of file dl_matrix_clip_tracker.h.

◆ setTransform() [1/3]

void flutter::DisplayListMatrixClipTracker::setTransform ( const DlMatrix matrix)
inline

Definition at line 285 of file dl_matrix_clip_tracker.h.

285{ current_->setTransform(matrix); }
void setTransform(const DlMatrix &matrix)

◆ setTransform() [2/3]

void flutter::DisplayListMatrixClipTracker::setTransform ( const SkM44 m44)
inline

Definition at line 287 of file dl_matrix_clip_tracker.h.

287{ current_->setTransform(m44); }

◆ setTransform() [3/3]

void flutter::DisplayListMatrixClipTracker::setTransform ( const SkMatrix matrix)
inline

Definition at line 286 of file dl_matrix_clip_tracker.h.

286{ current_->setTransform(matrix); }

◆ skew()

void flutter::DisplayListMatrixClipTracker::skew ( SkScalar  skx,
SkScalar  sky 
)
inline

Definition at line 261 of file dl_matrix_clip_tracker.h.

261{ current_->skew(skx, sky); }
void skew(SkScalar skx, SkScalar sky)

◆ transform() [1/3]

void flutter::DisplayListMatrixClipTracker::transform ( const DlMatrix matrix)
inline

Definition at line 263 of file dl_matrix_clip_tracker.h.

263{ current_->transform(matrix); }

◆ transform() [2/3]

void flutter::DisplayListMatrixClipTracker::transform ( const SkM44 m44)
inline

Definition at line 264 of file dl_matrix_clip_tracker.h.

264{ current_->transform(m44); }

◆ transform() [3/3]

void flutter::DisplayListMatrixClipTracker::transform ( const SkMatrix matrix)
inline

Definition at line 265 of file dl_matrix_clip_tracker.h.

265{ current_->transform(matrix); }

◆ transform2DAffine()

void flutter::DisplayListMatrixClipTracker::transform2DAffine ( SkScalar  mxx,
SkScalar  mxy,
SkScalar  mxt,
SkScalar  myx,
SkScalar  myy,
SkScalar  myt 
)
inline

Definition at line 267 of file dl_matrix_clip_tracker.h.

269 {
270 current_->transform2DAffine(mxx, mxy, mxt, myx, myy, myt);
271 }
void transform2DAffine(SkScalar mxx, SkScalar mxy, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myt)

◆ transformFullPerspective()

void flutter::DisplayListMatrixClipTracker::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 
)
inline

Definition at line 272 of file dl_matrix_clip_tracker.h.

276 {
277 current_->transformFullPerspective(
278 mxx, mxy, mxz, mxt,
279 myx, myy, myz, myt,
280 mzx, mzy, mzz, mzt,
281 mwx, mwy, mwz, mwt
282 );
283 }
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)

◆ translate()

void flutter::DisplayListMatrixClipTracker::translate ( SkScalar  tx,
SkScalar  ty 
)
inline

Definition at line 259 of file dl_matrix_clip_tracker.h.

259{ current_->translate(tx, ty); }
void translate(SkScalar tx, SkScalar ty)

◆ using_4x4_matrix()

bool flutter::DisplayListMatrixClipTracker::using_4x4_matrix ( ) const
inline

Definition at line 237 of file dl_matrix_clip_tracker.h.

237{ return current_->using_4x4_matrix(); }

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