21 auto* prev =
static_cast<const OpacityLayer*
>(old_layer);
22 if (!
context->IsSubtreeDirty()) {
24 if (alpha_ != prev->alpha_ || offset_ != prev->offset_) {
25 context->MarkSubtreeDirty(
context->GetOldLayerPaintRegion(old_layer));
29 if (
context->has_raster_cache()) {
30 context->WillPaintWithIntegralTransform();
33 context->SetLayerPaintRegion(
this,
context->CurrentSubtreeRegion());
37 auto mutator =
context->state_stack.save();
38 mutator.translate(offset_);
74 auto mutator =
context.state_stack.save();
75 mutator.translate(offset_.
x, offset_.
y);
79 mutator.integralTransform();
89 context.state_stack.fill(paint))) {
std::unique_ptr< LayerRasterCacheItem > layer_raster_cache_item_
void Preroll(PrerollContext *context) override
const DlRect & child_paint_bounds() const
void PaintChildren(PaintContext &context) const override
virtual void DiffChildren(DiffContext *context, const ContainerLayer *old_layer)
static AutoPrerollSaveLayerState Create(PrerollContext *preroll_context, bool save_layer_is_active=true, bool layer_itself_performs_readback=false)
void set_paint_bounds(const DlRect &paint_bounds)
bool needs_painting(PaintContext &context) const
const DlRect & paint_bounds() const
static constexpr int kCallerCanApplyOpacity
void Diff(DiffContext *context, const Layer *old_layer) override
bool children_can_accept_opacity() const
void Preroll(PrerollContext *context) override
OpacityLayer(uint8_t alpha, const DlPoint &offset)
void Paint(PaintContext &context) const override
void set_children_can_accept_opacity(bool value)
#define FML_DCHECK(condition)
std::shared_ptr< ContextGLES > context
static constexpr Matrix MakeTranslation(const Vector3 &t)