From 56995b5cc00c9c83bd5fcf86bca9a67e939a96cb Mon Sep 17 00:00:00 2001 From: joshualitt Date: Thu, 11 Dec 2014 15:44:02 -0800 Subject: Remove GP from drawstate, revision of invariant output for GP BUG=skia: Committed: https://skia.googlesource.com/skia/+/c6bc58eded89b0c0a36b8e20e193c200f297a0da Review URL: https://codereview.chromium.org/791743003 --- src/gpu/GrDefaultGeoProcFactory.cpp | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'src/gpu/GrDefaultGeoProcFactory.cpp') diff --git a/src/gpu/GrDefaultGeoProcFactory.cpp b/src/gpu/GrDefaultGeoProcFactory.cpp index dca6c1c017..cb73959e77 100644 --- a/src/gpu/GrDefaultGeoProcFactory.cpp +++ b/src/gpu/GrDefaultGeoProcFactory.cpp @@ -21,8 +21,9 @@ typedef GrDefaultGeoProcFactory Flag; class DefaultGeoProc : public GrGeometryProcessor { public: - static GrGeometryProcessor* Create(GrColor color, uint8_t coverage, uint32_t gpTypeFlags) { - return SkNEW_ARGS(DefaultGeoProc, (color, coverage, gpTypeFlags)); + static GrGeometryProcessor* Create(GrColor color, uint8_t coverage, uint32_t gpTypeFlags, + bool opaqueVertexColors) { + return SkNEW_ARGS(DefaultGeoProc, (color, coverage, gpTypeFlags, opaqueVertexColors)); } virtual const char* name() const SK_OVERRIDE { return "DefaultGeometryProcessor"; } @@ -95,8 +96,8 @@ public: } private: - DefaultGeoProc(GrColor color, uint8_t coverage, uint32_t gpTypeFlags) - : INHERITED(color, coverage) + DefaultGeoProc(GrColor color, uint8_t coverage, uint32_t gpTypeFlags, bool opaqueVertexColors) + : INHERITED(color, opaqueVertexColors, coverage) , fInPosition(NULL) , fInColor(NULL) , fInLocalCoords(NULL) @@ -128,11 +129,12 @@ private: return gp.fFlags == this->fFlags; } - virtual void onComputeInvariantOutput(GrInvariantOutput* inout) const SK_OVERRIDE { + virtual void onGetInvariantOutputCoverage(GrInitInvariantOutput* out) const SK_OVERRIDE { if (fInCoverage) { - inout->mulByUnknownAlpha(); + out->setUnknownSingleComponent(); } else { - inout->mulByKnownAlpha(255); + // uniform coverage + out->setKnownSingleComponent(this->coverage()); } } @@ -164,10 +166,13 @@ GrGeometryProcessor* DefaultGeoProc::TestCreate(SkRandom* random, flags |= GrDefaultGeoProcFactory::kLocalCoord_GPType; } - return DefaultGeoProc::Create(GrRandomColor(random), GrRandomCoverage(random), flags); + return DefaultGeoProc::Create(GrRandomColor(random), GrRandomCoverage(random), + flags, random->nextBool()); } -const GrGeometryProcessor* GrDefaultGeoProcFactory::Create(GrColor color, uint32_t gpTypeFlags, +const GrGeometryProcessor* GrDefaultGeoProcFactory::Create(GrColor color, + uint32_t gpTypeFlags, + bool opaqueVertexColors, uint8_t coverage) { - return DefaultGeoProc::Create(color, coverage, gpTypeFlags); + return DefaultGeoProc::Create(color, coverage, gpTypeFlags, opaqueVertexColors); } -- cgit v1.2.3