Implemented glGetActiveAttrib
TRAC #11929
Signed-off-by: Shannon Woods
Signed-off-by: Daniel Koch

Author:    Nicolas Capens

git-svn-id: https://angleproject.googlecode.com/svn/trunk@180 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Program.h b/src/libGLESv2/Program.h
index ea9616a..9992a5c 100644
--- a/src/libGLESv2/Program.h
+++ b/src/libGLESv2/Program.h
@@ -15,6 +15,7 @@
 #include <vector>
 #include <set>
 
+#include "libGLESv2/Shader.h"
 #include "libGLESv2/Context.h"
 
 namespace gl
@@ -80,6 +81,10 @@
     void getInfoLog(GLsizei bufSize, GLsizei *length, char *infoLog);
     void getAttachedShaders(GLsizei maxCount, GLsizei *count, GLuint *shaders);
 
+    void getActiveAttribute(GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+    GLint getActiveAttributeCount();
+    GLint getActiveAttributeMaxLength();
+
     void flagForDeletion();
     bool isFlaggedForDeletion() const;
 
@@ -107,7 +112,7 @@
     bool linkVaryings();
 
     bool linkAttributes();
-    int getAttributeBinding(const char *name);
+    int getAttributeBinding(const std::string &name);
 
     bool linkUniforms(ID3DXConstantTable *constantTable);
     bool defineUniform(const D3DXHANDLE &constantHandle, const D3DXCONSTANT_DESC &constantDescription, std::string name = "");
@@ -130,6 +135,7 @@
     bool applyUniform3iv(GLint location, GLsizei count, const GLint *v);
     bool applyUniform4iv(GLint location, GLsizei count, const GLint *v);
 
+    GLenum parseAttributeType(const std::string &type);
     void appendToInfoLog(const char *info, ...);
 
     FragmentShader *mFragmentShader;
@@ -144,7 +150,7 @@
     ID3DXConstantTable *mConstantTableVS;
 
     std::set<std::string> mAttributeBinding[MAX_VERTEX_ATTRIBS];
-    std::string mLinkedAttribute[MAX_VERTEX_ATTRIBS];
+    Attribute mLinkedAttribute[MAX_VERTEX_ATTRIBS];
     int mSemanticIndex[MAX_VERTEX_ATTRIBS];
 
     struct Sampler