| 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 "effects/GrCustomXfermode.h" | 8 #include "effects/GrCustomXfermode.h" |
| 9 #include "effects/GrCustomXfermodePriv.h" | 9 #include "effects/GrCustomXfermodePriv.h" |
| 10 | 10 |
| (...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 502 bool GrCustomXferFP::onIsEqual(const GrFragmentProcessor& other) const { | 502 bool GrCustomXferFP::onIsEqual(const GrFragmentProcessor& other) const { |
| 503 const GrCustomXferFP& s = other.cast<GrCustomXferFP>(); | 503 const GrCustomXferFP& s = other.cast<GrCustomXferFP>(); |
| 504 return fMode == s.fMode; | 504 return fMode == s.fMode; |
| 505 } | 505 } |
| 506 | 506 |
| 507 void GrCustomXferFP::onComputeInvariantOutput(GrInvariantOutput* inout) const { | 507 void GrCustomXferFP::onComputeInvariantOutput(GrInvariantOutput* inout) const { |
| 508 inout->setToUnknown(GrInvariantOutput::kWill_ReadInput); | 508 inout->setToUnknown(GrInvariantOutput::kWill_ReadInput); |
| 509 } | 509 } |
| 510 | 510 |
| 511 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrCustomXferFP); | 511 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrCustomXferFP); |
| 512 GrFragmentProcessor* GrCustomXferFP::TestCreate(SkRandom* rand, | 512 GrFragmentProcessor* GrCustomXferFP::TestCreate(GrProcessorTestData* d) { |
| 513 GrContext*, | 513 int mode = d->fRandom->nextRangeU(SkXfermode::kLastCoeffMode + 1, SkXfermode
::kLastSeparableMode); |
| 514 const GrCaps&, | |
| 515 GrTexture* textures[]) { | |
| 516 int mode = rand->nextRangeU(SkXfermode::kLastCoeffMode + 1, SkXfermode::kLas
tSeparableMode); | |
| 517 | 514 |
| 518 GrShaderDataManager shaderDataManager; | 515 return SkNEW_ARGS(GrCustomXferFP, (d->fShaderDataManager, static_cast<SkXfer
mode::Mode>(mode), |
| 519 return SkNEW_ARGS(GrCustomXferFP, (&shaderDataManager, static_cast<SkXfermod
e::Mode>(mode), | 516 d->fTextures[0])); |
| 520 textures[0])); | |
| 521 } | 517 } |
| 522 | 518 |
| 523 /////////////////////////////////////////////////////////////////////////////// | 519 /////////////////////////////////////////////////////////////////////////////// |
| 524 // Xfer Processor | 520 // Xfer Processor |
| 525 /////////////////////////////////////////////////////////////////////////////// | 521 /////////////////////////////////////////////////////////////////////////////// |
| 526 | 522 |
| 527 class CustomXP : public GrXferProcessor { | 523 class CustomXP : public GrXferProcessor { |
| 528 public: | 524 public: |
| 529 CustomXP(SkXfermode::Mode mode, GrBlendEquation hwBlendEquation) | 525 CustomXP(SkXfermode::Mode mode, GrBlendEquation hwBlendEquation) |
| 530 : fMode(mode), | 526 : fMode(mode), |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 810 return !can_use_hw_blend_equation(fHWBlendEquation, coveragePOI, caps); | 806 return !can_use_hw_blend_equation(fHWBlendEquation, coveragePOI, caps); |
| 811 } | 807 } |
| 812 | 808 |
| 813 void GrCustomXPFactory::getInvariantBlendedColor(const GrProcOptInfo& colorPOI, | 809 void GrCustomXPFactory::getInvariantBlendedColor(const GrProcOptInfo& colorPOI, |
| 814 InvariantBlendedColor* blendedC
olor) const { | 810 InvariantBlendedColor* blendedC
olor) const { |
| 815 blendedColor->fWillBlendWithDst = true; | 811 blendedColor->fWillBlendWithDst = true; |
| 816 blendedColor->fKnownColorFlags = kNone_GrColorComponentFlags; | 812 blendedColor->fKnownColorFlags = kNone_GrColorComponentFlags; |
| 817 } | 813 } |
| 818 | 814 |
| 819 GR_DEFINE_XP_FACTORY_TEST(GrCustomXPFactory); | 815 GR_DEFINE_XP_FACTORY_TEST(GrCustomXPFactory); |
| 820 GrXPFactory* GrCustomXPFactory::TestCreate(SkRandom* rand, | 816 GrXPFactory* GrCustomXPFactory::TestCreate(GrProcessorTestData* d) { |
| 821 GrContext*, | 817 int mode = d->fRandom->nextRangeU(SkXfermode::kLastCoeffMode + 1, |
| 822 const GrCaps&, | 818 SkXfermode::kLastSeparableMode); |
| 823 GrTexture*[]) { | |
| 824 int mode = rand->nextRangeU(SkXfermode::kLastCoeffMode + 1, SkXfermode::kLas
tSeparableMode); | |
| 825 | 819 |
| 826 return SkNEW_ARGS(GrCustomXPFactory, (static_cast<SkXfermode::Mode>(mode))); | 820 return SkNEW_ARGS(GrCustomXPFactory, (static_cast<SkXfermode::Mode>(mode))); |
| 827 } | 821 } |
| 828 | 822 |
| OLD | NEW |