OLD | NEW |
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 899 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
910 #include "SkGr.h" | 910 #include "SkGr.h" |
911 | 911 |
912 GrGLGradientEffect::GrGLGradientEffect() | 912 GrGLGradientEffect::GrGLGradientEffect() |
913 : fCachedYCoord(SK_ScalarMax) { | 913 : fCachedYCoord(SK_ScalarMax) { |
914 } | 914 } |
915 | 915 |
916 void GrGLGradientEffect::emitUniforms(GrGLSLUniformHandler* uniformHandler, | 916 void GrGLGradientEffect::emitUniforms(GrGLSLUniformHandler* uniformHandler, |
917 const GrGradientEffect& ge) { | 917 const GrGradientEffect& ge) { |
918 | 918 |
919 if (SkGradientShaderBase::kTwo_GpuColorType == ge.getColorType()) { // 2 Col
or case | 919 if (SkGradientShaderBase::kTwo_GpuColorType == ge.getColorType()) { // 2 Col
or case |
920 fColorStartUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragm
ent_Visibility, | 920 fColorStartUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
921 kVec4f_GrSLType, kDefault_Gr
SLPrecision, | 921 kVec4f_GrSLType, kDefault_Gr
SLPrecision, |
922 "GradientStartColor"); | 922 "GradientStartColor"); |
923 fColorEndUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragmen
t_Visibility, | 923 fColorEndUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
924 kVec4f_GrSLType, kDefault_GrSL
Precision, | 924 kVec4f_GrSLType, kDefault_GrSL
Precision, |
925 "GradientEndColor"); | 925 "GradientEndColor"); |
926 | 926 |
927 } else if (SkGradientShaderBase::kThree_GpuColorType == ge.getColorType()) {
// 3 Color Case | 927 } else if (SkGradientShaderBase::kThree_GpuColorType == ge.getColorType()) {
// 3 Color Case |
928 fColorStartUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragm
ent_Visibility, | 928 fColorStartUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
929 kVec4f_GrSLType, kDefault_G
rSLPrecision, | 929 kVec4f_GrSLType, kDefault_G
rSLPrecision, |
930 "GradientStartColor"); | 930 "GradientStartColor"); |
931 fColorMidUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragmen
t_Visibility, | 931 fColorMidUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
932 kVec4f_GrSLType, kDefault_GrSL
Precision, | 932 kVec4f_GrSLType, kDefault_GrSL
Precision, |
933 "GradientMidColor"); | 933 "GradientMidColor"); |
934 fColorEndUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragmen
t_Visibility, | 934 fColorEndUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
935 kVec4f_GrSLType, kDefault_GrSL
Precision, | 935 kVec4f_GrSLType, kDefault_GrSL
Precision, |
936 "GradientEndColor"); | 936 "GradientEndColor"); |
937 | 937 |
938 } else { // if not a fast case | 938 } else { // if not a fast case |
939 fFSYUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Vis
ibility, | 939 fFSYUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
940 kFloat_GrSLType, kDefault_GrSLPreci
sion, | 940 kFloat_GrSLType, kDefault_GrSLPreci
sion, |
941 "GradientYCoordFS"); | 941 "GradientYCoordFS"); |
942 } | 942 } |
943 } | 943 } |
944 | 944 |
945 static inline void set_color_uni(const GrGLSLProgramDataManager& pdman, | 945 static inline void set_color_uni(const GrGLSLProgramDataManager& pdman, |
946 const GrGLSLProgramDataManager::UniformHandle u
ni, | 946 const GrGLSLProgramDataManager::UniformHandle u
ni, |
947 const SkColor* color) { | 947 const SkColor* color) { |
948 pdman.set4f(uni, | 948 pdman.set4f(uni, |
949 SkColorGetR(*color) / 255.f, | 949 SkColorGetR(*color) / 255.f, |
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1203 (*stops)[i] = stop; | 1203 (*stops)[i] = stop; |
1204 stop = i < outColors - 1 ? stop + random->nextUScalar1() * (1.f - st
op) : 1.f; | 1204 stop = i < outColors - 1 ? stop + random->nextUScalar1() * (1.f - st
op) : 1.f; |
1205 } | 1205 } |
1206 } | 1206 } |
1207 *tm = static_cast<SkShader::TileMode>(random->nextULessThan(SkShader::kTileM
odeCount)); | 1207 *tm = static_cast<SkShader::TileMode>(random->nextULessThan(SkShader::kTileM
odeCount)); |
1208 | 1208 |
1209 return outColors; | 1209 return outColors; |
1210 } | 1210 } |
1211 | 1211 |
1212 #endif | 1212 #endif |
OLD | NEW |