| /* | |
| * Copyright 2012 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef GrProgramObj_DEFINED | |
| #define GrProgramObj_DEFINED | |
| #include "SkTArray.h" | |
| #include "GrFakeRefObj.h" | |
| class GrShaderObj; | |
| //////////////////////////////////////////////////////////////////////////////// | |
| class GrProgramObj : public GrFakeRefObj { | |
| GR_DEFINE_CREATOR(GrProgramObj); | |
| public: | |
| GrProgramObj() | |
| : GrFakeRefObj() | |
| , fInUse(false) {} | |
| void AttachShader(GrShaderObj *shader); | |
| virtual void deleteAction() SK_OVERRIDE; | |
| // TODO: this flag system won't work w/ multiple contexts! | |
| void setInUse() { fInUse = true; } | |
| void resetInUse() { fInUse = false; } | |
| bool getInUse() const { return fInUse; } | |
| protected: | |
| private: | |
| SkTArray<GrShaderObj *> fShaders; | |
| bool fInUse; // has this program been activated by a glUseProgram call? | |
| typedef GrFakeRefObj INHERITED; | |
| }; | |
| #endif // GrProgramObj_DEFINED |