| Index: gpu/command_buffer/service/indexed_buffer_binding_host.cc
|
| diff --git a/gpu/command_buffer/service/indexed_buffer_binding_host.cc b/gpu/command_buffer/service/indexed_buffer_binding_host.cc
|
| index fb5c11ba94c0fd9b79c5f8b574fca39422f15cba..351e5f4a5edda715c88c7f34b1a58be9770e3900 100644
|
| --- a/gpu/command_buffer/service/indexed_buffer_binding_host.cc
|
| +++ b/gpu/command_buffer/service/indexed_buffer_binding_host.cc
|
| @@ -195,6 +195,26 @@ GLsizeiptr IndexedBufferBindingHost::GetBufferSize(GLuint index) const {
|
| return buffer_bindings_[index].size;
|
| }
|
|
|
| +GLsizeiptr IndexedBufferBindingHost::GetEffectiveBufferSize(
|
| + GLuint index) const {
|
| + DCHECK_LT(index, buffer_bindings_.size());
|
| + const IndexedBufferBinding& binding = buffer_bindings_[index];
|
| + if (!binding.buffer.get())
|
| + return 0;
|
| + GLsizeiptr full_buffer_size = binding.buffer->size();
|
| + switch (binding.type) {
|
| + case kBindBufferBase:
|
| + return full_buffer_size;
|
| + case kBindBufferRange:
|
| + if (binding.offset + binding.size > full_buffer_size)
|
| + return full_buffer_size - binding.offset;
|
| + return binding.size;
|
| + case kBindBufferNone:
|
| + return 0;
|
| + }
|
| + return buffer_bindings_[index].size;
|
| +}
|
| +
|
| GLintptr IndexedBufferBindingHost::GetBufferStart(GLuint index) const {
|
| DCHECK_LT(index, buffer_bindings_.size());
|
| return buffer_bindings_[index].offset;
|
|
|