Eliminated the dependency of VertexDataManager and IndexDataManager on Context.

TRAC #21963
Signed-off-by: Daniel Koch
Author: Nicolas Capens

git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1360 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index 830a0dd..0c50a40 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -253,8 +253,8 @@
 
     if (!mHasBeenCurrent)
     {
-        mVertexDataManager = new VertexDataManager(this, mRenderer);
-        mIndexDataManager = new IndexDataManager(this, mRenderer);
+        mVertexDataManager = new VertexDataManager(mRenderer);
+        mIndexDataManager = new IndexDataManager(mRenderer);
         mBlit = new Blit(mRenderer);
 
         mSupportsShaderModel3 = mRenderer->getShaderModel3Support();
@@ -837,11 +837,6 @@
     return mState.vertexAttribute[attribNum].mPointer;
 }
 
-const VertexAttributeArray &Context::getVertexAttributes()
-{
-    return mState.vertexAttribute;
-}
-
 void Context::setPackAlignment(GLint alignment)
 {
     mState.packAlignment = alignment;
@@ -2302,13 +2297,13 @@
 {
     TranslatedAttribute attributes[MAX_VERTEX_ATTRIBS];
 
-    GLenum err = mVertexDataManager->prepareVertexData(first, count, attributes, instances);
+    ProgramBinary *programBinary = getCurrentProgramBinary();
+    GLenum err = mVertexDataManager->prepareVertexData(mState.vertexAttribute, programBinary, first, count, attributes, instances);
     if (err != GL_NO_ERROR)
     {
         return err;
     }
-
-    ProgramBinary *programBinary = getCurrentProgramBinary();
+    
     return mVertexDeclarationCache.applyDeclaration(mDevice, attributes, programBinary, instances, repeatDraw);
 }