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 "SkBlitRow.h" | 8 #include "SkBlitRow.h" |
9 #include "SkColorFilter.h" | 9 #include "SkColorFilter.h" |
10 #include "SkColorPriv.h" | 10 #include "SkColorPriv.h" |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 bool willUseFilterColor() const { | 140 bool willUseFilterColor() const { |
141 SkXfermode::Coeff dstCoeff; | 141 SkXfermode::Coeff dstCoeff; |
142 SkXfermode::Coeff srcCoeff; | 142 SkXfermode::Coeff srcCoeff; |
143 SkAssertResult(SkXfermode::ModeAsCoeff(fMode, &srcCoeff, &dstCoeff)); | 143 SkAssertResult(SkXfermode::ModeAsCoeff(fMode, &srcCoeff, &dstCoeff)); |
144 if (SkXfermode::kZero_Coeff == srcCoeff) { | 144 if (SkXfermode::kZero_Coeff == srcCoeff) { |
145 return GrBlendCoeffRefsSrc(sk_blend_to_grblend(dstCoeff)); | 145 return GrBlendCoeffRefsSrc(sk_blend_to_grblend(dstCoeff)); |
146 } | 146 } |
147 return true; | 147 return true; |
148 } | 148 } |
149 | 149 |
150 virtual void getGLProcessorKey(const GrGLCaps& caps, | 150 virtual void getGLProcessorKey(const GrGLSLCaps& caps, |
151 GrProcessorKeyBuilder* b) const override { | 151 GrProcessorKeyBuilder* b) const override { |
152 GLProcessor::GenKey(*this, caps, b); | 152 GLProcessor::GenKey(*this, caps, b); |
153 } | 153 } |
154 | 154 |
155 GrGLFragmentProcessor* createGLInstance() const override { | 155 GrGLFragmentProcessor* createGLInstance() const override { |
156 return SkNEW_ARGS(GLProcessor, (*this)); | 156 return SkNEW_ARGS(GLProcessor, (*this)); |
157 } | 157 } |
158 | 158 |
159 const char* name() const override { return "ModeColorFilterEffect"; } | 159 const char* name() const override { return "ModeColorFilterEffect"; } |
160 | 160 |
(...skipping 23 matching lines...) Expand all Loading... |
184 } | 184 } |
185 | 185 |
186 GrGLSLExpr4 filter = | 186 GrGLSLExpr4 filter = |
187 color_filter_expression(mode, GrGLSLExpr4(colorFilterColorUniNam
e), | 187 color_filter_expression(mode, GrGLSLExpr4(colorFilterColorUniNam
e), |
188 GrGLSLExpr4(inputColor)); | 188 GrGLSLExpr4(inputColor)); |
189 | 189 |
190 builder->getFragmentShaderBuilder()-> | 190 builder->getFragmentShaderBuilder()-> |
191 codeAppendf("\t%s = %s;\n", outputColor, filter.c_str()); | 191 codeAppendf("\t%s = %s;\n", outputColor, filter.c_str()); |
192 } | 192 } |
193 | 193 |
194 static void GenKey(const GrProcessor& fp, const GrGLCaps&, | 194 static void GenKey(const GrProcessor& fp, const GrGLSLCaps&, |
195 GrProcessorKeyBuilder* b) { | 195 GrProcessorKeyBuilder* b) { |
196 const ModeColorFilterEffect& colorModeFilter = fp.cast<ModeColorFilt
erEffect>(); | 196 const ModeColorFilterEffect& colorModeFilter = fp.cast<ModeColorFilt
erEffect>(); |
197 // The SL code does not depend on filter color at the moment, so no
need to represent it | 197 // The SL code does not depend on filter color at the moment, so no
need to represent it |
198 // in the key. | 198 // in the key. |
199 b->add32(colorModeFilter.mode()); | 199 b->add32(colorModeFilter.mode()); |
200 } | 200 } |
201 | 201 |
202 virtual void setData(const GrGLProgramDataManager& pdman, | 202 virtual void setData(const GrGLProgramDataManager& pdman, |
203 const GrProcessor& fp) override { | 203 const GrProcessor& fp) override { |
204 if (fFilterColorUni.isValid()) { | 204 if (fFilterColorUni.isValid()) { |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
472 byte_to_scale(SkColorGetG(mul)), | 472 byte_to_scale(SkColorGetG(mul)), |
473 byte_to_scale(SkColorGetB(mul)), | 473 byte_to_scale(SkColorGetB(mul)), |
474 1); | 474 1); |
475 matrix.postTranslate(SkIntToScalar(SkColorGetR(add)), | 475 matrix.postTranslate(SkIntToScalar(SkColorGetR(add)), |
476 SkIntToScalar(SkColorGetG(add)), | 476 SkIntToScalar(SkColorGetG(add)), |
477 SkIntToScalar(SkColorGetB(add)), | 477 SkIntToScalar(SkColorGetB(add)), |
478 0); | 478 0); |
479 return SkColorMatrixFilter::Create(matrix); | 479 return SkColorMatrixFilter::Create(matrix); |
480 } | 480 } |
481 | 481 |
OLD | NEW |