From 0ae0e23696f2ef08503040f8c02765eb58b26ddf Mon Sep 17 00:00:00 2001 From: Brian Salomon Date: Fri, 7 Apr 2017 15:37:58 -0400 Subject: Create GrXferProcessor while doing GrProcessorSet analysis. Bug: skia: Change-Id: I62a628f9c0536ffb05c8f9d0c9ded5657f93b48e Reviewed-on: https://skia-review.googlesource.com/11482 Reviewed-by: Greg Daniel Commit-Queue: Brian Salomon --- tests/GrPorterDuffTest.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'tests/GrPorterDuffTest.cpp') diff --git a/tests/GrPorterDuffTest.cpp b/tests/GrPorterDuffTest.cpp index f2bd1e729d..4066d28503 100644 --- a/tests/GrPorterDuffTest.cpp +++ b/tests/GrPorterDuffTest.cpp @@ -55,16 +55,30 @@ enum { kISCModulate_OutputType }; +static GrProcessorSet::Analysis do_analysis(const GrXPFactory* xpf, + const GrProcessorAnalysisColor& colorInput, + GrProcessorAnalysisCoverage coverageInput, + const GrCaps& caps) { + GrPaint paint; + paint.setXPFactory(xpf); + GrProcessorSet procs(std::move(paint)); + GrColor overrideColor; + GrProcessorSet::Analysis analysis = + procs.finalize(colorInput, coverageInput, nullptr, false, caps, &overrideColor); + return analysis; +} + class GrPorterDuffTest { public: struct XPInfo { XPInfo(skiatest::Reporter* reporter, SkBlendMode xfermode, const GrCaps& caps, GrProcessorAnalysisColor inputColor, GrProcessorAnalysisCoverage inputCoverage) { const GrXPFactory* xpf = GrPorterDuffXPFactory::Get(xfermode); - GrProcessorSet::Analysis analysis(inputColor, inputCoverage, xpf, caps); + + GrProcessorSet::Analysis analysis = do_analysis(xpf, inputColor, inputCoverage, caps); fCompatibleWithCoverageAsAlpha = analysis.isCompatibleWithCoverageAsAlpha(); fCanCombineOverlappedStencilAndCover = analysis.canCombineOverlappedStencilAndCover(); - fIgnoresInputColor = analysis.isInputColorIgnored(); + fIgnoresInputColor = analysis.inputColorIsIgnored(); sk_sp xp( GrXPFactory::MakeXferProcessor(xpf, inputColor, inputCoverage, false, caps)); TEST_ASSERT(!analysis.requiresDstTexture()); @@ -1040,8 +1054,6 @@ DEF_GPUTEST(PorterDuffNoDualSourceBlending, reporter, /*factory*/) { for (int m = 0; m <= (int)SkBlendMode::kLastCoeffMode; m++) { SkBlendMode xfermode = static_cast(m); const GrXPFactory* xpf = GrPorterDuffXPFactory::Get(xfermode); - GrProcessorSet::Analysis analysis; - analysis = GrProcessorSet::Analysis(colorInput, coverageType, xpf, caps); sk_sp xp( GrXPFactory::MakeXferProcessor(xpf, colorInput, coverageType, false, caps)); if (!xp) { -- cgit v1.2.3