mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1066270 - Add nsFilterInstance::GetFilterDescription. r=roc
This commit is contained in:
parent
0d76ec356d
commit
4a2f054541
@ -27,6 +27,23 @@ using namespace mozilla;
|
||||
using namespace mozilla::dom;
|
||||
using namespace mozilla::gfx;
|
||||
|
||||
FilterDescription
|
||||
nsFilterInstance::GetFilterDescription(nsIContent* aFilteredElement,
|
||||
const nsTArray<nsStyleFilter>& aFilterChain,
|
||||
const UserSpaceMetrics& aMetrics,
|
||||
const gfxRect& aBBox,
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aOutAdditionalImages)
|
||||
{
|
||||
gfxMatrix unused; // aPaintTransform arg not used since we're not painting
|
||||
nsFilterInstance instance(nullptr, aFilteredElement, aMetrics,
|
||||
aFilterChain, nullptr, unused,
|
||||
nullptr, nullptr, nullptr, &aBBox);
|
||||
if (!instance.IsInitialized()) {
|
||||
return FilterDescription();
|
||||
}
|
||||
return instance.ExtractDescriptionAndAdditionalImages(aOutAdditionalImages);
|
||||
}
|
||||
|
||||
static UniquePtr<UserSpaceMetrics>
|
||||
UserSpaceMetricsForFrame(nsIFrame* aFrame)
|
||||
{
|
||||
|
@ -57,6 +57,19 @@ class nsFilterInstance
|
||||
typedef mozilla::dom::UserSpaceMetrics UserSpaceMetrics;
|
||||
|
||||
public:
|
||||
/**
|
||||
* Create a FilterDescription for the supplied filter. All coordinates in
|
||||
* the description are in filter space.
|
||||
* @param aOutAdditionalImages Will contain additional images needed to
|
||||
* render the filter (from feImage primitives).
|
||||
* @return A FilterDescription describing the filter.
|
||||
*/
|
||||
static FilterDescription GetFilterDescription(nsIContent* aFilteredElement,
|
||||
const nsTArray<nsStyleFilter>& aFilterChain,
|
||||
const UserSpaceMetrics& aMetrics,
|
||||
const gfxRect& aBBox,
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aOutAdditionalImages);
|
||||
|
||||
/**
|
||||
* Paint the given filtered frame.
|
||||
* @param aDirtyArea The area than needs to be painted, in aFilteredFrame's
|
||||
@ -144,6 +157,12 @@ public:
|
||||
*/
|
||||
nsresult Render(gfxContext* aContext);
|
||||
|
||||
const FilterDescription& ExtractDescriptionAndAdditionalImages(nsTArray<mozilla::RefPtr<SourceSurface>>& aOutAdditionalImages)
|
||||
{
|
||||
mInputImages.SwapElements(aOutAdditionalImages);
|
||||
return mFilterDescription;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the aPostFilterDirtyRegion outparam to the post-filter area in frame
|
||||
* space that would be dirtied by mTargetFrame when a given
|
||||
|
Loading…
Reference in New Issue
Block a user