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

Side by Side Diff: include/gpu/GrGpuResource.h

Issue 481443002: Add GrResourceCache2. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix leaks Created 6 years, 4 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
« no previous file with comments | « include/gpu/GrContext.h ('k') | src/gpu/GrClipMaskCache.h » ('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 * Copyright 2014 Google Inc. 2 * Copyright 2014 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef GrGpuResource_DEFINED 8 #ifndef GrGpuResource_DEFINED
9 #define GrGpuResource_DEFINED 9 #define GrGpuResource_DEFINED
10 10
11 #include "SkInstCnt.h" 11 #include "SkInstCnt.h"
12 #include "SkTInternalLList.h" 12 #include "SkTInternalLList.h"
13 13
14 class GrResourceCacheEntry; 14 class GrResourceCacheEntry;
15 class GrResourceCache2;
15 class GrGpu; 16 class GrGpu;
16 class GrContext; 17 class GrContext;
17 18
18 /** 19 /**
19 * Base class for objects that can be kept in the GrResourceCache. 20 * Base class for objects that can be kept in the GrResourceCache.
20 */ 21 */
21 class GrGpuResource : public SkNoncopyable { 22 class GrGpuResource : public SkNoncopyable {
22 public: 23 public:
23 SK_DECLARE_INST_COUNT_ROOT(GrGpuResource) 24 SK_DECLARE_INST_COUNT_ROOT(GrGpuResource)
24 25
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 */ 112 */
112 void didChangeGpuMemorySize() const; 113 void didChangeGpuMemorySize() const;
113 114
114 private: 115 private:
115 #ifdef SK_DEBUG 116 #ifdef SK_DEBUG
116 friend class GrGpu; // for assert in GrGpu to access getGpu 117 friend class GrGpu; // for assert in GrGpu to access getGpu
117 #endif 118 #endif
118 119
119 static uint32_t CreateUniqueID(); 120 static uint32_t CreateUniqueID();
120 121
121 // We're in an internal doubly linked list 122 // We're in an internal doubly linked list owned by GrResourceCache2
122 SK_DECLARE_INTERNAL_LLIST_INTERFACE(GrGpuResource); 123 SK_DECLARE_INTERNAL_LLIST_INTERFACE(GrGpuResource);
123 124
124 GrGpu* fGpu; // not reffed. The GrGpu can be dele ted while there 125 // This is not ref'ed but abandon() or release() will be called before the G rGpu object
125 // are still live GrGpuResources. It will call 126 // is destroyed. Those calls set will this to NULL.
126 // release() on all such objects in its destructor. 127 GrGpu* fGpu;
128
127 enum Flags { 129 enum Flags {
128 /** 130 /**
129 * This object wraps a GPU object given to us by the user. 131 * This object wraps a GPU object given to us by the user.
130 * Lifetime management is left up to the user (i.e., we will not 132 * Lifetime management is left up to the user (i.e., we will not
131 * free it). 133 * free it).
132 */ 134 */
133 kWrapped_FlagBit = 0x1, 135 kWrapped_FlagBit = 0x1,
134 }; 136 };
135 137
136 uint32_t fFlags; 138 uint32_t fFlags;
137 139
138 mutable int32_t fRefCnt; 140 mutable int32_t fRefCnt;
139 GrResourceCacheEntry* fCacheEntry; // NULL if not in cache 141 GrResourceCacheEntry* fCacheEntry; // NULL if not in cache
140 const uint32_t fUniqueID; 142 const uint32_t fUniqueID;
141 143
142 typedef SkNoncopyable INHERITED; 144 typedef SkNoncopyable INHERITED;
143 }; 145 };
144 146
145 #endif 147 #endif
OLDNEW
« no previous file with comments | « include/gpu/GrContext.h ('k') | src/gpu/GrClipMaskCache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698