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

Side by Side Diff: src/effects/gradients/SkGradientShader.cpp

Issue 23018003: Rename GrGLUniformManager to GrGLUniform and ref GrGLUniforms directly Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 4 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/effects/SkTableColorFilter.cpp ('k') | src/effects/gradients/SkGradientShaderPriv.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 2006 The Android Open Source Project 2 * Copyright 2006 The Android Open Source Project
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 "SkGradientShaderPriv.h" 8 #include "SkGradientShaderPriv.h"
9 #include "SkLinearGradient.h" 9 #include "SkLinearGradient.h"
10 #include "SkRadialGradient.h" 10 #include "SkRadialGradient.h"
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 819
820 #if SK_SUPPORT_GPU 820 #if SK_SUPPORT_GPU
821 821
822 #include "effects/GrTextureStripAtlas.h" 822 #include "effects/GrTextureStripAtlas.h"
823 #include "GrTBackendEffectFactory.h" 823 #include "GrTBackendEffectFactory.h"
824 #include "SkGr.h" 824 #include "SkGr.h"
825 825
826 GrGLGradientEffect::GrGLGradientEffect(const GrBackendEffectFactory& factory) 826 GrGLGradientEffect::GrGLGradientEffect(const GrBackendEffectFactory& factory)
827 : INHERITED(factory) 827 : INHERITED(factory)
828 , fCachedYCoord(SK_ScalarMax) 828 , fCachedYCoord(SK_ScalarMax)
829 , fFSYUni(GrGLUniformManager::kInvalidUniformHandle) 829 , fFSYUni(NULL)
830 , fEffectMatrix(kCoordsType) { 830 , fEffectMatrix(kCoordsType) {
831 } 831 }
832 832
833 GrGLGradientEffect::~GrGLGradientEffect() { } 833 GrGLGradientEffect::~GrGLGradientEffect() { }
834 834
835 void GrGLGradientEffect::emitYCoordUniform(GrGLShaderBuilder* builder) { 835 GrGLShaderBuilder::Uniform* GrGLGradientEffect::emitYCoordUniform(GrGLShaderBuil der* builder) {
836 fFSYUni = builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType, 836 GrGLShaderBuilder::Uniform* fsYUni =
837 kFloat_GrSLType, "GradientYCoordFS"); 837 builder->addUniform(GrGLShaderBuilder::kFragment_ShaderType,
838 kFloat_GrSLType, "GradientYCoordFS");
839 fFSYUni = fsYUni->glUniform();
840 return fsYUni;
838 } 841 }
839 842
840 void GrGLGradientEffect::setData(const GrGLUniformManager& uman, 843 void GrGLGradientEffect::setData(const GrGLContext& context,
841 const GrDrawEffect& drawEffect) { 844 const GrDrawEffect& drawEffect) {
842 const GrGradientEffect& e = drawEffect.castEffect<GrGradientEffect>(); 845 const GrGradientEffect& e = drawEffect.castEffect<GrGradientEffect>();
843 const GrTexture* texture = e.texture(0); 846 const GrTexture* texture = e.texture(0);
844 fEffectMatrix.setData(uman, e.getMatrix(), drawEffect, texture); 847 fEffectMatrix.setData(context, e.getMatrix(), drawEffect, texture);
845 848
846 SkScalar yCoord = e.getYCoord(); 849 SkScalar yCoord = e.getYCoord();
847 if (yCoord != fCachedYCoord) { 850 if (yCoord != fCachedYCoord) {
848 uman.set1f(fFSYUni, yCoord); 851 fFSYUni->set1f(context, yCoord);
849 fCachedYCoord = yCoord; 852 fCachedYCoord = yCoord;
850 } 853 }
851 } 854 }
852 855
853 GrGLEffect::EffectKey GrGLGradientEffect::GenMatrixKey(const GrDrawEffect& drawE ffect) { 856 GrGLEffect::EffectKey GrGLGradientEffect::GenMatrixKey(const GrDrawEffect& drawE ffect) {
854 const GrGradientEffect& e = drawEffect.castEffect<GrGradientEffect>(); 857 const GrGradientEffect& e = drawEffect.castEffect<GrGradientEffect>();
855 const GrTexture* texture = e.texture(0); 858 const GrTexture* texture = e.texture(0);
856 return GrGLEffectMatrix::GenKey(e.getMatrix(), drawEffect, kCoordsType, text ure); 859 return GrGLEffectMatrix::GenKey(e.getMatrix(), drawEffect, kCoordsType, text ure);
857 } 860 }
858 861
859 void GrGLGradientEffect::setupMatrix(GrGLShaderBuilder* builder, 862 void GrGLGradientEffect::setupMatrix(GrGLShaderBuilder* builder,
860 EffectKey key, 863 EffectKey key,
861 const char** fsCoordName, 864 const char** fsCoordName,
862 const char** vsVaryingName, 865 const char** vsVaryingName,
863 GrSLType* vsVaryingType) { 866 GrSLType* vsVaryingType) {
864 fEffectMatrix.emitCodeMakeFSCoords2D(builder, 867 fEffectMatrix.emitCodeMakeFSCoords2D(builder,
865 key & kMatrixKeyMask, 868 key & kMatrixKeyMask,
866 fsCoordName, 869 fsCoordName,
867 vsVaryingName, 870 vsVaryingName,
868 vsVaryingType); 871 vsVaryingType);
869 } 872 }
870 873
871 void GrGLGradientEffect::emitColorLookup(GrGLShaderBuilder* builder, 874 void GrGLGradientEffect::emitColorLookup(GrGLShaderBuilder* builder,
875 GrGLShaderBuilder::Uniform* fsYUni,
872 const char* gradientTValue, 876 const char* gradientTValue,
873 const char* outputColor, 877 const char* outputColor,
874 const char* inputColor, 878 const char* inputColor,
875 const GrGLShaderBuilder::TextureSampler & sampler) { 879 const GrGLShaderBuilder::TextureSampler & sampler) {
876 880
877 builder->fsCodeAppendf("\tvec2 coord = vec2(%s, %s);\n", 881 builder->fsCodeAppendf("\tvec2 coord = vec2(%s, %s);\n",
878 gradientTValue, 882 gradientTValue,
879 builder->getUniformVariable(fFSYUni).c_str()); 883 fsYUni->c_str());
880 builder->fsCodeAppendf("\t%s = ", outputColor); 884 builder->fsCodeAppendf("\t%s = ", outputColor);
881 builder->appendTextureLookupAndModulate(GrGLShaderBuilder::kFragment_ShaderT ype, 885 builder->appendTextureLookupAndModulate(GrGLShaderBuilder::kFragment_ShaderT ype,
882 inputColor, 886 inputColor,
883 sampler, 887 sampler,
884 "coord"); 888 "coord");
885 builder->fsCodeAppend(";\n"); 889 builder->fsCodeAppend(";\n");
886 } 890 }
887 891
888 ///////////////////////////////////////////////////////////////////// 892 /////////////////////////////////////////////////////////////////////
889 893
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
977 (*stops)[i] = stop; 981 (*stops)[i] = stop;
978 stop = i < outColors - 1 ? stop + random->nextUScalar1() * (1.f - st op) : 1.f; 982 stop = i < outColors - 1 ? stop + random->nextUScalar1() * (1.f - st op) : 1.f;
979 } 983 }
980 } 984 }
981 *tm = static_cast<SkShader::TileMode>(random->nextULessThan(SkShader::kTileM odeCount)); 985 *tm = static_cast<SkShader::TileMode>(random->nextULessThan(SkShader::kTileM odeCount));
982 986
983 return outColors; 987 return outColors;
984 } 988 }
985 989
986 #endif 990 #endif
OLDNEW
« no previous file with comments | « src/effects/SkTableColorFilter.cpp ('k') | src/effects/gradients/SkGradientShaderPriv.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698