| /* | 
 |  * Copyright 2018 Google Inc. | 
 |  * | 
 |  * Use of this source code is governed by a BSD-style license that can be | 
 |  * found in the LICENSE file. | 
 |  */ | 
 |  | 
 | #ifndef GrDeinstantiateProxyTracker_DEFINED | 
 | #define GrDeinstantiateProxyTracker_DEFINED | 
 |  | 
 | #include "GrSurfaceProxy.h" | 
 | #include "SkTArray.h" | 
 |  | 
 | class GrResourceCache; | 
 |  | 
 | class GrDeinstantiateProxyTracker { | 
 | public: | 
 |     GrDeinstantiateProxyTracker(GrResourceCache* cache) : fCache(cache) {} | 
 |  | 
 |     // Adds a proxy which will be deinstantiated at the end of flush. The same proxy may not be | 
 |     // added multiple times. | 
 |     void addProxy(GrSurfaceProxy* proxy); | 
 |  | 
 |     // Loops through all tracked proxies and deinstantiates them. | 
 |     void deinstantiateAllProxies(); | 
 |  | 
 | private: | 
 |     GrResourceCache* fCache; | 
 |     SkTArray<sk_sp<GrSurfaceProxy>> fProxies; | 
 | }; | 
 |  | 
 | #endif |