Index: src/gpu/GrContext.cpp |
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp |
index 3f4d2fa95913a066f2eb8719cf375e97780af159..357f58e6e323240234a8f226fd0e65b3ea2a76c3 100644 |
--- a/src/gpu/GrContext.cpp |
+++ b/src/gpu/GrContext.cpp |
@@ -66,7 +66,6 @@ GrContext::GrContext() : fUniqueID(next_id()) { |
fResourceCache = nullptr; |
fResourceProvider = nullptr; |
fBatchFontCache = nullptr; |
- fFlushToReduceCacheSize = false; |
} |
bool GrContext::init(GrBackend backend, GrBackendContext backendContext, |
@@ -87,7 +86,6 @@ void GrContext::initCommon(const GrContextOptions& options) { |
fCaps = SkRef(fGpu->caps()); |
fResourceCache = new GrResourceCache(fCaps); |
- fResourceCache->setOverBudgetCallback(OverBudgetCB, this); |
fResourceProvider = new GrResourceProvider(fGpu, fResourceCache, &fSingleOwner); |
fDidTestPMConversions = false; |
@@ -97,7 +95,8 @@ void GrContext::initCommon(const GrContextOptions& options) { |
dtOptions.fDrawBatchBounds = options.fDrawBatchBounds; |
dtOptions.fMaxBatchLookback = options.fMaxBatchLookback; |
dtOptions.fMaxBatchLookahead = options.fMaxBatchLookahead; |
- fDrawingManager.reset(new GrDrawingManager(this, dtOptions, &fSingleOwner)); |
+ fDrawingManager.reset(new GrDrawingManager(this, dtOptions, options.fImmediateMode, |
+ &fSingleOwner)); |
// GrBatchFontCache will eventually replace GrFontCache |
fBatchFontCache = new GrBatchFontCache(this); |
@@ -203,41 +202,21 @@ void GrContext::getResourceCacheUsage(int* resourceCount, size_t* resourceBytes) |
//////////////////////////////////////////////////////////////////////////////// |
-void GrContext::OverBudgetCB(void* data) { |
- SkASSERT(data); |
- |
- GrContext* context = reinterpret_cast<GrContext*>(data); |
- |
- // Flush the GrBufferedDrawTarget to possibly free up some textures |
- context->fFlushToReduceCacheSize = true; |
-} |
- |
void GrContext::TextBlobCacheOverBudgetCB(void* data) { |
SkASSERT(data); |
- |
- // Unlike the GrResourceCache, TextBlobs are drawn at the SkGpuDevice level, therefore they |
- // cannot use fFlushTorReduceCacheSize because it uses AutoCheckFlush. The solution is to move |
- // drawText calls to below the GrContext level, but this is not trivial because they call |
- // drawPath on SkGpuDevice |
+ // TextBlobs are drawn at the SkGpuDevice level, therefore they cannot rely on GrDrawContext |
+ // to perform a necessary flush. The solution is to move drawText calls to below the GrContext |
+ // level, but this is not trivial because they call drawPath on SkGpuDevice. |
GrContext* context = reinterpret_cast<GrContext*>(data); |
context->flush(); |
} |
//////////////////////////////////////////////////////////////////////////////// |
-void GrContext::flush(int flagsBitfield) { |
+void GrContext::flush() { |
ASSERT_SINGLE_OWNER |
RETURN_IF_ABANDONED |
- bool flushed = false; |
- if (kDiscard_FlushBit & flagsBitfield) { |
- fDrawingManager->reset(); |
- } else { |
- flushed = fDrawingManager->flush(); |
- } |
- if (flushed) { |
- fResourceCache->notifyFlushOccurred(); |
- } |
- fFlushToReduceCacheSize = false; |
+ fDrawingManager->flush(); |
} |
bool sw_convert_to_premul(GrPixelConfig srcConfig, int width, int height, size_t inRowBytes, |