Index: src/gpu/gl/GrGLVertexArray.cpp |
diff --git a/src/gpu/gl/GrGLVertexArray.cpp b/src/gpu/gl/GrGLVertexArray.cpp |
index e20dbb5fed94c779f00ef5e7760e9059ec15bd32..265b5b35ea6964034882a89e9a714747f633c67e 100644 |
--- a/src/gpu/gl/GrGLVertexArray.cpp |
+++ b/src/gpu/gl/GrGLVertexArray.cpp |
@@ -9,9 +9,10 @@ |
#include "GrGLGpu.h" |
-void GrGLAttribArrayState::set(const GrGLGpu* gpu, |
+ |
+void GrGLAttribArrayState::set(GrGLGpu* gpu, |
int index, |
- GrGLVertexBuffer* buffer, |
+ GrGLuint vertexBufferID, |
GrGLint size, |
GrGLenum type, |
GrGLboolean normalized, |
@@ -25,13 +26,13 @@ void GrGLAttribArrayState::set(const GrGLGpu* gpu, |
array->fEnabled = true; |
} |
if (!array->fAttribPointerIsValid || |
- array->fVertexBufferID != buffer->bufferID() || |
+ array->fVertexBufferID != vertexBufferID || |
array->fSize != size || |
array->fNormalized != normalized || |
array->fStride != stride || |
array->fOffset != offset) { |
- buffer->bind(); |
+ gpu->bindVertexBuffer(vertexBufferID); |
GR_GL_CALL(gpu->glInterface(), VertexAttribPointer(index, |
size, |
type, |
@@ -39,7 +40,7 @@ void GrGLAttribArrayState::set(const GrGLGpu* gpu, |
stride, |
offset)); |
array->fAttribPointerIsValid = true; |
- array->fVertexBufferID = buffer->bufferID(); |
+ array->fVertexBufferID = vertexBufferID; |
array->fSize = size; |
array->fNormalized = normalized; |
array->fStride = stride; |
@@ -80,15 +81,13 @@ GrGLAttribArrayState* GrGLVertexArray::bind(GrGLGpu* gpu) { |
return &fAttribArrays; |
} |
-GrGLAttribArrayState* GrGLVertexArray::bindWithIndexBuffer(GrGLGpu* gpu, |
- const GrGLIndexBuffer* buffer) { |
+GrGLAttribArrayState* GrGLVertexArray::bindWithIndexBuffer(GrGLGpu* gpu, GrGLuint ibufferID) { |
GrGLAttribArrayState* state = this->bind(gpu); |
- if (state && buffer) { |
- GrGLuint bufferID = buffer->bufferID(); |
- if (!fIndexBufferIDIsValid || bufferID != fIndexBufferID) { |
- GR_GL_CALL(gpu->glInterface(), BindBuffer(GR_GL_ELEMENT_ARRAY_BUFFER, bufferID)); |
+ if (state) { |
+ if (!fIndexBufferIDIsValid || ibufferID != fIndexBufferID) { |
+ GR_GL_CALL(gpu->glInterface(), BindBuffer(GR_GL_ELEMENT_ARRAY_BUFFER, ibufferID)); |
fIndexBufferIDIsValid = true; |
- fIndexBufferID = bufferID; |
+ fIndexBufferID = ibufferID; |
} |
} |
return state; |