зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1355791 - Instead of pushing a scroll layer, put the clip mask into the existing item clip. r=jrmuizel
MozReview-Commit-ID: jdKEkamSs4
This commit is contained in:
Родитель
2807504086
Коммит
94b7025994
|
@ -63,13 +63,11 @@ WebRenderCanvasLayer::RenderLayer(wr::DisplayListBuilder& aBuilder)
|
||||||
}
|
}
|
||||||
|
|
||||||
gfx::Rect relBounds = GetWrRelBounds();
|
gfx::Rect relBounds = GetWrRelBounds();
|
||||||
gfx::Rect overflow(0, 0, relBounds.width, relBounds.height);
|
|
||||||
|
|
||||||
gfx::Rect rect = RelativeToVisible(gfx::Rect(0, 0, mBounds.width, mBounds.height));
|
gfx::Rect rect = RelativeToVisible(gfx::Rect(0, 0, mBounds.width, mBounds.height));
|
||||||
gfx::Rect clipRect = GetWrClipRect(rect);
|
|
||||||
|
|
||||||
|
gfx::Rect clipRect = GetWrClipRect(rect);
|
||||||
Maybe<WrImageMask> mask = BuildWrMaskLayer();
|
Maybe<WrImageMask> mask = BuildWrMaskLayer();
|
||||||
WrClipRegion clip = aBuilder.BuildClipRegion(wr::ToWrRect(clipRect));
|
WrClipRegion clip = aBuilder.BuildClipRegion(wr::ToWrRect(clipRect), mask.ptrOr(nullptr));
|
||||||
|
|
||||||
wr::ImageRendering filter = wr::ToImageRendering(mSamplingFilter);
|
wr::ImageRendering filter = wr::ToImageRendering(mSamplingFilter);
|
||||||
wr::MixBlendMode mixBlendMode = wr::ToWrMixBlendMode(GetMixBlendMode());
|
wr::MixBlendMode mixBlendMode = wr::ToWrMixBlendMode(GetMixBlendMode());
|
||||||
|
@ -91,11 +89,7 @@ WebRenderCanvasLayer::RenderLayer(wr::DisplayListBuilder& aBuilder)
|
||||||
//GetAnimations(),
|
//GetAnimations(),
|
||||||
transform,
|
transform,
|
||||||
mixBlendMode);
|
mixBlendMode);
|
||||||
aBuilder.PushScrollLayer(wr::ToWrRect(overflow),
|
|
||||||
wr::ToWrRect(overflow),
|
|
||||||
mask.ptrOr(nullptr));
|
|
||||||
aBuilder.PushImage(wr::ToWrRect(rect), clip, filter, key);
|
aBuilder.PushImage(wr::ToWrRect(rect), clip, filter, key);
|
||||||
aBuilder.PopScrollLayer();
|
|
||||||
aBuilder.PopStackingContext();
|
aBuilder.PopStackingContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,13 +21,11 @@ WebRenderColorLayer::RenderLayer(wr::DisplayListBuilder& aBuilder)
|
||||||
{
|
{
|
||||||
gfx::Matrix4x4 transform = GetTransform();
|
gfx::Matrix4x4 transform = GetTransform();
|
||||||
gfx::Rect relBounds = GetWrRelBounds();
|
gfx::Rect relBounds = GetWrRelBounds();
|
||||||
gfx::Rect overflow(0, 0, relBounds.width, relBounds.height);
|
|
||||||
|
|
||||||
gfx::Rect rect = GetWrBoundsRect();
|
gfx::Rect rect = GetWrBoundsRect();
|
||||||
gfx::Rect clipRect = GetWrClipRect(rect);
|
|
||||||
|
|
||||||
|
gfx::Rect clipRect = GetWrClipRect(rect);
|
||||||
Maybe<WrImageMask> mask = BuildWrMaskLayer();
|
Maybe<WrImageMask> mask = BuildWrMaskLayer();
|
||||||
WrClipRegion clip = aBuilder.BuildClipRegion(wr::ToWrRect(clipRect));
|
WrClipRegion clip = aBuilder.BuildClipRegion(wr::ToWrRect(clipRect), mask.ptrOr(nullptr));
|
||||||
|
|
||||||
wr::MixBlendMode mixBlendMode = wr::ToWrMixBlendMode(GetMixBlendMode());
|
wr::MixBlendMode mixBlendMode = wr::ToWrMixBlendMode(GetMixBlendMode());
|
||||||
|
|
||||||
|
@ -38,11 +36,7 @@ WebRenderColorLayer::RenderLayer(wr::DisplayListBuilder& aBuilder)
|
||||||
//GetAnimations(),
|
//GetAnimations(),
|
||||||
transform,
|
transform,
|
||||||
mixBlendMode);
|
mixBlendMode);
|
||||||
aBuilder.PushScrollLayer(wr::ToWrRect(overflow),
|
|
||||||
wr::ToWrRect(overflow),
|
|
||||||
mask.ptrOr(nullptr));
|
|
||||||
aBuilder.PushRect(wr::ToWrRect(rect), clip, wr::ToWrColor(mColor));
|
aBuilder.PushRect(wr::ToWrRect(rect), clip, wr::ToWrColor(mColor));
|
||||||
aBuilder.PopScrollLayer();
|
|
||||||
aBuilder.PopStackingContext();
|
aBuilder.PopStackingContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -129,7 +129,6 @@ WebRenderImageLayer::RenderLayer(wr::DisplayListBuilder& aBuilder)
|
||||||
|
|
||||||
gfx::Matrix4x4 transform = GetTransform();
|
gfx::Matrix4x4 transform = GetTransform();
|
||||||
gfx::Rect relBounds = GetWrRelBounds();
|
gfx::Rect relBounds = GetWrRelBounds();
|
||||||
gfx::Rect overflow(0, 0, relBounds.width, relBounds.height);
|
|
||||||
|
|
||||||
gfx::Rect rect = gfx::Rect(0, 0, size.width, size.height);
|
gfx::Rect rect = gfx::Rect(0, 0, size.width, size.height);
|
||||||
if (mScaleMode != ScaleMode::SCALE_NONE) {
|
if (mScaleMode != ScaleMode::SCALE_NONE) {
|
||||||
|
@ -138,10 +137,10 @@ WebRenderImageLayer::RenderLayer(wr::DisplayListBuilder& aBuilder)
|
||||||
rect = gfx::Rect(0, 0, mScaleToSize.width, mScaleToSize.height);
|
rect = gfx::Rect(0, 0, mScaleToSize.width, mScaleToSize.height);
|
||||||
}
|
}
|
||||||
rect = RelativeToVisible(rect);
|
rect = RelativeToVisible(rect);
|
||||||
gfx::Rect clipRect = GetWrClipRect(rect);
|
|
||||||
|
|
||||||
|
gfx::Rect clipRect = GetWrClipRect(rect);
|
||||||
Maybe<WrImageMask> mask = BuildWrMaskLayer();
|
Maybe<WrImageMask> mask = BuildWrMaskLayer();
|
||||||
WrClipRegion clip = aBuilder.BuildClipRegion(wr::ToWrRect(clipRect));
|
WrClipRegion clip = aBuilder.BuildClipRegion(wr::ToWrRect(clipRect), mask.ptrOr(nullptr));
|
||||||
|
|
||||||
wr::ImageRendering filter = wr::ToImageRendering(mSamplingFilter);
|
wr::ImageRendering filter = wr::ToImageRendering(mSamplingFilter);
|
||||||
wr::MixBlendMode mixBlendMode = wr::ToWrMixBlendMode(GetMixBlendMode());
|
wr::MixBlendMode mixBlendMode = wr::ToWrMixBlendMode(GetMixBlendMode());
|
||||||
|
@ -163,11 +162,7 @@ WebRenderImageLayer::RenderLayer(wr::DisplayListBuilder& aBuilder)
|
||||||
//GetAnimations(),
|
//GetAnimations(),
|
||||||
transform,
|
transform,
|
||||||
mixBlendMode);
|
mixBlendMode);
|
||||||
aBuilder.PushScrollLayer(wr::ToWrRect(overflow),
|
|
||||||
wr::ToWrRect(overflow),
|
|
||||||
mask.ptrOr(nullptr));
|
|
||||||
aBuilder.PushImage(wr::ToWrRect(rect), clip, filter, key);
|
aBuilder.PushImage(wr::ToWrRect(rect), clip, filter, key);
|
||||||
aBuilder.PopScrollLayer();
|
|
||||||
aBuilder.PopStackingContext();
|
aBuilder.PopStackingContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -186,13 +186,11 @@ WebRenderPaintedLayer::RenderLayer(wr::DisplayListBuilder& aBuilder)
|
||||||
|
|
||||||
gfx::Matrix4x4 transform = GetTransform();
|
gfx::Matrix4x4 transform = GetTransform();
|
||||||
gfx::Rect relBounds = GetWrRelBounds();
|
gfx::Rect relBounds = GetWrRelBounds();
|
||||||
gfx::Rect overflow(0, 0, relBounds.width, relBounds.height);
|
|
||||||
|
|
||||||
gfx::Rect rect(0, 0, size.width, size.height);
|
gfx::Rect rect(0, 0, size.width, size.height);
|
||||||
gfx::Rect clipRect = GetWrClipRect(rect);
|
|
||||||
|
|
||||||
|
gfx::Rect clipRect = GetWrClipRect(rect);
|
||||||
Maybe<WrImageMask> mask = BuildWrMaskLayer();
|
Maybe<WrImageMask> mask = BuildWrMaskLayer();
|
||||||
WrClipRegion clip = aBuilder.BuildClipRegion(wr::ToWrRect(clipRect));
|
WrClipRegion clip = aBuilder.BuildClipRegion(wr::ToWrRect(clipRect), mask.ptrOr(nullptr));
|
||||||
|
|
||||||
wr::MixBlendMode mixBlendMode = wr::ToWrMixBlendMode(GetMixBlendMode());
|
wr::MixBlendMode mixBlendMode = wr::ToWrMixBlendMode(GetMixBlendMode());
|
||||||
|
|
||||||
|
@ -208,11 +206,7 @@ WebRenderPaintedLayer::RenderLayer(wr::DisplayListBuilder& aBuilder)
|
||||||
//GetAnimations(),
|
//GetAnimations(),
|
||||||
transform,
|
transform,
|
||||||
mixBlendMode);
|
mixBlendMode);
|
||||||
aBuilder.PushScrollLayer(wr::ToWrRect(overflow),
|
|
||||||
wr::ToWrRect(overflow),
|
|
||||||
mask.ptrOr(nullptr));
|
|
||||||
aBuilder.PushImage(wr::ToWrRect(rect), clip, wr::ImageRendering::Auto, key);
|
aBuilder.PushImage(wr::ToWrRect(rect), clip, wr::ImageRendering::Auto, key);
|
||||||
aBuilder.PopScrollLayer();
|
|
||||||
aBuilder.PopStackingContext();
|
aBuilder.PopStackingContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче