Chromium Code Reviews| Index: src/gpu/GrInOrderDrawBuffer.cpp |
| diff --git a/src/gpu/GrInOrderDrawBuffer.cpp b/src/gpu/GrInOrderDrawBuffer.cpp |
| index dc074b7b511e5ebf95fe7a1c13df9f1b9cd4132b..4091c71e21c207cec8a587128c31cc8906dd2dec 100644 |
| --- a/src/gpu/GrInOrderDrawBuffer.cpp |
| +++ b/src/gpu/GrInOrderDrawBuffer.cpp |
| @@ -62,13 +62,18 @@ void get_vertex_bounds(const void* vertices, |
| The vertex attrib order is always pos, color, [local coords]. |
| */ |
| -static const GrGeometryProcessor* create_rect_gp(GrDrawState* drawState, |
| - bool hasLocalCoords, |
| - GrColor color) { |
| +static const GrGeometryProcessor* create_rect_gp(bool hasExplicitLocalCoords, |
| + GrColor color, |
| + const SkMatrix* localMatrix) { |
| uint32_t flags = GrDefaultGeoProcFactory::kPosition_GPType | |
| GrDefaultGeoProcFactory::kColor_GPType; |
| - flags |= hasLocalCoords ? GrDefaultGeoProcFactory::kLocalCoord_GPType : 0; |
| - return GrDefaultGeoProcFactory::Create(color, flags, GrColorIsOpaque(color)); |
| + flags |= hasExplicitLocalCoords ? GrDefaultGeoProcFactory::kLocalCoord_GPType : 0; |
| + if (localMatrix && !hasExplicitLocalCoords) { |
| + return GrDefaultGeoProcFactory::Create(color, flags, GrColorIsOpaque(color), 0xff, |
| + *localMatrix); |
| + } else { |
| + return GrDefaultGeoProcFactory::Create(color, flags, GrColorIsOpaque(color)); |
| + } |
| } |
| static bool path_fill_type_is_winding(const GrStencilSettings& pathStencilSettings) { |
| @@ -115,7 +120,8 @@ void GrInOrderDrawBuffer::onDrawRect(GrDrawState* ds, |
| const SkMatrix* localMatrix) { |
| GrDrawState::AutoRestoreEffects are(ds); |
| - SkAutoTUnref<const GrGeometryProcessor> gp(create_rect_gp(ds, SkToBool(localRect), color)); |
| + SkAutoTUnref<const GrGeometryProcessor> gp(create_rect_gp(SkToBool(localRect), color, |
|
bsalomon
2014/12/22 21:13:55
Seems like here if we have a localRect then we sho
|
| + localMatrix)); |
| size_t vstride = gp->getVertexStride(); |
| SkASSERT(vstride == sizeof(SkPoint) + sizeof(GrColor) + (SkToBool(localRect) ? sizeof(SkPoint) : |