LCOV - code coverage report
Current view: top level - dom/svg - SVGFEColorMatrixElement.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 0 39 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 12 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #include "DOMSVGAnimatedNumberList.h"
       8             : #include "mozilla/dom/SVGFEColorMatrixElement.h"
       9             : #include "mozilla/dom/SVGFEColorMatrixElementBinding.h"
      10             : #include "nsSVGUtils.h"
      11             : 
      12             : #define NUM_ENTRIES_IN_4x5_MATRIX 20
      13             : 
      14           0 : NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(FEColorMatrix)
      15             : 
      16             : using namespace mozilla::gfx;
      17             : 
      18             : namespace mozilla {
      19             : namespace dom {
      20             : 
      21             : JSObject*
      22           0 : SVGFEColorMatrixElement::WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
      23             : {
      24           0 :   return SVGFEColorMatrixElementBinding::Wrap(aCx, this, aGivenProto);
      25             : }
      26             : 
      27             : nsSVGEnumMapping SVGFEColorMatrixElement::sTypeMap[] = {
      28             :   {&nsGkAtoms::matrix, SVG_FECOLORMATRIX_TYPE_MATRIX},
      29             :   {&nsGkAtoms::saturate, SVG_FECOLORMATRIX_TYPE_SATURATE},
      30             :   {&nsGkAtoms::hueRotate, SVG_FECOLORMATRIX_TYPE_HUE_ROTATE},
      31             :   {&nsGkAtoms::luminanceToAlpha, SVG_FECOLORMATRIX_TYPE_LUMINANCE_TO_ALPHA},
      32             :   {nullptr, 0}
      33             : };
      34             : 
      35             : nsSVGElement::EnumInfo SVGFEColorMatrixElement::sEnumInfo[1] =
      36             : {
      37             :   { &nsGkAtoms::type,
      38             :     sTypeMap,
      39             :     SVG_FECOLORMATRIX_TYPE_MATRIX
      40             :   }
      41             : };
      42             : 
      43             : nsSVGElement::StringInfo SVGFEColorMatrixElement::sStringInfo[2] =
      44             : {
      45             :   { &nsGkAtoms::result, kNameSpaceID_None, true },
      46             :   { &nsGkAtoms::in, kNameSpaceID_None, true }
      47             : };
      48             : 
      49             : nsSVGElement::NumberListInfo SVGFEColorMatrixElement::sNumberListInfo[1] =
      50             : {
      51             :   { &nsGkAtoms::values }
      52             : };
      53             : 
      54             : //----------------------------------------------------------------------
      55             : // nsIDOMNode methods
      56             : 
      57             : 
      58           0 : NS_IMPL_ELEMENT_CLONE_WITH_INIT(SVGFEColorMatrixElement)
      59             : 
      60             : 
      61             : //----------------------------------------------------------------------
      62             : 
      63             : already_AddRefed<SVGAnimatedString>
      64           0 : SVGFEColorMatrixElement::In1()
      65             : {
      66           0 :   return mStringAttributes[IN1].ToDOMAnimatedString(this);
      67             : }
      68             : 
      69             : already_AddRefed<SVGAnimatedEnumeration>
      70           0 : SVGFEColorMatrixElement::Type()
      71             : {
      72           0 :   return mEnumAttributes[TYPE].ToDOMAnimatedEnum(this);
      73             : }
      74             : 
      75             : already_AddRefed<DOMSVGAnimatedNumberList>
      76           0 : SVGFEColorMatrixElement::Values()
      77             : {
      78             :   return DOMSVGAnimatedNumberList::GetDOMWrapper(&mNumberListAttributes[VALUES],
      79           0 :                                                  this, VALUES);
      80             : }
      81             : 
      82             : void
      83           0 : SVGFEColorMatrixElement::GetSourceImageNames(nsTArray<nsSVGStringInfo>& aSources)
      84             : {
      85           0 :   aSources.AppendElement(nsSVGStringInfo(&mStringAttributes[IN1], this));
      86           0 : }
      87             : 
      88             : FilterPrimitiveDescription
      89           0 : SVGFEColorMatrixElement::GetPrimitiveDescription(nsSVGFilterInstance* aInstance,
      90             :                                                  const IntRect& aFilterSubregion,
      91             :                                                  const nsTArray<bool>& aInputsAreTainted,
      92             :                                                  nsTArray<RefPtr<SourceSurface>>& aInputImages)
      93             : {
      94           0 :   uint32_t type = mEnumAttributes[TYPE].GetAnimValue();
      95           0 :   const SVGNumberList &values = mNumberListAttributes[VALUES].GetAnimValue();
      96             : 
      97           0 :   FilterPrimitiveDescription descr(PrimitiveType::ColorMatrix);
      98           0 :   if (!mNumberListAttributes[VALUES].IsExplicitlySet() &&
      99           0 :       (type == SVG_FECOLORMATRIX_TYPE_MATRIX ||
     100           0 :        type == SVG_FECOLORMATRIX_TYPE_SATURATE ||
     101             :        type == SVG_FECOLORMATRIX_TYPE_HUE_ROTATE)) {
     102           0 :     descr.Attributes().Set(eColorMatrixType, (uint32_t)SVG_FECOLORMATRIX_TYPE_MATRIX);
     103             :     static const float identityMatrix[] =
     104             :       { 1, 0, 0, 0, 0,
     105             :         0, 1, 0, 0, 0,
     106             :         0, 0, 1, 0, 0,
     107             :         0, 0, 0, 1, 0 };
     108           0 :     descr.Attributes().Set(eColorMatrixValues, identityMatrix, 20);
     109             :   } else {
     110           0 :     descr.Attributes().Set(eColorMatrixType, type);
     111           0 :     if (values.Length()) {
     112           0 :       descr.Attributes().Set(eColorMatrixValues, &values[0], values.Length());
     113             :     } else {
     114           0 :       descr.Attributes().Set(eColorMatrixValues, nullptr, 0);
     115             :     }
     116             :   }
     117           0 :   return descr;
     118             : }
     119             : 
     120             : bool
     121           0 : SVGFEColorMatrixElement::AttributeAffectsRendering(int32_t aNameSpaceID,
     122             :                                                    nsIAtom* aAttribute) const
     123             : {
     124           0 :   return SVGFEColorMatrixElementBase::AttributeAffectsRendering(aNameSpaceID, aAttribute) ||
     125           0 :          (aNameSpaceID == kNameSpaceID_None &&
     126           0 :           (aAttribute == nsGkAtoms::in ||
     127           0 :            aAttribute == nsGkAtoms::type ||
     128           0 :            aAttribute == nsGkAtoms::values));
     129             : }
     130             : 
     131             : //----------------------------------------------------------------------
     132             : // nsSVGElement methods
     133             : 
     134             : nsSVGElement::EnumAttributesInfo
     135           0 : SVGFEColorMatrixElement::GetEnumInfo()
     136             : {
     137             :   return EnumAttributesInfo(mEnumAttributes, sEnumInfo,
     138           0 :                             ArrayLength(sEnumInfo));
     139             : }
     140             : 
     141             : nsSVGElement::StringAttributesInfo
     142           0 : SVGFEColorMatrixElement::GetStringInfo()
     143             : {
     144             :   return StringAttributesInfo(mStringAttributes, sStringInfo,
     145           0 :                               ArrayLength(sStringInfo));
     146             : }
     147             : 
     148             : nsSVGElement::NumberListAttributesInfo
     149           0 : SVGFEColorMatrixElement::GetNumberListInfo()
     150             : {
     151             :   return NumberListAttributesInfo(mNumberListAttributes, sNumberListInfo,
     152           0 :                                   ArrayLength(sNumberListInfo));
     153             : }
     154             : 
     155             : } // namespace dom
     156             : } // namespace mozilla

Generated by: LCOV version 1.13