Index: src/gpu/gl/debug/GrProgramObj.h |
diff --git a/src/gpu/gl/debug/GrProgramObj.h b/src/gpu/gl/debug/GrProgramObj.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6e5ec65d9d1fcba1c9795b00a9778e06909a623b |
--- /dev/null |
+++ b/src/gpu/gl/debug/GrProgramObj.h |
@@ -0,0 +1,42 @@ |
+/* |
+ * 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); |
+ |
+ void deleteAction() 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 |