aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrDefaultGeoProcFactory.h
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2015-07-27 12:13:14 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-07-27 12:13:14 -0700
commite9d6095674979a9b843c291b85746922e9ac181a (patch)
tree54c6bbdb5ce8560fe1c99506e1e60c8e66ea58c3 /src/gpu/GrDefaultGeoProcFactory.h
parent2c323427cbcb1c294e4fbe6a55773bd67f2a2452 (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.h50
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