diff options
Diffstat (limited to 'src/gpu/GrSWMaskHelper.cpp')
-rw-r--r-- | src/gpu/GrSWMaskHelper.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/gpu/GrSWMaskHelper.cpp b/src/gpu/GrSWMaskHelper.cpp index f6e6c3127d..6b2a75990e 100644 --- a/src/gpu/GrSWMaskHelper.cpp +++ b/src/gpu/GrSWMaskHelper.cpp @@ -7,6 +7,7 @@ #include "GrSWMaskHelper.h" #include "GrDrawState.h" +#include "GrDrawTargetCaps.h" #include "GrGpu.h" #include "SkStrokeRec.h" @@ -133,9 +134,14 @@ bool GrSWMaskHelper::getTexture(GrAutoScratchTexture* texture) { void GrSWMaskHelper::toTexture(GrTexture *texture) { SkAutoLockPixels alp(fBM); + // If we aren't reusing scratch textures we don't need to flush before + // writing since no one else will be using 'texture' + bool reuseScratch = fContext->getGpu()->caps()->reuseScratchTextures(); + texture->writePixels(0, 0, fBM.width(), fBM.height(), kAlpha_8_GrPixelConfig, - fBM.getPixels(), fBM.rowBytes()); + fBM.getPixels(), fBM.rowBytes(), + reuseScratch ? 0 : GrContext::kDontFlush_PixelOpsFlag); } //////////////////////////////////////////////////////////////////////////////// |