3 * Copyright 2012 Google Inc.
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
9 #ifndef GrTextureObj_DEFINED
10 #define GrTextureObj_DEFINED
12 #include "GrFBBindableObj.h"
14 class GrTextureUnitObj;
16 ////////////////////////////////////////////////////////////////////////////////
17 class GrTextureObj : public GrFBBindableObj {
18 GR_DEFINE_CREATOR(GrTextureObj);
25 virtual ~GrTextureObj() {
26 GrAlwaysAssert(0 == fTextureUnitReferees.count());
29 void setBound(GrTextureUnitObj *referee) {
30 fTextureUnitReferees.append(1, &referee);
33 void resetBound(GrTextureUnitObj *referee) {
34 int index = fTextureUnitReferees.find(referee);
35 GrAlwaysAssert(0 <= index);
36 fTextureUnitReferees.removeShuffle(index);
38 bool getBound(GrTextureUnitObj *referee) const {
39 int index = fTextureUnitReferees.find(referee);
42 bool getBound() const {
43 return 0 != fTextureUnitReferees.count();
46 void deleteAction() SK_OVERRIDE;
51 // texture units that bind this texture (via "glBindTexture")
52 SkTDArray<GrTextureUnitObj *> fTextureUnitReferees;
54 typedef GrFBBindableObj INHERITED;
57 #endif // GrTextureObj_DEFINED