зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1310575 - Part 2. Implement nsDisplayFilter::ComputeInvalidationRegion. r=mstange
Bring back ShouldInvalidateToSyncDecodeImages check in nsDisplayFilter::ComputeInvalidationRegion. nsSVGIntegrationUtils::PaintFilter might be failure if the filter is not ready. That is, effectProperties.HasValidFilter() returns false. So we still need that check. MozReview-Commit-ID: B4Lv5qZlHRr --HG-- extra : rebase_source : 99a02e8d9401ce144a004795a4b3f4e5f505afb1
This commit is contained in:
Родитель
5c0dd57b39
Коммит
ca4fc9245c
|
@ -7071,8 +7071,8 @@ bool nsDisplayMask::ComputeVisibility(nsDisplayListBuilder* aBuilder,
|
|||
|
||||
void
|
||||
nsDisplayMask::ComputeInvalidationRegion(nsDisplayListBuilder* aBuilder,
|
||||
const nsDisplayItemGeometry* aGeometry,
|
||||
nsRegion* aInvalidRegion)
|
||||
const nsDisplayItemGeometry* aGeometry,
|
||||
nsRegion* aInvalidRegion)
|
||||
{
|
||||
nsDisplaySVGEffects::ComputeInvalidationRegion(aBuilder, aGeometry,
|
||||
aInvalidRegion);
|
||||
|
@ -7274,6 +7274,25 @@ bool nsDisplayFilter::ComputeVisibility(nsDisplayListBuilder* aBuilder,
|
|||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
nsDisplayFilter::ComputeInvalidationRegion(nsDisplayListBuilder* aBuilder,
|
||||
const nsDisplayItemGeometry* aGeometry,
|
||||
nsRegion* aInvalidRegion)
|
||||
{
|
||||
nsDisplaySVGEffects::ComputeInvalidationRegion(aBuilder, aGeometry,
|
||||
aInvalidRegion);
|
||||
|
||||
const nsDisplayFilterGeometry* geometry =
|
||||
static_cast<const nsDisplayFilterGeometry*>(aGeometry);
|
||||
|
||||
if (aBuilder->ShouldSyncDecodeImages() &&
|
||||
geometry->ShouldInvalidateToSyncDecodeImages()) {
|
||||
bool snap;
|
||||
nsRect bounds = GetBounds(aBuilder, &snap);
|
||||
aInvalidRegion->Or(*aInvalidRegion, bounds);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
nsDisplayFilter::PaintAsLayer(nsDisplayListBuilder* aBuilder,
|
||||
nsRenderingContext* aCtx,
|
||||
|
|
|
@ -3953,7 +3953,9 @@ public:
|
|||
{
|
||||
return new nsDisplayFilterGeometry(this, aBuilder);
|
||||
}
|
||||
|
||||
virtual void ComputeInvalidationRegion(nsDisplayListBuilder* aBuilder,
|
||||
const nsDisplayItemGeometry* aGeometry,
|
||||
nsRegion* aInvalidRegion) override;
|
||||
#ifdef MOZ_DUMP_PAINTING
|
||||
void PrintEffects(nsACString& aTo);
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче