Bug 1704792 - Part 5. Add plumbing to move/store ImageIntRegion. r=jrmuizel

This patch has no functional change beyond changing prototypes and
adding storage for ImageIntRegion for each ImageContainer.

Differential Revision: https://phabricator.services.mozilla.com/D114984
This commit is contained in:
Andrew Osmond
2021-05-13 16:24:07 +00:00
parent 6226aabce8
commit 543eae628d
23 changed files with 106 additions and 62 deletions

View File

@@ -13,6 +13,7 @@
#include "mozilla/layers/RenderRootStateManager.h"
#include "mozilla/layers/WebRenderLayerManager.h"
#include "imgIContainer.h"
#include "ImageRegion.h"
#include "nsContainerFrame.h"
#include "nsIImageLoadingContent.h"
#include "nsLayoutUtils.h"
@@ -611,12 +612,14 @@ bool SVGImageFrame::CreateWebRenderCommands(
Some(imgElem->mPreserveAspectRatio.GetAnimValue()));
}
Maybe<ImageIntRegion> region;
IntSize decodeSize = nsLayoutUtils::ComputeImageContainerDrawingParameters(
mImageContainer, this, destRect, aSc, flags, svgContext);
mImageContainer, this, destRect, destRect, aSc, flags, svgContext,
region);
RefPtr<layers::ImageContainer> container;
ImgDrawResult drawResult = mImageContainer->GetImageContainerAtSize(
aManager->LayerManager(), decodeSize, svgContext, flags,
aManager->LayerManager(), decodeSize, svgContext, region, flags,
getter_AddRefs(container));
// While we got a container, it may not contain a fully decoded surface. If