OLD | NEW |
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 GrBezierEffect_DEFINED | 8 #ifndef GrBezierEffect_DEFINED |
9 #define GrBezierEffect_DEFINED | 9 #define GrBezierEffect_DEFINED |
10 | 10 |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 localMatrix)); | 85 localMatrix)); |
86 default: | 86 default: |
87 return NULL; | 87 return NULL; |
88 } | 88 } |
89 } | 89 } |
90 | 90 |
91 virtual ~GrConicEffect(); | 91 virtual ~GrConicEffect(); |
92 | 92 |
93 const char* name() const SK_OVERRIDE { return "Conic"; } | 93 const char* name() const SK_OVERRIDE { return "Conic"; } |
94 | 94 |
95 inline const GrAttribute* inPosition() const { return fInPosition; } | 95 inline const Attribute* inPosition() const { return fInPosition; } |
96 inline const GrAttribute* inConicCoeffs() const { return fInConicCoeffs; } | 96 inline const Attribute* inConicCoeffs() const { return fInConicCoeffs; } |
97 inline bool isAntiAliased() const { return GrProcessorEdgeTypeIsAA(fEdgeType
); } | 97 inline bool isAntiAliased() const { return GrProcessorEdgeTypeIsAA(fEdgeType
); } |
98 inline bool isFilled() const { return GrProcessorEdgeTypeIsFill(fEdgeType);
} | 98 inline bool isFilled() const { return GrProcessorEdgeTypeIsFill(fEdgeType);
} |
99 inline GrPrimitiveEdgeType getEdgeType() const { return fEdgeType; } | 99 inline GrPrimitiveEdgeType getEdgeType() const { return fEdgeType; } |
100 | 100 |
101 virtual void getGLProcessorKey(const GrBatchTracker& bt, | 101 virtual void getGLProcessorKey(const GrBatchTracker& bt, |
102 const GrGLCaps& caps, | 102 const GrGLCaps& caps, |
103 GrProcessorKeyBuilder* b) const SK_OVERRIDE; | 103 GrProcessorKeyBuilder* b) const SK_OVERRIDE; |
104 | 104 |
105 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, | 105 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, |
106 const GrGLCaps&) const SK_O
VERRIDE; | 106 const GrGLCaps&) const SK_O
VERRIDE; |
107 | 107 |
108 void initBatchTracker(GrBatchTracker*, const InitBT&) const SK_OVERRIDE; | 108 void initBatchTracker(GrBatchTracker*, const InitBT&) const SK_OVERRIDE; |
109 bool onCanMakeEqual(const GrBatchTracker&, | 109 bool onCanMakeEqual(const GrBatchTracker&, |
110 const GrGeometryProcessor&, | 110 const GrGeometryProcessor&, |
111 const GrBatchTracker&) const SK_OVERRIDE; | 111 const GrBatchTracker&) const SK_OVERRIDE; |
112 | 112 |
113 private: | 113 private: |
114 GrConicEffect(GrColor, const SkMatrix& viewMatrix, uint8_t coverage, GrPrimi
tiveEdgeType, | 114 GrConicEffect(GrColor, const SkMatrix& viewMatrix, uint8_t coverage, GrPrimi
tiveEdgeType, |
115 const SkMatrix& localMatrix); | 115 const SkMatrix& localMatrix); |
116 | 116 |
117 bool onIsEqual(const GrGeometryProcessor& other) const SK_OVERRIDE; | 117 bool onIsEqual(const GrGeometryProcessor& other) const SK_OVERRIDE; |
118 | 118 |
119 void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const SK_OVERR
IDE { | 119 void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const SK_OVERR
IDE { |
120 out->setUnknownSingleComponent(); | 120 out->setUnknownSingleComponent(); |
121 } | 121 } |
122 | 122 |
123 uint8_t fCoverageScale; | 123 uint8_t fCoverageScale; |
124 GrPrimitiveEdgeType fEdgeType; | 124 GrPrimitiveEdgeType fEdgeType; |
125 const GrAttribute* fInPosition; | 125 const Attribute* fInPosition; |
126 const GrAttribute* fInConicCoeffs; | 126 const Attribute* fInConicCoeffs; |
127 | 127 |
128 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; | 128 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; |
129 | 129 |
130 typedef GrGeometryProcessor INHERITED; | 130 typedef GrGeometryProcessor INHERITED; |
131 }; | 131 }; |
132 | 132 |
133 /////////////////////////////////////////////////////////////////////////////// | 133 /////////////////////////////////////////////////////////////////////////////// |
134 /** | 134 /** |
135 * The output of this effect is a hairline edge for quadratics. | 135 * The output of this effect is a hairline edge for quadratics. |
136 * Quadratic specified by 0=u^2-v canonical coords. u and v are the first | 136 * Quadratic specified by 0=u^2-v canonical coords. u and v are the first |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 localMatrix)); | 170 localMatrix)); |
171 default: | 171 default: |
172 return NULL; | 172 return NULL; |
173 } | 173 } |
174 } | 174 } |
175 | 175 |
176 virtual ~GrQuadEffect(); | 176 virtual ~GrQuadEffect(); |
177 | 177 |
178 const char* name() const SK_OVERRIDE { return "Quad"; } | 178 const char* name() const SK_OVERRIDE { return "Quad"; } |
179 | 179 |
180 inline const GrAttribute* inPosition() const { return fInPosition; } | 180 inline const Attribute* inPosition() const { return fInPosition; } |
181 inline const GrAttribute* inHairQuadEdge() const { return fInHairQuadEdge; } | 181 inline const Attribute* inHairQuadEdge() const { return fInHairQuadEdge; } |
182 inline bool isAntiAliased() const { return GrProcessorEdgeTypeIsAA(fEdgeType
); } | 182 inline bool isAntiAliased() const { return GrProcessorEdgeTypeIsAA(fEdgeType
); } |
183 inline bool isFilled() const { return GrProcessorEdgeTypeIsFill(fEdgeType);
} | 183 inline bool isFilled() const { return GrProcessorEdgeTypeIsFill(fEdgeType);
} |
184 inline GrPrimitiveEdgeType getEdgeType() const { return fEdgeType; } | 184 inline GrPrimitiveEdgeType getEdgeType() const { return fEdgeType; } |
185 | 185 |
186 virtual void getGLProcessorKey(const GrBatchTracker& bt, | 186 virtual void getGLProcessorKey(const GrBatchTracker& bt, |
187 const GrGLCaps& caps, | 187 const GrGLCaps& caps, |
188 GrProcessorKeyBuilder* b) const SK_OVERRIDE; | 188 GrProcessorKeyBuilder* b) const SK_OVERRIDE; |
189 | 189 |
190 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, | 190 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, |
191 const GrGLCaps&) const SK_O
VERRIDE; | 191 const GrGLCaps&) const SK_O
VERRIDE; |
192 | 192 |
193 void initBatchTracker(GrBatchTracker*, const InitBT&) const SK_OVERRIDE; | 193 void initBatchTracker(GrBatchTracker*, const InitBT&) const SK_OVERRIDE; |
194 bool onCanMakeEqual(const GrBatchTracker&, | 194 bool onCanMakeEqual(const GrBatchTracker&, |
195 const GrGeometryProcessor&, | 195 const GrGeometryProcessor&, |
196 const GrBatchTracker&) const SK_OVERRIDE; | 196 const GrBatchTracker&) const SK_OVERRIDE; |
197 | 197 |
198 private: | 198 private: |
199 GrQuadEffect(GrColor, const SkMatrix& viewMatrix, uint8_t coverage, GrPrimit
iveEdgeType, | 199 GrQuadEffect(GrColor, const SkMatrix& viewMatrix, uint8_t coverage, GrPrimit
iveEdgeType, |
200 const SkMatrix& localMatrix); | 200 const SkMatrix& localMatrix); |
201 | 201 |
202 bool onIsEqual(const GrGeometryProcessor& other) const SK_OVERRIDE; | 202 bool onIsEqual(const GrGeometryProcessor& other) const SK_OVERRIDE; |
203 | 203 |
204 void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const SK_OVERR
IDE { | 204 void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const SK_OVERR
IDE { |
205 out->setUnknownSingleComponent(); | 205 out->setUnknownSingleComponent(); |
206 } | 206 } |
207 | 207 |
208 uint8_t fCoverageScale; | 208 uint8_t fCoverageScale; |
209 GrPrimitiveEdgeType fEdgeType; | 209 GrPrimitiveEdgeType fEdgeType; |
210 const GrAttribute* fInPosition; | 210 const Attribute* fInPosition; |
211 const GrAttribute* fInHairQuadEdge; | 211 const Attribute* fInHairQuadEdge; |
212 | 212 |
213 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; | 213 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; |
214 | 214 |
215 typedef GrGeometryProcessor INHERITED; | 215 typedef GrGeometryProcessor INHERITED; |
216 }; | 216 }; |
217 | 217 |
218 ////////////////////////////////////////////////////////////////////////////// | 218 ////////////////////////////////////////////////////////////////////////////// |
219 /** | 219 /** |
220 * Shader is based off of "Resolution Independent Curve Rendering using | 220 * Shader is based off of "Resolution Independent Curve Rendering using |
221 * Programmable Graphics Hardware" by Loop and Blinn. | 221 * Programmable Graphics Hardware" by Loop and Blinn. |
(...skipping 29 matching lines...) Expand all Loading... |
251 kFillBW_GrProcessorEdgeType)); | 251 kFillBW_GrProcessorEdgeType)); |
252 default: | 252 default: |
253 return NULL; | 253 return NULL; |
254 } | 254 } |
255 } | 255 } |
256 | 256 |
257 virtual ~GrCubicEffect(); | 257 virtual ~GrCubicEffect(); |
258 | 258 |
259 const char* name() const SK_OVERRIDE { return "Cubic"; } | 259 const char* name() const SK_OVERRIDE { return "Cubic"; } |
260 | 260 |
261 inline const GrAttribute* inPosition() const { return fInPosition; } | 261 inline const Attribute* inPosition() const { return fInPosition; } |
262 inline const GrAttribute* inCubicCoeffs() const { return fInCubicCoeffs; } | 262 inline const Attribute* inCubicCoeffs() const { return fInCubicCoeffs; } |
263 inline bool isAntiAliased() const { return GrProcessorEdgeTypeIsAA(fEdgeType
); } | 263 inline bool isAntiAliased() const { return GrProcessorEdgeTypeIsAA(fEdgeType
); } |
264 inline bool isFilled() const { return GrProcessorEdgeTypeIsFill(fEdgeType);
} | 264 inline bool isFilled() const { return GrProcessorEdgeTypeIsFill(fEdgeType);
} |
265 inline GrPrimitiveEdgeType getEdgeType() const { return fEdgeType; } | 265 inline GrPrimitiveEdgeType getEdgeType() const { return fEdgeType; } |
266 | 266 |
267 virtual void getGLProcessorKey(const GrBatchTracker& bt, | 267 virtual void getGLProcessorKey(const GrBatchTracker& bt, |
268 const GrGLCaps& caps, | 268 const GrGLCaps& caps, |
269 GrProcessorKeyBuilder* b) const SK_OVERRIDE; | 269 GrProcessorKeyBuilder* b) const SK_OVERRIDE; |
270 | 270 |
271 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, | 271 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, |
272 const GrGLCaps&) const SK_O
VERRIDE; | 272 const GrGLCaps&) const SK_O
VERRIDE; |
273 | 273 |
274 void initBatchTracker(GrBatchTracker*, const InitBT&) const SK_OVERRIDE; | 274 void initBatchTracker(GrBatchTracker*, const InitBT&) const SK_OVERRIDE; |
275 bool onCanMakeEqual(const GrBatchTracker&, | 275 bool onCanMakeEqual(const GrBatchTracker&, |
276 const GrGeometryProcessor&, | 276 const GrGeometryProcessor&, |
277 const GrBatchTracker&) const SK_OVERRIDE; | 277 const GrBatchTracker&) const SK_OVERRIDE; |
278 | 278 |
279 private: | 279 private: |
280 GrCubicEffect(GrColor, const SkMatrix& viewMatrix, GrPrimitiveEdgeType); | 280 GrCubicEffect(GrColor, const SkMatrix& viewMatrix, GrPrimitiveEdgeType); |
281 | 281 |
282 bool onIsEqual(const GrGeometryProcessor& other) const SK_OVERRIDE; | 282 bool onIsEqual(const GrGeometryProcessor& other) const SK_OVERRIDE; |
283 | 283 |
284 void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const SK_OVERR
IDE { | 284 void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const SK_OVERR
IDE { |
285 out->setUnknownSingleComponent(); | 285 out->setUnknownSingleComponent(); |
286 } | 286 } |
287 | 287 |
288 GrPrimitiveEdgeType fEdgeType; | 288 GrPrimitiveEdgeType fEdgeType; |
289 const GrAttribute* fInPosition; | 289 const Attribute* fInPosition; |
290 const GrAttribute* fInCubicCoeffs; | 290 const Attribute* fInCubicCoeffs; |
291 | 291 |
292 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; | 292 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; |
293 | 293 |
294 typedef GrGeometryProcessor INHERITED; | 294 typedef GrGeometryProcessor INHERITED; |
295 }; | 295 }; |
296 | 296 |
297 #endif | 297 #endif |
OLD | NEW |