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);
}