| 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 769 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 780 vsVaryingName, | 780 vsVaryingName, |
| 781 vsVaryingType); | 781 vsVaryingType); |
| 782 } | 782 } |
| 783 | 783 |
| 784 void GrGLGradientEffect::emitColorLookup(GrGLShaderBuilder* builder, | 784 void GrGLGradientEffect::emitColorLookup(GrGLShaderBuilder* builder, |
| 785 const char* gradientTValue, | 785 const char* gradientTValue, |
| 786 const char* outputColor, | 786 const char* outputColor, |
| 787 const char* inputColor, | 787 const char* inputColor, |
| 788 const GrGLShaderBuilder::TextureSampler
& sampler) { | 788 const GrGLShaderBuilder::TextureSampler
& sampler) { |
| 789 | 789 |
| 790 SkString* code = &builder->fFSCode; | 790 builder->fsCodeAppendf("\tvec2 coord = vec2(%s, %s);\n", |
| 791 code->appendf("\tvec2 coord = vec2(%s, %s);\n", | 791 gradientTValue, |
| 792 gradientTValue, | 792 builder->getUniformVariable(fFSYUni).c_str()); |
| 793 builder->getUniformVariable(fFSYUni).c_str()); | 793 builder->fsCodeAppendf("\t%s = ", outputColor); |
| 794 code->appendf("\t%s = ", outputColor); | 794 builder->appendTextureLookupAndModulate(GrGLShaderBuilder::kFragment_ShaderT
ype, |
| 795 builder->appendTextureLookupAndModulate(code, inputColor, sampler, "coord"); | 795 inputColor, |
| 796 code->append(";\n"); | 796 sampler, |
| 797 "coord"); |
| 798 builder->fsCodeAppend(";\n"); |
| 797 } | 799 } |
| 798 | 800 |
| 799 ///////////////////////////////////////////////////////////////////// | 801 ///////////////////////////////////////////////////////////////////// |
| 800 | 802 |
| 801 GrGradientEffect::GrGradientEffect(GrContext* ctx, | 803 GrGradientEffect::GrGradientEffect(GrContext* ctx, |
| 802 const SkGradientShaderBase& shader, | 804 const SkGradientShaderBase& shader, |
| 803 const SkMatrix& matrix, | 805 const SkMatrix& matrix, |
| 804 SkShader::TileMode tileMode) { | 806 SkShader::TileMode tileMode) { |
| 805 // TODO: check for simple cases where we don't need a texture: | 807 // TODO: check for simple cases where we don't need a texture: |
| 806 //GradientInfo info; | 808 //GradientInfo info; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 888 (*stops)[i] = stop; | 890 (*stops)[i] = stop; |
| 889 stop = i < outColors - 1 ? stop + random->nextUScalar1() * (1.f - st
op) : 1.f; | 891 stop = i < outColors - 1 ? stop + random->nextUScalar1() * (1.f - st
op) : 1.f; |
| 890 } | 892 } |
| 891 } | 893 } |
| 892 *tm = static_cast<SkShader::TileMode>(random->nextULessThan(SkShader::kTileM
odeCount)); | 894 *tm = static_cast<SkShader::TileMode>(random->nextULessThan(SkShader::kTileM
odeCount)); |
| 893 | 895 |
| 894 return outColors; | 896 return outColors; |
| 895 } | 897 } |
| 896 | 898 |
| 897 #endif | 899 #endif |
| OLD | NEW |