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 "SkAvoidXfermode.h" | 8 #include "SkAvoidXfermode.h" |
9 #include "SkColorPriv.h" | 9 #include "SkColorPriv.h" |
10 #include "SkReadBuffer.h" | 10 #include "SkReadBuffer.h" |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
270 class GLAvoidFP : public GrGLSLFragmentProcessor { | 270 class GLAvoidFP : public GrGLSLFragmentProcessor { |
271 public: | 271 public: |
272 void emitCode(EmitArgs& args) override { | 272 void emitCode(EmitArgs& args) override { |
273 const AvoidFP& avoid = args.fFp.cast<AvoidFP>(); | 273 const AvoidFP& avoid = args.fFp.cast<AvoidFP>(); |
274 | 274 |
275 GrGLSLFragmentBuilder* fragBuilder = args.fFragBuilder; | 275 GrGLSLFragmentBuilder* fragBuilder = args.fFragBuilder; |
276 SkString dstColor("dstColor"); | 276 SkString dstColor("dstColor"); |
277 this->emitChild(0, nullptr, &dstColor, args); | 277 this->emitChild(0, nullptr, &dstColor, args); |
278 | 278 |
279 fColorAndTolUni = args.fUniformHandler->addUniform( | 279 fColorAndTolUni = args.fUniformHandler->addUniform( |
280 GrGLSLUniformHandler::kFragment
_Visibility, | 280 kFragment_GrShaderFlag, |
281 kVec4f_GrSLType, kDefault_GrSLP
recision, | 281 kVec4f_GrSLType, kDefault_GrSLP
recision, |
282 "colorAndTol"); | 282 "colorAndTol"); |
283 const char* kColorAndTolUni = args.fUniformHandler->getUniformCStr(fColo
rAndTolUni); | 283 const char* kColorAndTolUni = args.fUniformHandler->getUniformCStr(fColo
rAndTolUni); |
284 | 284 |
285 const char* kCoverageName = "newCoverage"; | 285 const char* kCoverageName = "newCoverage"; |
286 | 286 |
287 // add_avoid_code emits the code needed to compute the new coverage | 287 // add_avoid_code emits the code needed to compute the new coverage |
288 add_avoid_code(fragBuilder, | 288 add_avoid_code(fragBuilder, |
289 dstColor.c_str(), nullptr, | 289 dstColor.c_str(), nullptr, |
290 kColorAndTolUni, kCoverageName, avoid.mode()); | 290 kColorAndTolUni, kCoverageName, avoid.mode()); |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
406 void emitBlendCodeForDstRead(GrGLSLXPFragmentBuilder* fragBuilder, | 406 void emitBlendCodeForDstRead(GrGLSLXPFragmentBuilder* fragBuilder, |
407 GrGLSLUniformHandler* uniformHandler, | 407 GrGLSLUniformHandler* uniformHandler, |
408 const char* srcColor, | 408 const char* srcColor, |
409 const char* srcCoverage, | 409 const char* srcCoverage, |
410 const char* dstColor, | 410 const char* dstColor, |
411 const char* outColor, | 411 const char* outColor, |
412 const char* outColorSecondary, | 412 const char* outColorSecondary, |
413 const GrXferProcessor& proc) override { | 413 const GrXferProcessor& proc) override { |
414 const AvoidXP& avoid = proc.cast<AvoidXP>(); | 414 const AvoidXP& avoid = proc.cast<AvoidXP>(); |
415 | 415 |
416 fColorAndTolUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFrag
ment_Visibility, | 416 fColorAndTolUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
417 kVec4f_GrSLType, kDefault_G
rSLPrecision, | 417 kVec4f_GrSLType, kDefault_G
rSLPrecision, |
418 "colorAndTol"); | 418 "colorAndTol"); |
419 const char* kColorandTolUni = uniformHandler->getUniformCStr(fColorAndTo
lUni); | 419 const char* kColorandTolUni = uniformHandler->getUniformCStr(fColorAndTo
lUni); |
420 | 420 |
421 const char* kCoverageName = "newCoverage"; | 421 const char* kCoverageName = "newCoverage"; |
422 | 422 |
423 // add_avoid_code emits the code needed to compute the new coverage | 423 // add_avoid_code emits the code needed to compute the new coverage |
424 add_avoid_code(fragBuilder, | 424 add_avoid_code(fragBuilder, |
425 dstColor, srcCoverage, | 425 dstColor, srcCoverage, |
426 kColorandTolUni, kCoverageName, avoid.mode()); | 426 kColorandTolUni, kCoverageName, avoid.mode()); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
535 void SkAvoidXfermode::toString(SkString* str) const { | 535 void SkAvoidXfermode::toString(SkString* str) const { |
536 str->append("AvoidXfermode: opColor: "); | 536 str->append("AvoidXfermode: opColor: "); |
537 str->appendHex(fOpColor); | 537 str->appendHex(fOpColor); |
538 str->appendf("tolerance: %d ", fTolerance); | 538 str->appendf("tolerance: %d ", fTolerance); |
539 | 539 |
540 static const char* gModeStrings[] = { "Avoid", "Target" }; | 540 static const char* gModeStrings[] = { "Avoid", "Target" }; |
541 | 541 |
542 str->appendf("mode: %s", gModeStrings[fMode]); | 542 str->appendf("mode: %s", gModeStrings[fMode]); |
543 } | 543 } |
544 #endif | 544 #endif |
OLD | NEW |