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

Side by Side Diff: src/gpu/effects/GrBezierEffect.cpp

Issue 24853002: Make GPU coord transforms automatic (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: rebase Created 7 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « src/gpu/GrSWMaskHelper.cpp ('k') | src/gpu/effects/GrBicubicEffect.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 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 #include "GrBezierEffect.h" 8 #include "GrBezierEffect.h"
9 9
10 #include "gl/GrGLEffect.h" 10 #include "gl/GrGLEffect.h"
11 #include "gl/GrGLSL.h" 11 #include "gl/GrGLSL.h"
12 #include "GrTBackendEffectFactory.h" 12 #include "GrTBackendEffectFactory.h"
13 13
14 class GrGLConicEffect : public GrGLEffect { 14 class GrGLConicEffect : public GrGLEffect {
15 public: 15 public:
16 GrGLConicEffect(const GrBackendEffectFactory&, const GrDrawEffect&); 16 GrGLConicEffect(const GrBackendEffectFactory&, const GrDrawEffect&);
17 17
18 virtual void emitCode(GrGLShaderBuilder* builder, 18 virtual void emitCode(GrGLShaderBuilder* builder,
19 const GrDrawEffect& drawEffect, 19 const GrDrawEffect& drawEffect,
20 EffectKey key, 20 EffectKey key,
21 const char* outputColor, 21 const char* outputColor,
22 const char* inputColor, 22 const char* inputColor,
23 const TransformedCoordsArray&,
23 const TextureSamplerArray&) SK_OVERRIDE; 24 const TextureSamplerArray&) SK_OVERRIDE;
24 25
25 static inline EffectKey GenKey(const GrDrawEffect&, const GrGLCaps&); 26 static inline EffectKey GenKey(const GrDrawEffect&, const GrGLCaps&);
26 27
27 virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVER RIDE {} 28 virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVER RIDE {}
28 29
29 private: 30 private:
30 GrBezierEdgeType fEdgeType; 31 GrBezierEdgeType fEdgeType;
31 32
32 typedef GrGLEffect INHERITED; 33 typedef GrGLEffect INHERITED;
33 }; 34 };
34 35
35 GrGLConicEffect::GrGLConicEffect(const GrBackendEffectFactory& factory, 36 GrGLConicEffect::GrGLConicEffect(const GrBackendEffectFactory& factory,
36 const GrDrawEffect& drawEffect) 37 const GrDrawEffect& drawEffect)
37 : INHERITED (factory) { 38 : INHERITED (factory) {
38 const GrConicEffect& ce = drawEffect.castEffect<GrConicEffect>(); 39 const GrConicEffect& ce = drawEffect.castEffect<GrConicEffect>();
39 fEdgeType = ce.getEdgeType(); 40 fEdgeType = ce.getEdgeType();
40 } 41 }
41 42
42 void GrGLConicEffect::emitCode(GrGLShaderBuilder* builder, 43 void GrGLConicEffect::emitCode(GrGLShaderBuilder* builder,
43 const GrDrawEffect& drawEffect, 44 const GrDrawEffect& drawEffect,
44 EffectKey key, 45 EffectKey key,
45 const char* outputColor, 46 const char* outputColor,
46 const char* inputColor, 47 const char* inputColor,
48 const TransformedCoordsArray&,
47 const TextureSamplerArray& samplers) { 49 const TextureSamplerArray& samplers) {
48 GrGLShaderBuilder::VertexBuilder* vertexBuilder = builder->getVertexBuilder( ); 50 GrGLShaderBuilder::VertexBuilder* vertexBuilder = builder->getVertexBuilder( );
49 SkASSERT(NULL != vertexBuilder); 51 SkASSERT(NULL != vertexBuilder);
50 52
51 const char *vsName, *fsName; 53 const char *vsName, *fsName;
52 54
53 vertexBuilder->addVarying(kVec4f_GrSLType, "ConicCoeffs", 55 vertexBuilder->addVarying(kVec4f_GrSLType, "ConicCoeffs",
54 &vsName, &fsName); 56 &vsName, &fsName);
55 const SkString* attr0Name = 57 const SkString* attr0Name =
56 vertexBuilder->getEffectAttributeName(drawEffect.getVertexAttribIndices( )[0]); 58 vertexBuilder->getEffectAttributeName(drawEffect.getVertexAttribIndices( )[0]);
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 158
157 class GrGLQuadEffect : public GrGLEffect { 159 class GrGLQuadEffect : public GrGLEffect {
158 public: 160 public:
159 GrGLQuadEffect(const GrBackendEffectFactory&, const GrDrawEffect&); 161 GrGLQuadEffect(const GrBackendEffectFactory&, const GrDrawEffect&);
160 162
161 virtual void emitCode(GrGLShaderBuilder* builder, 163 virtual void emitCode(GrGLShaderBuilder* builder,
162 const GrDrawEffect& drawEffect, 164 const GrDrawEffect& drawEffect,
163 EffectKey key, 165 EffectKey key,
164 const char* outputColor, 166 const char* outputColor,
165 const char* inputColor, 167 const char* inputColor,
168 const TransformedCoordsArray&,
166 const TextureSamplerArray&) SK_OVERRIDE; 169 const TextureSamplerArray&) SK_OVERRIDE;
167 170
168 static inline EffectKey GenKey(const GrDrawEffect&, const GrGLCaps&); 171 static inline EffectKey GenKey(const GrDrawEffect&, const GrGLCaps&);
169 172
170 virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVER RIDE {} 173 virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVER RIDE {}
171 174
172 private: 175 private:
173 GrBezierEdgeType fEdgeType; 176 GrBezierEdgeType fEdgeType;
174 177
175 typedef GrGLEffect INHERITED; 178 typedef GrGLEffect INHERITED;
176 }; 179 };
177 180
178 GrGLQuadEffect::GrGLQuadEffect(const GrBackendEffectFactory& factory, 181 GrGLQuadEffect::GrGLQuadEffect(const GrBackendEffectFactory& factory,
179 const GrDrawEffect& drawEffect) 182 const GrDrawEffect& drawEffect)
180 : INHERITED (factory) { 183 : INHERITED (factory) {
181 const GrQuadEffect& ce = drawEffect.castEffect<GrQuadEffect>(); 184 const GrQuadEffect& ce = drawEffect.castEffect<GrQuadEffect>();
182 fEdgeType = ce.getEdgeType(); 185 fEdgeType = ce.getEdgeType();
183 } 186 }
184 187
185 void GrGLQuadEffect::emitCode(GrGLShaderBuilder* builder, 188 void GrGLQuadEffect::emitCode(GrGLShaderBuilder* builder,
186 const GrDrawEffect& drawEffect, 189 const GrDrawEffect& drawEffect,
187 EffectKey key, 190 EffectKey key,
188 const char* outputColor, 191 const char* outputColor,
189 const char* inputColor, 192 const char* inputColor,
193 const TransformedCoordsArray&,
190 const TextureSamplerArray& samplers) { 194 const TextureSamplerArray& samplers) {
191 GrGLShaderBuilder::VertexBuilder* vertexBuilder = builder->getVertexBuilder( ); 195 GrGLShaderBuilder::VertexBuilder* vertexBuilder = builder->getVertexBuilder( );
192 SkASSERT(NULL != vertexBuilder); 196 SkASSERT(NULL != vertexBuilder);
193 197
194 const char *vsName, *fsName; 198 const char *vsName, *fsName;
195 199
196 const SkString* attrName = 200 const SkString* attrName =
197 vertexBuilder->getEffectAttributeName(drawEffect.getVertexAttribIndices( )[0]); 201 vertexBuilder->getEffectAttributeName(drawEffect.getVertexAttribIndices( )[0]);
198 builder->fsCodeAppendf("\t\tfloat edgeAlpha;\n"); 202 builder->fsCodeAppendf("\t\tfloat edgeAlpha;\n");
199 203
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 292
289 class GrGLCubicEffect : public GrGLEffect { 293 class GrGLCubicEffect : public GrGLEffect {
290 public: 294 public:
291 GrGLCubicEffect(const GrBackendEffectFactory&, const GrDrawEffect&); 295 GrGLCubicEffect(const GrBackendEffectFactory&, const GrDrawEffect&);
292 296
293 virtual void emitCode(GrGLShaderBuilder* builder, 297 virtual void emitCode(GrGLShaderBuilder* builder,
294 const GrDrawEffect& drawEffect, 298 const GrDrawEffect& drawEffect,
295 EffectKey key, 299 EffectKey key,
296 const char* outputColor, 300 const char* outputColor,
297 const char* inputColor, 301 const char* inputColor,
302 const TransformedCoordsArray&,
298 const TextureSamplerArray&) SK_OVERRIDE; 303 const TextureSamplerArray&) SK_OVERRIDE;
299 304
300 static inline EffectKey GenKey(const GrDrawEffect&, const GrGLCaps&); 305 static inline EffectKey GenKey(const GrDrawEffect&, const GrGLCaps&);
301 306
302 virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVER RIDE {} 307 virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVER RIDE {}
303 308
304 private: 309 private:
305 GrBezierEdgeType fEdgeType; 310 GrBezierEdgeType fEdgeType;
306 311
307 typedef GrGLEffect INHERITED; 312 typedef GrGLEffect INHERITED;
308 }; 313 };
309 314
310 GrGLCubicEffect::GrGLCubicEffect(const GrBackendEffectFactory& factory, 315 GrGLCubicEffect::GrGLCubicEffect(const GrBackendEffectFactory& factory,
311 const GrDrawEffect& drawEffect) 316 const GrDrawEffect& drawEffect)
312 : INHERITED (factory) { 317 : INHERITED (factory) {
313 const GrCubicEffect& ce = drawEffect.castEffect<GrCubicEffect>(); 318 const GrCubicEffect& ce = drawEffect.castEffect<GrCubicEffect>();
314 fEdgeType = ce.getEdgeType(); 319 fEdgeType = ce.getEdgeType();
315 } 320 }
316 321
317 void GrGLCubicEffect::emitCode(GrGLShaderBuilder* builder, 322 void GrGLCubicEffect::emitCode(GrGLShaderBuilder* builder,
318 const GrDrawEffect& drawEffect, 323 const GrDrawEffect& drawEffect,
319 EffectKey key, 324 EffectKey key,
320 const char* outputColor, 325 const char* outputColor,
321 const char* inputColor, 326 const char* inputColor,
327 const TransformedCoordsArray&,
322 const TextureSamplerArray& samplers) { 328 const TextureSamplerArray& samplers) {
323 GrGLShaderBuilder::VertexBuilder* vertexBuilder = builder->getVertexBuilder( ); 329 GrGLShaderBuilder::VertexBuilder* vertexBuilder = builder->getVertexBuilder( );
324 SkASSERT(NULL != vertexBuilder); 330 SkASSERT(NULL != vertexBuilder);
325 331
326 const char *vsName, *fsName; 332 const char *vsName, *fsName;
327 333
328 vertexBuilder->addVarying(kVec4f_GrSLType, "CubicCoeffs", 334 vertexBuilder->addVarying(kVec4f_GrSLType, "CubicCoeffs",
329 &vsName, &fsName); 335 &vsName, &fsName);
330 const SkString* attr0Name = 336 const SkString* attr0Name =
331 vertexBuilder->getEffectAttributeName(drawEffect.getVertexAttribIndices( )[0]); 337 vertexBuilder->getEffectAttributeName(drawEffect.getVertexAttribIndices( )[0]);
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 423
418 GR_DEFINE_EFFECT_TEST(GrCubicEffect); 424 GR_DEFINE_EFFECT_TEST(GrCubicEffect);
419 425
420 GrEffectRef* GrCubicEffect::TestCreate(SkRandom* random, 426 GrEffectRef* GrCubicEffect::TestCreate(SkRandom* random,
421 GrContext*, 427 GrContext*,
422 const GrDrawTargetCaps& caps, 428 const GrDrawTargetCaps& caps,
423 GrTexture*[]) { 429 GrTexture*[]) {
424 const GrBezierEdgeType edgeType = static_cast<GrBezierEdgeType>(random->next ULessThan(3)); 430 const GrBezierEdgeType edgeType = static_cast<GrBezierEdgeType>(random->next ULessThan(3));
425 return GrCubicEffect::Create(edgeType, caps); 431 return GrCubicEffect::Create(edgeType, caps);
426 } 432 }
OLDNEW
« no previous file with comments | « src/gpu/GrSWMaskHelper.cpp ('k') | src/gpu/effects/GrBicubicEffect.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698