Index: src/gpu/effects/GrBitmapTextGeoProc.cpp |
diff --git a/src/gpu/effects/GrBitmapTextGeoProc.cpp b/src/gpu/effects/GrBitmapTextGeoProc.cpp |
index 1b393f32a37a063f565b5dcf015c700e427a5402..09eee1c70d1ba106be2843d0acf130a178798ae9 100644 |
--- a/src/gpu/effects/GrBitmapTextGeoProc.cpp |
+++ b/src/gpu/effects/GrBitmapTextGeoProc.cpp |
@@ -17,6 +17,7 @@ |
struct BitmapTextBatchTracker { |
GrGPInput fInputColorType; |
GrColor fColor; |
+ bool fUsesLocalCoords; |
}; |
class GrGLBitmapTextGeoProc : public GrGLGeometryProcessor { |
@@ -134,12 +135,17 @@ void GrBitmapTextGeoProc::initBatchTracker(GrBatchTracker* bt, const InitBT& ini |
BitmapTextBatchTracker* local = bt->cast<BitmapTextBatchTracker>(); |
local->fInputColorType = GetColorInputType(&local->fColor, this->color(), init, |
SkToBool(fInColor)); |
+ local->fUsesLocalCoords = init.fUsesLocalCoords; |
} |
-bool GrBitmapTextGeoProc::onCanMakeEqual(const GrBatchTracker& m, const GrBatchTracker& t) const { |
+bool GrBitmapTextGeoProc::onCanMakeEqual(const GrBatchTracker& m, |
+ const GrGeometryProcessor& that, |
+ const GrBatchTracker& t) const { |
const BitmapTextBatchTracker& mine = m.cast<BitmapTextBatchTracker>(); |
const BitmapTextBatchTracker& theirs = t.cast<BitmapTextBatchTracker>(); |
- return CanCombineOutput(mine.fInputColorType, mine.fColor, |
+ return CanCombineLocalMatrices(*this, mine.fUsesLocalCoords, |
+ that, theirs.fUsesLocalCoords) && |
+ CanCombineOutput(mine.fInputColorType, mine.fColor, |
theirs.fInputColorType, theirs.fColor); |
} |