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

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

Issue 642493003: Revert of Use presence of a content key as non-scratch indicator (Closed) Base URL: https://skia.googlesource.com/skia.git@pp
Patch Set: Created 6 years, 2 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 | « no previous file | src/gpu/GrContext.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 * 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
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 void validate() const { 64 void validate() const {
65 #ifdef SK_DEBUG 65 #ifdef SK_DEBUG
66 SkASSERT(fRefCnt >= 0); 66 SkASSERT(fRefCnt >= 0);
67 SkASSERT(fPendingReads >= 0); 67 SkASSERT(fPendingReads >= 0);
68 SkASSERT(fPendingWrites >= 0); 68 SkASSERT(fPendingWrites >= 0);
69 SkASSERT(fRefCnt + fPendingReads + fPendingWrites > 0); 69 SkASSERT(fRefCnt + fPendingReads + fPendingWrites > 0);
70 #endif 70 #endif
71 } 71 }
72 72
73 protected: 73 protected:
74 GrIORef() : fRefCnt(1), fPendingReads(0), fPendingWrites(0) { } 74 GrIORef() : fRefCnt(1), fPendingReads(0), fPendingWrites(0), fIsScratch(kNo_ IsScratch) { }
75 75
76 bool internalHasPendingRead() const { return SkToBool(fPendingReads); } 76 bool internalHasPendingRead() const { return SkToBool(fPendingReads); }
77 bool internalHasPendingWrite() const { return SkToBool(fPendingWrites); } 77 bool internalHasPendingWrite() const { return SkToBool(fPendingWrites); }
78 bool internalHasPendingIO() const { return SkToBool(fPendingWrites | fPendin gReads); } 78 bool internalHasPendingIO() const { return SkToBool(fPendingWrites | fPendin gReads); }
79 79
80 private: 80 private:
81 void addPendingRead() const { 81 void addPendingRead() const {
82 this->validate(); 82 this->validate();
83 ++fPendingReads; 83 ++fPendingReads;
84 } 84 }
(...skipping 26 matching lines...) Expand all
111 } 111 }
112 } 112 }
113 } 113 }
114 114
115 mutable int32_t fRefCnt; 115 mutable int32_t fRefCnt;
116 mutable int32_t fPendingReads; 116 mutable int32_t fPendingReads;
117 mutable int32_t fPendingWrites; 117 mutable int32_t fPendingWrites;
118 118
119 // This class is used to manage conversion of refs to pending reads/writes. 119 // This class is used to manage conversion of refs to pending reads/writes.
120 friend class GrGpuResourceRef; 120 friend class GrGpuResourceRef;
121 friend class GrResourceCache2; // to check IO ref counts. 121
122 // This is temporary until GrResourceCache is fully replaced by GrResourceCa che2.
123 enum IsScratch {
124 kNo_IsScratch,
125 kYes_IsScratch
126 } fIsScratch;
127
128 friend class GrContext; // to set the above field.
129 friend class GrResourceCache; // to check the above field.
130 friend class GrResourceCache2; // to check the above field.
122 131
123 template <typename, GrIOType> friend class GrPendingIOResource; 132 template <typename, GrIOType> friend class GrPendingIOResource;
124 }; 133 };
125 134
126 /** 135 /**
127 * Base class for objects that can be kept in the GrResourceCache. 136 * Base class for objects that can be kept in the GrResourceCache.
128 */ 137 */
129 class GrGpuResource : public GrIORef<GrGpuResource> { 138 class GrGpuResource : public GrIORef<GrGpuResource> {
130 public: 139 public:
131 SK_DECLARE_INST_COUNT(GrGpuResource) 140 SK_DECLARE_INST_COUNT(GrGpuResource)
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 183
175 void setCacheEntry(GrResourceCacheEntry* cacheEntry) { fCacheEntry = cacheEn try; } 184 void setCacheEntry(GrResourceCacheEntry* cacheEntry) { fCacheEntry = cacheEn try; }
176 GrResourceCacheEntry* getCacheEntry() const { return fCacheEntry; } 185 GrResourceCacheEntry* getCacheEntry() const { return fCacheEntry; }
177 186
178 /** 187 /**
179 * If this resource can be used as a scratch resource this returns a valid 188 * If this resource can be used as a scratch resource this returns a valid
180 * scratch key. Otherwise it returns a key for which isNullScratch is true. 189 * scratch key. Otherwise it returns a key for which isNullScratch is true.
181 */ 190 */
182 const GrResourceKey& getScratchKey() const { return fScratchKey; } 191 const GrResourceKey& getScratchKey() const { return fScratchKey; }
183 192
184 /**
185 * If this resource is currently cached by its contents then this will retur n
186 * the content key. Otherwise, NULL is returned.
187 */
188 const GrResourceKey* getContentKey() const;
189
190 /** 193 /**
191 * Gets an id that is unique for this GrGpuResource object. It is static in that it does 194 * Gets an id that is unique for this GrGpuResource object. It is static in that it does
192 * not change when the content of the GrGpuResource object changes. This wil l never return 195 * not change when the content of the GrGpuResource object changes. This wil l never return
193 * 0. 196 * 0.
194 */ 197 */
195 uint32_t getUniqueID() const { return fUniqueID; } 198 uint32_t getUniqueID() const { return fUniqueID; }
196 199
197 protected: 200 protected:
198 // This must be called by every GrGpuObject. It should be called once the ob ject is fully 201 // This must be called by every GrGpuObject. It should be called once the ob ject is fully
199 // initialized (i.e. not in a base class constructor). 202 // initialized (i.e. not in a base class constructor).
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 GrResourceCacheEntry* fCacheEntry; // NULL if not in cache 260 GrResourceCacheEntry* fCacheEntry; // NULL if not in cache
258 const uint32_t fUniqueID; 261 const uint32_t fUniqueID;
259 262
260 GrResourceKey fScratchKey; 263 GrResourceKey fScratchKey;
261 264
262 typedef GrIORef<GrGpuResource> INHERITED; 265 typedef GrIORef<GrGpuResource> INHERITED;
263 friend class GrIORef<GrGpuResource>; // to access notifyIsPurgable. 266 friend class GrIORef<GrGpuResource>; // to access notifyIsPurgable.
264 }; 267 };
265 268
266 #endif 269 #endif
OLDNEW
« no previous file with comments | « no previous file | src/gpu/GrContext.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698