#include <diff_context.h>
Classes | |
| class | AutoSubtreeRestore |
| class | Statistics |
Public Types | |
| using | FilterBoundsAdjustment = std::function< DlRect(DlRect)> |
Public Member Functions | |
| DiffContext (DlISize frame_size, PaintRegionMap &this_frame_paint_region_map, const PaintRegionMap &last_frame_paint_region_map, bool has_raster_cache, bool impeller_enabled) | |
| void | BeginSubtree () |
| void | EndSubtree () |
| void | PushTransform (const DlMatrix &transform) |
| bool | PushCullRect (const DlRect &clip) |
| void | PushFilterBoundsAdjustment (const FilterBoundsAdjustment &filter) |
| void | WillPaintWithIntegralTransform () |
| const DlMatrix & | GetMatrix () const |
| DlRect | GetCullRect () const |
| void | MarkSubtreeDirty (const PaintRegion &previous_paint_region=PaintRegion()) |
| void | MarkSubtreeDirty (const DlRect &previous_paint_region) |
| bool | IsSubtreeDirty () const |
| void | MarkSubtreeHasTextureLayer () |
| void | AddLayerBounds (const DlRect &rect) |
| void | AddExistingPaintRegion (const PaintRegion ®ion) |
| void | AddReadbackRegion (const DlIRect &paint_rect, const DlIRect &readback_rect) |
| PaintRegion | CurrentSubtreeRegion () const |
| Damage | ComputeDamage (const DlIRect &additional_damage, int horizontal_clip_alignment=0, int vertical_clip_alignment=0) const |
| void | AddDamage (const PaintRegion &damage) |
| void | SetLayerPaintRegion (const Layer *layer, const PaintRegion ®ion) |
| PaintRegion | GetOldLayerPaintRegion (const Layer *layer) const |
| bool | has_raster_cache () const |
| bool | impeller_enabled () const |
| Statistics & | statistics () |
| DlRect | MapRect (const DlRect &rect) |
Definition at line 41 of file diff_context.h.
| using flutter::DiffContext::FilterBoundsAdjustment = std::function<DlRect(DlRect)> |
Definition at line 78 of file diff_context.h.
|
explicit |
Definition at line 12 of file diff_context.cc.
| void flutter::DiffContext::AddDamage | ( | const PaintRegion & | damage | ) |
Definition at line 230 of file diff_context.cc.
References FML_DCHECK, flutter::PaintRegion::is_valid(), and impeller::TRect< T >::Union().
Referenced by AddLayerBounds(), flutter::ContainerLayer::DiffChildren(), MarkSubtreeDirty(), and MarkSubtreeDirty().
| void flutter::DiffContext::AddExistingPaintRegion | ( | const PaintRegion & | region | ) |
Definition at line 202 of file diff_context.cc.
References flutter::PaintRegion::begin(), flutter::PaintRegion::end(), FML_DCHECK, flutter::PaintRegion::is_valid(), and IsSubtreeDirty().
Referenced by flutter::ContainerLayer::DiffChildren().
| void flutter::DiffContext::AddLayerBounds | ( | const DlRect & | rect | ) |
Definition at line 172 of file diff_context.cc.
References AddDamage(), IsSubtreeDirty(), MapRect(), and flutter::DisplayListMatrixClipState::mapRect().
Referenced by flutter::BackdropFilterLayer::Diff(), flutter::DisplayListLayer::Diff(), flutter::PerformanceOverlayLayer::Diff(), flutter::TextureLayer::Diff(), and flutter::testing::MockLayer::Diff().
| void flutter::DiffContext::AddReadbackRegion | ( | const DlIRect & | paint_rect, |
| const DlIRect & | readback_rect | ||
| ) |
Definition at line 211 of file diff_context.cc.
Referenced by flutter::BackdropFilterLayer::Diff().
| void flutter::DiffContext::BeginSubtree | ( | ) |
Definition at line 24 of file diff_context.cc.
Referenced by flutter::DiffContext::AutoSubtreeRestore::AutoSubtreeRestore().
| Damage flutter::DiffContext::ComputeDamage | ( | const DlIRect & | additional_damage, |
| int | horizontal_clip_alignment = 0, |
||
| int | vertical_clip_alignment = 0 |
||
| ) | const |
Definition at line 104 of file diff_context.cc.
References flutter::Damage::buffer_damage, flutter::Damage::frame_damage, impeller::TRect< T >::IntersectionOrEmpty(), impeller::TRect< T >::IntersectsWithRect(), impeller::TRect< Scalar >::Make(), impeller::TRect< T >::MakeSize(), impeller::TRect< T >::RoundOut(), and impeller::TRect< T >::Union().
Referenced by flutter::testing::DiffContextTest::DiffLayerTree(), and flutter::testing::TEST_F().
| PaintRegion flutter::DiffContext::CurrentSubtreeRegion | ( | ) | const |
Definition at line 222 of file diff_context.cc.
Referenced by flutter::BackdropFilterLayer::Diff(), flutter::ClipShapeLayer< T >::Diff(), flutter::ColorFilterLayer::Diff(), flutter::ContainerLayer::Diff(), flutter::DisplayListLayer::Diff(), flutter::ImageFilterLayer::Diff(), flutter::OpacityLayer::Diff(), flutter::PerformanceOverlayLayer::Diff(), flutter::ShaderMaskLayer::Diff(), flutter::TextureLayer::Diff(), flutter::TransformLayer::Diff(), and flutter::testing::MockLayer::Diff().
| void flutter::DiffContext::EndSubtree | ( | ) |
Definition at line 38 of file diff_context.cc.
References FML_DCHECK.
Referenced by flutter::DiffContext::AutoSubtreeRestore::~AutoSubtreeRestore().
| DlRect flutter::DiffContext::GetCullRect | ( | ) | const |
Definition at line 154 of file diff_context.cc.
Referenced by flutter::BackdropFilterLayer::Diff().
| const DlMatrix & flutter::DiffContext::GetMatrix | ( | ) | const |
Definition at line 150 of file diff_context.cc.
Referenced by flutter::BackdropFilterLayer::Diff(), and flutter::ImageFilterLayer::Diff().
| PaintRegion flutter::DiffContext::GetOldLayerPaintRegion | ( | const Layer * | layer | ) | const |
Definition at line 246 of file diff_context.cc.
References i, and flutter::Layer::unique_id().
Referenced by flutter::BackdropFilterLayer::Diff(), flutter::ClipShapeLayer< T >::Diff(), flutter::ColorFilterLayer::Diff(), flutter::ImageFilterLayer::Diff(), flutter::OpacityLayer::Diff(), flutter::PerformanceOverlayLayer::Diff(), flutter::ShaderMaskLayer::Diff(), flutter::TextureLayer::Diff(), flutter::TransformLayer::Diff(), flutter::ContainerLayer::DiffChildren(), and flutter::Layer::PreservePaintRegion().
|
inline |
Definition at line 163 of file diff_context.h.
Referenced by flutter::ClipShapeLayer< T >::Diff(), flutter::ColorFilterLayer::Diff(), flutter::DisplayListLayer::Diff(), flutter::ImageFilterLayer::Diff(), flutter::OpacityLayer::Diff(), and flutter::ShaderMaskLayer::Diff().
|
inline |
Definition at line 165 of file diff_context.h.
|
inline |
Definition at line 104 of file diff_context.h.
Referenced by AddExistingPaintRegion(), AddLayerBounds(), flutter::BackdropFilterLayer::Diff(), flutter::ClipShapeLayer< T >::Diff(), flutter::ColorFilterLayer::Diff(), flutter::DisplayListLayer::Diff(), flutter::ImageFilterLayer::Diff(), flutter::OpacityLayer::Diff(), flutter::PerformanceOverlayLayer::Diff(), flutter::ShaderMaskLayer::Diff(), flutter::TextureLayer::Diff(), flutter::TransformLayer::Diff(), flutter::ContainerLayer::DiffChildren(), MarkSubtreeDirty(), and MarkSubtreeDirty().
Definition at line 139 of file diff_context.cc.
Referenced by AddLayerBounds(), and flutter::BackdropFilterLayer::Diff().
| void flutter::DiffContext::MarkSubtreeDirty | ( | const DlRect & | previous_paint_region | ) |
Definition at line 166 of file diff_context.cc.
References AddDamage(), FML_DCHECK, and IsSubtreeDirty().
| void flutter::DiffContext::MarkSubtreeDirty | ( | const PaintRegion & | previous_paint_region = PaintRegion() | ) |
Definition at line 158 of file diff_context.cc.
References AddDamage(), FML_DCHECK, flutter::PaintRegion::is_valid(), and IsSubtreeDirty().
Referenced by flutter::BackdropFilterLayer::Diff(), flutter::ClipShapeLayer< T >::Diff(), flutter::ColorFilterLayer::Diff(), flutter::ImageFilterLayer::Diff(), flutter::OpacityLayer::Diff(), flutter::PerformanceOverlayLayer::Diff(), flutter::ShaderMaskLayer::Diff(), flutter::TextureLayer::Diff(), flutter::TransformLayer::Diff(), and flutter::ContainerLayer::DiffChildren().
| void flutter::DiffContext::MarkSubtreeHasTextureLayer | ( | ) |
Definition at line 192 of file diff_context.cc.
Referenced by flutter::TextureLayer::Diff().
| bool flutter::DiffContext::PushCullRect | ( | const DlRect & | clip | ) |
Definition at line 145 of file diff_context.cc.
References flutter::kIntersect.
Referenced by flutter::FrameDamage::ComputeClipRect(), flutter::ClipShapeLayer< T >::Diff(), and flutter::testing::DiffContextTest::DiffLayerTree().
| void flutter::DiffContext::PushFilterBoundsAdjustment | ( | const FilterBoundsAdjustment & | filter | ) |
Definition at line 64 of file diff_context.cc.
References FML_DCHECK.
Referenced by flutter::ImageFilterLayer::Diff().
| void flutter::DiffContext::PushTransform | ( | const DlMatrix & | transform | ) |
Definition at line 49 of file diff_context.cc.
References transform.
Referenced by flutter::DisplayListLayer::Diff(), flutter::ImageFilterLayer::Diff(), flutter::OpacityLayer::Diff(), and flutter::TransformLayer::Diff().
| void flutter::DiffContext::SetLayerPaintRegion | ( | const Layer * | layer, |
| const PaintRegion & | region | ||
| ) |
Definition at line 241 of file diff_context.cc.
References flutter::Layer::unique_id().
Referenced by flutter::BackdropFilterLayer::Diff(), flutter::ClipShapeLayer< T >::Diff(), flutter::ColorFilterLayer::Diff(), flutter::ContainerLayer::Diff(), flutter::DisplayListLayer::Diff(), flutter::ImageFilterLayer::Diff(), flutter::OpacityLayer::Diff(), flutter::PerformanceOverlayLayer::Diff(), flutter::ShaderMaskLayer::Diff(), flutter::TextureLayer::Diff(), flutter::TransformLayer::Diff(), flutter::testing::MockLayer::Diff(), and flutter::Layer::PreservePaintRegion().
|
inline |
Definition at line 199 of file diff_context.h.
Referenced by flutter::DisplayListLayer::IsReplacing().
|
inline |
Definition at line 85 of file diff_context.h.
Referenced by flutter::ClipShapeLayer< T >::Diff(), flutter::ColorFilterLayer::Diff(), flutter::DisplayListLayer::Diff(), flutter::ImageFilterLayer::Diff(), flutter::OpacityLayer::Diff(), and flutter::ShaderMaskLayer::Diff().