| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
| 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 "SkArithmeticMode_gpu.h" | 8 #include "SkArithmeticMode_gpu.h" |
| 9 | 9 |
| 10 #if SK_SUPPORT_GPU | 10 #if SK_SUPPORT_GPU |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 const char* outColorSecondary, | 219 const char* outColorSecondary, |
| 220 const GrXferProcessor& proc) override { | 220 const GrXferProcessor& proc) override { |
| 221 fKUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visib
ility, | 221 fKUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visib
ility, |
| 222 kVec4f_GrSLType, kDefault_GrSLPrecisi
on, | 222 kVec4f_GrSLType, kDefault_GrSLPrecisi
on, |
| 223 "k"); | 223 "k"); |
| 224 const char* kUni = uniformHandler->getUniformCStr(fKUni); | 224 const char* kUni = uniformHandler->getUniformCStr(fKUni); |
| 225 | 225 |
| 226 add_arithmetic_code(fragBuilder, srcColor, dstColor, outColor, kUni, fEn
forcePMColor); | 226 add_arithmetic_code(fragBuilder, srcColor, dstColor, outColor, kUni, fEn
forcePMColor); |
| 227 | 227 |
| 228 // Apply coverage. | 228 // Apply coverage. |
| 229 if (proc.dstReadUsesMixedSamples()) { | 229 INHERITED::DefaultCoverageModulation(fragBuilder, srcCoverage, dstColor,
outColor, |
| 230 if (srcCoverage) { | 230 outColorSecondary, proc); |
| 231 fragBuilder->codeAppendf("%s *= %s;", outColor, srcCoverage); | |
| 232 fragBuilder->codeAppendf("%s = %s;", outColorSecondary, srcCover
age); | |
| 233 } else { | |
| 234 fragBuilder->codeAppendf("%s = vec4(1.0);", outColorSecondary); | |
| 235 } | |
| 236 } else if (srcCoverage) { | |
| 237 fragBuilder->codeAppendf("%s = %s * %s + (vec4(1.0) - %s) * %s;", | |
| 238 outColor, srcCoverage, outColor, srcCoverag
e, dstColor); | |
| 239 } | |
| 240 } | 231 } |
| 241 | 232 |
| 242 void onSetData(const GrGLSLProgramDataManager& pdman, | 233 void onSetData(const GrGLSLProgramDataManager& pdman, |
| 243 const GrXferProcessor& processor) override { | 234 const GrXferProcessor& processor) override { |
| 244 const ArithmeticXP& arith = processor.cast<ArithmeticXP>(); | 235 const ArithmeticXP& arith = processor.cast<ArithmeticXP>(); |
| 245 pdman.set4f(fKUni, arith.k1(), arith.k2(), arith.k3(), arith.k4()); | 236 pdman.set4f(fKUni, arith.k1(), arith.k2(), arith.k3(), arith.k4()); |
| 246 fEnforcePMColor = arith.enforcePMColor(); | 237 fEnforcePMColor = arith.enforcePMColor(); |
| 247 }; | 238 }; |
| 248 | 239 |
| 249 GrGLSLProgramDataManager::UniformHandle fKUni; | 240 GrGLSLProgramDataManager::UniformHandle fKUni; |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 float k1 = d->fRandom->nextF(); | 303 float k1 = d->fRandom->nextF(); |
| 313 float k2 = d->fRandom->nextF(); | 304 float k2 = d->fRandom->nextF(); |
| 314 float k3 = d->fRandom->nextF(); | 305 float k3 = d->fRandom->nextF(); |
| 315 float k4 = d->fRandom->nextF(); | 306 float k4 = d->fRandom->nextF(); |
| 316 bool enforcePMColor = d->fRandom->nextBool(); | 307 bool enforcePMColor = d->fRandom->nextBool(); |
| 317 | 308 |
| 318 return GrArithmeticXPFactory::Create(k1, k2, k3, k4, enforcePMColor); | 309 return GrArithmeticXPFactory::Create(k1, k2, k3, k4, enforcePMColor); |
| 319 } | 310 } |
| 320 | 311 |
| 321 #endif | 312 #endif |
| OLD | NEW |