| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2014 Google Inc. | 3 * Copyright 2014 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 #ifndef GrResourceCache2_DEFINED | 9 #ifndef GrResourceCache2_DEFINED |
| 10 #define GrResourceCache2_DEFINED | 10 #define GrResourceCache2_DEFINED |
| 11 | 11 |
| 12 #include "GrGpuResource.h" | 12 #include "GrGpuResource.h" |
| 13 #include "GrGpuResourceCacheAccess.h" | 13 #include "GrGpuResourceCacheAccess.h" |
| 14 #include "GrResourceKey.h" | 14 #include "GrResourceKey.h" |
| 15 #include "SkRefCnt.h" | 15 #include "SkRefCnt.h" |
| 16 #include "SkTInternalLList.h" | 16 #include "SkTInternalLList.h" |
| 17 #include "SkTMultiMap.h" | 17 #include "SkTMultiMap.h" |
| 18 | 18 |
| 19 class SkString; |
| 20 |
| 19 /** | 21 /** |
| 20 * Manages the lifetime of all GrGpuResource instances. | 22 * Manages the lifetime of all GrGpuResource instances. |
| 21 * | 23 * |
| 22 * Resources may have optionally have two types of keys: | 24 * Resources may have optionally have two types of keys: |
| 23 * 1) A scratch key. This is for resources whose allocations are cached but
not their contents. | 25 * 1) A scratch key. This is for resources whose allocations are cached but
not their contents. |
| 24 * Multiple resources can share the same scratch key. This is so a calle
r can have two | 26 * Multiple resources can share the same scratch key. This is so a calle
r can have two |
| 25 * resource instances with the same properties (e.g. multipass rendering
that ping-pongs | 27 * resource instances with the same properties (e.g. multipass rendering
that ping-pongs |
| 26 * between two temporary surfaces. The scratch key is set at resource cr
eation time and | 28 * between two temporary surfaces. The scratch key is set at resource cr
eation time and |
| 27 * should never change. Resources need not have a scratch key. | 29 * should never change. Resources need not have a scratch key. |
| 28 * 2) A content key. This key represents the contents of the resource rathe
r than just its | 30 * 2) A content key. This key represents the contents of the resource rathe
r than just its |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 * Set the callback the cache should use when it is still over budget after
a purge. The 'data' | 141 * Set the callback the cache should use when it is still over budget after
a purge. The 'data' |
| 140 * provided here will be passed back to the callback. Note that the cache wi
ll attempt to purge | 142 * provided here will be passed back to the callback. Note that the cache wi
ll attempt to purge |
| 141 * any resources newly freed by the callback. | 143 * any resources newly freed by the callback. |
| 142 */ | 144 */ |
| 143 void setOverBudgetCallback(PFOverBudgetCB overBudgetCB, void* data) { | 145 void setOverBudgetCallback(PFOverBudgetCB overBudgetCB, void* data) { |
| 144 fOverBudgetCB = overBudgetCB; | 146 fOverBudgetCB = overBudgetCB; |
| 145 fOverBudgetData = data; | 147 fOverBudgetData = data; |
| 146 } | 148 } |
| 147 | 149 |
| 148 #if GR_GPU_STATS | 150 #if GR_GPU_STATS |
| 149 void printStats() const; | 151 void dumpStats(SkString*) const; |
| 150 #endif | 152 #endif |
| 151 | 153 |
| 152 private: | 154 private: |
| 153 /////////////////////////////////////////////////////////////////////////// | 155 /////////////////////////////////////////////////////////////////////////// |
| 154 /// @name Methods accessible via ResourceAccess | 156 /// @name Methods accessible via ResourceAccess |
| 155 //// | 157 //// |
| 156 void insertResource(GrGpuResource*); | 158 void insertResource(GrGpuResource*); |
| 157 void removeResource(GrGpuResource*); | 159 void removeResource(GrGpuResource*); |
| 158 void notifyPurgeable(GrGpuResource*); | 160 void notifyPurgeable(GrGpuResource*); |
| 159 void didChangeGpuMemorySize(const GrGpuResource*, size_t oldSize); | 161 void didChangeGpuMemorySize(const GrGpuResource*, size_t oldSize); |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 295 | 297 |
| 296 friend class GrGpuResource; // To access all the proxy inline methods. | 298 friend class GrGpuResource; // To access all the proxy inline methods. |
| 297 friend class GrResourceCache2; // To create this type. | 299 friend class GrResourceCache2; // To create this type. |
| 298 }; | 300 }; |
| 299 | 301 |
| 300 inline GrResourceCache2::ResourceAccess GrResourceCache2::resourceAccess() { | 302 inline GrResourceCache2::ResourceAccess GrResourceCache2::resourceAccess() { |
| 301 return ResourceAccess(this); | 303 return ResourceAccess(this); |
| 302 } | 304 } |
| 303 | 305 |
| 304 #endif | 306 #endif |
| OLD | NEW |