Chromium Code Reviews| Index: src/gpu/GrRectBatch.cpp |
| diff --git a/src/gpu/GrRectBatch.cpp b/src/gpu/GrRectBatch.cpp |
| index 2977fdb1ce4d87feb37a8d0084dcf563c93fd87f..e1a84c7876c82d4b7f8c67a1b24e855129f486e7 100644 |
| --- a/src/gpu/GrRectBatch.cpp |
| +++ b/src/gpu/GrRectBatch.cpp |
| @@ -27,16 +27,23 @@ static const GrGeometryProcessor* create_rect_gp(bool hasExplicitLocalCoords, |
| const SkMatrix* localMatrix, |
|
robertphillips
2015/07/27 17:30:40
remove usesLocalCoords ?
|
| bool usesLocalCoords, |
| bool coverageIgnored) { |
| - // TODO remove color when we have ignored color from the XP |
| - uint32_t flags = GrDefaultGeoProcFactory::kPosition_GPType | |
| - GrDefaultGeoProcFactory::kColor_GPType; |
| - flags |= hasExplicitLocalCoords ? GrDefaultGeoProcFactory::kLocalCoord_GPType : 0; |
| + typedef GrDefaultGeoProcFactory::Color Color; |
| + typedef GrDefaultGeoProcFactory::Coverage Coverage; |
| + typedef GrDefaultGeoProcFactory::LocalCoords LocalCoords; |
| + Color color(Color::kAttribute_Type); |
| + Coverage coverage(coverageIgnored ? Coverage::kNone_Type : Coverage::kSolid_Type); |
| + LocalCoords::Type localCoords; |
| + if (hasExplicitLocalCoords) { |
| + localCoords = LocalCoords::kHasExplicit_Type; |
| + } else { |
| + localCoords = LocalCoords::kUsePosition_Type; |
| + } |
| + |
| if (localMatrix) { |
| - return GrDefaultGeoProcFactory::Create(flags, GrColor_WHITE, usesLocalCoords, |
| - coverageIgnored, SkMatrix::I(), *localMatrix); |
| + return GrDefaultGeoProcFactory::Create(color, coverage, localCoords, SkMatrix::I(), |
| + *localMatrix); |
| } else { |
| - return GrDefaultGeoProcFactory::Create(flags, GrColor_WHITE, usesLocalCoords, |
| - coverageIgnored, SkMatrix::I(), SkMatrix::I()); |
| + return GrDefaultGeoProcFactory::Create(color, coverage, localCoords); |
| } |
| } |
| @@ -129,6 +136,7 @@ public: |
| geom.fRect.fRight, geom.fRect.fBottom, vertexStride); |
| geom.fViewMatrix.mapPointsWithStride(positions, vertexStride, kVerticesPerQuad); |
| + // TODO we should only do this if local coords are being read |
| if (geom.fHasLocalRect) { |
| static const int kLocalOffset = sizeof(SkPoint) + sizeof(GrColor); |
| SkPoint* coords = reinterpret_cast<SkPoint*>(offset + kLocalOffset); |