1/*
2 * Copyright 2012 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef GrTextureUnitObj_DEFINED
9#define GrTextureUnitObj_DEFINED
10
11#include "GrFakeRefObj.h"
12class GrTextureObj;
13
14////////////////////////////////////////////////////////////////////////////////
15// Although texture unit objects are allocated & deallocated like the other
16// GL emulation objects they are derived from GrFakeRefObj to provide some
17// uniformity in how the GrDebugGL class manages resources
18class GrTextureUnitObj : public GrFakeRefObj {
19    GR_DEFINE_CREATOR(GrTextureUnitObj);
20
21public:
22    GrTextureUnitObj()
23        : GrFakeRefObj()
24        , fNumber(0)
25        , fTexture(NULL) {
26    }
27
28    void setNumber(GrGLenum number) {
29        fNumber = number;
30    }
31    GrGLenum getNumber() const { return fNumber; }
32
33    void setTexture(GrTextureObj *texture);
34    GrTextureObj *getTexture()                  { return fTexture; }
35
36protected:
37private:
38    GrGLenum fNumber;
39    GrTextureObj *fTexture;
40
41    typedef GrFakeRefObj INHERITED;
42};
43
44#endif // GrTextureUnitObj_DEFINED
45