Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(590)

Side by Side Diff: include/effects/SkDashPathEffect.h

Issue 166583002: Factory methods for heap-allocated SkPathEffect and SkXfermode objects. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Update experimental/PdfViewer Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/effects/SkCornerPathEffect.h ('k') | include/effects/SkDiscretePathEffect.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2006 The Android Open Source Project 2 * Copyright 2006 The Android Open Source Project
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkDashPathEffect_DEFINED 8 #ifndef SkDashPathEffect_DEFINED
9 #define SkDashPathEffect_DEFINED 9 #define SkDashPathEffect_DEFINED
10 10
(...skipping 18 matching lines...) Expand all
29 10 pixels on 29 10 pixels on
30 20 pixels off 30 20 pixels off
31 10 pixels on 31 10 pixels on
32 20 pixels off 32 20 pixels off
33 ... 33 ...
34 A phase of -5, 25, 55, 85, etc. would all result in the same path, 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. 35 because the sum of all the intervals is 30.
36 36
37 Note: only affects stroked paths. 37 Note: only affects stroked paths.
38 */ 38 */
39 SkDashPathEffect(const SkScalar intervals[], int count, SkScalar phase, 39 static SkDashPathEffect* Create(const SkScalar intervals[], int count,
40 bool scaleToFit = false); 40 SkScalar phase, bool scaleToFit = false) {
41 return SkNEW_ARGS(SkDashPathEffect, (intervals, count, phase, scaleToFit ));
42 }
41 virtual ~SkDashPathEffect(); 43 virtual ~SkDashPathEffect();
42 44
43 virtual bool filterPath(SkPath* dst, const SkPath& src, 45 virtual bool filterPath(SkPath* dst, const SkPath& src,
44 SkStrokeRec*, const SkRect*) const SK_OVERRIDE; 46 SkStrokeRec*, const SkRect*) const SK_OVERRIDE;
45 47
46 virtual bool asPoints(PointData* results, const SkPath& src, 48 virtual bool asPoints(PointData* results, const SkPath& src,
47 const SkStrokeRec&, const SkMatrix&, 49 const SkStrokeRec&, const SkMatrix&,
48 const SkRect*) const SK_OVERRIDE; 50 const SkRect*) const SK_OVERRIDE;
49 51
50 virtual Factory getFactory() const SK_OVERRIDE; 52 virtual Factory getFactory() const SK_OVERRIDE;
51 53
52 static SkFlattenable* CreateProc(SkReadBuffer&); 54 static SkFlattenable* CreateProc(SkReadBuffer&);
53 55
54 protected: 56 protected:
55 SkDashPathEffect(SkReadBuffer&); 57 SkDashPathEffect(SkReadBuffer&);
56 virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE; 58 virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
57 59
60 #ifdef SK_SUPPORT_LEGACY_PUBLICEFFECTCONSTRUCTORS
61 public:
62 #endif
63 SkDashPathEffect(const SkScalar intervals[], int count, SkScalar phase,
64 bool scaleToFit = false);
65
58 private: 66 private:
59 SkScalar* fIntervals; 67 SkScalar* fIntervals;
60 int32_t fCount; 68 int32_t fCount;
61 // computed from phase 69 // computed from phase
62 SkScalar fInitialDashLength; 70 SkScalar fInitialDashLength;
63 int32_t fInitialDashIndex; 71 int32_t fInitialDashIndex;
64 SkScalar fIntervalLength; 72 SkScalar fIntervalLength;
65 bool fScaleToFit; 73 bool fScaleToFit;
66 74
67 typedef SkPathEffect INHERITED; 75 typedef SkPathEffect INHERITED;
68 }; 76 };
69 77
70 #endif 78 #endif
OLDNEW
« no previous file with comments | « include/effects/SkCornerPathEffect.h ('k') | include/effects/SkDiscretePathEffect.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698