mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 12:25:53 +00:00
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:
parent
b01c8dcc1a
commit
c5b2766eac
@ -4962,8 +4962,8 @@ nsDisplayBorder::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuild
|
||||
}
|
||||
|
||||
if (mBorderImageRenderer) {
|
||||
// TODO: support image type display items.
|
||||
//CreateBorderImageWebRenderCommands(aBuilder, aSc, aParentCommands, aLayer);
|
||||
CreateBorderImageWebRenderCommands(aBuilder, aSc, aParentCommands,
|
||||
aManager, aDisplayListBuilder);
|
||||
} else if (mBorderRenderer) {
|
||||
mBorderRenderer->CreateWebRenderCommands(aBuilder, aSc);
|
||||
}
|
||||
@ -4975,7 +4975,8 @@ void
|
||||
nsDisplayBorder::CreateBorderImageWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuilder,
|
||||
const StackingContextHelper& aSc,
|
||||
nsTArray<WebRenderParentCommand>& aParentCommands,
|
||||
WebRenderDisplayItemLayer* aLayer)
|
||||
mozilla::layers::WebRenderLayerManager* aManager,
|
||||
nsDisplayListBuilder* aDisplayListBuilder)
|
||||
{
|
||||
MOZ_ASSERT(mBorderImageRenderer);
|
||||
if (!mBorderImageRenderer->mImageRenderer.IsReady()) {
|
||||
@ -5006,18 +5007,18 @@ nsDisplayBorder::CreateBorderImageWebRenderCommands(mozilla::wr::DisplayListBuil
|
||||
switch (mBorderImageRenderer->mImageRenderer.GetType()) {
|
||||
case eStyleImageType_Image:
|
||||
{
|
||||
nsDisplayListBuilder* builder = aLayer->GetDisplayListBuilder();
|
||||
uint32_t flags = builder->ShouldSyncDecodeImages() ?
|
||||
uint32_t flags = aDisplayListBuilder->ShouldSyncDecodeImages() ?
|
||||
imgIContainer::FLAG_SYNC_DECODE :
|
||||
imgIContainer::FLAG_NONE;
|
||||
|
||||
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) {
|
||||
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()) {
|
||||
return;
|
||||
}
|
||||
|
@ -2907,7 +2907,8 @@ protected:
|
||||
void CreateBorderImageWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuilder,
|
||||
const StackingContextHelper& aSc,
|
||||
nsTArray<WebRenderParentCommand>& aParentCommands,
|
||||
WebRenderDisplayItemLayer* aLayer);
|
||||
mozilla::layers::WebRenderLayerManager* aManager,
|
||||
nsDisplayListBuilder* aDisplayListBuilder);
|
||||
nsRegion CalculateBounds(const nsStyleBorder& aStyleBorder);
|
||||
|
||||
mozilla::Array<mozilla::gfx::Color, 4> mColors;
|
||||
|
Loading…
Reference in New Issue
Block a user