Index: src/gpu/GrDefaultGeoProcFactory.h |
diff --git a/src/gpu/GrDefaultGeoProcFactory.h b/src/gpu/GrDefaultGeoProcFactory.h |
index 86c59c40e1b0d64c7278956f8e7e1e0061c4cbfc..cdea97bde9fe044044d6ed6bff1cceb5af09897f 100644 |
--- a/src/gpu/GrDefaultGeoProcFactory.h |
+++ b/src/gpu/GrDefaultGeoProcFactory.h |
@@ -111,17 +111,30 @@ public: |
struct LocalCoords { |
enum Type { |
- kNone_Type, |
+ kUnused_Type, |
kUsePosition_Type, |
kHasExplicit_Type, |
}; |
+ LocalCoords(Type type) : fType(type), fMatrix(NULL) {} |
+ LocalCoords(Type type, const SkMatrix* matrix) : fType(type), fMatrix(matrix) { |
+ SkASSERT(kUnused_Type != type); |
+ } |
+ bool hasLocalMatrix() const { return NULL != fMatrix; } |
+ |
+ Type fType; |
+ const SkMatrix* fMatrix; |
}; |
static const GrGeometryProcessor* Create(const Color&, |
const Coverage&, |
- LocalCoords::Type, |
- const SkMatrix& viewMatrix = SkMatrix::I(), |
- const SkMatrix& localMatrix = SkMatrix::I()); |
+ const LocalCoords&, |
+ const SkMatrix& viewMatrix = SkMatrix::I()); |
+ |
+ // can fail if the viewmatrix is noninvertible |
bsalomon
2015/07/28 14:39:08
I think this needs a little bit of explanation. "U
|
+ static const GrGeometryProcessor* CreateForDeviceSpace(const Color&, |
+ const Coverage&, |
+ const LocalCoords&, |
+ const SkMatrix& viewMatrix); |
/* |
* The following functions are used to create default GPs. If you just need to create |