gfx/skia/trunk/src/gpu/gl/debug/GrTextureObj.h

branch
TOR_BUG_3246
changeset 6
8bccb770b82d
equal deleted inserted replaced
-1:000000000000 0:d2544dc47da9
1
2 /*
3 * Copyright 2012 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 GrTextureObj_DEFINED
10 #define GrTextureObj_DEFINED
11
12 #include "GrFBBindableObj.h"
13
14 class GrTextureUnitObj;
15
16 ////////////////////////////////////////////////////////////////////////////////
17 class GrTextureObj : public GrFBBindableObj {
18 GR_DEFINE_CREATOR(GrTextureObj);
19
20 public:
21 GrTextureObj()
22 : GrFBBindableObj() {
23 }
24
25 virtual ~GrTextureObj() {
26 GrAlwaysAssert(0 == fTextureUnitReferees.count());
27 }
28
29 void setBound(GrTextureUnitObj *referee) {
30 fTextureUnitReferees.append(1, &referee);
31 }
32
33 void resetBound(GrTextureUnitObj *referee) {
34 int index = fTextureUnitReferees.find(referee);
35 GrAlwaysAssert(0 <= index);
36 fTextureUnitReferees.removeShuffle(index);
37 }
38 bool getBound(GrTextureUnitObj *referee) const {
39 int index = fTextureUnitReferees.find(referee);
40 return 0 <= index;
41 }
42 bool getBound() const {
43 return 0 != fTextureUnitReferees.count();
44 }
45
46 virtual void deleteAction() SK_OVERRIDE;
47
48 protected:
49
50 private:
51 // texture units that bind this texture (via "glBindTexture")
52 SkTDArray<GrTextureUnitObj *> fTextureUnitReferees;
53
54 typedef GrFBBindableObj INHERITED;
55 };
56
57 #endif // GrTextureObj_DEFINED

mercurial