Added binding points for the copy read and copy write buffers.
TRAC #22811
Signed-off-by: Jamie Madill
Signed-off-by: Shannon Woods
Author: Geoff Lang
git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2130 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index dd03bab..6524898 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -163,6 +163,9 @@
bindIndexedTransformFeedbackBuffer(0, i, 0, -1);
}
+ bindCopyReadBuffer(0);
+ bindCopyWriteBuffer(0);
+
mState.currentProgram = 0;
mCurrentProgramBinary.set(NULL);
@@ -264,6 +267,9 @@
mState.transformFeedbackBuffers[i].set(NULL);
}
+ mState.copyReadBuffer.set(NULL);
+ mState.copyWriteBuffer.set(NULL);
+
mResourceManager->release();
}
@@ -968,6 +974,20 @@
mState.transformFeedbackBuffers[index].set(getBuffer(buffer), offset, size);
}
+void Context::bindCopyReadBuffer(GLuint buffer)
+{
+ mResourceManager->checkBufferAllocation(buffer);
+
+ mState.copyReadBuffer.set(getBuffer(buffer));
+}
+
+void Context::bindCopyWriteBuffer(GLuint buffer)
+{
+ mResourceManager->checkBufferAllocation(buffer);
+
+ mState.copyWriteBuffer.set(getBuffer(buffer));
+}
+
void Context::useProgram(GLuint program)
{
GLuint priorProgram = mState.currentProgram;
@@ -1231,6 +1251,16 @@
return mState.genericTransformFeedbackBuffer.get();
}
+Buffer *Context::getCopyReadBuffer()
+{
+ return mState.copyReadBuffer.get();
+}
+
+Buffer *Context::getCopyWriteBuffer()
+{
+ return mState.copyWriteBuffer.get();
+}
+
Texture *Context::getSamplerTexture(unsigned int sampler, TextureType type)
{
GLuint texid = mState.samplerTexture[type][sampler].id();
@@ -1591,6 +1621,12 @@
case GL_TRANSFORM_FEEDBACK_BUFFER_BINDING:
*params = mState.genericTransformFeedbackBuffer.id();
break;
+ case GL_COPY_READ_BUFFER_BINDING:
+ *params = mState.copyReadBuffer.id();
+ break;
+ case GL_COPY_WRITE_BUFFER_BINDING:
+ *params = mState.copyWriteBuffer.id();
+ break;
default:
return false;
}
@@ -1793,6 +1829,8 @@
{
case GL_UNIFORM_BUFFER_BINDING:
case GL_TRANSFORM_FEEDBACK_BINDING:
+ case GL_COPY_READ_BUFFER_BINDING:
+ case GL_COPY_WRITE_BUFFER_BINDING:
{
*type = GL_INT;
*numParams = 1;