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

Side by Side Diff: src/gpu/effects/GrDistanceFieldGeoProc.h

Issue 2041113004: sk_sp for gpu. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Reserve correctly. 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
« no previous file with comments | « src/gpu/effects/GrDisableColorXP.cpp ('k') | src/gpu/effects/GrDistanceFieldGeoProc.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 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
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 GrDistanceFieldGeoProc_DEFINED 8 #ifndef GrDistanceFieldGeoProc_DEFINED
9 #define GrDistanceFieldGeoProc_DEFINED 9 #define GrDistanceFieldGeoProc_DEFINED
10 10
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 42
43 /** 43 /**
44 * The output color of this effect is a modulation of the input color and a samp le from a 44 * The output color of this effect is a modulation of the input color and a samp le from a
45 * distance field texture (using a smoothed step function near 0.5). 45 * distance field texture (using a smoothed step function near 0.5).
46 * It allows explicit specification of the filtering and wrap modes (GrTexturePa rams). The input 46 * It allows explicit specification of the filtering and wrap modes (GrTexturePa rams). The input
47 * coords are a custom attribute. Gamma correction is handled via a texture LUT. 47 * coords are a custom attribute. Gamma correction is handled via a texture LUT.
48 */ 48 */
49 class GrDistanceFieldA8TextGeoProc : public GrGeometryProcessor { 49 class GrDistanceFieldA8TextGeoProc : public GrGeometryProcessor {
50 public: 50 public:
51 #ifdef SK_GAMMA_APPLY_TO_A8 51 #ifdef SK_GAMMA_APPLY_TO_A8
52 static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix , 52 static sk_sp<GrGeometryProcessor> Make(GrColor color, const SkMatrix& viewMa trix,
53 GrTexture* tex, const GrTextureParams& pa rams, 53 GrTexture* tex, const GrTextureParams & params,
54 float lum, uint32_t flags, bool usesLocal Coords) { 54 float lum, uint32_t flags, bool usesL ocalCoords) {
55 return new GrDistanceFieldA8TextGeoProc(color, viewMatrix, tex, params, lum, flags, 55 return sk_sp<GrGeometryProcessor>(
56 usesLocalCoords); 56 new GrDistanceFieldA8TextGeoProc(color, viewMatrix, tex, params, lum , flags,
57 usesLocalCoords));
57 } 58 }
58 #else 59 #else
59 static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix , 60 static sk_sp<GrGeometryProcessor> Make(GrColor color, const SkMatrix& viewMa trix,
60 GrTexture* tex, const GrTextureParams& pa rams, 61 GrTexture* tex, const GrTextureParams & params,
61 uint32_t flags, bool usesLocalCoords) { 62 uint32_t flags, bool usesLocalCoords) {
62 return new GrDistanceFieldA8TextGeoProc(color, viewMatrix, tex, params, flags, 63 return sk_sp<GrGeometryProcessor>(
63 usesLocalCoords); 64 new GrDistanceFieldA8TextGeoProc(color, viewMatrix, tex, params, fla gs,
65 usesLocalCoords));
64 } 66 }
65 #endif 67 #endif
66 68
67 virtual ~GrDistanceFieldA8TextGeoProc() {} 69 virtual ~GrDistanceFieldA8TextGeoProc() {}
68 70
69 const char* name() const override { return "DistanceFieldTexture"; } 71 const char* name() const override { return "DistanceFieldTexture"; }
70 72
71 const Attribute* inPosition() const { return fInPosition; } 73 const Attribute* inPosition() const { return fInPosition; }
72 const Attribute* inColor() const { return fInColor; } 74 const Attribute* inColor() const { return fInColor; }
73 const Attribute* inTextureCoords() const { return fInTextureCoords; } 75 const Attribute* inTextureCoords() const { return fInTextureCoords; }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 113
112 114
113 /** 115 /**
114 * The output color of this effect is a modulation of the input color and a sampl e from a 116 * The output color of this effect is a modulation of the input color and a sampl e from a
115 * distance field texture (using a smoothed step function near 0.5). 117 * distance field texture (using a smoothed step function near 0.5).
116 * It allows explicit specification of the filtering and wrap modes (GrTexturePar ams). The input 118 * It allows explicit specification of the filtering and wrap modes (GrTexturePar ams). The input
117 * coords are a custom attribute. No gamma correct blending is applied. Used for paths only. 119 * coords are a custom attribute. No gamma correct blending is applied. Used for paths only.
118 */ 120 */
119 class GrDistanceFieldPathGeoProc : public GrGeometryProcessor { 121 class GrDistanceFieldPathGeoProc : public GrGeometryProcessor {
120 public: 122 public:
121 static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix , GrTexture* tex, 123 static sk_sp<GrGeometryProcessor> Make(GrColor color, const SkMatrix& viewMa trix,
122 const GrTextureParams& params, 124 GrTexture* tex, const GrTextureParams & params,
123 uint32_t flags, bool usesLocalCoords) { 125 uint32_t flags, bool usesLocalCoords) {
124 return new GrDistanceFieldPathGeoProc(color, viewMatrix, tex, params, fl ags, 126 return sk_sp<GrGeometryProcessor>(
125 usesLocalCoords); 127 new GrDistanceFieldPathGeoProc(color, viewMatrix, tex, params, flags , usesLocalCoords));
126 } 128 }
127 129
128 virtual ~GrDistanceFieldPathGeoProc() {} 130 virtual ~GrDistanceFieldPathGeoProc() {}
129 131
130 const char* name() const override { return "DistanceFieldTexture"; } 132 const char* name() const override { return "DistanceFieldTexture"; }
131 133
132 const Attribute* inPosition() const { return fInPosition; } 134 const Attribute* inPosition() const { return fInPosition; }
133 const Attribute* inColor() const { return fInColor; } 135 const Attribute* inColor() const { return fInColor; }
134 const Attribute* inTextureCoords() const { return fInTextureCoords; } 136 const Attribute* inTextureCoords() const { return fInTextureCoords; }
135 GrColor color() const { return fColor; } 137 GrColor color() const { return fColor; }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 return result; 179 return result;
178 } 180 }
179 bool operator==(const DistanceAdjust& wa) const { 181 bool operator==(const DistanceAdjust& wa) const {
180 return (fR == wa.fR && fG == wa.fG && fB == wa.fB); 182 return (fR == wa.fR && fG == wa.fG && fB == wa.fB);
181 } 183 }
182 bool operator!=(const DistanceAdjust& wa) const { 184 bool operator!=(const DistanceAdjust& wa) const {
183 return !(*this == wa); 185 return !(*this == wa);
184 } 186 }
185 }; 187 };
186 188
187 static GrGeometryProcessor* Create(GrColor color, const SkMatrix& viewMatrix , 189 static sk_sp<GrGeometryProcessor> Make(GrColor color, const SkMatrix& viewMa trix,
188 GrTexture* tex, const GrTextureParams& pa rams, 190 GrTexture* tex, const GrTextureParams & params,
189 DistanceAdjust distanceAdjust, uint32_t f lags, 191 DistanceAdjust distanceAdjust, uint32 _t flags,
190 bool usesLocalCoords) { 192 bool usesLocalCoords) {
191 return new GrDistanceFieldLCDTextGeoProc(color, viewMatrix, tex, params, distanceAdjust, 193 return sk_sp<GrGeometryProcessor>(
192 flags, usesLocalCoords); 194 new GrDistanceFieldLCDTextGeoProc(color, viewMatrix, tex, params, di stanceAdjust,
195 flags, usesLocalCoords));
193 } 196 }
194 197
195 virtual ~GrDistanceFieldLCDTextGeoProc() {} 198 virtual ~GrDistanceFieldLCDTextGeoProc() {}
196 199
197 const char* name() const override { return "DistanceFieldLCDTexture"; } 200 const char* name() const override { return "DistanceFieldLCDTexture"; }
198 201
199 const Attribute* inPosition() const { return fInPosition; } 202 const Attribute* inPosition() const { return fInPosition; }
200 const Attribute* inColor() const { return fInColor; } 203 const Attribute* inColor() const { return fInColor; }
201 const Attribute* inTextureCoords() const { return fInTextureCoords; } 204 const Attribute* inTextureCoords() const { return fInTextureCoords; }
202 DistanceAdjust getDistanceAdjust() const { return fDistanceAdjust; } 205 DistanceAdjust getDistanceAdjust() const { return fDistanceAdjust; }
(...skipping 22 matching lines...) Expand all
225 const Attribute* fInColor; 228 const Attribute* fInColor;
226 const Attribute* fInTextureCoords; 229 const Attribute* fInTextureCoords;
227 bool fUsesLocalCoords; 230 bool fUsesLocalCoords;
228 231
229 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; 232 GR_DECLARE_GEOMETRY_PROCESSOR_TEST;
230 233
231 typedef GrGeometryProcessor INHERITED; 234 typedef GrGeometryProcessor INHERITED;
232 }; 235 };
233 236
234 #endif 237 #endif
OLDNEW
« no previous file with comments | « src/gpu/effects/GrDisableColorXP.cpp ('k') | src/gpu/effects/GrDistanceFieldGeoProc.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698