mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 20:05:49 +00:00
Bug 944383 - Pass around SourceSurfaces instead of gfxASurfaces for feImage input images. r=jwatt
This commit is contained in:
parent
5f6d211aec
commit
b1fa2b9e41
@ -73,7 +73,7 @@ SVGFEBlendElement::Mode()
|
||||
FilterPrimitiveDescription
|
||||
SVGFEBlendElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
uint32_t mode = mEnumAttributes[MODE].GetAnimValue();
|
||||
FilterPrimitiveDescription descr(FilterPrimitiveDescription::eBlend);
|
||||
|
@ -32,7 +32,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() MOZ_OVERRIDE { return mStringAttributes[RESULT]; }
|
||||
|
@ -87,7 +87,7 @@ SVGFEColorMatrixElement::GetSourceImageNames(nsTArray<nsSVGStringInfo>& aSources
|
||||
FilterPrimitiveDescription
|
||||
SVGFEColorMatrixElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
uint32_t type = mEnumAttributes[TYPE].GetAnimValue();
|
||||
const SVGNumberList &values = mNumberListAttributes[VALUES].GetAnimValue();
|
||||
|
@ -34,7 +34,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() MOZ_OVERRIDE { return mStringAttributes[RESULT]; }
|
||||
|
@ -54,7 +54,7 @@ SVGFEComponentTransferElement::GetStringInfo()
|
||||
FilterPrimitiveDescription
|
||||
SVGFEComponentTransferElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
nsRefPtr<SVGComponentTransferFunctionElement> childForChannel[4];
|
||||
|
||||
|
@ -32,7 +32,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() MOZ_OVERRIDE { return mStringAttributes[RESULT]; }
|
||||
|
@ -112,7 +112,7 @@ SVGFECompositeElement::SetK(float k1, float k2, float k3, float k4)
|
||||
FilterPrimitiveDescription
|
||||
SVGFECompositeElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
FilterPrimitiveDescription descr(FilterPrimitiveDescription::eComposite);
|
||||
uint32_t op = mEnumAttributes[OPERATOR].GetAnimValue();
|
||||
|
@ -34,7 +34,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() MOZ_OVERRIDE { return mStringAttributes[RESULT]; }
|
||||
|
@ -166,7 +166,7 @@ SVGFEConvolveMatrixElement::GetSourceImageNames(nsTArray<nsSVGStringInfo>& aSour
|
||||
FilterPrimitiveDescription
|
||||
SVGFEConvolveMatrixElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
const FilterPrimitiveDescription failureDescription(FilterPrimitiveDescription::eNone);
|
||||
|
||||
|
@ -42,7 +42,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() MOZ_OVERRIDE { return mStringAttributes[RESULT]; }
|
||||
|
@ -63,7 +63,7 @@ SVGFEDiffuseLightingElement::KernelUnitLengthY()
|
||||
FilterPrimitiveDescription
|
||||
SVGFEDiffuseLightingElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
float diffuseConstant = mNumberAttributes[DIFFUSE_CONSTANT].GetAnimValue();
|
||||
|
||||
|
@ -32,7 +32,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const;
|
||||
|
||||
|
@ -93,7 +93,7 @@ SVGFEDisplacementMapElement::YChannelSelector()
|
||||
FilterPrimitiveDescription
|
||||
SVGFEDisplacementMapElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
float scale = aInstance->GetPrimitiveNumber(SVGContentUtils::XY,
|
||||
&mNumberAttributes[SCALE]);
|
||||
|
@ -33,7 +33,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() MOZ_OVERRIDE { return mStringAttributes[RESULT]; }
|
||||
|
@ -35,7 +35,7 @@ NS_IMPL_ELEMENT_CLONE_WITH_INIT(SVGFEFloodElement)
|
||||
FilterPrimitiveDescription
|
||||
SVGFEFloodElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
FilterPrimitiveDescription descr(FilterPrimitiveDescription::eFlood);
|
||||
nsIFrame* frame = GetPrimaryFrame();
|
||||
|
@ -34,7 +34,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() MOZ_OVERRIDE { return mStringAttributes[RESULT]; }
|
||||
|
||||
// nsIContent interface
|
||||
|
@ -68,7 +68,7 @@ static const float kMaxStdDeviation = 500;
|
||||
FilterPrimitiveDescription
|
||||
SVGFEGaussianBlurElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
float stdX = aInstance->GetPrimitiveNumber(SVGContentUtils::X,
|
||||
&mNumberPairAttributes[STD_DEV],
|
||||
|
@ -34,7 +34,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() MOZ_OVERRIDE { return mStringAttributes[RESULT]; }
|
||||
|
@ -193,7 +193,7 @@ SVGFEImageElement::Href()
|
||||
FilterPrimitiveDescription
|
||||
SVGFEImageElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
nsIFrame* frame = GetPrimaryFrame();
|
||||
if (!frame) {
|
||||
@ -220,6 +220,11 @@ SVGFEImageElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
return FilterPrimitiveDescription(FilterPrimitiveDescription::eNone);
|
||||
}
|
||||
|
||||
gfxPlatform* platform = gfxPlatform::GetPlatform();
|
||||
DrawTarget* dt = platform->ScreenReferenceDrawTarget();
|
||||
RefPtr<SourceSurface> image =
|
||||
platform->GetSourceSurfaceForSurface(dt, currentFrame);
|
||||
|
||||
IntSize nativeSize;
|
||||
imageContainer->GetWidth(&nativeSize.width);
|
||||
imageContainer->GetHeight(&nativeSize.height);
|
||||
@ -239,7 +244,7 @@ SVGFEImageElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
|
||||
// Append the image to aInputImages and store its index in the description.
|
||||
size_t imageIndex = aInputImages.Length();
|
||||
aInputImages.AppendElement(currentFrame);
|
||||
aInputImages.AppendElement(image);
|
||||
descr.Attributes().Set(eImageInputIndex, (uint32_t)imageIndex);
|
||||
|
||||
return descr;
|
||||
|
@ -41,7 +41,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() MOZ_OVERRIDE { return mStringAttributes[RESULT]; }
|
||||
|
@ -30,7 +30,7 @@ NS_IMPL_ELEMENT_CLONE_WITH_INIT(SVGFEMergeElement)
|
||||
FilterPrimitiveDescription
|
||||
SVGFEMergeElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
return FilterPrimitiveDescription(FilterPrimitiveDescription::eMerge);
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() MOZ_OVERRIDE { return mStringAttributes[RESULT]; }
|
||||
virtual void GetSourceImageNames(nsTArray<nsSVGStringInfo>& aSources) MOZ_OVERRIDE;
|
||||
|
||||
|
@ -114,7 +114,7 @@ SVGFEMorphologyElement::GetRXY(int32_t *aRX, int32_t *aRY,
|
||||
FilterPrimitiveDescription
|
||||
SVGFEMorphologyElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
int32_t rx, ry;
|
||||
GetRXY(&rx, &ry, *aInstance);
|
||||
|
@ -35,7 +35,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() MOZ_OVERRIDE { return mStringAttributes[RESULT]; }
|
||||
|
@ -72,7 +72,7 @@ SVGFEOffsetElement::GetOffset(const nsSVGFilterInstance& aInstance)
|
||||
FilterPrimitiveDescription
|
||||
SVGFEOffsetElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
FilterPrimitiveDescription descr(FilterPrimitiveDescription::eOffset);
|
||||
nsIntPoint offset = GetOffset(*aInstance);
|
||||
|
@ -34,7 +34,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() { return mStringAttributes[RESULT]; }
|
||||
|
@ -70,7 +70,7 @@ SVGFESpecularLightingElement::KernelUnitLengthY()
|
||||
FilterPrimitiveDescription
|
||||
SVGFESpecularLightingElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
float specularExponent = mNumberAttributes[SPECULAR_EXPONENT].GetAnimValue();
|
||||
float specularConstant = mNumberAttributes[SPECULAR_CONSTANT].GetAnimValue();
|
||||
|
@ -36,7 +36,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const;
|
||||
|
||||
|
@ -51,7 +51,7 @@ SVGFETileElement::GetSourceImageNames(nsTArray<nsSVGStringInfo>& aSources)
|
||||
FilterPrimitiveDescription
|
||||
SVGFETileElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
return FilterPrimitiveDescription(FilterPrimitiveDescription::eTile);
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() MOZ_OVERRIDE { return mStringAttributes[RESULT]; }
|
||||
|
@ -121,7 +121,7 @@ SVGFETurbulenceElement::Type()
|
||||
FilterPrimitiveDescription
|
||||
SVGFETurbulenceElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
float fX = mNumberPairAttributes[BASE_FREQ].GetAnimValue(nsSVGNumberPair::eFirst);
|
||||
float fY = mNumberPairAttributes[BASE_FREQ].GetAnimValue(nsSVGNumberPair::eSecond);
|
||||
|
@ -38,7 +38,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) MOZ_OVERRIDE;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) MOZ_OVERRIDE;
|
||||
virtual bool AttributeAffectsRendering(
|
||||
int32_t aNameSpaceID, nsIAtom* aAttribute) const MOZ_OVERRIDE;
|
||||
virtual nsSVGString& GetResultImageName() MOZ_OVERRIDE { return mStringAttributes[RESULT]; }
|
||||
|
@ -45,6 +45,7 @@ class nsSVGFE : public nsSVGFEBase
|
||||
friend class nsSVGFilterInstance;
|
||||
|
||||
protected:
|
||||
typedef mozilla::gfx::SourceSurface SourceSurface;
|
||||
typedef mozilla::gfx::Size Size;
|
||||
typedef mozilla::gfx::IntRect IntRect;
|
||||
typedef mozilla::gfx::ColorSpace ColorSpace;
|
||||
@ -95,7 +96,7 @@ public:
|
||||
virtual FilterPrimitiveDescription
|
||||
GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
|
||||
const IntRect& aFilterSubregion,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages) = 0;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>>& aInputImages) = 0;
|
||||
|
||||
// returns true if changes to the attribute should cause us to
|
||||
// repaint the filter
|
||||
|
@ -561,7 +561,7 @@ FilterNodeFromPrimitiveDescription(const FilterPrimitiveDescription& aDescriptio
|
||||
DrawTarget* aDT,
|
||||
nsTArray<RefPtr<FilterNode> >& aSources,
|
||||
nsTArray<IntRect>& aSourceRegions,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aInputImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aInputImages)
|
||||
{
|
||||
const AttributeMap& atts = aDescription.Attributes();
|
||||
switch (aDescription.Type()) {
|
||||
@ -914,13 +914,11 @@ FilterNodeFromPrimitiveDescription(const FilterPrimitiveDescription& aDescriptio
|
||||
|
||||
// Pull the image from the additional image list using the index that's
|
||||
// stored in the primitive description.
|
||||
nsRefPtr<gfxASurface> inputImage =
|
||||
RefPtr<SourceSurface> inputImage =
|
||||
aInputImages[atts.GetUint(eImageInputIndex)];
|
||||
RefPtr<SourceSurface> inputSurface =
|
||||
gfxPlatform::GetPlatform()->GetSourceSurfaceForSurface(aDT, inputImage);
|
||||
|
||||
RefPtr<FilterNode> transform = aDT->CreateFilter(FILTER_TRANSFORM);
|
||||
transform->SetInput(IN_TRANSFORM_IN, inputSurface);
|
||||
transform->SetInput(IN_TRANSFORM_IN, inputImage);
|
||||
transform->SetAttribute(ATT_TRANSFORM_MATRIX, TM);
|
||||
transform->SetAttribute(ATT_TRANSFORM_FILTER, atts.GetUint(eImageFilter));
|
||||
return transform;
|
||||
@ -1004,7 +1002,7 @@ FilterNodeGraphFromDescription(DrawTarget* aDT,
|
||||
const IntRect& aFillPaintRect,
|
||||
SourceSurface* aStrokePaint,
|
||||
const IntRect& aStrokePaintRect,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aAdditionalImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aAdditionalImages)
|
||||
{
|
||||
const nsTArray<FilterPrimitiveDescription>& primitives = aFilter.mPrimitives;
|
||||
const IntRect& filterSpaceBounds = aFilter.mFilterSpaceBounds;
|
||||
@ -1108,7 +1106,7 @@ FilterSupport::RenderFilterDescription(DrawTarget* aDT,
|
||||
const IntRect& aFillPaintRect,
|
||||
SourceSurface* aStrokePaint,
|
||||
const IntRect& aStrokePaintRect,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aAdditionalImages)
|
||||
nsTArray<RefPtr<SourceSurface>>& aAdditionalImages)
|
||||
{
|
||||
RefPtr<FilterNode> resultFilter =
|
||||
FilterNodeGraphFromDescription(aDT, aFilter, aRenderRect,
|
||||
|
@ -14,8 +14,6 @@
|
||||
#include "nsTArray.h"
|
||||
#include "nsRegion.h"
|
||||
|
||||
class gfxASurface;
|
||||
|
||||
namespace mozilla {
|
||||
namespace gfx {
|
||||
|
||||
@ -343,7 +341,7 @@ public:
|
||||
const IntRect& aFillPaintRect,
|
||||
SourceSurface* aStrokePaint,
|
||||
const IntRect& aStrokePaintRect,
|
||||
nsTArray<nsRefPtr<gfxASurface> >& aAdditionalImages);
|
||||
nsTArray<RefPtr<SourceSurface>>& aAdditionalImages);
|
||||
|
||||
/**
|
||||
* Computes the region that changes in the filter output due to a change in
|
||||
|
@ -327,7 +327,7 @@ private:
|
||||
SourceInfo mFillPaint;
|
||||
SourceInfo mStrokePaint;
|
||||
nsIFrame* mTransformRoot;
|
||||
nsTArray<nsRefPtr<gfxASurface> > mInputImages;
|
||||
nsTArray<mozilla::RefPtr<SourceSurface>> mInputImages;
|
||||
nsTArray<FilterPrimitiveDescription> mPrimitiveDescriptions;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user