Allow the application to implicitly create buffers by binding them at indexed binding points, without previously calling GenBuffers or BufferData.

TRAC #22958

Signed-off-by: Geoff Lang
Signed-off-by: Shannon Woods
Author: Jamie Madill

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2298 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index a76dca8..8e3f4a5 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -8670,14 +8670,7 @@
                 return gl::error(GL_INVALID_ENUM);
             }
 
-            gl::Buffer *bufferObject = context->getBuffer(buffer);
-            if (!bufferObject)
-            {
-                // Buffer index must not have been valid
-                return gl::error(GL_INVALID_VALUE);
-            }
-
-            if (size <= 0 || static_cast<unsigned int>(offset + size) > bufferObject->size())
+            if (buffer != 0 && size <= 0)
             {
                 return gl::error(GL_INVALID_VALUE);
             }
@@ -8748,13 +8741,6 @@
                 return gl::error(GL_INVALID_ENUM);
             }
 
-            gl::Buffer *bufferObject = context->getBuffer(buffer);
-            if (!bufferObject)
-            {
-                // Buffer index must not have been valid
-                return gl::error(GL_INVALID_VALUE);
-            }
-
             switch (target)
             {
               case GL_TRANSFORM_FEEDBACK_BUFFER: