diff options
author | 2014-12-11 15:44:02 -0800 | |
---|---|---|
committer | 2014-12-11 15:44:02 -0800 | |
commit | 56995b5cc00c9c83bd5fcf86bca9a67e939a96cb (patch) | |
tree | 5afd6c8625f50f0dcdb17e0c7ac8854fbda53495 /src/gpu/GrDefaultGeoProcFactory.cpp | |
parent | 5756aff40921e700dc40f2a1757291a64acddeaa (diff) |
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
Diffstat (limited to 'src/gpu/GrDefaultGeoProcFactory.cpp')
-rw-r--r-- | src/gpu/GrDefaultGeoProcFactory.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
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); } |