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

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

Issue 678953002: Default geometry processor (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix Created 6 years, 1 month 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/GrDashingEffect.cpp ('k') | src/gpu/gl/GrGLSL.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 "GrDistanceFieldTextureEffect.h" 8 #include "GrDistanceFieldTextureEffect.h"
9 #include "gl/builders/GrGLProgramBuilder.h" 9 #include "gl/builders/GrGLProgramBuilder.h"
10 #include "gl/GrGLProcessor.h" 10 #include "gl/GrGLProcessor.h"
(...skipping 27 matching lines...) Expand all
38 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder(); 38 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder();
39 SkAssertResult(fsBuilder->enableFeature( 39 SkAssertResult(fsBuilder->enableFeature(
40 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature)); 40 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature));
41 41
42 GrGLVertToFrag v(kVec2f_GrSLType); 42 GrGLVertToFrag v(kVec2f_GrSLType);
43 args.fPB->addVarying("TextureCoords", &v); 43 args.fPB->addVarying("TextureCoords", &v);
44 44
45 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); 45 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder();
46 vsBuilder->codeAppendf("\t%s = %s;\n", v.vsOut(), dfTexEffect.inTextureC oords().c_str()); 46 vsBuilder->codeAppendf("\t%s = %s;\n", v.vsOut(), dfTexEffect.inTextureC oords().c_str());
47 47
48 // setup position varying
49 vsBuilder->codeAppendf("%s = %s * vec3(%s, 1);", vsBuilder->glPosition() ,
50 vsBuilder->uViewM(), vsBuilder->inPosition());
51
48 const char* textureSizeUniName = NULL; 52 const char* textureSizeUniName = NULL;
49 fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Vis ibility, 53 fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Vis ibility,
50 kVec2f_GrSLType, "TextureSize", 54 kVec2f_GrSLType, "TextureSize",
51 &textureSizeUniName); 55 &textureSizeUniName);
52 56
53 fsBuilder->codeAppend("\tvec4 texColor = "); 57 fsBuilder->codeAppend("\tvec4 texColor = ");
54 fsBuilder->appendTextureLookup(args.fSamplers[0], 58 fsBuilder->appendTextureLookup(args.fSamplers[0],
55 v.fsIn(), 59 v.fsIn(),
56 kVec2f_GrSLType); 60 kVec2f_GrSLType);
57 fsBuilder->codeAppend(";\n"); 61 fsBuilder->codeAppend(";\n");
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder(); 253 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder();
250 SkAssertResult(fsBuilder->enableFeature( 254 SkAssertResult(fsBuilder->enableFeature(
251 GrGLFragmentShaderBuilder::kStandardDerivat ives_GLSLFeature)); 255 GrGLFragmentShaderBuilder::kStandardDerivat ives_GLSLFeature));
252 256
253 GrGLVertToFrag v(kVec2f_GrSLType); 257 GrGLVertToFrag v(kVec2f_GrSLType);
254 args.fPB->addVarying("TextureCoords", &v); 258 args.fPB->addVarying("TextureCoords", &v);
255 259
256 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); 260 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder();
257 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), dfTexEffect.inTextureCoord s().c_str()); 261 vsBuilder->codeAppendf("%s = %s;", v.vsOut(), dfTexEffect.inTextureCoord s().c_str());
258 262
263 // setup position varying
264 vsBuilder->codeAppendf("%s = %s * vec3(%s, 1);", vsBuilder->glPosition() ,
265 vsBuilder->uViewM(), vsBuilder->inPosition());
266
259 const char* textureSizeUniName = NULL; 267 const char* textureSizeUniName = NULL;
260 fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Vis ibility, 268 fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Vis ibility,
261 kVec2f_GrSLType, "TextureSize", 269 kVec2f_GrSLType, "TextureSize",
262 &textureSizeUniName); 270 &textureSizeUniName);
263 271
264 fsBuilder->codeAppend("vec4 texColor = "); 272 fsBuilder->codeAppend("vec4 texColor = ");
265 fsBuilder->appendTextureLookup(args.fSamplers[0], 273 fsBuilder->appendTextureLookup(args.fSamplers[0],
266 v.fsIn(), 274 v.fsIn(),
267 kVec2f_GrSLType); 275 kVec2f_GrSLType);
268 fsBuilder->codeAppend(";"); 276 fsBuilder->codeAppend(";");
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 const GrDistanceFieldLCDTextureEffect& dfTexEffect = 411 const GrDistanceFieldLCDTextureEffect& dfTexEffect =
404 args.fGP.cast<GrDistanceFieldLCDTextureEffect>(); 412 args.fGP.cast<GrDistanceFieldLCDTextureEffect>();
405 SkASSERT(1 == dfTexEffect.getVertexAttribs().count()); 413 SkASSERT(1 == dfTexEffect.getVertexAttribs().count());
406 414
407 GrGLVertToFrag v(kVec2f_GrSLType); 415 GrGLVertToFrag v(kVec2f_GrSLType);
408 args.fPB->addVarying("TextureCoords", &v); 416 args.fPB->addVarying("TextureCoords", &v);
409 417
410 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); 418 GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder();
411 vsBuilder->codeAppendf("\t%s = %s;\n", v.vsOut(), dfTexEffect.inTextureC oords().c_str()); 419 vsBuilder->codeAppendf("\t%s = %s;\n", v.vsOut(), dfTexEffect.inTextureC oords().c_str());
412 420
421 // setup position varying
422 vsBuilder->codeAppendf("%s = %s * vec3(%s, 1);", vsBuilder->glPosition() ,
423 vsBuilder->uViewM(), vsBuilder->inPosition());
424
413 const char* textureSizeUniName = NULL; 425 const char* textureSizeUniName = NULL;
414 // width, height, 1/(3*width) 426 // width, height, 1/(3*width)
415 fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Vis ibility, 427 fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Vis ibility,
416 kVec3f_GrSLType, "TextureSize", 428 kVec3f_GrSLType, "TextureSize",
417 &textureSizeUniName); 429 &textureSizeUniName);
418 430
419 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder(); 431 GrGLGPFragmentBuilder* fsBuilder = args.fPB->getFragmentShaderBuilder();
420 432
421 SkAssertResult(fsBuilder->enableFeature( 433 SkAssertResult(fsBuilder->enableFeature(
422 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature)); 434 GrGLFragmentShaderBuilder::kStandardDerivatives_GLSLFeature));
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
632 random->nextULessThan(256), 644 random->nextULessThan(256),
633 random->nextULessThan(256)); 645 random->nextULessThan(256));
634 uint32_t flags = kUseLCD_DistanceFieldEffectFlag; 646 uint32_t flags = kUseLCD_DistanceFieldEffectFlag;
635 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0; 647 flags |= random->nextBool() ? kUniformScale_DistanceFieldEffectMask : 0;
636 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0; 648 flags |= random->nextBool() ? kBGR_DistanceFieldEffectFlag : 0;
637 return GrDistanceFieldLCDTextureEffect::Create(textures[texIdx], params, 649 return GrDistanceFieldLCDTextureEffect::Create(textures[texIdx], params,
638 textures[texIdx2], params2, 650 textures[texIdx2], params2,
639 textColor, 651 textColor,
640 flags); 652 flags);
641 } 653 }
OLDNEW
« no previous file with comments | « src/gpu/effects/GrDashingEffect.cpp ('k') | src/gpu/gl/GrGLSL.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698