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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/StrokeData.cpp

Issue 2080623002: Revert "Remove OwnPtr from Blink." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
OLDNEW
1 // Copyright (C) 2013 Google Inc. All rights reserved. 1 // Copyright (C) 2013 Google Inc. All rights reserved.
2 // 2 //
3 // Redistribution and use in source and binary forms, with or without 3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions are 4 // modification, are permitted provided that the following conditions are
5 // met: 5 // met:
6 // 6 //
7 // * Redistributions of source code must retain the above copyright 7 // * Redistributions of source code must retain the above copyright
8 // notice, this list of conditions and the following disclaimer. 8 // notice, this list of conditions and the following disclaimer.
9 // * Redistributions in binary form must reproduce the above 9 // * Redistributions in binary form must reproduce the above
10 // copyright notice, this list of conditions and the following disclaimer 10 // copyright notice, this list of conditions and the following disclaimer
(...skipping 10 matching lines...) Expand all
21 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 28
29 #include "platform/graphics/StrokeData.h" 29 #include "platform/graphics/StrokeData.h"
30 #include "third_party/skia/include/effects/SkDashPathEffect.h" 30 #include "third_party/skia/include/effects/SkDashPathEffect.h"
31 #include "wtf/PtrUtil.h" 31 #include "wtf/OwnPtr.h"
32 #include <memory> 32 #include "wtf/PassOwnPtr.h"
33 33
34 namespace blink { 34 namespace blink {
35 35
36 static const int dashRatio = 3; // Ratio of the length of a dash to its width. 36 static const int dashRatio = 3; // Ratio of the length of a dash to its width.
37 37
38 void StrokeData::setLineDash(const DashArray& dashes, float dashOffset) 38 void StrokeData::setLineDash(const DashArray& dashes, float dashOffset)
39 { 39 {
40 // FIXME: This is lifted directly off SkiaSupport, lines 49-74 40 // FIXME: This is lifted directly off SkiaSupport, lines 49-74
41 // so it is not guaranteed to work correctly. 41 // so it is not guaranteed to work correctly.
42 size_t dashLength = dashes.size(); 42 size_t dashLength = dashes.size();
43 if (!dashLength) { 43 if (!dashLength) {
44 // If no dash is set, revert to solid stroke 44 // If no dash is set, revert to solid stroke
45 // FIXME: do we need to set NoStroke in some cases? 45 // FIXME: do we need to set NoStroke in some cases?
46 m_style = SolidStroke; 46 m_style = SolidStroke;
47 m_dash.reset(); 47 m_dash.reset();
48 return; 48 return;
49 } 49 }
50 50
51 size_t count = !(dashLength % 2) ? dashLength : dashLength * 2; 51 size_t count = !(dashLength % 2) ? dashLength : dashLength * 2;
52 std::unique_ptr<SkScalar[]> intervals = wrapArrayUnique(new SkScalar[count]) ; 52 OwnPtr<SkScalar[]> intervals = adoptArrayPtr(new SkScalar[count]);
53 53
54 for (unsigned i = 0; i < count; i++) 54 for (unsigned i = 0; i < count; i++)
55 intervals[i] = dashes[i % dashLength]; 55 intervals[i] = dashes[i % dashLength];
56 56
57 m_dash = SkDashPathEffect::Make(intervals.get(), count, dashOffset); 57 m_dash = SkDashPathEffect::Make(intervals.get(), count, dashOffset);
58 } 58 }
59 59
60 void StrokeData::setupPaint(SkPaint* paint, int length) const 60 void StrokeData::setupPaint(SkPaint* paint, int length) const
61 { 61 {
62 paint->setStyle(SkPaint::kStroke_Style); 62 paint->setStyle(SkPaint::kStroke_Style);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 } 104 }
105 } 105 }
106 SkScalar dashLengthSk = SkIntToScalar(dashLength); 106 SkScalar dashLengthSk = SkIntToScalar(dashLength);
107 SkScalar intervals[2] = { dashLengthSk, dashLengthSk }; 107 SkScalar intervals[2] = { dashLengthSk, dashLengthSk };
108 paint->setPathEffect(SkDashPathEffect::Make(intervals, 2, SkIntToSca lar(phase))); 108 paint->setPathEffect(SkDashPathEffect::Make(intervals, 2, SkIntToSca lar(phase)));
109 } 109 }
110 } 110 }
111 } 111 }
112 112
113 } // namespace blink 113 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698