Chromium Code Reviews| 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 |