| 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 |