Bug 1426386 - Expose WR stacking context bounds via StackingContextHelper. r=mstange

MozReview-Commit-ID: 2Z2npMkX5vD

--HG--
extra : rebase_source : 241c4c7f3f6b6504797940481d16f6a99092f6ae
This commit is contained in:
Kartikaya Gupta 2018-01-16 13:04:56 -05:00
parent 25ec44cbbe
commit c160a5bc6a
3 changed files with 12 additions and 6 deletions

View File

@ -22,6 +22,7 @@ StackingContextHelper::StackingContextHelper()
StackingContextHelper::StackingContextHelper(const StackingContextHelper& aParentSC,
wr::DisplayListBuilder& aBuilder,
const nsTArray<wr::WrFilterOp>& aFilters,
const LayoutDeviceRect& aBounds,
const gfx::Matrix4x4* aBoundTransform,
const wr::WrAnimationProperty* aAnimation,
float* aOpacityPtr,
@ -44,7 +45,7 @@ StackingContextHelper::StackingContextHelper(const StackingContextHelper& aParen
mScale = mInheritedTransform.ScaleFactors(true);
}
mBuilder->PushStackingContext(wr::LayoutRect(),
mBuilder->PushStackingContext(wr::ToLayoutRect(aBounds),
aAnimation,
aOpacityPtr,
aTransformPtr,

View File

@ -30,6 +30,7 @@ public:
StackingContextHelper(const StackingContextHelper& aParentSC,
wr::DisplayListBuilder& aBuilder,
const nsTArray<wr::WrFilterOp>& aFilters = nsTArray<wr::WrFilterOp>(),
const LayoutDeviceRect& aBounds = LayoutDeviceRect(),
const gfx::Matrix4x4* aBoundTransform = nullptr,
const wr::WrAnimationProperty* aAnimation = nullptr,
float* aOpacityPtr = nullptr,

View File

@ -6694,7 +6694,7 @@ nsDisplayOpacity::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuil
}
nsTArray<mozilla::wr::WrFilterOp> filters;
StackingContextHelper sc(aSc, aBuilder, filters, nullptr,
StackingContextHelper sc(aSc, aBuilder, filters, LayoutDeviceRect(), nullptr,
animationsId ? &prop : nullptr,
opacityForSC);
@ -6748,8 +6748,9 @@ nsDisplayBlendMode::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aBu
nsDisplayListBuilder* aDisplayListBuilder)
{
nsTArray<mozilla::wr::WrFilterOp> filters;
StackingContextHelper sc(aSc, aBuilder, filters, nullptr, 0, nullptr, nullptr,
nullptr, nsCSSRendering::GetGFXBlendMode(mBlendMode));
StackingContextHelper sc(aSc, aBuilder, filters, LayoutDeviceRect(), nullptr,
0, nullptr, nullptr, nullptr,
nsCSSRendering::GetGFXBlendMode(mBlendMode));
return nsDisplayWrapList::CreateWebRenderCommands(aBuilder,aResources, sc,
aManager, aDisplayListBuilder);
@ -7001,7 +7002,7 @@ nsDisplayOwnLayer::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aBui
prop.effect_type = wr::WrAnimationType::Transform;
StackingContextHelper sc(aSc, aBuilder, nsTArray<wr::WrFilterOp>(),
nullptr, &prop);
LayoutDeviceRect(), nullptr, &prop);
nsDisplayWrapList::CreateWebRenderCommands(aBuilder, aResources, sc,
aManager, aDisplayListBuilder);
@ -8524,6 +8525,7 @@ nsDisplayTransform::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aBu
StackingContextHelper sc(aSc,
aBuilder,
filters,
LayoutDeviceRect(),
&newTransformMatrix,
animationsId ? &prop : nullptr,
nullptr,
@ -9148,6 +9150,7 @@ nsDisplayPerspective::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& a
StackingContextHelper sc(aSc,
aBuilder,
filters,
LayoutDeviceRect(),
nullptr,
0,
nullptr,
@ -9922,7 +9925,8 @@ nsDisplayFilter::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuild
}
float opacity = mFrame->StyleEffects()->mOpacity;
StackingContextHelper sc(aSc, aBuilder, wrFilters, nullptr, 0, opacity != 1.0f && mHandleOpacity ? &opacity : nullptr);
StackingContextHelper sc(aSc, aBuilder, wrFilters, LayoutDeviceRect(), nullptr,
0, opacity != 1.0f && mHandleOpacity ? &opacity : nullptr);
nsDisplaySVGEffects::CreateWebRenderCommands(aBuilder, aResources, sc, aManager, aDisplayListBuilder);
return true;