LCOV - code coverage report
Current view: top level - dom/canvas - CanvasPath.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 5 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 10 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* This Source Code Form is subject to the terms of the Mozilla Public
       2             :  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
       3             :  * You can obtain one at http://mozilla.org/MPL/2.0/. */
       4             : 
       5             : #ifndef CanvasPath_h
       6             : #define CanvasPath_h
       7             : 
       8             : #include "mozilla/Attributes.h"
       9             : #include "mozilla/RefPtr.h"
      10             : #include "nsWrapperCache.h"
      11             : #include "mozilla/gfx/2D.h"
      12             : #include "mozilla/dom/BindingDeclarations.h"
      13             : #include "mozilla/ErrorResult.h"
      14             : 
      15             : namespace mozilla {
      16             : namespace dom {
      17             : 
      18             : enum class CanvasWindingRule : uint8_t;
      19             : class SVGMatrix;
      20             : 
      21             : class CanvasPath final :
      22             :   public nsWrapperCache
      23             : {
      24             : public:
      25           0 :   NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(CanvasPath)
      26           0 :   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(CanvasPath)
      27             : 
      28           0 :   nsCOMPtr<nsISupports> GetParentObject() { return mParent; }
      29             : 
      30             :   JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
      31             : 
      32             :   static already_AddRefed<CanvasPath> Constructor(const GlobalObject& aGlobal,
      33             :                                                   ErrorResult& rv);
      34             :   static already_AddRefed<CanvasPath> Constructor(const GlobalObject& aGlobal,
      35             :                                                   CanvasPath& aCanvasPath,
      36             :                                                   ErrorResult& rv);
      37             :   static already_AddRefed<CanvasPath> Constructor(const GlobalObject& aGlobal,
      38             :                                                   const nsAString& aPathString,
      39             :                                                   ErrorResult& rv);
      40             : 
      41             :   void ClosePath();
      42             :   void MoveTo(double x, double y);
      43             :   void LineTo(double x, double y);
      44             :   void QuadraticCurveTo(double cpx, double cpy, double x, double y);
      45             :   void BezierCurveTo(double cp1x, double cp1y,
      46             :                      double cp2x, double cp2y,
      47             :                      double x, double y);
      48             :   void ArcTo(double x1, double y1, double x2, double y2, double radius,
      49             :              ErrorResult& error);
      50             :   void Rect(double x, double y, double w, double h);
      51             :   void Arc(double x, double y, double radius,
      52             :            double startAngle, double endAngle, bool anticlockwise,
      53             :            ErrorResult& error);
      54             :   void Ellipse(double x, double y, double radiusX, double radiusY,
      55             :                double rotation, double startAngle, double endAngle,
      56             :                bool anticlockwise, ErrorResult& error);
      57             : 
      58             :   void LineTo(const gfx::Point& aPoint);
      59             :   void BezierTo(const gfx::Point& aCP1,
      60             :                 const gfx::Point& aCP2,
      61             :                 const gfx::Point& aCP3);
      62             : 
      63             :   already_AddRefed<gfx::Path> GetPath(const CanvasWindingRule& aWinding,
      64             :                                   const gfx::DrawTarget* aTarget) const;
      65             : 
      66             :   explicit CanvasPath(nsISupports* aParent);
      67             :   // already_AddRefed arg because the return value from Path::CopyToBuilder()
      68             :   // is passed directly and we can't drop the only ref to have a raw pointer.
      69             :   CanvasPath(nsISupports* aParent,
      70             :              already_AddRefed<gfx::PathBuilder> aPathBuilder);
      71             : 
      72             :   void AddPath(CanvasPath& aCanvasPath,
      73             :                const Optional<NonNull<SVGMatrix>>& aMatrix);
      74             : 
      75             : private:
      76           0 :   virtual ~CanvasPath() {}
      77             : 
      78             :   nsCOMPtr<nsISupports> mParent;
      79           0 :   static gfx::Float ToFloat(double aValue) { return gfx::Float(aValue); }
      80             : 
      81             :   mutable RefPtr<gfx::Path> mPath;
      82             :   mutable RefPtr<gfx::PathBuilder> mPathBuilder;
      83             : 
      84             :   void EnsurePathBuilder() const;
      85             : };
      86             : 
      87             : } // namespace dom
      88             : } // namespace mozilla
      89             : 
      90             : #endif /* CanvasPath_h */
      91             : 

Generated by: LCOV version 1.13