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

Side by Side Diff: gm/shadows.cpp

Issue 232913003: Make sure SkDrawLooper objects can only be allocated on the heap. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rebase Created 6 years, 8 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 | « gm/rects.cpp ('k') | gm/tilemodes_scaled.cpp » ('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 /* 2 /*
3 * Copyright 2011 Google Inc. 3 * Copyright 2011 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 #include "gm.h" 8 #include "gm.h"
9 #include "SkBlurMask.h" 9 #include "SkBlurMask.h"
10 #include "SkBlurDrawLooper.h" 10 #include "SkBlurDrawLooper.h"
(...skipping 29 matching lines...) Expand all
40 return SkString("shadows"); 40 return SkString("shadows");
41 } 41 }
42 42
43 virtual SkISize onISize() { 43 virtual SkISize onISize() {
44 return make_isize(200, 120); 44 return make_isize(200, 120);
45 } 45 }
46 46
47 virtual void onDraw(SkCanvas* canvas) { 47 virtual void onDraw(SkCanvas* canvas) {
48 SkBlurDrawLooper* shadowLoopers[5]; 48 SkBlurDrawLooper* shadowLoopers[5];
49 shadowLoopers[0] = 49 shadowLoopers[0] =
50 new SkBlurDrawLooper (SK_ColorBLUE, 50 SkBlurDrawLooper::Create(SK_ColorBLUE,
51 SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(10) ), 51 SkBlurMask::ConvertRadiusToSigma(SkIntToScalar( 10)),
52 SkIntToScalar(5), SkIntToScalar(10), 52 SkIntToScalar(5), SkIntToScalar(10),
53 SkBlurDrawLooper::kIgnoreTransform_BlurFlag | 53 SkBlurDrawLooper::kIgnoreTransform_BlurFlag |
54 SkBlurDrawLooper::kOverrideColor_BlurFlag | 54 SkBlurDrawLooper::kOverrideColor_BlurFlag |
55 SkBlurDrawLooper::kHighQuality_BlurFlag); 55 SkBlurDrawLooper::kHighQuality_BlurFlag);
56 SkAutoUnref aurL0(shadowLoopers[0]); 56 SkAutoUnref aurL0(shadowLoopers[0]);
57 shadowLoopers[1] = 57 shadowLoopers[1] =
58 new SkBlurDrawLooper (SK_ColorBLUE, 58 SkBlurDrawLooper::Create(SK_ColorBLUE,
59 SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(10) ), 59 SkBlurMask::ConvertRadiusToSigma(SkIntToScalar( 10)),
60 SkIntToScalar(5), SkIntToScalar(10), 60 SkIntToScalar(5), SkIntToScalar(10),
61 SkBlurDrawLooper::kIgnoreTransform_BlurFlag | 61 SkBlurDrawLooper::kIgnoreTransform_BlurFlag |
62 SkBlurDrawLooper::kOverrideColor_BlurFlag); 62 SkBlurDrawLooper::kOverrideColor_BlurFlag);
63 SkAutoUnref aurL1(shadowLoopers[1]); 63 SkAutoUnref aurL1(shadowLoopers[1]);
64 shadowLoopers[2] = 64 shadowLoopers[2] =
65 new SkBlurDrawLooper (SK_ColorBLACK, 65 SkBlurDrawLooper::Create(SK_ColorBLACK,
66 SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(5)) , 66 SkBlurMask::ConvertRadiusToSigma(SkIntToScalar( 5)),
67 SkIntToScalar(5), 67 SkIntToScalar(5),
68 SkIntToScalar(10), 68 SkIntToScalar(10),
69 SkBlurDrawLooper::kIgnoreTransform_BlurFlag | 69 SkBlurDrawLooper::kIgnoreTransform_BlurFlag |
70 SkBlurDrawLooper::kHighQuality_BlurFlag); 70 SkBlurDrawLooper::kHighQuality_BlurFlag);
71 SkAutoUnref aurL2(shadowLoopers[2]); 71 SkAutoUnref aurL2(shadowLoopers[2]);
72 shadowLoopers[3] = 72 shadowLoopers[3] =
73 new SkBlurDrawLooper (0x7FFF0000, 73 SkBlurDrawLooper::Create(0x7FFF0000,
74 SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(5)) , 74 SkBlurMask::ConvertRadiusToSigma(SkIntToScalar( 5)),
75 SkIntToScalar(-5), SkIntToScalar(-10), 75 SkIntToScalar(-5), SkIntToScalar(-10),
76 SkBlurDrawLooper::kIgnoreTransform_BlurFlag | 76 SkBlurDrawLooper::kIgnoreTransform_BlurFlag |
77 SkBlurDrawLooper::kOverrideColor_BlurFlag | 77 SkBlurDrawLooper::kOverrideColor_BlurFlag |
78 SkBlurDrawLooper::kHighQuality_BlurFlag); 78 SkBlurDrawLooper::kHighQuality_BlurFlag);
79 SkAutoUnref aurL3(shadowLoopers[3]); 79 SkAutoUnref aurL3(shadowLoopers[3]);
80 shadowLoopers[4] = 80 shadowLoopers[4] =
81 new SkBlurDrawLooper (SK_ColorBLACK, SkIntToScalar(0), 81 SkBlurDrawLooper::Create(SK_ColorBLACK, SkIntToScalar(0),
82 SkIntToScalar(5), SkIntToScalar(5), 82 SkIntToScalar(5), SkIntToScalar(5),
83 SkBlurDrawLooper::kIgnoreTransform_BlurFlag | 83 SkBlurDrawLooper::kIgnoreTransform_BlurFlag |
84 SkBlurDrawLooper::kOverrideColor_BlurFlag | 84 SkBlurDrawLooper::kOverrideColor_BlurFlag |
85 SkBlurDrawLooper::kHighQuality_BlurFlag); 85 SkBlurDrawLooper::kHighQuality_BlurFlag);
86 SkAutoUnref aurL4(shadowLoopers[4]); 86 SkAutoUnref aurL4(shadowLoopers[4]);
87 87
88 static const struct { 88 static const struct {
89 SkColor fColor; 89 SkColor fColor;
90 SkScalar fStrokeWidth; 90 SkScalar fStrokeWidth;
91 } gRec[] = { 91 } gRec[] = {
92 { SK_ColorRED, -SK_Scalar1 }, 92 { SK_ColorRED, -SK_Scalar1 },
93 { SK_ColorGREEN, SkIntToScalar(4) }, 93 { SK_ColorGREEN, SkIntToScalar(4) },
94 { SK_ColorBLUE, SkIntToScalar(0)}, 94 { SK_ColorBLUE, SkIntToScalar(0)},
95 }; 95 };
(...skipping 22 matching lines...) Expand all
118 private: 118 private:
119 typedef GM INHERITED; 119 typedef GM INHERITED;
120 }; 120 };
121 121
122 /////////////////////////////////////////////////////////////////////////////// 122 ///////////////////////////////////////////////////////////////////////////////
123 123
124 static GM* MyFactory(void*) { return new ShadowsGM; } 124 static GM* MyFactory(void*) { return new ShadowsGM; }
125 static GMRegistry reg(MyFactory); 125 static GMRegistry reg(MyFactory);
126 126
127 } 127 }
OLDNEW
« no previous file with comments | « gm/rects.cpp ('k') | gm/tilemodes_scaled.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698