blob: 8e79c09e39e1c798553ff2d0e6cefc0916d05e29 [file] [log] [blame]
bsalomonc8dc1f72014-08-21 13:02:13 -07001
2/*
3 * Copyright 2014 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9#ifndef GrResourceCache2_DEFINED
10#define GrResourceCache2_DEFINED
11
12#include "GrTypes.h"
13#include "SkTInternalLList.h"
14
15class GrGpuResource;
16
17/**
18 * Eventual replacement for GrResourceCache. Currently it simply holds a list
19 * of all GrGpuResource objects for a GrContext. It is used to invalidate all
20 * the resources when necessary.
21 */
22class GrResourceCache2 {
23public:
24 GrResourceCache2() : fCount(0) {};
25 ~GrResourceCache2();
26
27 void insertResource(GrGpuResource* resource);
28
29 void removeResource(GrGpuResource* resource);
30
31 void abandonAll();
32
33 void releaseAll();
34
35private:
bsalomon16961262014-08-26 14:01:07 -070036#ifdef SK_DEBUG
37 bool isInCache(const GrGpuResource* r) const {
38 return fResources.isInList(r);
39 }
40#endif
41
bsalomonc8dc1f72014-08-21 13:02:13 -070042 int fCount;
43 SkTInternalLList<GrGpuResource> fResources;
44};
45
46#endif