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

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

Issue 365853002: Rename GrGLUniformManager to GrGLProgramResourceManager (Closed) Base URL: https://skia.googlesource.com/skia.git@02-path-program-fragment
Patch Set: rebase Created 6 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
« 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 866 matching lines...) Expand 10 before | Expand all | Expand 10 after
877 kVec4f_GrSLType, "GradientMidColor"); 877 kVec4f_GrSLType, "GradientMidColor");
878 fColorEndUni = builder->addUniform(GrGLShaderBuilder::kFragment_Visibili ty, 878 fColorEndUni = builder->addUniform(GrGLShaderBuilder::kFragment_Visibili ty,
879 kVec4f_GrSLType, "GradientEndColor" ); 879 kVec4f_GrSLType, "GradientEndColor" );
880 880
881 } else { // if not a fast case 881 } else { // if not a fast case
882 fFSYUni = builder->addUniform(GrGLShaderBuilder::kFragment_Visibility, 882 fFSYUni = builder->addUniform(GrGLShaderBuilder::kFragment_Visibility,
883 kFloat_GrSLType, "GradientYCoordFS"); 883 kFloat_GrSLType, "GradientYCoordFS");
884 } 884 }
885 } 885 }
886 886
887 static inline void set_color_uni(const GrGLUniformManager& uman, 887 static inline void set_color_uni(const GrGLProgramDataManager& pdman,
888 const GrGLUniformManager::UniformHandle uni, 888 const GrGLProgramDataManager::UniformHandle uni ,
889 const SkColor* color) { 889 const SkColor* color) {
890 uman.set4f(uni, 890 pdman.set4f(uni,
891 SkColorGetR(*color) / 255.f, 891 SkColorGetR(*color) / 255.f,
892 SkColorGetG(*color) / 255.f, 892 SkColorGetG(*color) / 255.f,
893 SkColorGetB(*color) / 255.f, 893 SkColorGetB(*color) / 255.f,
894 SkColorGetA(*color) / 255.f); 894 SkColorGetA(*color) / 255.f);
895 } 895 }
896 896
897 static inline void set_mul_color_uni(const GrGLUniformManager& uman, 897 static inline void set_mul_color_uni(const GrGLProgramDataManager& pdman,
898 const GrGLUniformManager::UniformHandle uni , 898 const GrGLProgramDataManager::UniformHandle uni,
899 const SkColor* color){ 899 const SkColor* color){
900 float a = SkColorGetA(*color) / 255.f; 900 float a = SkColorGetA(*color) / 255.f;
901 float aDiv255 = a / 255.f; 901 float aDiv255 = a / 255.f;
902 uman.set4f(uni, 902 pdman.set4f(uni,
903 SkColorGetR(*color) * aDiv255, 903 SkColorGetR(*color) * aDiv255,
904 SkColorGetG(*color) * aDiv255, 904 SkColorGetG(*color) * aDiv255,
905 SkColorGetB(*color) * aDiv255, 905 SkColorGetB(*color) * aDiv255,
906 a); 906 a);
907 } 907 }
908 908
909 void GrGLGradientEffect::setData(const GrGLUniformManager& uman, 909 void GrGLGradientEffect::setData(const GrGLProgramDataManager& pdman,
910 const GrDrawEffect& drawEffect) { 910 const GrDrawEffect& drawEffect) {
911 911
912 const GrGradientEffect& e = drawEffect.castEffect<GrGradientEffect>(); 912 const GrGradientEffect& e = drawEffect.castEffect<GrGradientEffect>();
913 913
914 914
915 if (SkGradientShaderBase::kTwo_GpuColorType == e.getColorType()){ 915 if (SkGradientShaderBase::kTwo_GpuColorType == e.getColorType()){
916 916
917 if (GrGradientEffect::kBeforeInterp_PremulType == e.getPremulType()) { 917 if (GrGradientEffect::kBeforeInterp_PremulType == e.getPremulType()) {
918 set_mul_color_uni(uman, fColorStartUni, e.getColors(0)); 918 set_mul_color_uni(pdman, fColorStartUni, e.getColors(0));
919 set_mul_color_uni(uman, fColorEndUni, e.getColors(1)); 919 set_mul_color_uni(pdman, fColorEndUni, e.getColors(1));
920 } else { 920 } else {
921 set_color_uni(uman, fColorStartUni, e.getColors(0)); 921 set_color_uni(pdman, fColorStartUni, e.getColors(0));
922 set_color_uni(uman, fColorEndUni, e.getColors(1)); 922 set_color_uni(pdman, fColorEndUni, e.getColors(1));
923 } 923 }
924 924
925 } else if (SkGradientShaderBase::kThree_GpuColorType == e.getColorType()){ 925 } else if (SkGradientShaderBase::kThree_GpuColorType == e.getColorType()){
926 926
927 if (GrGradientEffect::kBeforeInterp_PremulType == e.getPremulType()) { 927 if (GrGradientEffect::kBeforeInterp_PremulType == e.getPremulType()) {
928 set_mul_color_uni(uman, fColorStartUni, e.getColors(0)); 928 set_mul_color_uni(pdman, fColorStartUni, e.getColors(0));
929 set_mul_color_uni(uman, fColorMidUni, e.getColors(1)); 929 set_mul_color_uni(pdman, fColorMidUni, e.getColors(1));
930 set_mul_color_uni(uman, fColorEndUni, e.getColors(2)); 930 set_mul_color_uni(pdman, fColorEndUni, e.getColors(2));
931 } else { 931 } else {
932 set_color_uni(uman, fColorStartUni, e.getColors(0)); 932 set_color_uni(pdman, fColorStartUni, e.getColors(0));
933 set_color_uni(uman, fColorMidUni, e.getColors(1)); 933 set_color_uni(pdman, fColorMidUni, e.getColors(1));
934 set_color_uni(uman, fColorEndUni, e.getColors(2)); 934 set_color_uni(pdman, fColorEndUni, e.getColors(2));
935 } 935 }
936 } else { 936 } else {
937 937
938 SkScalar yCoord = e.getYCoord(); 938 SkScalar yCoord = e.getYCoord();
939 if (yCoord != fCachedYCoord) { 939 if (yCoord != fCachedYCoord) {
940 uman.set1f(fFSYUni, yCoord); 940 pdman.set1f(fFSYUni, yCoord);
941 fCachedYCoord = yCoord; 941 fCachedYCoord = yCoord;
942 } 942 }
943 } 943 }
944 } 944 }
945 945
946 946
947 uint32_t GrGLGradientEffect::GenBaseGradientKey(const GrDrawEffect& drawEffect) { 947 uint32_t GrGLGradientEffect::GenBaseGradientKey(const GrDrawEffect& drawEffect) {
948 const GrGradientEffect& e = drawEffect.castEffect<GrGradientEffect>(); 948 const GrGradientEffect& e = drawEffect.castEffect<GrGradientEffect>();
949 949
950 uint32_t key = 0; 950 uint32_t key = 0;
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
1148 (*stops)[i] = stop; 1148 (*stops)[i] = stop;
1149 stop = i < outColors - 1 ? stop + random->nextUScalar1() * (1.f - st op) : 1.f; 1149 stop = i < outColors - 1 ? stop + random->nextUScalar1() * (1.f - st op) : 1.f;
1150 } 1150 }
1151 } 1151 }
1152 *tm = static_cast<SkShader::TileMode>(random->nextULessThan(SkShader::kTileM odeCount)); 1152 *tm = static_cast<SkShader::TileMode>(random->nextULessThan(SkShader::kTileM odeCount));
1153 1153
1154 return outColors; 1154 return outColors;
1155 } 1155 }
1156 1156
1157 #endif 1157 #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