diff options
author | joshualitt <joshualitt@chromium.org> | 2015-07-27 12:13:14 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-27 12:13:14 -0700 |
commit | e9d6095674979a9b843c291b85746922e9ac181a (patch) | |
tree | 54c6bbdb5ce8560fe1c99506e1e60c8e66ea58c3 /src/gpu/GrDefaultGeoProcFactory.h | |
parent | 2c323427cbcb1c294e4fbe6a55773bd67f2a2452 (diff) |
Cleanup Default Geo Proc API
TBR=bsalomon@google.com
BUG=skia:
Review URL: https://codereview.chromium.org/1253393002
Diffstat (limited to 'src/gpu/GrDefaultGeoProcFactory.h')
-rw-r--r-- | src/gpu/GrDefaultGeoProcFactory.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/gpu/GrDefaultGeoProcFactory.h b/src/gpu/GrDefaultGeoProcFactory.h index 00fd0bce6b..86c59c40e1 100644 --- a/src/gpu/GrDefaultGeoProcFactory.h +++ b/src/gpu/GrDefaultGeoProcFactory.h @@ -73,6 +73,56 @@ public: kLastGPType = kCoverage_GPType }; + struct Color { + enum Type { + kNone_Type, + kUniform_Type, + kAttribute_Type, + }; + Color(GrColor color) : fType(kUniform_Type), fColor(color) {} + Color(Type type) : fType(type), fColor(GrColor_ILLEGAL) { + SkASSERT(type != kUniform_Type); + + // TODO This is temporary + if (kAttribute_Type == type) { + fColor = GrColor_WHITE; + } + } + + Type fType; + GrColor fColor; + }; + + struct Coverage { + enum Type { + kNone_Type, + kSolid_Type, + kUniform_Type, + kAttribute_Type, + }; + Coverage(uint8_t coverage) : fType(kUniform_Type), fCoverage(coverage) {} + Coverage(Type type) : fType(type), fCoverage(0xff) { + SkASSERT(type != kUniform_Type); + } + + Type fType; + uint8_t fCoverage; + }; + + struct LocalCoords { + enum Type { + kNone_Type, + kUsePosition_Type, + kHasExplicit_Type, + }; + }; + + static const GrGeometryProcessor* Create(const Color&, + const Coverage&, + LocalCoords::Type, + const SkMatrix& viewMatrix = SkMatrix::I(), + const SkMatrix& localMatrix = SkMatrix::I()); + /* * The following functions are used to create default GPs. If you just need to create * attributes separately from creating the default GP, use the SetAttribs function followed |