LCOV - code coverage report
Current view: top level - gfx/skia/skia/include/effects - SkDashPathEffect.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 1 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 1 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright 2006 The Android Open Source Project
       3             :  *
       4             :  * Use of this source code is governed by a BSD-style license that can be
       5             :  * found in the LICENSE file.
       6             :  */
       7             : 
       8             : #ifndef SkDashPathEffect_DEFINED
       9             : #define SkDashPathEffect_DEFINED
      10             : 
      11             : #include "SkPathEffect.h"
      12             : 
      13             : /** \class SkDashPathEffect
      14             : 
      15             :     SkDashPathEffect is a subclass of SkPathEffect that implements dashing
      16             : */
      17             : class SK_API SkDashPathEffect : public SkPathEffect {
      18             : public:
      19             :     /** intervals: array containing an even number of entries (>=2), with
      20             :          the even indices specifying the length of "on" intervals, and the odd
      21             :          indices specifying the length of "off" intervals.
      22             :         count: number of elements in the intervals array
      23             :         phase: offset into the intervals array (mod the sum of all of the
      24             :          intervals).
      25             : 
      26             :         For example: if intervals[] = {10, 20}, count = 2, and phase = 25,
      27             :          this will set up a dashed path like so:
      28             :          5 pixels off
      29             :          10 pixels on
      30             :          20 pixels off
      31             :          10 pixels on
      32             :          20 pixels off
      33             :          ...
      34             :         A phase of -5, 25, 55, 85, etc. would all result in the same path,
      35             :          because the sum of all the intervals is 30.
      36             : 
      37             :         Note: only affects stroked paths.
      38             :     */
      39             :     static sk_sp<SkPathEffect> Make(const SkScalar intervals[], int count, SkScalar phase);
      40             : 
      41             :     virtual bool filterPath(SkPath* dst, const SkPath& src,
      42             :                             SkStrokeRec*, const SkRect*) const override;
      43             : 
      44             :     virtual bool asPoints(PointData* results, const SkPath& src,
      45             :                           const SkStrokeRec&, const SkMatrix&,
      46             :                           const SkRect*) const override;
      47             : 
      48             :     DashType asADash(DashInfo* info) const override;
      49             : 
      50             :     SK_TO_STRING_OVERRIDE()
      51           0 :     SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDashPathEffect)
      52             : 
      53             : #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
      54             :     bool exposedInAndroidJavaAPI() const override { return true; }
      55             : #endif
      56             : 
      57             : protected:
      58             :     ~SkDashPathEffect() override;
      59             :     SkDashPathEffect(const SkScalar intervals[], int count, SkScalar phase);
      60             :     void flatten(SkWriteBuffer&) const override;
      61             : 
      62             : private:
      63             :     SkScalar*   fIntervals;
      64             :     int32_t     fCount;
      65             :     SkScalar    fPhase;
      66             :     // computed from phase
      67             : 
      68             :     SkScalar    fInitialDashLength;
      69             :     int32_t     fInitialDashIndex;
      70             :     SkScalar    fIntervalLength;
      71             : 
      72             :     typedef SkPathEffect INHERITED;
      73             : };
      74             : 
      75             : #endif

Generated by: LCOV version 1.13