Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: src/gpu/GrResourceCache.h

Issue 18466005: Allow the resource cache to (indirectly) flush the InOrderDrawBuffer (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: fixed comment Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/gpu/GrContext.cpp ('k') | src/gpu/GrResourceCache.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2011 Google Inc. 3 * Copyright 2011 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 10
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 * of these, it will be purged (LRU) to keep the cache within these limits. 231 * of these, it will be purged (LRU) to keep the cache within these limits.
232 * 232 *
233 * @param maxResources The maximum number of resources that can be held in 233 * @param maxResources The maximum number of resources that can be held in
234 * the cache. 234 * the cache.
235 * @param maxBytes The maximum number of bytes of resource memory that 235 * @param maxBytes The maximum number of bytes of resource memory that
236 * can be held in the cache. 236 * can be held in the cache.
237 */ 237 */
238 void setLimits(int maxResource, size_t maxResourceBytes); 238 void setLimits(int maxResource, size_t maxResourceBytes);
239 239
240 /** 240 /**
241 * Set the callback the cache should use when it is still over budget
242 * after a purge. The 'data' provided here will be passed back to the
243 * callback.
bsalomon 2013/07/09 17:43:25 Maybe mention that the cache will attempt to purge
robertphillips 2013/07/10 10:15:13 Done. I expanded the comment and made the CB now
244 */
245 typedef void (*PFOverbudgetCB)(void* data);
246 void setOverbudgetCallback(PFOverbudgetCB overbudgetCB, void* data) {
247 fOverbudgetCB = overbudgetCB;
248 fOverbudgetData = data;
249 }
250
251 /**
241 * Returns the number of bytes consumed by cached resources. 252 * Returns the number of bytes consumed by cached resources.
242 */ 253 */
243 size_t getCachedResourceBytes() const { return fEntryBytes; } 254 size_t getCachedResourceBytes() const { return fEntryBytes; }
244 255
245 // For a found or added resource to be completely exclusive to the caller 256 // For a found or added resource to be completely exclusive to the caller
246 // both the kNoOtherOwners and kHide flags need to be specified 257 // both the kNoOtherOwners and kHide flags need to be specified
247 enum OwnershipFlags { 258 enum OwnershipFlags {
248 kNoOtherOwners_OwnershipFlag = 0x1, // found/added resource has no other owners 259 kNoOtherOwners_OwnershipFlag = 0x1, // found/added resource has no other owners
249 kHide_OwnershipFlag = 0x2 // found/added resource is hidden from future 'find's 260 kHide_OwnershipFlag = 0x2 // found/added resource is hidden from future 'find's
250 }; 261 };
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 int fHighWaterClientDetachedCount; 364 int fHighWaterClientDetachedCount;
354 size_t fHighWaterClientDetachedBytes; 365 size_t fHighWaterClientDetachedBytes;
355 #endif 366 #endif
356 367
357 int fEntryCount; 368 int fEntryCount;
358 size_t fEntryBytes; 369 size_t fEntryBytes;
359 int fClientDetachedCount; 370 int fClientDetachedCount;
360 size_t fClientDetachedBytes; 371 size_t fClientDetachedBytes;
361 372
362 // prevents recursive purging 373 // prevents recursive purging
363 bool fPurging; 374 bool fPurging;
375
376 PFOverbudgetCB fOverbudgetCB;
377 void* fOverbudgetData;
378
379 void internalPurge();
364 380
365 #if GR_DEBUG 381 #if GR_DEBUG
366 static size_t countBytes(const SkTInternalLList<GrResourceEntry>& list); 382 static size_t countBytes(const SkTInternalLList<GrResourceEntry>& list);
367 #endif 383 #endif
368 }; 384 };
369 385
370 /////////////////////////////////////////////////////////////////////////////// 386 ///////////////////////////////////////////////////////////////////////////////
371 387
372 #if GR_DEBUG 388 #if GR_DEBUG
373 class GrAutoResourceCacheValidate { 389 class GrAutoResourceCacheValidate {
374 public: 390 public:
375 GrAutoResourceCacheValidate(GrResourceCache* cache) : fCache(cache) { 391 GrAutoResourceCacheValidate(GrResourceCache* cache) : fCache(cache) {
376 cache->validate(); 392 cache->validate();
377 } 393 }
378 ~GrAutoResourceCacheValidate() { 394 ~GrAutoResourceCacheValidate() {
379 fCache->validate(); 395 fCache->validate();
380 } 396 }
381 private: 397 private:
382 GrResourceCache* fCache; 398 GrResourceCache* fCache;
383 }; 399 };
384 #else 400 #else
385 class GrAutoResourceCacheValidate { 401 class GrAutoResourceCacheValidate {
386 public: 402 public:
387 GrAutoResourceCacheValidate(GrResourceCache*) {} 403 GrAutoResourceCacheValidate(GrResourceCache*) {}
388 }; 404 };
389 #endif 405 #endif
390 406
391 #endif 407 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrContext.cpp ('k') | src/gpu/GrResourceCache.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698