зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1376855 - Support image mode of nsDisplayBorder in layers free mode. r=kats
MozReview-Commit-ID: 8FgUKpeCbka --HG-- extra : rebase_source : 66b66d26c9b22cc0a9b11f57e9a743f07d8e6b42
This commit is contained in:
Родитель
b01c8dcc1a
Коммит
c5b2766eac
|
@ -4962,8 +4962,8 @@ nsDisplayBorder::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuild
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mBorderImageRenderer) {
|
if (mBorderImageRenderer) {
|
||||||
// TODO: support image type display items.
|
CreateBorderImageWebRenderCommands(aBuilder, aSc, aParentCommands,
|
||||||
//CreateBorderImageWebRenderCommands(aBuilder, aSc, aParentCommands, aLayer);
|
aManager, aDisplayListBuilder);
|
||||||
} else if (mBorderRenderer) {
|
} else if (mBorderRenderer) {
|
||||||
mBorderRenderer->CreateWebRenderCommands(aBuilder, aSc);
|
mBorderRenderer->CreateWebRenderCommands(aBuilder, aSc);
|
||||||
}
|
}
|
||||||
|
@ -4975,7 +4975,8 @@ void
|
||||||
nsDisplayBorder::CreateBorderImageWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuilder,
|
nsDisplayBorder::CreateBorderImageWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuilder,
|
||||||
const StackingContextHelper& aSc,
|
const StackingContextHelper& aSc,
|
||||||
nsTArray<WebRenderParentCommand>& aParentCommands,
|
nsTArray<WebRenderParentCommand>& aParentCommands,
|
||||||
WebRenderDisplayItemLayer* aLayer)
|
mozilla::layers::WebRenderLayerManager* aManager,
|
||||||
|
nsDisplayListBuilder* aDisplayListBuilder)
|
||||||
{
|
{
|
||||||
MOZ_ASSERT(mBorderImageRenderer);
|
MOZ_ASSERT(mBorderImageRenderer);
|
||||||
if (!mBorderImageRenderer->mImageRenderer.IsReady()) {
|
if (!mBorderImageRenderer->mImageRenderer.IsReady()) {
|
||||||
|
@ -5006,18 +5007,18 @@ nsDisplayBorder::CreateBorderImageWebRenderCommands(mozilla::wr::DisplayListBuil
|
||||||
switch (mBorderImageRenderer->mImageRenderer.GetType()) {
|
switch (mBorderImageRenderer->mImageRenderer.GetType()) {
|
||||||
case eStyleImageType_Image:
|
case eStyleImageType_Image:
|
||||||
{
|
{
|
||||||
nsDisplayListBuilder* builder = aLayer->GetDisplayListBuilder();
|
uint32_t flags = aDisplayListBuilder->ShouldSyncDecodeImages() ?
|
||||||
uint32_t flags = builder->ShouldSyncDecodeImages() ?
|
|
||||||
imgIContainer::FLAG_SYNC_DECODE :
|
imgIContainer::FLAG_SYNC_DECODE :
|
||||||
imgIContainer::FLAG_NONE;
|
imgIContainer::FLAG_NONE;
|
||||||
|
|
||||||
RefPtr<imgIContainer> img = mBorderImageRenderer->mImageRenderer.GetImage();
|
RefPtr<imgIContainer> img = mBorderImageRenderer->mImageRenderer.GetImage();
|
||||||
RefPtr<layers::ImageContainer> container = img->GetImageContainer(aLayer->WrManager(), flags);
|
RefPtr<layers::ImageContainer> container = img->GetImageContainer(aManager, flags);
|
||||||
if (!container) {
|
if (!container) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Maybe<wr::ImageKey> key = aLayer->SendImageContainer(container, aParentCommands);
|
gfx::IntSize size;
|
||||||
|
Maybe<wr::ImageKey> key = aManager->CreateImageKey(this, container, aBuilder, aSc, size);
|
||||||
if (key.isNothing()) {
|
if (key.isNothing()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2907,7 +2907,8 @@ protected:
|
||||||
void CreateBorderImageWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuilder,
|
void CreateBorderImageWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuilder,
|
||||||
const StackingContextHelper& aSc,
|
const StackingContextHelper& aSc,
|
||||||
nsTArray<WebRenderParentCommand>& aParentCommands,
|
nsTArray<WebRenderParentCommand>& aParentCommands,
|
||||||
WebRenderDisplayItemLayer* aLayer);
|
mozilla::layers::WebRenderLayerManager* aManager,
|
||||||
|
nsDisplayListBuilder* aDisplayListBuilder);
|
||||||
nsRegion CalculateBounds(const nsStyleBorder& aStyleBorder);
|
nsRegion CalculateBounds(const nsStyleBorder& aStyleBorder);
|
||||||
|
|
||||||
mozilla::Array<mozilla::gfx::Color, 4> mColors;
|
mozilla::Array<mozilla::gfx::Color, 4> mColors;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче