Added pixel pack and unpack buffer bindings.
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@2131 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index 6524898..58cb5d9 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -165,6 +165,8 @@
bindCopyReadBuffer(0);
bindCopyWriteBuffer(0);
+ bindPixelPackBuffer(0);
+ bindPixelUnpackBuffer(0);
mState.currentProgram = 0;
mCurrentProgramBinary.set(NULL);
@@ -270,6 +272,9 @@
mState.copyReadBuffer.set(NULL);
mState.copyWriteBuffer.set(NULL);
+ mState.pixelPackBuffer.set(NULL);
+ mState.pixelUnpackBuffer.set(NULL);
+
mResourceManager->release();
}
@@ -988,6 +993,20 @@
mState.copyWriteBuffer.set(getBuffer(buffer));
}
+void Context::bindPixelPackBuffer(GLuint buffer)
+{
+ mResourceManager->checkBufferAllocation(buffer);
+
+ mState.pixelPackBuffer.set(getBuffer(buffer));
+}
+
+void Context::bindPixelUnpackBuffer(GLuint buffer)
+{
+ mResourceManager->checkBufferAllocation(buffer);
+
+ mState.pixelUnpackBuffer.set(getBuffer(buffer));
+}
+
void Context::useProgram(GLuint program)
{
GLuint priorProgram = mState.currentProgram;
@@ -1261,6 +1280,16 @@
return mState.copyWriteBuffer.get();
}
+Buffer *Context::getPixelPackBuffer()
+{
+ return mState.pixelPackBuffer.get();
+}
+
+Buffer *Context::getPixelUnpackBuffer()
+{
+ return mState.pixelUnpackBuffer.get();
+}
+
Texture *Context::getSamplerTexture(unsigned int sampler, TextureType type)
{
GLuint texid = mState.samplerTexture[type][sampler].id();
@@ -1627,6 +1656,12 @@
case GL_COPY_WRITE_BUFFER_BINDING:
*params = mState.copyWriteBuffer.id();
break;
+ case GL_PIXEL_PACK_BUFFER_BINDING:
+ *params = mState.pixelPackBuffer.id();
+ break;
+ case GL_PIXEL_UNPACK_BUFFER_BINDING:
+ *params = mState.pixelUnpackBuffer.id();
+ break;
default:
return false;
}
@@ -1831,6 +1866,8 @@
case GL_TRANSFORM_FEEDBACK_BINDING:
case GL_COPY_READ_BUFFER_BINDING:
case GL_COPY_WRITE_BUFFER_BINDING:
+ case GL_PIXEL_PACK_BUFFER_BINDING:
+ case GL_PIXEL_UNPACK_BUFFER_BINDING:
{
*type = GL_INT;
*numParams = 1;