Initial split up of Debug Interface into separate files

http://codereview.appspot.com/5979048/



git-svn-id: http://skia.googlecode.com/svn/trunk@3616 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/gl/debug/GrProgramObj.h b/src/gpu/gl/debug/GrProgramObj.h
new file mode 100644
index 0000000..d83eab8
--- /dev/null
+++ b/src/gpu/gl/debug/GrProgramObj.h
@@ -0,0 +1,43 @@
+
+/*
+ * 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