Commit cfaaf72f by Jamie Madill

Fix CopyBufferSubData.

We were passing the arguments from the gl::Buffer stub to the implementation class, which was breaking the call. Also clean up a few comments. BUG=angle:709 Change-Id: Ib92a36d1c52d60d8929f567d0daf54e9d6a2d127 Reviewed-on: https://chromium-review.googlesource.com/210641Tested-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarNicolas Capens <capn@chromium.org>
parent 7bf0c867
...@@ -48,7 +48,7 @@ void Buffer::bufferSubData(const void *data, GLsizeiptr size, GLintptr offset) ...@@ -48,7 +48,7 @@ void Buffer::bufferSubData(const void *data, GLsizeiptr size, GLintptr offset)
void Buffer::copyBufferSubData(Buffer* source, GLintptr sourceOffset, GLintptr destOffset, GLsizeiptr size) void Buffer::copyBufferSubData(Buffer* source, GLintptr sourceOffset, GLintptr destOffset, GLsizeiptr size)
{ {
mBuffer->copySubData(source->getImplementation(), size, sourceOffset, destOffset); mBuffer->copySubData(source->getImplementation(), sourceOffset, destOffset, size);
} }
GLvoid *Buffer::mapRange(GLintptr offset, GLsizeiptr length, GLbitfield access) GLvoid *Buffer::mapRange(GLintptr offset, GLsizeiptr length, GLbitfield access)
......
...@@ -6589,6 +6589,7 @@ void __stdcall glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintp ...@@ -6589,6 +6589,7 @@ void __stdcall glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintp
return gl::error(GL_INVALID_OPERATION); return gl::error(GL_INVALID_OPERATION);
} }
// Verify that readBuffer and writeBuffer are not currently mapped
if (readBuffer->isMapped() || writeBuffer->isMapped()) if (readBuffer->isMapped() || writeBuffer->isMapped())
{ {
return gl::error(GL_INVALID_OPERATION); return gl::error(GL_INVALID_OPERATION);
...@@ -6606,8 +6607,6 @@ void __stdcall glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintp ...@@ -6606,8 +6607,6 @@ void __stdcall glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintp
return gl::error(GL_INVALID_VALUE); return gl::error(GL_INVALID_VALUE);
} }
// TODO: Verify that readBuffer and writeBuffer are not currently mapped (GL_INVALID_OPERATION)
// if size is zero, the copy is a successful no-op // if size is zero, the copy is a successful no-op
if (size > 0) if (size > 0)
{ {
......
...@@ -92,6 +92,7 @@ void Buffer9::setSubData(const void* data, size_t size, size_t offset) ...@@ -92,6 +92,7 @@ void Buffer9::setSubData(const void* data, size_t size, size_t offset)
void Buffer9::copySubData(BufferImpl* source, GLintptr sourceOffset, GLintptr destOffset, GLsizeiptr size) void Buffer9::copySubData(BufferImpl* source, GLintptr sourceOffset, GLintptr destOffset, GLsizeiptr size)
{ {
// Note: this method is currently unreachable
Buffer9* sourceBuffer = makeBuffer9(source); Buffer9* sourceBuffer = makeBuffer9(source);
if (sourceBuffer) if (sourceBuffer)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment