| OLD | NEW |
| 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 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 | 319 |
| 320 /** | 320 /** |
| 321 * Removes every resource in the cache that isn't locked. | 321 * Removes every resource in the cache that isn't locked. |
| 322 */ | 322 */ |
| 323 void purgeAllUnlocked(); | 323 void purgeAllUnlocked(); |
| 324 | 324 |
| 325 /** | 325 /** |
| 326 * Allow cache to purge unused resources to obey resource limitations | 326 * Allow cache to purge unused resources to obey resource limitations |
| 327 * Note: this entry point will be hidden (again) once totally ref-driven | 327 * Note: this entry point will be hidden (again) once totally ref-driven |
| 328 * cache maintenance is implemented | 328 * cache maintenance is implemented |
| 329 * |
| 330 * extraCount and extraBytes are added to the current resource allocation |
| 331 * to make sure enough room is available for future additions (e.g, |
| 332 * 10MB across 10 textures is about to be added). |
| 329 */ | 333 */ |
| 330 void purgeAsNeeded(); | 334 void purgeAsNeeded(int extraCount = 0, size_t extraBytes = 0); |
| 331 | 335 |
| 332 #if GR_DEBUG | 336 #if GR_DEBUG |
| 333 void validate() const; | 337 void validate() const; |
| 334 #else | 338 #else |
| 335 void validate() const {} | 339 void validate() const {} |
| 336 #endif | 340 #endif |
| 337 | 341 |
| 338 #if GR_CACHE_STATS | 342 #if GR_CACHE_STATS |
| 339 void printStats(); | 343 void printStats(); |
| 340 #endif | 344 #endif |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 size_t fEntryBytes; | 381 size_t fEntryBytes; |
| 378 int fClientDetachedCount; | 382 int fClientDetachedCount; |
| 379 size_t fClientDetachedBytes; | 383 size_t fClientDetachedBytes; |
| 380 | 384 |
| 381 // prevents recursive purging | 385 // prevents recursive purging |
| 382 bool fPurging; | 386 bool fPurging; |
| 383 | 387 |
| 384 PFOverbudgetCB fOverbudgetCB; | 388 PFOverbudgetCB fOverbudgetCB; |
| 385 void* fOverbudgetData; | 389 void* fOverbudgetData; |
| 386 | 390 |
| 387 void internalPurge(); | 391 void internalPurge(int extraCount, size_t extraBytes); |
| 388 | 392 |
| 389 #if GR_DEBUG | 393 #if GR_DEBUG |
| 390 static size_t countBytes(const SkTInternalLList<GrResourceEntry>& list); | 394 static size_t countBytes(const SkTInternalLList<GrResourceEntry>& list); |
| 391 #endif | 395 #endif |
| 392 }; | 396 }; |
| 393 | 397 |
| 394 /////////////////////////////////////////////////////////////////////////////// | 398 /////////////////////////////////////////////////////////////////////////////// |
| 395 | 399 |
| 396 #if GR_DEBUG | 400 #if GR_DEBUG |
| 397 class GrAutoResourceCacheValidate { | 401 class GrAutoResourceCacheValidate { |
| 398 public: | 402 public: |
| 399 GrAutoResourceCacheValidate(GrResourceCache* cache) : fCache(cache) { | 403 GrAutoResourceCacheValidate(GrResourceCache* cache) : fCache(cache) { |
| 400 cache->validate(); | 404 cache->validate(); |
| 401 } | 405 } |
| 402 ~GrAutoResourceCacheValidate() { | 406 ~GrAutoResourceCacheValidate() { |
| 403 fCache->validate(); | 407 fCache->validate(); |
| 404 } | 408 } |
| 405 private: | 409 private: |
| 406 GrResourceCache* fCache; | 410 GrResourceCache* fCache; |
| 407 }; | 411 }; |
| 408 #else | 412 #else |
| 409 class GrAutoResourceCacheValidate { | 413 class GrAutoResourceCacheValidate { |
| 410 public: | 414 public: |
| 411 GrAutoResourceCacheValidate(GrResourceCache*) {} | 415 GrAutoResourceCacheValidate(GrResourceCache*) {} |
| 412 }; | 416 }; |
| 413 #endif | 417 #endif |
| 414 | 418 |
| 415 #endif | 419 #endif |
| OLD | NEW |