Bug 1248913 - Add a constructor argument to nsDisplayMixBlendMode that lets you specify the blend mode. r=mattwoodrow

MozReview-Commit-ID: 9MqjLKjRmeh

--HG--
extra : rebase_source : 11ebc2d8fa1939ba079bdf09e916d3da1e68d6d7
This commit is contained in:
Markus Stange 2016-03-05 16:39:25 -05:00
Родитель cd7fa4800f
Коммит 14975d0ba1
3 изменённых файлов: 8 добавлений и 2 удалений

Просмотреть файл

@ -4319,8 +4319,10 @@ nsDisplayOpacity::WriteDebugInfo(std::stringstream& aStream)
nsDisplayMixBlendMode::nsDisplayMixBlendMode(nsDisplayListBuilder* aBuilder,
nsIFrame* aFrame, nsDisplayList* aList,
uint8_t aBlendMode,
const DisplayItemScrollClip* aScrollClip)
: nsDisplayWrapList(aBuilder, aFrame, aList, aScrollClip)
, mBlendMode(aBlendMode)
{
MOZ_COUNT_CTOR(nsDisplayMixBlendMode);
}
@ -4361,7 +4363,7 @@ nsDisplayMixBlendMode::BuildLayer(nsDisplayListBuilder* aBuilder,
return nullptr;
}
container->SetMixBlendMode(nsCSSRendering::GetGFXBlendMode(mFrame->StyleDisplay()->mMixBlendMode));
container->SetMixBlendMode(nsCSSRendering::GetGFXBlendMode(mBlendMode));
return container.forget();
}

Просмотреть файл

@ -3385,7 +3385,7 @@ private:
class nsDisplayMixBlendMode : public nsDisplayWrapList {
public:
nsDisplayMixBlendMode(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame,
nsDisplayList* aList,
nsDisplayList* aList, uint8_t aBlendMode,
const DisplayItemScrollClip* aScrollClip);
#ifdef NS_BUILD_REFCNT_LOGGING
virtual ~nsDisplayMixBlendMode();
@ -3413,6 +3413,9 @@ public:
return false;
}
NS_DISPLAY_DECL_NAME("MixBlendMode", TYPE_MIX_BLEND_MODE)
private:
uint8_t mBlendMode;
};
class nsDisplayBlendContainer : public nsDisplayWrapList {

Просмотреть файл

@ -2314,6 +2314,7 @@ nsIFrame::BuildDisplayListForStackingContext(nsDisplayListBuilder* aBuilder,
mixBlendClipState.Clear();
resultList.AppendNewToTop(
new (aBuilder) nsDisplayMixBlendMode(aBuilder, this, &resultList,
disp->mMixBlendMode,
containerItemScrollClip));
}