зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1393376 - (Part 1) Paint the item when its type is TYPE_FILTER during WebRenderFallbackData generating; r=jrmuizel
MozReview-Commit-ID: JxNa1OGrSVb --HG-- extra : rebase_source : 0d8bc8aeac1f120bb9eb873f9b9c36ba155d5dda
This commit is contained in:
Родитель
248b760c2d
Коммит
92bb8afb2a
|
@ -554,11 +554,18 @@ WebRenderLayerManager::GenerateFallbackData(nsDisplayItem* aItem,
|
|||
}
|
||||
|
||||
aOffset = RoundedToInt(bounds.TopLeft());
|
||||
nsRegion invalidRegion;
|
||||
|
||||
bool needPaint = true;
|
||||
nsAutoPtr<nsDisplayItemGeometry> geometry = fallbackData->GetGeometry();
|
||||
|
||||
if (geometry) {
|
||||
|
||||
// nsDisplayFilter is rendered via BasicLayerManager which means the invalidate
|
||||
// region is unknown until we traverse the displaylist contained by it.
|
||||
if (geometry && !fallbackData->IsInvalid() &&
|
||||
aItem->GetType() != DisplayItemType::TYPE_FILTER) {
|
||||
nsRect invalid;
|
||||
nsRegion invalidRegion;
|
||||
|
||||
if (aItem->IsInvalid(invalid)) {
|
||||
invalidRegion.OrWith(clippedBounds);
|
||||
} else {
|
||||
|
@ -574,11 +581,12 @@ WebRenderLayerManager::GenerateFallbackData(nsDisplayItem* aItem,
|
|||
invalidRegion.OrWith(clippedBounds);
|
||||
}
|
||||
}
|
||||
needPaint = !invalidRegion.IsEmpty();
|
||||
}
|
||||
|
||||
gfx::SurfaceFormat format = aItem->GetType() == DisplayItemType::TYPE_MASK ?
|
||||
gfx::SurfaceFormat::A8 : gfx::SurfaceFormat::B8G8R8A8;
|
||||
if (!geometry || !invalidRegion.IsEmpty() || fallbackData->IsInvalid()) {
|
||||
if (needPaint) {
|
||||
gfx::SurfaceFormat format = aItem->GetType() == DisplayItemType::TYPE_MASK ?
|
||||
gfx::SurfaceFormat::A8 : gfx::SurfaceFormat::B8G8R8A8;
|
||||
if (gfxPrefs::WebRenderBlobImages()) {
|
||||
bool snapped;
|
||||
bool isOpaque = aItem->GetOpaqueRegion(aDisplayListBuilder, &snapped).Contains(clippedBounds);
|
||||
|
|
Загрузка…
Ссылка в новой задаче