OLD | NEW |
---|---|
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 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
167 */ | 167 */ |
168 uint32_t getUniqueID() const { return fUniqueID; } | 168 uint32_t getUniqueID() const { return fUniqueID; } |
169 | 169 |
170 /** | 170 /** |
171 * Internal-only helper class used for cache manipulations of the reosurce. | 171 * Internal-only helper class used for cache manipulations of the reosurce. |
172 */ | 172 */ |
173 class CacheAccess; | 173 class CacheAccess; |
174 inline CacheAccess cacheAccess(); | 174 inline CacheAccess cacheAccess(); |
175 inline const CacheAccess cacheAccess() const; | 175 inline const CacheAccess cacheAccess() const; |
176 | 176 |
177 /** | |
178 * Frees the object in the underlying 3D API. Called by CacheAccess. | |
179 * In general this method should not be called outside of skia. It was | |
180 * made by public for a special case where it need to be called in Blink | |
181 * when a texture becomes unsafe to use after having been shared through | |
182 * a texture mailbox. | |
183 */ | |
184 void release(); | |
bsalomon
2014/12/10 20:35:02
Is it right to call release and not abandon in the
| |
185 | |
177 protected: | 186 protected: |
178 // This must be called by every GrGpuObject. It should be called once the ob ject is fully | 187 // This must be called by every GrGpuObject. It should be called once the ob ject is fully |
179 // initialized (i.e. not in a base class constructor). | 188 // initialized (i.e. not in a base class constructor). |
180 void registerWithCache(); | 189 void registerWithCache(); |
181 | 190 |
182 GrGpuResource(GrGpu*, bool isWrapped); | 191 GrGpuResource(GrGpu*, bool isWrapped); |
183 virtual ~GrGpuResource(); | 192 virtual ~GrGpuResource(); |
184 | 193 |
185 GrGpu* getGpu() const { return fGpu; } | 194 GrGpu* getGpu() const { return fGpu; } |
186 | 195 |
(...skipping 12 matching lines...) Expand all Loading... | |
199 */ | 208 */ |
200 void didChangeGpuMemorySize() const; | 209 void didChangeGpuMemorySize() const; |
201 | 210 |
202 /** | 211 /** |
203 * Optionally called by the GrGpuResource subclass if the resource can be us ed as scratch. | 212 * Optionally called by the GrGpuResource subclass if the resource can be us ed as scratch. |
204 * By default resources are not usable as scratch. This should only be calle d once. | 213 * By default resources are not usable as scratch. This should only be calle d once. |
205 **/ | 214 **/ |
206 void setScratchKey(const GrResourceKey& scratchKey); | 215 void setScratchKey(const GrResourceKey& scratchKey); |
207 | 216 |
208 private: | 217 private: |
209 /** | |
210 * Frees the object in the underlying 3D API. Called by CacheAccess. | |
211 */ | |
212 void release(); | |
213 | 218 |
214 /** | 219 /** |
215 * Removes references to objects in the underlying 3D API without freeing th em. | 220 * Removes references to objects in the underlying 3D API without freeing th em. |
216 * Called by CacheAccess. | 221 * Called by CacheAccess. |
217 */ | 222 */ |
218 void abandon(); | 223 void abandon(); |
219 | 224 |
220 virtual size_t onGpuMemorySize() const = 0; | 225 virtual size_t onGpuMemorySize() const = 0; |
221 | 226 |
222 // See comments in CacheAccess. | 227 // See comments in CacheAccess. |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
266 mutable size_t fGpuMemorySize; | 271 mutable size_t fGpuMemorySize; |
267 | 272 |
268 uint32_t fFlags; | 273 uint32_t fFlags; |
269 const uint32_t fUniqueID; | 274 const uint32_t fUniqueID; |
270 | 275 |
271 typedef GrIORef<GrGpuResource> INHERITED; | 276 typedef GrIORef<GrGpuResource> INHERITED; |
272 friend class GrIORef<GrGpuResource>; // to access notifyIsPurgable. | 277 friend class GrIORef<GrGpuResource>; // to access notifyIsPurgable. |
273 }; | 278 }; |
274 | 279 |
275 #endif | 280 #endif |
OLD | NEW |