• Home
  • History
  • Annotate
  • only in /frameworks/support/persistence/db/ktx/src/test/
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
14class GrTextureUnitObj;
15
16////////////////////////////////////////////////////////////////////////////////
17class GrTextureObj : public GrFBBindableObj {
18    GR_DEFINE_CREATOR(GrTextureObj)
19
20public:
21    GrTextureObj()
22        : GrFBBindableObj() {
23    }
24
25    ~GrTextureObj() override {
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    void deleteAction() override;
47
48protected:
49
50private:
51    // texture units that bind this texture (via "glBindTexture")
52    SkTDArray<GrTextureUnitObj *> fTextureUnitReferees;
53
54    typedef GrFBBindableObj INHERITED;
55};
56
57#endif // GrTextureObj_DEFINED
58