5#ifndef FLUTTER_FLOW_DIFF_CONTEXT_H_
6#define FLUTTER_FLOW_DIFF_CONTEXT_H_
143 int horizontal_clip_alignment = 0,
144 int vertical_clip_alignment = 0)
const;
185 ++different_instance_but_equal_pictures_;
192 int new_pictures_ = 0;
193 int pictures_too_complex_to_compare_ = 0;
194 int same_instance_pictures_ = 0;
195 int deep_compare_pictures_ = 0;
196 int different_instance_but_equal_pictures_ = 0;
209 size_t rect_index = 0;
220 bool integral_transform =
false;
227 bool has_filter_bounds_adjustment =
false;
230 bool has_texture =
false;
233 void MakeTransformIntegral(DisplayListMatrixClipState& matrix_clip);
235 std::shared_ptr<std::vector<DlRect>> rects_;
238 std::vector<State> state_stack_;
239 std::vector<FilterBoundsAdjustment> filter_bounds_adjustment_stack_;
249 bool has_raster_cache_;
250 bool impeller_enabled_;
255 int horizontal_alignment,
256 int vertical_clip_alignment)
const;
270 std::vector<Readback> readbacks_;
271 Statistics statistics_;
AutoSubtreeRestore(DiffContext *context)
void AddSameInstancePicture()
void AddPictureTooComplexToCompare()
void AddDifferentInstanceButEqualPicture()
void AddDeepComparePicture()
DlRect GetCullRect() const
std::function< DlRect(DlRect)> FilterBoundsAdjustment
void WillPaintWithIntegralTransform()
bool PushCullRect(const DlRect &clip)
bool impeller_enabled() const
DlRect MapRect(const DlRect &rect)
Damage ComputeDamage(const DlIRect &additional_damage, int horizontal_clip_alignment=0, int vertical_clip_alignment=0) const
void SetLayerPaintRegion(const Layer *layer, const PaintRegion ®ion)
void MarkSubtreeDirty(const PaintRegion &previous_paint_region=PaintRegion())
Statistics & statistics()
void AddReadbackRegion(const DlIRect &paint_rect, const DlIRect &readback_rect)
void AddDamage(const PaintRegion &damage)
PaintRegion CurrentSubtreeRegion() const
void AddExistingPaintRegion(const PaintRegion ®ion)
void PushFilterBoundsAdjustment(const FilterBoundsAdjustment &filter)
bool has_raster_cache() const
PaintRegion GetOldLayerPaintRegion(const Layer *layer) const
void MarkSubtreeHasTextureLayer()
const DlMatrix & GetMatrix() const
bool IsSubtreeDirty() const
void AddLayerBounds(const DlRect &rect)
void PushTransform(const DlMatrix &transform)
#define FML_DISALLOW_COPY_ASSIGN_AND_MOVE(TypeName)
std::map< uint64_t, PaintRegion > PaintRegionMap
impeller::ISize32 DlISize
impeller::IRect32 DlIRect
A 4x4 matrix using column-major storage.