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 | 9 |
10 #include "GrResourceCache2.h" | 10 #include "GrResourceCache2.h" |
11 #include "GrGpuResource.h" | 11 #include "GrGpuResource.h" |
12 | 12 |
13 GrResourceCache2::~GrResourceCache2() { | 13 GrResourceCache2::~GrResourceCache2() { |
14 this->releaseAll(); | 14 this->releaseAll(); |
15 } | 15 } |
16 | 16 |
17 void GrResourceCache2::insertResource(GrGpuResource* resource) { | 17 void GrResourceCache2::insertResource(GrGpuResource* resource) { |
18 SkASSERT(NULL != resource); | 18 SkASSERT(NULL != resource); |
19 SkASSERT(!resource->wasDestroyed()); | 19 SkASSERT(!resource->wasDestroyed()); |
20 SkASSERT(!this->isInCache(resource)); | |
21 fResources.addToHead(resource); | 20 fResources.addToHead(resource); |
22 ++fCount; | 21 ++fCount; |
23 } | 22 } |
24 | 23 |
25 void GrResourceCache2::removeResource(GrGpuResource* resource) { | 24 void GrResourceCache2::removeResource(GrGpuResource* resource) { |
26 SkASSERT(this->isInCache(resource)); | |
27 fResources.remove(resource); | 25 fResources.remove(resource); |
28 --fCount; | 26 --fCount; |
29 } | 27 } |
30 | 28 |
31 void GrResourceCache2::abandonAll() { | 29 void GrResourceCache2::abandonAll() { |
32 while (GrGpuResource* head = fResources.head()) { | 30 while (GrGpuResource* head = fResources.head()) { |
33 SkASSERT(!head->wasDestroyed()); | 31 SkASSERT(!head->wasDestroyed()); |
34 head->abandon(); | 32 head->abandon(); |
35 // abandon should have already removed this from the list. | 33 // abandon should have already removed this from the list. |
36 SkASSERT(head != fResources.head()); | 34 SkASSERT(head != fResources.head()); |
37 } | 35 } |
38 SkASSERT(!fCount); | 36 SkASSERT(!fCount); |
39 } | 37 } |
40 | 38 |
41 void GrResourceCache2::releaseAll() { | 39 void GrResourceCache2::releaseAll() { |
42 while (GrGpuResource* head = fResources.head()) { | 40 while (GrGpuResource* head = fResources.head()) { |
43 SkASSERT(!head->wasDestroyed()); | 41 SkASSERT(!head->wasDestroyed()); |
44 head->release(); | 42 head->release(); |
45 // release should have already removed this from the list. | 43 // release should have already removed this from the list. |
46 SkASSERT(head != fResources.head()); | 44 SkASSERT(head != fResources.head()); |
47 } | 45 } |
48 SkASSERT(!fCount); | 46 SkASSERT(!fCount); |
49 } | 47 } |
OLD | NEW |